利用MATLAB实现信号的时域卷积
一.引言
MATLAB具有强大的图形处理功能及符号运算功能,为实现信号的可视化以及时域分析提供了强有力的工具,所以我们要利用MATLAB编程辅助分析与计算。现在我们利用MATLAB 编程辅助计算连续时间信号、离散时间信号的卷积。
我们利用MATLAB编制一个M函数dconv(),该函数可以计算离散序列x1n 和x2n的卷积xn=x1n*x2n,此程序要计算xn,返回xn的非零点对应向量,还将绘制出序列x1n, x2n和xn 的时域波形图;我们要验证并调用这个dconv()函数计算“hn=xn=un-u(n-4)”这两个序列的卷积和运算,并绘制图像。
现在我们再利用MATLAB编制一个计算连续时间信号卷积积分的M函数ddconv(),此函数要计算出两个连续信号f1(t)和f2(t)的卷积积分f (t)的近似值,并绘制f1(t)、f2(t)和f (t)的时域波形图。编完之后,我们利用ddconv()函数求
“et=ut+12-ut-1,ht=12t[ut-ut-2]”这两个连续时间信号的卷积积分运算,并绘制图形。
二.基本原理
对于信号的时域卷积有:
(1)离散时间信号的卷积和:它的定义为,离散时间信号x1n和x2n的卷积和为:
xn=x1n*x2n=m=-∞∞x1(m)x2n-m
设序列x1n在区间n1~ n2非零,序列x2n在m1~ m2非零,那么就有
xn=x1n*x2n的非零区间就为n1+m1~(n2+m2)并且区间长度为n1+m1-n2+m2+1,则只需计算序列xn的非零区间就可以表示整个序列.
那么由上可知,在利用MATLAB的conv()函数的时候就要注意其卷积后的区间长度已经发生变化,在绘制卷积后的图像的时候就要有意识的先减去扩大的区间长度,不然绘制的卷积后的时域图像就是错误的,和横坐标不是正确的对应关