Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
26.02.2023
Размер:
336.43 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

В.И. Костылев

ПРЯМОУГОЛЬНЫЙ ИМПУЛЬС КАК СИСТЕМНЫЙ ОБЪЕКТ 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

Соседние файлы в папке новая папка 1