从矢量创建脉冲序列

时间:2016-11-02 18:53:13

标签: matlab

在MATLAB中使用矢量创建脉冲序列是否有一种简单的方法(函数或类似的东西)?向量的值为1和-1。脉冲应该相同。Vevtor 例如,在上图中绘制此矢量的样本,并像这样制作脉冲: enter image description here

1 个答案:

答案 0 :(得分:1)

stem(vector)是一种可视化脉冲数据的快速而简单的方法。如果您希望以更连续的方式(边缘或居中)可视化脉冲,您可以在简单的for循环中实现。

居中:

vec = [0 0 1 0 0 0 -1 0]; % vector
dom = [1:length(vec)];    % domain
% plot (dom,vec)
% edge plot
der = [0 diff(vec~=0)];
for i = length(der):-1:2
   if der(i) ~= 0
      vec = [vec(1:i-1),vec(i-1:end)]
      dom = [dom(1:i),dom(i:end)]
   end
end
% plot (dom,vec)
% centered plot
width = 1
for i = length(vec)-1:-1:2
   vec = [vec(1:i-1),vec(i),vec(i),vec(i+1:end)]
   dom = [dom(1:i-1),dom(i)-width/2,dom(i)+width/2,dom(i+1:end)]
end
% plot (dom,vec)

pulses