使用 Matlab 创建 PAM 函数

信息处理 matlab
2022-02-01 18:16:44

所以我需要创建一个将被称为function [t, pulse] = PAM (array). 我的函数在使用时应该有这样的结果array = [1 0.3 0.8 0.6],哪个数组是我的数字脉冲信号的宽度

结果

3个回答

解决了!

function [t, pulse] = PAM (array)
  syms t
  u(t) = heaviside(t);
  pulse = array(1)*u(t);
  
  for i = [2:length(array)]
    if array(i) > array(i - 1)
      pulse += abs(array(i-1)-array(i)).*u(t - (i-1));
    else 
      pulse -= (array(i-1)-array(i)).*u(t-(i-1));
    endif
  endfor
endfunction

使用下面的 kron 函数更容易、更快捷

function [t, pulse] = pam(array,B,fs)

pulse=kron(array,ones(1,fs/B));
t=(0:length(pulse)-1)/fs;

其中 fs 是采样频率,B 是脉冲带宽。

查看 repelem() 函数。