【 MATLAB 】两个序列的卷积和运算的MATLAB实现(1)

举报
李锐博恩 发表于 2021/07/15 06:46:18 2021/07/15
【摘要】 设矩形脉冲  是脉冲响应  的LTI系统的输入,求输出 y(n). 下面的脚本中用到了一个自定义的函数,也就是两个信号相加的函数: 相关博文:【 MATLAB 】基本序列运算及其MATLAB的等效表示 function [y,n] = sigadd(x1,n1,x2,n2)% implements y(n) = x1(n) + x...

设矩形脉冲 x(n) = u(n) - u(n -10) 是脉冲响应 h(n) = (0.9)^nu(n) 的LTI系统的输入,求输出 y(n).

下面的脚本中用到了一个自定义的函数,也就是两个信号相加的函数:

相关博文:【 MATLAB 】基本序列运算及其MATLAB的等效表示


  
  1. function [y,n] = sigadd(x1,n1,x2,n2)
  2. % implements y(n) = x1(n) + x2(n)
  3. % [y,n] = sigadd(x1,n1,x2,n2)
  4. %——————————————————————————————
  5. % y = sum sequence over n, which includes n1 and n2
  6. % x1 = first sequence over n1
  7. % x2 = second sequence over n2( n2 can be different from n1)
  8. %
  9. n = min( min(n1), min(n2) ):max( max(n1), max(n2) ); %duration of y(n)
  10. y1 = zeros(1,length(n)); y2 = y1; %initialization
  11. y1( find( ( n >= min(n1) )&( n <= max(n1) ) == 1 ) ) = x1; %x1 with duration of y1
  12. y2( find( ( n >= min(n2) )&( n <= max(n2) ) == 1 ) ) = x1; %x2 with duration of y2
  13. y = y1 + y2;

直接给出MATLAB脚本:


  
  1. clc
  2. clear
  3. close all
  4. % help stepseq
  5. % generate x(n) = u(n - n0); n1 <= n <= n2
  6. % _____________________________________________
  7. % [x,n] = stepseq(n0, n1, n2);
  8. [u1,n1] = stepseq(0,-5,45);
  9. [u2,n2] = stepseq(10,-5,45);
  10. % generate signal x(n)
  11. [x,n] = sigadd(u1,n1,-u2,n2);
  12. % generate signal h(n)
  13. m = -5:45;
  14. h = ( (0.9).^m ).* u1;
  15. % the convolution of x(h) and h(n)
  16. y = conv(x,h);
  17. % ensure the index
  18. nyb = n(1)+ m(1);
  19. nye = n(length(x)) +n(length(h));
  20. ny = nyb:nye;
  21. subplot(3,1,1);
  22. stem(n,x);
  23. title('x(n)');
  24. xlabel('n')
  25. subplot(3,1,2);
  26. stem(m,h);
  27. title('h(n)');
  28. xlabel('n')
  29. subplot(3,1,3);
  30. stem(ny,y);
  31. title('the conv of x(n) and h(n)');
  32. xlabel('n')
  33. xlim([-5,45]);

 

 

文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。

原文链接:reborn.blog.csdn.net/article/details/83280406

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。