Импульсный train
y = pulstran(t,d,func)
y = pulstran(t,d,func,fs)
y = pulstran(t,d,p)
y = pulstran(___,intfunc)
Этот пример генерирует импульсный train с помощью меандра по умолчанию модульной ширины. Частота повторения составляет 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 кГц. Постройте импульсный train.
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 кГц, и импульсная длина train составляет 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);
Постройте периодический Гауссов импульсный train.
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
, чтобы сгенерировать train пользовательских импульсов. Train выбирается на уровне 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')
Сгенерируйте импульсный train снова, но теперь используйте производящую функцию в качестве входного параметра. Включайте частоту и параметр затухания в вызове функции. В этом случае 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
, чтобы сгенерировать train пользовательских импульсов. Train выбирается на уровне 0,1 кГц в течение 125 секунд. Импульсы происходят каждые 25 секунд и имеют экспоненциально уменьшающиеся амплитуды.
Задайте сгенерированный импульс как прототип. Сгенерируйте три импульсного train с помощью метода линейной интерполяции по умолчанию, самой близкой соседней интерполяции и кусочной кубичной интерполяции. Сравните импульсный train на одном графике.
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'
| указатель на функциюНепрерывная функция раньше генерировала импульсный train на основе его выборок, заданных как 'rectpuls'
, 'gauspuls'
, 'tripuls'
или указатель на функцию.
Если вы используете func
в качестве указателя на функцию, можно передать параметры функции можно следующим образом:
y = pulstran(t,d,'gauspuls',10e3,0.5);
Это создает импульсный train с помощью Гауссова импульса на 10 кГц с 50%-й пропускной способностью.
p
Прототипный импульсПрототипная функция, заданная как вектор. Интервал p
дан [0,(length(p)-1)/fs]
, и его выборки являются тождественно нулевыми вне этого интервала. По умолчанию линейная интерполяция используется для генерации задержек.
fs
— Частота дискретизации1
(значение по умолчанию) | действительный скалярЧастота дискретизации в Гц, заданном как действительный скаляр.
intfunc
— Метод интерполяции'linear'
(значение по умолчанию) | 'nearest'
| 'next'
| 'previous'
| 'pchip'
| 'cubic'
| 'v5cubic'
| 'makima'
| 'spline'
Метод интерполяции, заданный как одна из опций в этой таблице.
Метод | Описание | Непрерывность | Комментарии |
---|---|---|---|
| Линейная интерполяция. Интерполированное значение в точке запроса основано на линейной интерполяции значений в соседних узлах решетки в каждой соответствующей размерности. Это - метод интерполяции по умолчанию. | C0 |
|
| Самая близкая соседняя интерполяция. Интерполированное значение в точке запроса является значением в самом близком демонстрационном узле решетки. | Прерывистый |
|
| Следующая соседняя интерполяция. Интерполированное значение в точке запроса является значением в следующем демонстрационном узле решетки. | Прерывистый |
|
| Предыдущая соседняя интерполяция. Интерполированное значение в точке запроса является значением в предыдущем демонстрационном узле решетки. | Прерывистый |
|
| Сохраняющая форму кусочная кубичная интерполяция. Интерполированное значение в точке запроса основано на сохраняющей форму кусочной кубичной интерполяции значений в соседних узлах решетки. | C1 |
|
| Кубическая свертка используется в MATLAB® 5. | C1 | Точки должны быть однородно расположены с интервалами. |
| Измененный Акима кубическая интерполяция Эрмита. Интерполированное значение в точке запроса основано на кусочной функции полиномов со степенью самое большее три. Формула Акима изменяется, чтобы избежать перерегулирований. | C1 |
|
| Интерполяция сплайна с помощью граничных условий не-узла. Интерполированное значение в точке запроса основано на кубичной интерполяции значений в соседних узлах решетки в каждой соответствующей размерности. | C2 |
|
y
Импульсный trainИмпульсный train сгенерирован функцией, возвращенной как вектор.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.