EngeePhased.LinearFMWaveform
Генератор сигнала с линейной частотной модуляцией.
| Библиотека |
|
| Блок |
Описание
Чтобы сгенерировать сигнал с линейной частотной модуляцией (ЛЧМ), выполните следующие действия:
-
Создайте объект EngeePhased.LinearFMWaveform и установите его свойства.
-
Вызовите объект с аргументами, как если бы это была функция.
Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.
Синтаксис
Создание
-
waveform = EngeePhased.LinearFMWaveform()— создает системный объектwaveformгенератора импульсов с ЛЧМ. -
waveform = EngeePhased.LinearFMWaveform(Name=Value)— создает системный объектwaveformгенератора импульсов с ЛЧМ с указанным свойством"Name", установленным на указанное значениеValue. Вы можете указать дополнительные свойства в виде пар имя-значение в любом порядке (Name1=Value1,…,Name=ValueN).
Использование
-
Y = waveform()— возвращает отсчеты импульсов с ЛЧМ в виде вектора-столбца Y. Аргумент Y может содержать либо определенное количество импульсов, либо определенное количество отсчетов. -
Y = waveform(prfidx)— использует индекс prfidx для выбора частоты повторения импульсов (PRF) из предопределенного вектора значений, заданного свойством PRF. Этот синтаксис применяется, если для свойства PRFOutputPort установлено значениеtrue. -
Y = waveform(freqoffset)— использует freqoffset для генерации сигнала со смещением частоты. Используйте этот синтаксис в случаях, когда необходимо динамически обновлять частоту передаваемых импульсов. Этот синтаксис применяется, если для свойства FrequencyOffsetSource установлено значение"Input port". -
Y,prf = waveform(___)— также возвращает текущую частоту повторения импульсов prf. Чтобы использовать этот синтаксис, установите для свойства PRFOutputPort значениеtrue, а для свойства OutputFormat значение"Pulses". -
Y,coeff = waveform(___)— также возвращает коэффициенты согласованного фильтра coeff для текущего импульса. Чтобы использовать этот синтаксис, установите для свойства CoefficientsOutputPort значениеtrue.
Вы можете комбинировать необязательные входные и выходные аргументы, если заданы свойства, которые их включают. Необязательные входы и выходы должны быть перечислены в том же порядке, что и свойства, которые их включают. Например, Y,prf,coeff = waveform(prfidx,freqoffset).
Аргументы
Входные аргументы
prfidx —
индекс частоты повторения импульсов
целое положительное число
Details
Индекс частоты повторения импульсов (PRF), заданный в виде положительного целого числа. Индекс идентифицирует записи в свойстве PRF.
Зависимости
Чтобы использовать этот аргумент, установите для свойства PRFOutputPort значение true.
freqoffset —
смещение частоты, Гц
скаляр
Details
Смещение частоты, заданное в виде скаляра. Смещение позволяет генерировать сигнал со смещением частоты. Используйте этот аргумент в случаях, когда необходимо динамически обновлять частоту передаваемого импульса.
Зависимости
Чтобы использовать этот аргумент, установите для свойства FrequencyOffsetSource значение "Input port".
| Типы данных |
|
Выходные аргументы
Y —
импульсный сигнал
вектор-столбец
Details
Выходной сигнал, возвращаемый в виде вектора-столбца.
| Типы данных |
|
prf —
частота повторения импульсов
скаляр
Details
Текущая частота повторения импульсов в Гц, возвращаемая в виде скаляра.
Зависимости
Чтобы использовать этот аргумент, установите для свойства PRFOutputPort значение true, а для свойства OutputFormat значение "Pulses".
| Типы данных |
|
| Поддержка комплексных чисел |
да |
coeff —
коэффициенты согласованного фильтра
вектор | матрица
Details
Коэффициенты согласованного фильтра, возвращаемые в виде комплексного вектора размером или комплексной матрицы размером .
Зависимости
Чтобы использовать этот аргумент, установите для свойства CoefficientsOutputPort значение true.
| Типы данных |
|
| Поддержка комплексных чисел |
да |
Свойства
#
NumSamples —
число отсчетов выходного сигнала
Real number
Details
Число отсчетов выходного сигнала, заданное в виде положительного целого числа.
Значение по умолчанию — 100.
Зависимости
Чтобы использовать это свойство, установите для свойства OutputFormat значение "Samples".
#
SweepInterval —
интервал девиации частоты
String
Details
Интервал девиации частоты, заданный как "Positive" (по умолчанию) или "Symmetric":
-
"Positive"— частота сигнала будет изменяться в интервале от0доB, гдеB— ширина полосы девиации в свойстве SweepBandwidth. -
"Symmetric"— частота сигнала будет изменяться в интервале от−B/2доB/2.
#
OutputFormat —
формат выходного сигнала
String
Details
Формат выходного сигнала в виде "Pulses" (по умолчанию) или "Samples":
-
Если установить для этого свойства значение
"Pulses", то выход блока состоит из нескольких импульсов. Количество импульсов — это значение свойства NumPulses. -
Если установить для этого свойства значение
"Samples", то выход блока состоит из нескольких отсчетов. Количество отсчетов — это значение свойства NumSamples.
#
FrequencyOffsetSource —
источник установки смещения частоты
String
Details
Источник установки смещения частоты, заданный в виде "Property" (по умолчанию) или "Input port":
-
Если установлено значение
"Property", то смещение определяется значением свойства FrequencyOffset. -
Если установлено значение
"Input port", то смещение определяется значением аргумента FreqOffset.
#
DutyCycle —
коэффициент заполнения
Real number
Details
Безразмерный коэффициент заполнения, заданный в виде скаляра в диапазоне [0, 1]. Ширина импульса — это значение свойства DutyCycle, деленное на значение свойства PRF.
Значение по умолчанию — 0.5.
Зависимости
Чтобы использовать это свойство, установите для свойства DurationSpecification значение "Duty cycle".
#
SweepDirection —
направление девиации частоты диапазона частотной модуляции
String
Details
Направление девиации частоты сигнала с линейной частотной модуляцией:
-
"Up"(по умолчанию) — увеличение частоты. -
"Down"— уменьшение частоты.
#
Envelope —
огибающая сигнала с частотной модуляцией
String
Details
Огибающая сигнала с линейной частотной модуляцией, заданная в виде "Rectangular" (по умолчанию) или "Gaussian".
#
NumPulses —
число импульсов выходного сигнала
Real number
Details
Число импульсов выходного сигнала, заданное в виде положительного целого числа.
Значение по умолчанию — 1.
Зависимости
Чтобы использовать это свойство, установите для свойства OutputFormat значение "Pulses".
#
SweepBandwidth —
девиация частоты ЛЧМ-сигнала
Real number
Details
Полоса пропускания ЛЧМ-сигнала, заданная в виде положительного скаляра. Единицы измерения — Гц.
Значение по умолчанию — 10e4.
#
PRF —
частота повторения импульсов
Real number
Details
Частота повторения импульсов (PRF), заданная в виде скаляра или вектора-строки. Единицы измерения — Гц. Период следования импульсов (PRI) является обратной величиной значения (PRF) частоты повторения импульсов. Значение PRF должно удовлетворять следующим ограничениям:
-
Произведение PRF и PulseWidth должно быть меньше или равно единице. Это условие требует, чтобы ширина импульса была меньше одного PRI. Для сигнала с фазовым кодированием длительность импульса равна произведению длительности одного чипа на количество чипов.
-
Отношение SampleRate к PRF должно быть целым числом. Это условие требует, чтобы количество отсчетов в одном PRI было целым числом.
Значение PRF можно установить, используя только значения свойства PRF или значения свойства в сочетании с входным аргументом prfidx.
-
Если PRFOutputPort имеет значение
false, PRF устанавливается только с помощью свойств PRF. Вы можете:-
Реализовать постоянную PRF, указав свойство PRF как положительное вещественное скалярное значение.
-
Реализовать дискретную PRF, указав свойство PRF как вектор-строку с положительными вещественными элементами. Каждый вызов объекта использует последовательные элементы этого вектора в качестве PRF. Как только объект достигает последнего элемента вектора, он циклически продолжает процесс с первым элементом вектора.
-
-
Когда PRFOutputPort имеет значение
true, вы можете установить значение PRF, используя свойство PRF в сочетании с входным аргументом prfidx. Вы реализуете выбираемую PRF, указав свойство PRF как вектор-строку с положительными вещественными элементами. При выполнении объекта выбор PRF осуществляется с использованием индекса, указанного во входном аргументе prfidx, для индексации вектора PRF.
Во всех случаях количество выходных отсчетов фиксировано, если установить для свойства OutputFormat значение "Samples". При использовании изменяющейся частоты повторения импульсов (PRF) и установке для свойства OutputFormat значения "Pulses" количество отсчетов может меняться.
Значение по умолчанию — 10e3.
#
CoefficientsOutputPort —
включить вывод коэффициентов согласованного фильтра
Logical
Details
Включить или выключить вывод коэффициентов согласованного фильтра, указав значение false (по умолчанию) или true. Установите для этого свойства значение true, чтобы включить вывод коэффициентов согласованного фильтра для формы сигнала, использованной во время моделирования.
#
PulseWidth —
длительность импульса
Real number
Details
Длительность импульса, заданная в виде положительного скаляра. Значение должно удовлетворять условию PulseWidth ≤ 1/PRF. Единицы измерения — секунды.
Значение по умолчанию — 50e−6.
Зависимости
Чтобы использовать это свойство, установите для свойства DurationSpecification значение "Pulse width".
#
SampleRate —
частота дискретизации
Real number
Details
Частота дискретизации сигнала, заданная как положительный скаляр. Отношение частоты дискретизации к частоте повторения импульсов должно быть положительным целым числом, поэтому количество отсчетов в каждом импульсе должно быть целым числом. Единицы измерения — Гц.
Значение по умолчанию — 100e3.
#
DurationSpecification —
метод установки длительности импульса
String
Details
Метод установки длительности импульса в виде "Pulse width" (по умолчанию) или "Duty cycle":
-
"Pulse width"— длительность импульса устанавливается с помощью свойства PulseWidth. -
"Duty cycle"— длительность импульса вычисляется из значений свойств PRF и DutyCycle. Ширина импульса равна значению свойства DutyCycle, деленному на значение свойства PRF.
#
PRFOutputPort —
включить вывод PRF
Logical
Details
Если установить для этого свойства значение true, вы можете передать аргумент индекса объекту для выбора предопределенного значения из вектора значений свойства PRF. Если установить для этого свойства значение false (по умолчанию), объект будет использовать свойство PRF для определения последовательности PRF, используемой в моделировании.
Зависимости
Чтобы использовать это свойство, установите для свойства OutputFormat значение "Pulses".
#
FrequencyOffset —
смещение частоты
Real number
Details
Смещение частоты, заданное в виде скаляра. Единицы измерения — Гц.
Значение по умолчанию — 0.
Зависимости
Чтобы использовать это свойство, установите для свойства FrequencyOffsetSource значение "Property".
Методы
Примеры
График импульса с ЛЧМ
Details
Создадим и построим график импульса с ЛЧМ с положительным направлением девиации частоты. Частота дискретизации составляет 500 кГц, девиация частоты — 200 кГц, ширина импульса — 1 мс (равна периоду следования импульсов).
fs = 500e3
sLFM = EngeePhased.LinearFMWaveform(
SampleRate=fs,
SweepBandwidth=200e3,
PulseWidth=1e-3,
PRF=1e3
)
LinearFMWaveform:
SampleRate=500000.0
DurationSpecification=Pulse width
PulseWidth=0.001
DutyCycle=0.5
PRF=1000.0
SweepBandwidth=200000.0
SweepDirection=Up
SweepInterval=Positive
Envelope=Rectangular
FrequencyOffsetSource=Property
FrequencyOffset=0
OutputFormat=Pulses
NumSamples=100
NumPulses=1
PRFOutputPort=false
CoefficientsOutputPort=false
Получим и построим график вещественной части сигнала с ЛЧМ.
lfmwav = step!(sLFM);
plot(sLFM)

Построим преобразование Фурье комплексного сигнала.
using FFTW
nfft = nextpow(2,nsamp)
new_len = nextpow(2,nsamp)
lfmwav = [lfmwav;zeros(new_len - length(lfmwav))]
Z = fft(lfmwav,1)
fr = (0:(nfft/2-1)) /nfft*fs
plot(fr./1000,abs.(Z[1:Int(nfft/2)]),lab="" )
xlabel!("Частота, кГц")
ylabel!("Амплитуда")

Построим спектрограмму функции с размером окна 64 отсчета и 50-процентным перекрытием.
import EngeeDSP.Functions: hamming, spectrogram
nfft1 = 64
nov = floor(Int,0.5*nfft1)
imag1 = spectrogram(real.(lfmwav),hamming(nfft1),nov,nfft1;fs=fs,freqloc="yaxis")

Этот график показывает увеличение частоты сигнала.