【 MATLAB 】z 变换中的卷积与解卷积

举报
李锐博恩 发表于 2021/07/15 04:50:13 2021/07/15
【摘要】 关于卷积的博文,之前也写过几篇: 【 MATLAB 】conv 函数介绍(卷积和多项式乘法) 【 MATLAB 】两个序列的卷积和运算的MATLAB实现(1) 【 MATLAB 】两个序列的卷积和运算的MATLAB实现(2) 今天在z变换的应用场景中再写一篇,另外加上另外一个知识点解卷积deconv。 【 MATLAB 】deconv 函数介绍 z变换的卷积性质...

关于卷积的博文,之前也写过几篇:

【 MATLAB 】conv 函数介绍(卷积和多项式乘法)

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

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


今天在z变换的应用场景中再写一篇,另外加上另外一个知识点解卷积deconv。

【 MATLAB 】deconv 函数介绍

z变换的卷积性质为:

Z[x_1(n)*x_2(n)]= X_1(z)X_2(z);ROC:ROC_{x_1}\cap ROC_{x_2}

例题1:

X_1(z)=2+3z^{-1}+4z^{-2}

X_2(z)=3+4z^{-1}+5z^{-2}+6z^{-3}

求:

X_3(z) = X_1(z)X_2(z)


  
  1. clc
  2. clear
  3. close all
  4. n1 = 0:2;
  5. x1 = [2,3,4];
  6. n2 = 0:3;
  7. x2 = [3,4,5,6];
  8. n3 = min(n1)+min(n2):max(n1)+max(n2);
  9. x3 = conv(x1,x2)
  10. subplot(3,1,1);
  11. stem(n1,x1);
  12. title('x1(n)');
  13. subplot(3,1,2);
  14. stem(n2,x2);
  15. title('x2(n)');
  16. subplot(3,1,3);
  17. stem(n3,x3);
  18. title('x1(n)*x2(n)');

卷积后的下标也可以表示成:


  
  1. n3b = n1(1) + n2(1);
  2. n3e = n1(length(x1)) + n2(length(x2));
  3. n3 = n3b:n3e;
  4. % n3 = min(n1)+min(n2):max(n1)+max(n2);
  5. x3 = conv(x1,x2)

 

x3 =

     6    17    34    43    38    24

所以,

X_3(z)=6 + 17z^{-1}+34z^{-2}+43z^{-3}+38z^{-4}+24z^{-5}

[p,r]=deconv(x3,x1)
rlogic = (r == 0)
plogic=(p == x2)

继续运行这三条语句可得:

p =

     3     4     5     6


r =

     0     0     0     0     0     0


rlogic =

  1×6 logical 数组

   1   1   1   1   1   1


plogic =

  1×4 logical 数组

   1   1   1   1
可见p = x2,这就是解卷积,也就是 p = x3 / x1 = x2;


例题2:

X_1(z)=z +2 + 3z^{-1}

X_2(z) = 2z^2+4z+3+5z^{-1}

求:

X_3(z)=X_1(z)X_2(z)

直接给出MATLAB脚本:


  
  1. clc
  2. clear
  3. close all
  4. n1 = -1:1;
  5. x1 = [1,2,3];
  6. n2 = -2:1;
  7. x2 = [2,4,3,5];
  8. n3b = n1(1) + n2(1);
  9. n3e = n1(length(x1)) + n2(length(x2));
  10. n3 = n3b:n3e
  11. % n3 = min(n1)+min(n2):max(n1)+max(n2);
  12. x3 = conv(x1,x2)
  13. subplot(3,1,1);
  14. stem(n1,x1);
  15. title('x1(n)');
  16. subplot(3,1,2);
  17. stem(n2,x2);
  18. title('x2(n)');
  19. subplot(3,1,3);
  20. stem(n3,x3);
  21. title('x1(n)*x2(n)');
  22. [x2,r]=deconv(x3,x1)

n3 =

    -3    -2    -1     0     1     2


x3 =

     2     8    17    23    19    15


x2 =

     2     4     3     5


r =

     0     0     0     0     0     0

 

 

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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