Как изменить амплитуду импульсного потока прямоугольных импульсов в Matlab

#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 );