новая папка 1 / 239268
.pdfМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
В.И. Костылев
ПРЯМОУГОЛЬНЫЙ ИМПУЛЬС КАК СИСТЕМНЫЙ ОБЪЕКТ MATLAB
Учебное пособие для вузов
Издательско-полиграфический центр Воронежского государственного университета
2012
Утверждено научно-методическим советом физического факультета 1 ноября 2012 г., протокол № 11
Рецензент д-р физ.-мат. наук, проф. В.И. Парфенов
Учебное пособие подготовлено на кафедре электроники Воронежского государственного университета.
Рекомендуется для студентов, обучающихся по направлению «Радиофизика» магистерской программы «Информационные процессы и системы».
Для направления 010800 – Радиофизика
2
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
§1 Импульсы прямоугольной формы
1.1Определение прямоугольной формы импульса
Определим следующую функцию времени:
a t |
1, |
t |
|
T / 2, |
|
|
||
0, |
|
t |
|
T / 2. |
|
|
||
|
|
|
|
|||||
|
|
|
|
|
||||
Здесь T – конечное произвольное вещественное число. |
|
|||||||
Предположим, что в радиофизической |
системе |
протекает |
процесс |
|||||
x t a t cos t , где ω обозначает несущую |
частоту. |
Заметим, |
что a(t) |
представляет собой амплитудную модуляцию (по типу «включеновыключено») гармонического колебания с частотой ω. Комплексная амплитуда процесса x(t) есть вещественный прямоугольный импульс a(t) длительностью T секунд. Прямоугольный импульс подробно описан в литературе, как в учебной [1], так и в научной [2, 3].
1.2 Как создать импульс прямоугольной формы
Чтобы создать импульс прямоугольной формы в среде программирования MATLAB можно воспользоваться объектом phased.RectangularWaveform, входящим в состав пакета Phased Array System Toolbox. При этом можно задавать определѐнные характеристики импульса, такие как
–частота дискретизации;
–длительность импульса;
–частота повторения импульсов;
–количество отсчѐтов или импульсов в каждом векторе, представляющем сигнал.
1.3 Графическое представление прямоугольного импульса
Рассмотрим на примере, как создать переменную для импульса прямоугольной формы, используя объект phased.RectangularWaveform. В этом примере будет также изображѐн импульс и найдена ширина его полосы частот.
3
Рис. 1. График единичного импульса
Итак, пусть требуется сконструировать последовательность прямоугольных импульсов с длительностью одного импульса в 50 мкс, с частотой дискретизации, равной 1 МГц, и частотой повторения импульсов, равной 10 кГц. Это можно сделать следующим образом:
hrect = phased.RectangularWaveform('SampleRate', 1e6,...
'PulseWidth', 5e-5, 'PRF', 1e4);
Нарисовать единичный прямоугольный импульс, можно вызывая метод plot со входным аргументом hrect:
figure;
plot(hrect)
Этот метод произведѐт график, показанный на рис. 1.
Определить ширину полосы частот прямоугольного импульса можно
так:
bw = bandwidth(hrect);
Ширина полосы частот прямоугольного импульса выражается в герцах и примерно обратно пропорциональна длительности импульса. Иначе говоря, bw примерно равно 1/hrect.PulseWidth.
4
1.4 Последовательность импульсов прямоугольной формы
Покажем, как создавать последовательности импульсов прямоугольной формы с различной длительностью отдельных, составляющих последовательность, импульсов. И изобразим по два импульса для каждой такой последовательности.
Создаѐм последовательность прямоугольных импульсов с длительностью единичного импульса в 100 мкс и частотой повторения импульсов в 1 кГц. Установим количество импульсов равным двум.
hrect = phased.RectangularWaveform('PulseWidth', 100e-6,...
'PRF', 1e3, 'OutputFormat', 'Pulses', 'NumPulses', 2);
Сделаем копию нашей последовательности прямоугольных импульсов и изменим ширину импульса, а именно, сделаем еѐ равной 10 мкс.
hrect1 = clone(hrect); hrect.PulseWidth = 10e-6;
Объекты hrect1 и hrect теперь специфицируют различные последовательности прямоугольных импульсов, поскольку мы изменили ширину единичного импульса в hrect.
Применим теперь метод step, чтобы извлечь информацию из объектов hrect и hrect1 и сохранить еѐ в переменных y и y1.
y = step(hrect); y1 = step(hrect1);
Изобразим графически (см. рис. 2) вещественную часть сигнала.
Totaldur = 2*1/hrect.PRF;
totnumsamp = totaldur*hrect.SampleRate;
t = unigrid(0, 1/hrect.SampleRate, totaldur, '[)'); subplot(2,1,1)
plot(t.*1000, real(y)); axis([0 totaldur*1e3 0 1.5]); title('Two 10-\musec duration pulses (PRF = 1 kHz)'); set(gca, 'Xtick', 0:0.2:totaldur*1e3)
subplot(2,1,2);
plot(t.*1000,real(y1)); axis([0 totaldur*1e3 0 1.5]); xlabel('Milliseconds');
title('Two 100-\musec duration pulses (PRF = 1 kHz)'); set(gca, 'Xtick', 0:0.2:totaldur*1e3)
5
Рис. 2. Графическое представление последовательностей импульсов
§ 2 Объект phased.RectangularWaveform
Системный объект RectangularWaveform расположен в пакете phased. Он предназначен для создания импульсных сигналов прямоугольной формы.
2.1 Описание
Объект создаѐт импульс прямоугольной формы.
Чтобы получить отсчѐты прямоугольного импульса, нужно:
1)определить и установить форму вашего импульса (см. пункт 2.2);
2)применить метод step (см. пункт 3.10) с целью генерации отсчѐтов прямоугольного импульса, соответствующих свойствам phased.RectangularWaveform. Поведение метода step специфично для каждого объекта в пакете.
2.2 Конструирование
H = phased.RectangularWaveform создаѐт системный объект прямо-
угольного импульса, H. Этот объект генерирует отсчѐты прямоугольного импульса.
H = phased.RectangularWaveform(Name,Value) создаѐт системный объ-
ект прямоугольного импульса, H, и при этом свойству Name присваивается
6
значение Value. Вы можете задавать дополнительные пары аргументов name-value в любом порядке, а именно: (Name1,Value1,...,NameN,ValueN).
2.3 Свойства
SampleRate |
Частота дискретизации (частота взятия отсчѐтов) |
|
Устанавливает измеряемую в герцах частоту дискрети- |
|
зации как положительную скалярную величину. Величина |
|
отношения (SampleRate ./ PRF) представляет собой целое |
|
число (скаляр) или вектор с целочисленными компонента- |
|
ми. Значение по умолчанию: 1e6 |
PulseWidth |
Ширина импульса |
|
Устанавливает (в секундах) длительность каждого им- |
|
пульса как положительный скаляр, величина которого |
|
должна удовлетворять неравенству PulseWidth <= 1./PRF. |
|
Значение по умолчанию: 50e–6 |
PRF |
Частота повторения импульсов |
|
Устанавливает (в герцах) частоту повторения импульсов |
|
как скаляр или вектор-строку. Значение по умолчанию со- |
|
ответствует 10 кГц. |
|
Чтобы сделать постоянной частоту повторения импуль- |
|
сов, устанавливайте в качестве PRF положительный скаляр. |
|
Чтобы сделать меняющуюся частоту повторения импуль- |
|
сов, устанавливайте PRF как вектор-строку с положитель- |
|
ными элементами. Когда PRF есть вектор, выходные им- |
|
пульсы используют последовательные элементы вектора |
|
как частоту повторения импульсов. Если последний элемент |
|
вектора достигнут, процесс продолжается циклически с |
|
первого элемента вектора. |
|
Величина этого свойства должна удовлетворять сле- |
|
дующим обременениям: |
|
PRF должна быть меньше или равна (1/PulseWidth). |
|
(SampleRate ./ PRF) есть положительный скаляр или век- |
|
тор, содержащий только положительные элементы. |
|
Значение по умолчанию: 1e4 |
OutputFormat |
Формат выходного сигнала |
|
Устанавливает в качестве формата выходного сигнала |
|
одно из двух: 'Pulses' или 'Samples'. Когда вы устанавливаете |
|
свойство OutputFormat в значение 'Pulses', выход метода step |
|
принимает форму множественных импульсов. В этом случае |
|
величина свойства NumPulses есть количество импульсов. |
|
Когда вы устанавливаете свойство OutputFormat в зна- |
|
чение 'Samples', выход метода step принимает форму мно- |
7
жественнных отсчѐтов. В этом случае величина свойства NumSamples есть количество отсчѐтов. Значение по умол-
чанию: 'Pulses'
NumSamples Количество выходных отсчѐтов
Устанавливает количество отсчѐтов выходного эффекта метода step как положительное целое. Это свойство применяется только тогда, когда вы устанавливаете свойство OutputFormat в положение 'Samples'. Значение по умолча-
нию: 100
NumPulses Количество выходных импульсов
Устанавливает количество импульсов выходного эффекта метода step как положительное целое. Это свойство применяется только тогда, когда вы устанавливаете свойство OutputFormat в положение 'Pulses'. Значение по умолчанию: 1
2.4 Методы
bandwidth |
Ширина полосы частот прямоугольного импульса |
сlone |
Создаѐт объект прямоугольного импульса |
|
с подобными значениями свойств |
getMatchedFilter |
Коэффициенты согласованного фильтра для сигнала |
getNumInputs |
Количество ожидаемых входных значений в методе step |
getNumOutputs |
Количество ожидаемых выходных значений в методе step |
isLocked |
Статус запирания для входных атрибутов |
|
и ненастраиваемых свойств |
plot |
Изображает прямоугольный импульс |
release |
Даѐт величину свойства и вводит изменение |
|
характеристик |
reset |
Очищает состояния объекта прямоугольного импульса |
step |
Отсчѐты прямоугольного импульса |
2.5 Пример
Пусть требуется создать и изобразить прямоугольный импульс длительностью 20 мкс. Решение:
hw = phased.RectangularWaveform('PulseWidth', 1e-4); plot(hw);
В этом примере применѐн метод plot. Результат работы метода показан на рис. 1.
8
Рис.3. Прямоугольный импульс
§ 3 Методы
3.1 Метод bandwidth
Метод bandwidth предназначен для работы с системным объектом phased.RectangularWaveform, расположенным в пакете phased.
Он позволяет получать ширину полосы частот импульсного сигнала прямоугольной формы.
3.1.1Синтаксис
BW = bandwidth(H)
3.1.2Описание
Ширина полосы частот импульсного сигнала прямоугольной формы возвращается в переменную BW командой BW = bandwidth(H). Ширина полосы частот обратно пропорциональна ширине импульса.
3.1.3 Входные аргументы
H Объект прямоугольного импульса
9
3.1.4 Выходные аргументы
BW Ширина полосы частот импульса в Гц.
3.1.5 Пример
Требуется определить полосу частот импульса прямоугольной формы. Решение:
H = phased.RectangularWaveform; BW = bandwidth(H)
Ответ
BW = 20000
3.2 Метод clone
Метод clone предназначен для работы с системным объектом phased.RectangularWaveform, расположенным в пакете phased.
Он позволяет получать объект прямоугольного импульса с подобными величинами свойств.
3.2.1Синтаксис
C = clone(H)
3.2.2Описание
Создаѐтся объект C, имеющий такие же величины свойств и такие же состояния, что и объект H. Если H заперт, то заперт и C.
3.3 Метод getMatchedFilter
Метод getMatchedFilter предназначен для работы с системным объек-
том phased.RectangularWaveform, расположенным в пакете phased.
Он позволяет получать коэффициенты согласованного фильтра для прямоугольного импульса.
3.3.1 Синтаксис
Coeff = getMatchedFilter(H)
3.3.2 Описание
Возвращает коэффициенты согласованного фильтра для объекта H прямоугольного импульса. Параметр Coeff представляет собой векторстолбец.
3.3.3 Пример
Требуется получить коэффициенты согласованного фильтра для прямоугольного импульса. Решение:
hw = phased.RectangularWaveform('PulseWidth', 1e-5,...
10