#matlab #amplitude
#matlab #амплитуда
Вопрос:
Я строю график импульсов прямоугольных импульсов.
pulse_periods = [0:128]*period; 8 pps
%works for Ampl. default = 1,
r1 = pulstran(t,pulse_periods,'rectpuls', w);
Это дает амплитуду по умолчанию 1 для прямоугольных импульсов.
Мне нужно изменить его на 0.5
Я пытался
pulse_periods = [[0:128]*period;0.5 * [0:128]]' 8 pps
%does not work for Ampl. = 0.5,
r1 = pulstran(t,pulse_periods,'rectpuls', w);
Это модификация примера периодического импульса Гаусса, приведенного в Matlab
https://www.mathworks.com/help/signal/ref/pulstran.html?searchHighlight=pulstran
Я не могу изменить амплитуду для требуемых прямоугольных импульсов.
В чем ошибка, которую я делаю?
Комментарии:
1. Было бы полезно, если бы вы включили код для определения
t
иw
Ответ №1:
Во втором столбце pulse_periods
должна быть амплитуда каждого импульса. В примере из документации они хотели, чтобы амплитуда импульса изменилась. Если вы хотите, чтобы амплитуда импульса оставалась постоянной 0,5, то вместо этого вам следует сделать:
pulse_periods = [(0:128)*period; 0.5 * ones(1,129)]';
Как часть минимального рабочего примера:
period = 1/128;
pulse_periods = [(0:128)*period; 0.5 * ones(1,129)]';
w = period * 0.5;
t = linspace(0, 1, 2e3)';
r1 = pulstran(t,pulse_periods,'rectpuls', w);
plot(t,r1);
Обратите внимание, что вы могли бы также просто масштабировать выходные данные из вашего случая «амплитуда по умолчанию 1» (т. Е. r1 = r1 * 0.5
);