当前位置:   article > 正文

【MATLAB】【数字信号处理】基本信号的仿真与实现_阶跃信号matlab仿真

阶跃信号matlab仿真

目的

1、用MATLAB软件实现冲激序列

2、用MATLAB软件实现阶跃序列

3、用MATLAB软件实现指数序列

4、用MATLAB软件实现正弦序列


内容与测试结果 

常用奇异信号

  • 阶跃信号 heaviside(t+k)
  • 冲激信号 dirac(t+k)

1、用MATLAB软件实现冲激序列

程序如下:

  1. % 1 冲激序列
  2. clc; clear all;
  3. n0 = -10; nf = 50; ns = 1; A = 1;%起点为-1,终点为5,幅值为13出有单位冲激
  4. n = n0 : nf; %生成离散信号的时间序列
  5. y = dirac(n - ns); % n = ns处有δ函数,即δ(n-ns)
  6. y = A * sign(y); %改变幅度
  7. subplot(2, 2, 1); stem(n, y, 'r'); axis([n0, nf, -0.1, 1.1]); %绘制离散序列
  8. title('δ(k-3)'); %加标题

运行结果如下:

2、用MATLAB软件实现阶跃序列

代码如下:

  1. % 2 阶跃序列
  2. clc;
  3. clear all;
  4. n0 = -10; nf = 50; ns = 2; %起点为-1,终点为5,在3出有单位阶跃序列
  5. n = n0 : nf; %生成离散信号的时间序列
  6. f = [zeros(1,ns-n0), ones(1,nf-ns+1)]; %生成离散信号f(n)
  7. %也可用逻辑运算方法产生,f=[(n-ns)>=0]
  8. subplot(2, 2, 2);
  9. stem(n, f, 'filled');
  10. axis([n0, nf, -0.1, 1.1]);
  11. title('u(k-3)'); %加标题

运行结果如下:

3、用MATLAB软件实现指数序列

代码如下:

  1. % 3 指数序列
  2. clc;
  3. clear all;
  4. n0 = -10; nf = 50; A = 0.5; nx = 3/4;
  5. k = n0 : nf; %生成离散信号的时间序列
  6. xk = A * nx.^k;
  7. subplot(2, 2, 3);
  8. stem(k, xk, 'g');
  9. title('x(k) = 0.5*(3/4)^k'); %加标题

运行结果如下:

4、用MATLAB软件实现正弦序列

代码如下:

  1. % 4 正弦序列
  2. clc; clear all;
  3. k = -10 : 0.1 : 20; w = pi/3; phi = pi/5;
  4. y = sin(w * k + phi);
  5. subplot(2, 2, 4);
  6. stem(k, y, 'b');
  7. title('sin(π*K/3 + π/5)');

运行结果如下:

将所有图像显示到一个窗口里

  1. % ones(1,5)
  2. % zeros(2,5)
  3. % x = [zeros(1,2),1,zeros(1,3)]
  4. % 1 冲激序列
  5. clc; clear all;
  6. n0 = -10; nf = 50; ns = 1; A = 1;%起点为-1,终点为5,幅值为13出有单位冲激序列
  7. n = n0 : nf; %生成离散信号的时间序列
  8. y = dirac(n - ns); % n = ns处有δ函数,即δ(n-ns)
  9. y = A * sign(y); %改变幅度
  10. subplot(2, 2, 1); stem(n, y, 'r'); axis([n0, nf, -0.1, 1.1]); %绘制离散序列
  11. title('δ(k-3)'); %加标题
  12. % 2 阶跃序列
  13. clc; clear all;
  14. n0 = -10; nf = 50; ns = 2; %起点为-1,终点为5,在3出有单位阶跃序列
  15. n = n0 : nf; %生成离散信号的时间序列
  16. f = [zeros(1,ns-n0), ones(1,nf-ns+1)]; %生成离散信号f(n)
  17. %也可用逻辑运算方法产生,f=[(n-ns)>=0]
  18. subplot(2, 2, 2); stem(n, f, 'filled');
  19. axis([n0, nf, -0.1, 1.1]); title('u(k-3)'); %加标题
  20. % 3 指数序列
  21. clc; clear all;
  22. n0 = -10; nf = 50; A = 0.5; nx = 3/4;
  23. k = n0 : nf; %生成离散信号的时间序列
  24. xk = A * nx.^k;
  25. subplot(2, 2, 3);
  26. stem(k, xk, 'g');
  27. title('x(k) = 0.5*(3/4)^k'); %加标题
  28. % 4 正弦序列
  29. clc; clear all;
  30. k = -10 : 0.1 : 20; w = pi/3; phi = pi/5;
  31. y = sin(w * k + phi);
  32. subplot(2, 2, 4); stem(k, y, 'b'); title('sin(π*K/3 + π/5)');

注:

  • clc:清除命令窗口的内容,对工作环境中的全部变量无任何影响
  • clear:清除工作空间的所有变量
  • stem(n,x,‘r’);函数的第三个入口参数为绘制线的颜色,“r”表示红色,“k”为黑色,默认浅蓝色。

参考文章:

常用序列的MATLAB代码(一)_matlab冲激序列-CSDN博客

网址:http://t.csdnimg.cn/TEhQS

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/527313
推荐阅读
相关标签
  

闽ICP备14008679号