phased.PulseWaveformLibrary

Создайте библиотеку импульсных сигналов

Описание

phased.PulseWaveformLibrary Система object™ создает библиотеку импульсных сигналов. Формы волны в библиотеке могут иметь различные типы или иметь тот же тип различными параметрами. Можно пользоваться этой библиотекой, чтобы передать различные виды импульсов во время симуляции.

Сделать библиотеку формы волны

  1. Создайте phased.PulseWaveformLibrary объект и набор его свойства.

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

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Описание

pulselib = phased.PulseWaveformLibrary Системный объект создает библиотеку импульсных сигналов, pulselib, со значениями свойств по умолчанию. Значение по умолчанию состоит из прямоугольной формы волны и линейной формы волны FM.

пример

pulselib = phased.PulseWaveformLibrary(Name,Value) создает библиотеку импульсного сигнала с каждым свойством Name установите на заданный Value. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN). Заключите каждое имя свойства в одинарные кавычки.

Пример: pulselib = phased.PulseWaveformLibrary('SampleRate',1e9,'WaveformSpecification',{{'Rectangular','PRF',1e4,'PulseWidth',100e-6},{'SteppedFM','PRF',1e4}}) создает библиотеку, содержащую одну прямоугольную форму волны и одну форму волны ступенчатого FM, оба произведенные на уровне 1 ГГц.

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Частота дискретизации формы волны, заданная как положительная скалярная величина. Все формы волны имеют ту же частоту дискретизации. Модули находятся в герц.

Пример: 100e3

Типы данных: double

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

{{Waveform 1 Specification},{Waveform 2 Specification},{Waveform 3 Specification}, ...}
Каждая спецификация формы волны является также массивом ячеек, содержащим параметры формы волны. Записи в ячейке спецификации являются импульсным идентификатором и набором пар "имя-значение", характерных для той формы волны.
{PulseIdentifier,Name1,Value1,Name2,Value2, ...}
Этот Системный объект поддерживает четыре встроенных формы волны и также позволяет вам задать пользовательские формы волны. Для встроенных форм волны спецификатор формы волны состоит из идентификатора формы волны, сопровождаемого несколькими парами "имя-значение", устанавливающими свойства формы волны. Для пользовательских форм волны спецификатор формы волны состоит из указателя на пользователя - задают функцию формы волны и входные параметры функций.

Типы формы волны

Тип формы волныИдентификатор формы волныАргументы формы волны
Линейный FM'LinearFM'Линейные аргументы формы волны FM
Фаза закодирована'PhaseCoded'Закодированные фазой аргументы формы волны
Прямоугольный'Rectangular'Прямоугольные аргументы формы волны
Ступенчатый FM'SteppedFM'Ступенчатые аргументы формы волны FM
ПользовательскийУказатель на функциюПользовательские аргументы формы волны

Пример: {{'Rectangular','PRF',10e3,'PulseWidth',100e-6},{'Rectangular','PRF',100e3,'PulseWidth',20e-6}}

Типы данных: cell

Линейные аргументы формы волны FM

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: {'LinearFM','PRF',1e4,'PulseWidth',50e-6,'SweepBandwidth',1e5,... 'SweepDirection','Up','SweepInterval','Positive'}

Импульсная частота повторения (PRF), заданная как положительная скалярная величина. Модули находятся в герц. Смотрите Импульсные Ограничения Частоты Повторения для ограничений на PRF.

Пример: 20e3

Типы данных: double

Импульсная длительность, заданная как положительная скалярная величина. Модули находятся в секундах. Вы не можете задать оба PulseWidth и DutyCycle.

Пример: 100e-6

Типы данных: double

Импульсный рабочий цикл, заданный как положительная скалярная величина, больше, чем нуль и меньше чем или равная одному. Вы не можете задать оба PulseWidth и DutyCycle.

Пример: 0.7

Типы данных: double

Пропускная способность развертки FM, заданной как положительная скалярная величина. Модули находятся в герц.

Пример: 100e3

Типы данных: double

Направление развертки FM, заданной как 'Up' или 'Down'. 'Up' соответствует увеличивающейся частоте. 'Down' соответствует уменьшающейся частоте.

Типы данных: char

Интервал развертки FM, заданный как 'Positive' или 'Symmetric'. Если вы устанавливаете это значение свойства на 'Positive', форма волны развертывает интервал между 0 и B, где B является SweepBandwidth значение аргумента. Если вы устанавливаете это значение свойства на 'Symmetric', форма волны развертывает интервал между –B/2 и B/2.

Пример: 'Symmetric'

Типы данных: char

Функция конверта, заданная как 'Rectangular' или 'Gaussian'.

Пример: 'Gaussian'

Типы данных: char

Смещение частоты импульса, заданного как скаляр. Частота возместила, переключает частоту сгенерированного импульсного сигнала. Модули находятся в герц.

Пример: 100e3

Типы данных: double

Закодированные фазой аргументы формы волны

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: {'PhaseCoded','PRF',1e4,'Code','Zadoff-Chu', 'SequenceIndex',3,'ChipWidth',5e-6,'NumChips',8}

Импульсная частота повторения (PRF), заданная как положительная скалярная величина. Модули находятся в герц. Смотрите Импульсные Ограничения Частоты Повторения для ограничений на PRF.

Пример: 20e3

Типы данных: double

Тип кода фазовой модуляции, заданного как 'Frank', 'P1', 'P2', 'Px', 'Zadoff-Chu', 'P3', 'P4', или 'Barker'.

Пример: 'P1'

Типы данных: char

Индекс последовательности используется в Zadoff-Chu код, заданный как положительное целое число. Значение SequenceIndex должно быть относительно главным к значению NumChips.

Пример 3

Зависимости

Чтобы включить эту пару "имя-значение", установите Code свойство к 'Zadoff-Chu'.

Типы данных: double

Длительность чипа, заданная как положительная скалярная величина. Модули находятся в секундах. Смотрите Ограничения Чипа для ограничений на размеры кристалла.

Пример: 30e-3

Типы данных: double

Количество вносит форму волны, заданную как положительное целое число. Смотрите Ограничения Чипа для ограничений на размеры кристалла.

Пример 3

Типы данных: double

Смещение частоты импульса, заданного как скаляр. Частота возместила, переключает частоту сгенерированного импульсного сигнала. Модули находятся в герц.

Пример: 100e3

Типы данных: double

Прямоугольные аргументы формы волны

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: {'Rectangular','PRF',10e3,'PulseWidth',100e-6}

Импульсная частота повторения (PRF), заданная как положительная скалярная величина. Модули находятся в герц. Смотрите Импульсные Ограничения Частоты Повторения для ограничений на PRF.

Пример: 20e3

Типы данных: double

Импульсная длительность, заданная как положительная скалярная величина. Модули находятся в секундах. Вы не можете задать оба PulseWidth и DutyCycle.

Пример: 100e-6

Типы данных: double

Импульсный рабочий цикл, заданный как положительная скалярная величина, больше, чем нуль и меньше чем или равная одному. Вы не можете задать оба PulseWidth и DutyCycle.

Пример: 0.7

Типы данных: double

Смещение частоты импульса, заданного как скаляр. Частота возместила, переключает частоту сгенерированного импульсного сигнала. Модули находятся в герц.

Пример: 100e3

Типы данных: double

Ступенчатые аргументы формы волны FM

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: {'SteppedFM','PRF',10e-4}

Импульсная частота повторения (PRF), заданная как положительная скалярная величина. Модули находятся в герц. Смотрите Импульсные Ограничения Частоты Повторения для ограничений на PRF.

Пример: 20e3

Типы данных: double

Импульсная длительность, заданная как положительная скалярная величина. Модули находятся в секундах. Вы не можете задать оба PulseWidth и DutyCycle.

Пример: 100e-6

Типы данных: double

Импульсный рабочий цикл, заданный как положительная скалярная величина, больше, чем нуль и меньше чем или равная одному. Вы не можете задать оба PulseWidth и DutyCycle.

Пример: 0.7

Типы данных: double

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

Пример 3

Типы данных: double

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

Пример: 100.0

Типы данных: double

Смещение частоты импульса, заданного как скаляр. Частота возместила, переключает частоту сгенерированного импульсного сигнала. Модули находятся в герц.

Пример: 100e3

Типы данных: double

Пользовательские аргументы формы волны

Можно создать пользовательскую форму волны из пользовательской функции. Первый входной параметр функции должен быть частотой дискретизации. Например, задайте гиперболическую функцию формы волны,

function wav = HyperbolicFM(fs,prf,pw,freq,bw,fcent),
где fs частота дискретизации и prf, pw, freq, bw, и fcent другие аргументы формы волны. Функция должна иметь по крайней мере один выходной аргумент, wav, возвратить выборки каждого импульса. Этот выход должен быть вектор-столбцом. Могут быть другие выходные параметры, возвращенные после выборок формы волны.

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

waveformspec = {@HyperbolicFM,prf,pw,freq,bw,fcent}
Смотрите Добавляет Пользовательская Форма волны к Библиотеке Импульсного сигнала для примера, который использует пользовательскую форму волны.

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

Синтаксис

Описание

пример

waveform = pulselib(idx) возвращает выборки формы волны, waveform, заданный его индексом, idx, в библиотеке.

Входные параметры

развернуть все

Индекс формы волны в библиотеке формы волны, заданной как положительное целое число.

Пример 2

Типы данных: double

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

развернуть все

Выборки формы волны, возвращенные как комплексный вектор.

Типы данных: double
Поддержка комплексного числа: Да

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

getMatchedFilterКоэффициенты согласованного фильтра для импульсного сигнала
plotПостройте форму волны от библиотеки формы волны
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

развернуть все

Создайте библиотеку формы волны, состоящую из трех форм волны. Библиотека содержит прямоугольное, линейный FM и закодированную фазой форму волны. Затем получите и постройте действительные и мнимые части закодированной фазой формы волны.

waveform1 = {'Rectangular','PRF',1e4,'PulseWidth', 50e-6};
waveform2 = {'LinearFM','PRF',1e4,'PulseWidth',50e-6, ...
    'SweepBandwidth',1e5,'SweepDirection','Up',...
    'SweepInterval', 'Positive'};
waveform3 = {'PhaseCoded','PRF',1e4,'Code','Zadoff-Chu', ...
    'SequenceIndex',3,'ChipWidth',5e-6,'NumChips',8};
fs = 1e6;
wavlib = phased.PulseWaveformLibrary('SampleRate',fs, ...
    'WaveformSpecification',{waveform1,waveform2,waveform3});

Извлеките форму волны из библиотеки.

wav3 = wavlib(3);

Постройте форму волны с помощью plot метод.

plot(wavlib,3,'PlotType','complex')

Создайте библиотеку формы волны, состоящую из трех форм волны. Библиотека содержит одно прямоугольное, один линейный FM и формы волны ступенчатого FM. Затем постройте действительные части первых трех импульсов ступенчатого - из формы волны.

waveform1 = {'Rectangular','PRF',1e4,'PulseWidth',70e-6};
waveform2 = {'LinearFM','PRF',1e4,'PulseWidth',70e-6, ...
    'SweepBandwidth',1e5,'SweepDirection','Up',...
    'SweepInterval', 'Positive'};
waveform3 = {'SteppedFM','PRF',1e4,'PulseWidth', 70e-6,'NumSteps',5, ...
    'FrequencyStep',50000,'FrequencyOffset',0};
fs = 1e6;
wavlib = phased.PulseWaveformLibrary('SampleRate',fs, ...
    'WaveformSpecification',{waveform1,waveform2,waveform3});

Постройте первые три импульса формы волны с помощью plot метод.

plot(wavlib,3,'PulseIdx',1)

plot(wavlib,3,'PulseIdx',2)

plot(wavlib,3,'PulseIdx',3)

В этом примере показано, как поместить две формы волны в библиотеку формы волны и как извлечь и построить их коэффициенты согласованного фильтра.

Создайте импульсную библиотеку, состоящую из прямоугольного и линейной формы волны FM.

waveform1 = {'Rectangular','PRF',10e3 'PulseWidth',50e-6};
waveform2 = {'LinearFM','PRF',10e3,'PulseWidth',50e-6,'SweepBandwidth',1e5, ...
    'SweepDirection','Up','SweepInterval', 'Positive'};
pulsesib = phased.PulseWaveformLibrary('SampleRate',1e6,...
    'WaveformSpecification',{waveform1,waveform2});

Получите коэффициенты согласованного фильтра для каждой формы волны и постройте их действительные части.

coeff1 = getMatchedFilter(pulsesib,1,1);
subplot(2,1,1)
stem(real(coeff1))
title('Matched filter coefficients, real part')
coeff2 = getMatchedFilter(pulsesib,2,1);
subplot(2,1,2)
stem(real(coeff2))
title('Matched filter coefficients, real part')

Задайте пользовательскую гиперболическую форму волны FM и добавьте его в phased.PulseWaveformLibrary Системный объект вместе с линейной формой волны FM. Постройте гиперболическую форму волны.

Задайте гиперболические параметры формы волны FM. Ширина импульса составляет 75 мс, и импульсный интервал повторения составляет 100 мс. Центральная частота составляет 500 Гц, и пропускная способность составляет 400 Гц.

fs = 50e3;
pri = 0.1;
prf = 1/pri;
freq = 1000;
pw = 0.075;
bw = 400.0;
fcent = 500.0;

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

pulselib = phased.PulseWaveformLibrary('SampleRate',fs, ...
    'WaveformSpecification',{{@HyperbolicFM,prf,pw,freq,bw,fcent}, ...
    {'LinearFM','PRF',prf,'PulseWidth',pw, ...
    'SweepBandwidth',bw,'SweepDirection','Up',...
    'SweepInterval','Positive'}});

Постройте комплексную гиперболическую форму волны FM.

plot(pulselib,1,'PlotType','complex')

Задайте Гиперболическую функцию формы волны FM.

function y = HyperbolicFM(fs,prf,pw,freq,bw,fcent)
pri = 1/prf;
t = [0:1/fs:pri]';
idx = find(t <= pw);
fl = fcent - bw/2;
fh = fcent + bw/2;
y = zeros(size(t));
arg = 2*pi*fl*fh/bw*pw*log(1.0 - bw*t(idx)/fh/pw);
y(idx) = exp(1i*arg);
end

Больше о

развернуть все

Расширенные возможности

Введенный в R2018a