Создание библиотеки форм импульсов
pulseWaveformLibrary Система object™ создает библиотеку импульсных сигналов. Формы сигналов в библиотеке могут быть разных типов или быть одного типа с различными параметрами. Эту библиотеку можно использовать для передачи различных видов импульсов во время моделирования.
Создание библиотеки форм сигналов
Создать pulseWaveformLibrary и задайте его свойства.
Вызовите объект с аргументами, как если бы это была функция.
Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.
Системный объект создает библиотеку форм импульсов, pulselib = pulseWaveformLibrarypulselib, со значениями свойств по умолчанию. Значение по умолчанию состоит из прямоугольной формы сигнала и линейной формы сигнала ЧМ.
создает библиотеку импульсных сигналов с каждым свойством pulselib = pulseWaveformLibrary(Name,Value)Name задать для указанного Value. Можно указать дополнительные аргументы пары имя-значение в любом порядке как (Name1,Value1,...,NameN,ValueN). Заключите каждое имя свойства в отдельные кавычки.
pulselib = pulseWaveformLibrary('SampleRate',1e9,'WaveformSpecification',{{'Rectangular','PRF',1e4,'PulseWidth',100e-6},{'SteppedFM','PRF',1e4}}) создает библиотеку, содержащую один прямоугольный сигнал и один ступенчатый FM сигнал, каждый из которых дискретизирован на частоте 1 ГГц.Если не указано иное, свойства не настраиваются, что означает невозможность изменения их значений после вызова объекта. Объекты блокируются при их вызове, и release функция разблокирует их.
Если свойство настраивается, его значение можно изменить в любое время.
Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.
SampleRate - Частота дискретизации формы сигнала1e6 (по умолчанию) | положительный скалярЧастота дискретизации формы сигнала, заданная как положительный скаляр. Все сигналы имеют одинаковую частоту дискретизации. Единицы измерения в герцах.
Пример:
100e3
Типы данных: double
WaveformSpecification - Импульсные сигналы{{'Rectangular','PRF',10e3,'PulseWidth',100e-6},{'LinearFM','PRF',1e4,'PulseWidth',50e-6,'SweepBandwidth',1e5,'SweepDirection','Up','SweepInterval','Positive'}} (по умолчанию) | массив ячеекИмпульсные сигналы, определяемые как массив ячеек. Каждая ячейка матрицы содержит спецификацию одной формы сигнала.
{{Waveform 1 Specification},{Waveform 2 Specification},{Waveform 3 Specification}, ...}{PulseIdentifier,Name1,Value1,Name2,Value2, ...}
Типы сигналов
| Тип сигнала | Идентификатор формы сигнала | Аргументы формы сигнала |
| Линейный ЧМ | 'LinearFM' | Аргументы линейной ЧМ-формы сигнала |
| Фаза закодирована | 'PhaseCoded' | Аргументы формы сигнала с фазовым кодированием |
| Прямоугольный | 'Rectangular' | Аргументы прямоугольной формы сигнала |
| Пошаговый FM | 'SteppedFM' | Аргументы ступенчатой формы FM-сигнала |
| Обычай | Дескриптор функции | Аргументы пользовательской формы сигнала |
Пример: {{'Rectangular','PRF',10e3,'PulseWidth',100e-6},{'Rectangular','PRF',100e3,'PulseWidth',20e-6}}
Типы данных: cell
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
{'LinearFM','PRF',1e4,'PulseWidth',50e-6,'SweepBandwidth',1e5,... 'SweepDirection','Up','SweepInterval','Positive'}PRF - Частота повторения импульсов1e4 (по умолчанию) | положительный скалярЧастота повторения импульсов (PRF), заданная как положительный скаляр. Единицы измерения в герцах. Ограничения в отношении PRF см. в разделе Ограничения частоты повторения импульсов.
Пример: 20e3
Типы данных: double
PulseWidth - Длительность импульса5e-5 (по умолчанию) | положительный скалярДлительность импульса, заданная как положительный скаляр. Единицы измерения в секундах. Вы не можете указать оба PulseWidth и DutyCycle.
Пример: 100e-6
Типы данных: double
DutyCycle - Импульсный рабочий цикл0.5 | положительный скалярИмпульсный рабочий цикл, определяемый как положительный скаляр больше нуля и меньше или равный единице. Вы не можете указать оба PulseWidth и DutyCycle.
Пример: 0.7
Типы данных: double
SweepBandwidth - Полоса пропускания FM sweep1e5 (по умолчанию) | положительный скалярПолоса пропускания ЧМ-сдвига, заданная как положительный скаляр. Единицы измерения в герцах.
Пример: 100e3
Типы данных: double
SweepDirection - Полоса пропускания FM sweep'Up' (по умолчанию) | 'Down'Направление сдвига FM, указанное как 'Up' или 'Down'. 'Up' соответствует возрастающей частоте. 'Down' соответствует уменьшающейся частоте.
Типы данных: char
SweepInterval - Интервал сдвига FM'Positive' (по умолчанию) | 'Symmetric'Интервал сдвига FM, указанный как 'Positive' или 'Symmetric'. Если для этого свойства задано значение 'Positive', форма сигнала сдвигает интервал между 0 и B, где B - SweepBandwidth значение аргумента. Если для этого свойства задано значение 'Symmetric', форма сигнала сдвигает интервал между -B/2 и B/2.
Пример: 'Symmetric'
Типы данных: char
Envelope - Функция огибающей'Rectangular' (по умолчанию) | 'Gaussian'Функция огибающей, указанная как 'Rectangular' или 'Gaussian'.
Пример: 'Gaussian'
Типы данных: char
FrequencyOffset - Сдвиг частоты импульса0 (по умолчанию) | скалярСдвиг частоты импульса, заданный как скаляр. Сдвиг частоты сдвигает частоту генерируемого импульсного сигнала. Единицы измерения в герцах.
Пример: 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 - Частота повторения импульсов1e4 (по умолчанию) | положительный скалярЧастота повторения импульсов (PRF), заданная как положительный скаляр. Единицы измерения в герцах. Ограничения в отношении PRF см. в разделе Ограничения частоты повторения импульсов.
Пример: 20e3
Типы данных: double
Code - Тип кода фазовой модуляции'Frank' (по умолчанию) | 'P1' | 'P2''Px' | 'Zadoff-Chu' | 'P3' | 'P4' | 'Barker'Тип кода фазовой модуляции, указанный как 'Frank', 'P1', 'P2', 'Px', 'Zadoff-Chu', 'P3', 'P4', или 'Barker'.
Пример: 'P1'
Типы данных: char
SequenceIndex — Zadoff-Chu индекс последовательности1 (по умолчанию) | положительное целое числоИндекс последовательности, используемый для Zadoff-Chu код, указанный как положительное целое число. Значение SequenceIndex должен быть относительно простым к значению NumChips.
Пример: 3
Чтобы включить эту пару имя-значение, установите Code свойство для 'Zadoff-Chu'.
Типы данных: double
ChipWidth - Длительность стружки1e-5 (по умолчанию) | положительный скалярДлительность чипа, заданная как положительный скаляр. Единицы измерения в секундах. Ограничения на размеры чипов см. в разделе Ограничения чипов.
Пример: 30e-3
Типы данных: double
NumChips - Количество чипов в форме сигнала4 (по умолчанию) | положительное целое числоЧисло элементарных посылок в форме сигнала, указанное как положительное целое число. Ограничения на размеры чипов см. в разделе Ограничения чипов.
Пример: 3
Типы данных: double
FrequencyOffset - Сдвиг частоты импульса0 (по умолчанию) | скалярСдвиг частоты импульса, заданный как скаляр. Сдвиг частоты сдвигает частоту генерируемого импульсного сигнала. Единицы измерения в герцах.
Пример: 100e3
Типы данных: double
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
{'Rectangular','PRF',10e3,'PulseWidth',100e-6}PRF - Частота повторения импульсов1e4 (по умолчанию) | положительный скалярЧастота повторения импульсов (PRF), заданная как положительный скаляр. Единицы измерения в герцах. Ограничения в отношении PRF см. в разделе Ограничения частоты повторения импульсов.
Пример: 20e3
Типы данных: double
PulseWidth - Длительность импульса5e-5 (по умолчанию) | положительный скалярДлительность импульса, заданная как положительный скаляр. Единицы измерения в секундах. Вы не можете указать оба PulseWidth и DutyCycle.
Пример: 100e-6
Типы данных: double
DutyCycle - Импульсный рабочий цикл0.5 | положительный скалярИмпульсный рабочий цикл, определяемый как положительный скаляр больше нуля и меньше или равный единице. Вы не можете указать оба PulseWidth и DutyCycle.
Пример: 0.7
Типы данных: double
FrequencyOffset - Сдвиг частоты импульса0 (по умолчанию) | скалярСдвиг частоты импульса, заданный как скаляр. Сдвиг частоты сдвигает частоту генерируемого импульсного сигнала. Единицы измерения в герцах.
Пример: 100e3
Типы данных: double
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
{'SteppedFM','PRF',10e-4}PRF - Частота повторения импульсов1e4 (по умолчанию) | положительный скалярЧастота повторения импульсов (PRF), заданная как положительный скаляр. Единицы измерения в герцах. Ограничения в отношении PRF см. в разделе Ограничения частоты повторения импульсов.
Пример: 20e3
Типы данных: double
PulseWidth - Длительность импульса5e-5 (по умолчанию) | положительный скалярДлительность импульса, заданная как положительный скаляр. Единицы измерения в секундах. Вы не можете указать оба PulseWidth и DutyCycle.
Пример: 100e-6
Типы данных: double
DutyCycle - Импульсный рабочий цикл0.5 | положительный скалярИмпульсный рабочий цикл, определяемый как положительный скаляр больше нуля и меньше или равный единице. Вы не можете указать оба PulseWidth и DutyCycle.
Пример: 0.7
Типы данных: double
NumSteps - Количество ступеней частоты в форме сигнала5 (по умолчанию) | положительное целое числоЧисло шагов частоты в форме сигнала, указанное как положительное целое число.
Пример: 3
Типы данных: double
FrequencyStep - Размер шага линейной частоты20e3 (по умолчанию) | положительный скалярРазмер шага линейной частоты, заданный как положительный скаляр.
Пример: 100.0
Типы данных: double
FrequencyOffset - Сдвиг частоты импульса0 (по умолчанию) | скалярСдвиг частоты импульса, заданный как скаляр. Сдвиг частоты сдвигает частоту генерируемого импульсного сигнала. Единицы измерения в герцах.
Пример: 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}idx - Индекс формы сигнала в библиотеке форм сигналаИндекс формы сигнала в библиотеке форм сигнала, определяемый как положительное целое число.
Пример: 2
Типы данных: double
waveform - Образцы формы сигналаВыборки формы сигнала, возвращаемые как вектор с комплексными значениями.
Типы данных: double
Поддержка комплексного номера: Да
Чтобы использовать функцию объекта, укажите объект System в качестве первого входного аргумента. Например, для освобождения системных ресурсов объекта System с именем obj, используйте следующий синтаксис:
release(obj)
getMatchedFilter | Согласованные коэффициенты фильтра для формы импульса |
plot | Печать формы сигнала из библиотеки форм сигнала |
Создайте библиотеку форм сигнала, состоящую из трех форм сигнала. Библиотека содержит прямоугольную, линейную ЧМ и фазово-кодированную форму сигнала. Затем получают и строят график действительной и мнимой частей фазокодированного сигнала.
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 = pulseWaveformLibrary('SampleRate',fs, ...
'WaveformSpecification',{waveform1,waveform2,waveform3});Извлеките форму сигнала из библиотеки.
wav3 = wavlib(3);
Постройте график формы сигнала с помощью plot способ.
plot(wavlib,3,'PlotType','complex')

Создайте библиотеку форм сигнала, состоящую из трех форм сигнала. Библиотека содержит один прямоугольный, один линейный ЧМ и один ступенчатый ЧМ-сигнал. Затем постройте график действительных частей первых трех импульсов ступенчатой формы сигнала.
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 = pulseWaveformLibrary('SampleRate',fs, ...
'WaveformSpecification',{waveform1,waveform2,waveform3});Постройте график первых трех импульсов формы сигнала с помощью plot способ.
plot(wavlib,3,'PulseIdx',1)
plot(wavlib,3,'PulseIdx',2)
plot(wavlib,3,'PulseIdx',3)
Этот пример показывает, как поместить две формы сигнала в библиотеку форм сигнала и как извлечь и построить график их согласованных коэффициентов фильтра.
Создайте библиотеку импульсов, состоящую из прямоугольной и линейной ЧМ-формы сигнала.
waveform1 = {'Rectangular','PRF',10e3 'PulseWidth',50e-6};
waveform2 = {'LinearFM','PRF',10e3,'PulseWidth',50e-6,'SweepBandwidth',1e5, ...
'SweepDirection','Up','SweepInterval', 'Positive'};
pulsesib = 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')

Определите пользовательский гиперболический ЧМ-сигнал и добавьте его в pulseWaveformLibrary Системный объект вместе с линейным ЧМ-сигналом. Постройте график гиперболического сигнала.
Укажите параметры гиперболической ЧМ-формы сигнала. Длительность импульса - 75 мс, интервал повторения импульсов - 100 мс. Центральная частота - 500 Гц, полоса пропускания - 400 Гц.
fs = 50e3; pri = 0.1; prf = 1/pri; pw = 0.075; bw = 400.0; fcent = 500.0;
Создание библиотеки импульсных сигналов, состоящей из гиперболического ЧМ сигнала и линейного ЧМ сигнала.
pulselib = pulseWaveformLibrary('SampleRate',fs, ... 'WaveformSpecification',{{@HyperbolicFM,prf,pw,bw,fcent}, ... {'LinearFM','PRF',prf,'PulseWidth',pw, ... 'SweepBandwidth',bw,'SweepDirection','Up',... 'SweepInterval','Positive'}});
Постройте график сложного гиперболического ЧМ-сигнала.
plot(pulselib,1,'PlotType','complex')

Определите функцию гиперболического ЧМ-сигнала.
function y = HyperbolicFM(fs,prf,pw,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
PRF собственность должна удовлетворять этим ограничениям:
Продукт PRF и PulseWidth должно быть меньше или равно единице. Это условие выражает требование, чтобы длительность импульса была меньше одного интервала повторения импульса.
Соотношение SampleRate кому PRF должно быть целым числом. Это условие выражает требование, чтобы число выборок в одном интервале повторения импульсов было целым числом.
Значения ChipWidth и NumChips свойства должны удовлетворять этим ограничениям:
Продукт PRF, ChipWidth, и NumChips должно быть меньше или равно единице. Это условие выражает требование, чтобы сумма длительностей всех элементарных посылок была меньше одного интервала повторения импульсов.
Продукт SampleRate и ChipWidth должно быть целым числом. Это условие выражает требование о том, что число выборок в чипе должно быть целым числом.
В таблице показаны дополнительные ограничения на количество чипов для различных типов кода.
Если Code Собственность... | Затем NumChips Свойство должно быть... |
|---|---|
'Frank', 'P1', или 'Px' | Идеальный квадрат |
'P2' | Четное число, которое является идеальным квадратом |
'Barker' | 2, 3, 4, 5, 7, 11, или 13 |
Примечания и ограничения по использованию:
plot функция объекта не поддерживается.
См. Системные объекты в создании кода MATLAB (кодер MATLAB).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.