Последовательность импульсов
Этот пример генерирует последовательность импульсов, используя прямоугольный импульс по умолчанию модуля ширины. Частота повторения составляет 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
функция для генерации 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')
Сгенерируйте последовательность импульсов снова, но теперь используйте сгенерирующую функцию как входной параметр. Включите частоту и параметр демпфирования в вызов функции. В этом случае 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 секунд и имеют экспоненциально уменьшающиеся амплитуды.
Задайте сгенерированный импульс в качестве прототипа. Сгенерируйте три последовательности импульсов с помощью метода линейной интерполяции по умолчанию, интерполяции по ближайшему соседу и кусочно-кубической интерполяции. Сравните последовательности импульсов на одном графике.
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
в виде двухколоночной матрицы со смещением, заданным в столбце 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
- Частота дискретизации1
(по умолчанию) | действительный скалярЧастота дискретизации в Гц, заданная как действительный скаляр.
intfunc
- Метод интерполяции'linear'
(по умолчанию) | 'nearest'
| 'next'
| 'previous'
| 'pchip'
| 'cubic'
| 'v5cubic'
| 'makima'
| 'spline'
Метод интерполяции, заданный как один из опций в этой таблице.
Метод | Описание | Непрерывность | Комментарии |
---|---|---|---|
| Линейная интерполяция. Интерполированное значение в точке запроса основано на линейной интерполяции значений в соседних точках сетки в каждой соответствующей размерности. Это метод интерполяции по умолчанию. | C0 |
|
| Интерполяция по ближайшему соседу. Интерполированное значение в точке запроса является значением в ближайшей точке сетки расчета. | Прерывистый |
|
| Следующая соседняя интерполяция. Интерполированное значение в точке запроса является значением в следующей точке сетки расчета. | Прерывистый |
|
| Предыдущая соседняя интерполяция. Интерполированное значение в точке запроса является значением в предыдущей точке сетки образца. | Прерывистый |
|
| Кусочно-кубическая интерполяция с сохранением формы. Интерполированное значение в точке запроса основано на кусочно-кубической интерполяции значений в соседних точках сетки с сохранением формы. | C1 |
|
| Кубическая свертка, используемая в MATLAB® 5. | C1 | Точки должны быть равномерно разнесены. |
| Модифицированная кубическая эрмитовая интерполяция Акимы. Интерполированное значение в точке запроса основано на кусочно-линейной функции полиномов со степенью не более трех. Формула Акимы изменена, чтобы избежать перерегулирования. | C1 |
|
| Сплайн интерполяцию с помощью граничных условий и условий отсутствия узла. Интерполированное значение в точке запроса основано на кубической интерполяции значений в соседних точках сетки в каждой соответствующей размерности. | C2 |
|
y
- Последовательность импульсовПоследовательность импульсов, сгенерированная функцией, возвращается как вектор.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.