Документация Engee

EngeePhased.NonlinearFMWaveform

Генератор сигнала с нелинейной частотной модуляцией.

Библиотека

EngeePhased

Блок

Nonlinear FM Waveform

Описание

Системный объект EngeePhased.NonlinearFMWaveform создает сигнал с нелинейной частотной модуляцией (НЧМ). НЧМ-сигналы позволяют обеспечить низкочастотные боковые лепестки за счет нелинейной зависимости времени и частоты. Поддерживаются четыре различных сигнала в зависимости от свойства FrequencyModulation:

  • "Polynomial" — генерирует сигнал с мгновенной частотой, которая соответствует полиномиальной функции.

  • "Hyperbolic" — генерирует сигнал с гиперболической ЧМ.

  • "Hybrid Linear-Tangent" — генерирует гибридный НЧМ-сигнал, сочетающий линейную ЧМ и ЧМ по тангенциальной функции.

  • "Stepped Price" — генерирует сигнал со ступенчатой нелинейной ЧМ Прайса.

Чтобы сгенерировать сигнал, выполните следующие действия:

  1. Создайте объект EngeePhased.NonlinearFMWaveform и установите его свойства.

  2. Вызовите объект с аргументами, как если бы это была функция.

Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.

Синтаксис

Создание

  • waveform = phased.NonlinearFMWaveform — создает системный объект генератора сигнала с нелинейной ЧМ waveform со свойствами по умолчанию. По умолчанию сигнал имеет полиномиальную ЧМ.

  • waveform = phased.NonlinearFMWaveform(Name=Value) — создает системный объект генератора сигнала с нелинейной ЧМ waveform с указанным свойством Name, установленным на указанное значение Value. Вы можете указать дополнительные свойства в виде пар имя-значение в любом порядке (Name1=Value1,…​,Name=ValueN).

Использование

  • Y = waveform() — возвращает сигнал с нелинейной ЧМ в виде вектора-столбца Y. Аргумент Y может содержать либо определенное количество импульсов, либо определенное количество отсчетов.

  • Y = waveform(prfidx) — использует индекс prfidx для выбора частоты повторения импульсов (PRF) из предопределенного вектора значений, заданного свойством PRF. Этот синтаксис применяется, если для свойства PRFOutputPort установлено значение true. Используйте этот синтаксис в случаях, когда передаваемый импульс необходимо динамически выбирать. В таких ситуациях свойство PRF включает список предопределенных вариантов PRF. Во время моделирования, используя prfidx, один из вариантов PRF выбирается в качестве PRF для следующей передачи. Обратите внимание, что передача всегда завершает текущий импульс перед началом следующего. Поэтому, если вы установите для свойства OutputFormat значение "Samples", а затем укажете свойство NumSamples короче импульса, возможно, что на данном шаге моделирования, если весь выходной сигнал необходим для завершения ранее переданного импульса, указанный prfidx будет проигнорирован.

  • 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. Используйте этот аргумент в случаях, когда импульс передачи должен выбираться динамически. В таких ситуациях свойство PRF содержит список заранее определенных вариантов выбора PRF. Во время моделирования на основе входных данных prfidx один из PRF выбирается в качестве PRF для следующей передачи.

Зависимости

Чтобы использовать этот аргумент, установите для свойства PRFOutputPort значение true.

freqoffset — смещение частоты, Гц
скаляр

Details

Смещение частоты, заданное в виде скаляра. Смещение позволяет генерировать сигнал со смещением частоты. Используйте этот аргумент в случаях, когда необходимо динамически обновлять частоту передаваемого импульса.

Зависимости

Чтобы использовать этот аргумент, установите для свойства FrequencyOffsetSource значение "Input port".

Типы данных

Float64

Выходные аргументы

Y — импульсный сигнал
вектор-столбец

Details

Выходной сигнал, возвращаемый в виде вектора-столбца.

Типы данных

Float64

PRF — частота повторения импульсов
скаляр

Details

Частота повторения импульсов в Гц, возвращаемая в виде скаляра. PRF содержит текущую частоту повторения импульсов, используемую системой.

Зависимости

Чтобы использовать этот аргумент, установите для свойства PRFOutputPort значение true, а для свойства OutputFormat значение "Pulses".

Типы данных

Float64

Поддержка комплексных чисел

да

coeff — коэффициенты согласованного фильтра
вектор | матрица

Details

Коэффициенты согласованного фильтра, возвращаемые в виде комплексного вектора размером или комплексной матрицы размером .

Зависимости

Чтобы использовать этот аргумент, установите для свойства CoefficientsOutputPort значение true.

Типы данных

Float64

Поддержка комплексных чисел

да

Свойства

# NumSteps — количество шагов частоты
Real number

Details

Количество шагов частоты для ступенчатой нелинейной частотной модуляции Прайса, заданное в виде положительного целого числа.

Значение по умолчанию — 50.

Зависимости

Чтобы использовать это свойство, установите для свойства FrequencyModulation значение "Stepped Price".

# LinearTangentBalance — коэффициент баланса между линейной частотной модуляцией и частотной модуляцией по тангенциальному закону
Real number

Details

Безразмерный коэффициент баланса между линейной частотной модуляцией и частотной модуляцией по тангенциальному закону, заданный как скаляр.

Значение по умолчанию — 0.5.

Зависимости

Чтобы использовать это свойство, установите для свойства FrequencyModulation значение "Hybrid Linear-Tangent".

# SweepInterval — интервал девиации частоты
String

Details

Интервал девиации частоты, заданный как "Positive" (по умолчанию) или "Symmetric":

  • "Positive" — частота сигнала будет изменяться в интервале от 0 до B, где B — ширина полосы девиации в свойстве SweepBandwidth.

  • "Symmetric" — частота сигнала будет изменяться в интервале от −B/2 до B/2.

# BandwidthFactors — коэффициенты полосы пропускания
Scalar / vector / matrix of real numbers

Details

Коэффициенты полосы пропускания для ступенчатой нелинейной частотной модуляции Прайса, заданные в виде двухэлементного положительного вектора вида [BL BC]. Значение BL определяет полосу пропускания линейной составляющей сигнала, а BC — полосу пропускания нелинейной составляющей. Общая полоса девиации частоты равна , где — значение свойства NumSteps. По мере увеличения полоса пропускания линейной составляющей приблизительно равна BL, в то время как полоса пропускания нелинейной составляющей растет с увеличением .

Значение по умолчанию — [1e4 2e4].

Зависимости

Чтобы использовать это свойство, установите для свойства FrequencyModulation значение "Stepped Price".

# OutputFormat — формат выходного сигнала
String

Details

Формат выходного сигнала в виде "Pulses" (по умолчанию) или "Samples":

  • Если установить для этого свойства значение "Pulses", то выход блока состоит из нескольких импульсов. Количество импульсов — это значение свойства NumPulses.

  • Если установить для этого свойства значение "Samples", то выход блока состоит из нескольких отсчетов. Количество отсчетов — это значение свойства NumSamples.

# NumSamples — число отсчетов выходного сигнала
Real number

Details

Число отсчетов выходного сигнала, заданное в виде положительного целого числа.

Значение по умолчанию — 100.

Зависимости

Чтобы использовать это свойство, установите для свойства OutputFormat значение "Samples".

# PolynomialCoefficients — коэффициенты полиномиальной функции
Scalar / vector / matrix of real numbers

Details

Коэффициенты полиномиальной функции частоты, заданные в виде вещественного вектора длиной . Вектор представляет коэффициенты полинома -й степени. Первый элемент в PolynomialCoefficients — это коэффициент члена старшей степени . Последний элемент — это коэффициент члена нулевой степени.

Значение по умолчанию — [1 0 0].

Зависимости

Чтобы использовать это свойство, установите для свойства FrequencyModulation значение "Polynomial".

# 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", "Hamming", "Chebyshev", "Hann", "Kaiser" или "Taylor".

# NumPulses — число импульсов выходного сигнала
Real number

Details

Число импульсов выходного сигнала, заданное в виде положительного целого числа.

Значение по умолчанию — 1.

Зависимости

Чтобы использовать это свойство, установите для свойства OutputFormat значение "Pulses".

# 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.

# SweepBandwidth — девиация частоты
Real number

Details

Полоса пропускания нелинейного частотно-модулированного сигнала, заданная в виде положительного скаляра. Единицы измерения — Гц.

Значение по умолчанию — 10e4.

# EnvelopeSidelobeLevel — уровень боковых лепестков окна огибающей
Real number

Details

Уровень боковых лепестков окна Кайзера, Чебышева или Тейлора, используемого в качестве огибающей сигнала, заданный в виде положительного скаляра. Единицы измерения — дБ.

Значение по умолчанию — 30.

Зависимости

Чтобы использовать это свойство, установите для свойства Envelope значение "Kaiser", "Chebyshev" или "Taylor".

# TangentCurvePortion — участок кривой tan(x)
Real number

Details

Участок кривой между −π/2 и +π/2, используемый в качестве тангенциального члена в гибридной линейно-тангенциальной функции частотной модуляции, заданный как скаляр в диапазоне от 0 до +π/2.

Значение по умолчанию — 1.4.

Зависимости

Чтобы использовать это свойство, установите для свойства FrequencyModulation значение "Hybrid Linear-Tangent".

# CoefficientsOutputPort — включить вывод коэффициентов согласованного фильтра
Logical

Details

Включить или выключить вывод коэффициентов согласованного фильтра, указав значение false (по умолчанию) или true. Установите для этого свойства значение true, чтобы включить вывод коэффициентов согласованного фильтра для формы сигнала, использованной во время моделирования.

# FrequencyModulation — вид нелинейной частотной модуляции
String

Details

Вид нелинейной частотной модуляции:

  • "Polynomial" (по умолчанию) — частота сигнала на выходе блока генерируется по полиномиальной функции. Коэффициенты полинома задаются в свойстве PolynomialCoefficients. Результирующая функция частоты нормируется таким образом, чтобы каждый импульс занимал полосу частот, указанную в SweepBandwidth. Свойство SweepDirection не используется, если для FrequencyModulation установлено значение "Polynomial".

  • "Hyperbolic" — блок генерирует сигнал с гиперболической частотной модуляцией. Используйте свойство HyperbolicStartFrequency для установки начальной частоты гиперболического импульса. Свойство SweepInterval в этом случае не используется.

  • "Hybrid Linear-Tangent" — блок генерирует гибридную форму сигнала, сочетающую линейную частотную модуляцию и частотную модуляцию по тангенциальному закону [1]. Баланс между линейной частотной модуляцией и частотной модуляцией по тангенциальному закону задается в свойстве LinearTangentBalance, а часть кривой , используемая для тангенциального закона модуляции, задается в свойстве TangentCurvePortion.

  • "Stepped Price" — блок генерирует ступенчатую версию нелинейной частотной модуляции Прайса [2]. В данном случае свойство SweepBandwidth не используется, и девиация частоты определяется коэффициентами полосы пропускания, заданными в свойстве BandwidthFactors, и количеством шагов частоты в свойстве NumSteps.

# PulseWidth — длительность импульса
Real number

Details

Длительность импульса, заданная в виде положительного скаляра. Значение должно удовлетворять условию PulseWidth ≤ 1/PRF. Единицы измерения — секунды.

Значение по умолчанию — 50e−6.

Зависимости

Чтобы использовать это свойство, установите для свойства DurationSpecification значение "Pulse width".

# SampleRate — частота дискретизации
Real number

Details

Частота дискретизации сигнала, заданная как положительный скаляр. Отношение частоты дискретизации к частоте повторения импульсов должно быть положительным целым числом, поэтому количество отсчетов в каждом импульсе должно быть целым числом. Единицы измерения — Гц.

Значение по умолчанию — 100e3.

# HyperbolicStartFrequency — начальная частота гиперболического импульса
Real number

Details

Начальная частота гиперболического импульса частотно-модулированного сигнала, заданная в виде положительного скаляра. Единицы измерения — Гц.

Значение по умолчанию — 200e3.

# 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, используемой в моделировании.

# FrequencyOffset — смещение частоты
Real number

Details

Смещение частоты, заданное в виде скаляра. Единицы измерения — Гц.

Значение по умолчанию — 0.

Зависимости

Чтобы использовать это свойство, установите для свойства FrequencyOffsetSource значение "Property".

Методы

Общие для всех системных объектов

step!

Запустить алгоритм работы системного объекта

release!

Разрешить изменение значения свойства системного объекта

reset!

Сброс внутренних состояний системного объекта

Литература

  1. Collins, T., and P. Atkins. Nonlinear frequency modulation chirps for active sonar. IEE Proceedings-Radar, Sonar and Navigation 146.6 (1999): 312–316.

  2. Levanon, Nadav, and Eli Mozeson. Radar signals. John Wiley & Sons, 2004, pp. 92–93.

  3. Doerry, Armin Walter. Generating nonlinear FM chirp waveforms for radar. No. SAND2006-5856. Sandia National Laboratories (SNL), Albuquerque, NM, and Livermore, CA (United States), 2006.

  4. Cook, C. E. A class of nonlinear FM pulse compression signals. Proceedings of the IEEE 52.11 (1964): 1369–1371.

  5. Yang, J., and T. K. Sarkar. Doppler‐invariant property of hyperbolic frequency modulated waveforms. Microwave and optical technology letters 48.6 (2006): 1174–1179.

  6. Melvin, William L., and James Scheer. Principles of modern radar: advanced techniques. SciTech Pub., 2013.

  7. Alphonse, Sebastian, and Geoffrey A. Williamson. Evaluation of a class of NLFM radar signals. EURASIP Journal on Advances in Signal Processing 2019.1 (2019): 1–12.