Создайте библиотеку импульсных форм волны
Система phased.PulseWaveformLibrary object™ создает библиотеку импульсных форм волны. Формы волны в библиотеке могут иметь различные типы или иметь тот же тип с различными параметрами. Можно пользоваться этой библиотекой, чтобы передать различные виды импульсов во время симуляции.
Сделать библиотеку формы волны
Создайте объект phased.PulseWaveformLibrary и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
pulselib = phased.PulseWaveformLibrarypulselib = phased.PulseWaveformLibrary(Name,Value) Системный объект создает библиотеку импульсных форм волны, pulselib = phased.PulseWaveformLibrarypulselib, со значениями свойств по умолчанию. Значение по умолчанию состоит из прямоугольной формы волны и линейной формы волны 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).
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, ...}
Типы формы волны
| Тип формы волны | Идентификатор формы волны | Аргументы формы волны |
| Линейный FM | 'LinearFM' | Линейные аргументы формы волны FM |
| Фаза закодирована | 'PhaseCoded' | Закодированные фазой аргументы формы волны |
| Прямоугольный | 'Rectangular' | Прямоугольные аргументы формы волны |
| Ступенчатый FM | 'SteppedFM' | Ступенчатые аргументы формы волны FM |
| Пользовательский | Указатель на функцию | Пользовательские аргументы формы волны |
Пример: {{'Rectangular','PRF',10e3,'PulseWidth',100e-6},{'Rectangular','PRF',100e3,'PulseWidth',20e-6}}
Типы данных: cell
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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 — Пропускная способность развертки FM1e5 (значение по умолчанию) | положительная скалярная величинаПропускная способность развертки FM, заданной как положительная скалярная величина. Модули находятся в герц.
Пример: 100e3
Типы данных: double
SweepDirection — Пропускная способность развертки FM'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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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-Chu1 (значение по умолчанию) | положительное целое числоИндекс последовательности используется для кода 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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}waveform = pulselib(idx)idx Индекс формы волны в библиотеке формы волныИндекс формы волны в библиотеке формы волны, заданной как положительное целое число.
Пример 2
Типы данных: double
waveform — Выборки формы волныВыборки формы волны, возвращенные как комплексный вектор.
Типы данных: double
Поддержка комплексного числа: Да
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:
release(obj)
getMatchedFilter | Коэффициенты согласованного фильтра для импульсной формы волны |
plot | Постройте форму волны от библиотеки формы волны |
Создайте библиотеку формы волны, состоящую из трех форм волны. Библиотека содержит прямоугольное, линейный 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
Свойство 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 Coder).
phased.LinearFMWaveform | phased.PhaseCodedWaveform | phased.PulseCompressionLibrary | phased.RectangularWaveform | phased.SteppedFMWaveform
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.