Последовательность импульсов
Этот пример генерирует последовательность импульсов с помощью меандра по умолчанию модульной ширины. Частота повторения составляет 0,5 Гц, длина сигнала составляет 60 с, и частота дискретизации составляет 1 кГц. Фактором усиления является синусоида частоты 0,05 Гц.
t = 0:1/1e3:60; d = [0:2:60;sin(2*pi*0.05*(0:2:60))]'; x = @rectpuls; y = pulstran(t,d,x); plot(t,y) hold off xlabel('Time (s)') ylabel('Waveform')
Этот пример генерирует асимметричную пилообразную форму волны с частотой повторения 3 Гц. Зуб пилы имеет ширину 0,2 с и скошенный фактор –1. Длина сигнала составляет 1 с, и частота дискретизации составляет 1 кГц. Постройте последовательность импульсов.
fs = 1e3; t = 0:1/1e3:1; d = 0:1/3:1; x = tripuls(t,0.2,-1); y = pulstran(t,d,x,fs); plot(t,y) hold off xlabel('Time (s)') ylabel('Waveform')
Постройте Гауссов РЧ импульс на 10 кГц с 50%-й полосой пропускания, произведенной на уровне 10 МГц. Обрежьте импульс, где конверт падает на 40 дБ ниже пика.
fs = 1e7; tc = gauspuls('cutoff',10e3,0.5,[],-40); t = -tc:1/fs:tc; x = gauspuls(t,10e3,0.5); plot(t,x) xlabel('Time (s)') ylabel('Waveform')
Импульсная частота повторения составляет 1 кГц, частота дискретизации составляет 50 кГц, и длина последовательности импульсов составляет 25 мс. Фактором усиления является синусоида частоты 0,1 Гц.
ts = 0:1/50e3:0.025; d = [0:1/1e3:0.025;sin(2*pi*0.1*(0:25))]'; y = pulstran(ts,d,x,fs);
Постройте периодическую Гауссову последовательность импульсов.
plot(ts,y) xlim([0 0.01]) xlabel('Time (s)') ylabel('Waveform')
Запишите функцию, которая генерирует пользовательские импульсы, состоящие из синусоиды, ослабленной экспоненциалом. Импульс является нечетной функцией времени. Производящая функция имеет второй входной параметр, который задает одно значение для частоты синусоиды и коэффициента затухания. Отобразите сгенерированный импульс, произведенный на уровне 1 кГц в течение 1 секунды, с частотой и значением затухания, оба равняются 30.
fnx = @(x,fn) sin(2*pi*fn*x).*exp(-fn*abs(x)); ffs = 1000; tp = 0:1/ffs:1; pp = fnx(tp,30); plot(tp,pp) xlabel('Time (s)') ylabel('Waveform')
Используйте pulstran
функция, чтобы сгенерировать последовательность пользовательских импульсов. Обучение производится на уровне 2 кГц в течение 1,2 секунд. Импульсы происходят каждая треть секунды и имеют экспоненциально уменьшающиеся амплитуды.
Первоначально задайте сгенерированный импульс как прототип. Включайте прототипную частоту дискретизации в вызов функции. В этом случае, pulstran
реплицирует импульсы в заданных местоположениях.
fs = 2e3; t = 0:1/fs:1.2; d = 0:1/3:1; dd = [d;4.^-d]'; z = pulstran(t,dd,pp,ffs); plot(t,z) xlabel('Time (s)') ylabel('Waveform')
Сгенерируйте последовательность импульсов снова, но теперь используйте производящую функцию в качестве входного параметра. Включайте частоту и параметр затухания в вызове функции. В этом случае, pulstran
генерирует импульс так, чтобы он был сосредоточен о нуле.
y = pulstran(t,dd,fnx,30); plot(t,y) xlabel('Time (s)') ylabel('Waveform')
Запишите функцию, которая генерирует пользовательскую экспоненциально затухающую пилообразную форму волны частоты 0,25 Гц. Производящая функция имеет второй входной параметр, который задает одно значение для пилообразной частоты и коэффициента затухания. Отобразите сгенерированный импульс, произведенный на уровне 0,1 кГц в течение 1 секунды, с частотой и значением затухания, равным 50.
fnx = @(x,fn) sawtooth(2*pi*fn*0.25*x).*exp(-2*fn*x.^2); fs = 100; t = 0:1/fs:1; pp = fnx(t,50); plot(t,pp)
Используйте pulstran
функция, чтобы сгенерировать последовательность пользовательских импульсов. Обучение производится на уровне 0,1 кГц в течение 125 секунд. Импульсы происходят каждые 25 секунд и имеют экспоненциально уменьшающиеся амплитуды.
Задайте сгенерированный импульс как прототип. Сгенерируйте три последовательности импульсов с помощью метода линейной интерполяции по умолчанию, самой близкой соседней интерполяции и кусочной кубичной интерполяции. Сравните последовательности импульсов на одном графике.
d = [0:25:125; exp(-0.015*(0:25:125))]'; ffs = 100; tp = 0:1/ffs:125; r = pulstran(tp,d,pp); y = pulstran(tp,d,pp,'nearest'); q = pulstran(tp,d,pp,'pchip'); plot(tp,r) hold on plot(tp,y) plot(tp,q) xlim([0 125]) legend('Linear interpolation','Nearest neighbor interpolation','Piecewise cubic interpolation') hold off
t
— Временные стоимостиВременные стоимости, в который func
оценен в виде вектора.
d
— СмещениеВозместите удаленный из значений массива t
В виде вектора действительных чисел. Можно применить дополнительный фактор усиления к каждой задержанной оценке путем определения d
как матрица 2D столбца, со смещением, заданным в столбце 1 и сопоставленном усилении в столбце 2. Если вы задаете d
как вектор-строка, значения интерпретированы как задержки только.
func
— Непрерывная функция'rectpuls'
| 'gauspuls'
| 'tripuls'
| указатель на функциюНепрерывная функция раньше генерировала последовательность импульсов на основе ее выборок в виде 'rectpuls'
, 'gauspuls'
, 'tripuls'
, или указатель на функцию.
Если вы используете func
как указатель на функцию, можно передать параметры функции можно следующим образом:
y = pulstran(t,d,'gauspuls',10e3,0.5);
Это создает последовательность импульсов с помощью Гауссова импульса на 10 кГц с 50%-й полосой пропускания.
p
— Прототипный импульсПрототипная функция в виде вектора. Интервал p
дан [0,(length(p)-1)/fs]
, и его выборки являются тождественно нулевыми вне этого интервала. По умолчанию линейная интерполяция используется для генерации задержек.
fs
— Частота дискретизации
(значение по умолчанию) | действительный скалярЧастота дискретизации в Гц в виде действительного скаляра.
intfunc
метод интерполяции'linear'
(значение по умолчанию) | 'nearest'
| 'next'
| 'previous'
| 'pchip'
| 'cubic'
| 'v5cubic'
| 'makima'
| 'spline'
Метод интерполяции в виде одной из опций в этой таблице.
Метод | Описание | Непрерывность | Комментарии |
---|---|---|---|
| Линейная интерполяция. Интерполированное значение в точке запроса основано на линейной интерполяции значений в соседних узлах решетки в каждой соответствующей размерности. Это - метод интерполяции по умолчанию. | C0 |
|
| Интерполяция по ближайшему соседу. Интерполированное значение в точке запроса является значением в самом близком демонстрационном узле решетки. | Прерывистый |
|
| Следующая соседняя интерполяция. Интерполированное значение в точке запроса является значением в следующем демонстрационном узле решетки. | Прерывистый |
|
| Предыдущая соседняя интерполяция. Интерполированное значение в точке запроса является значением в предыдущем демонстрационном узле решетки. | Прерывистый |
|
| Сохраняющая форму кусочная кубичная интерполяция. Интерполированное значение в точке запроса основано на сохраняющей форму кусочной кубичной интерполяции значений в соседних узлах решетки. | C1 |
|
| Кубическая свертка используется в MATLAB® 5. | C1 | Точки должны быть расположены равными интервалами. |
| Модифицированный Акима кубическая интерполяция Эрмита. Интерполированное значение в точке запроса основано на кусочно-линейной функции полиномов со степенью самое большее три. Формула Акима изменяется, чтобы избежать перерегулирований. | C1 |
|
| Интерполяция сплайна с помощью граничных условий и условий отсутствия узла. Интерполированное значение в точке запроса основано на кубичной интерполяции значений в соседних узлах решетки в каждой соответствующей размерности. | C2 |
|
y
— Последовательность импульсовПоследовательность импульсов сгенерирована функцией, возвращенной как вектор.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.