循环卷积和线性卷积的matlab实现

循环卷积和线性卷积的matlab实现

ID:38434842

大小:691.81 KB

页数:7页

时间:2019-06-12

循环卷积和线性卷积的matlab实现_第1页
循环卷积和线性卷积的matlab实现_第2页
循环卷积和线性卷积的matlab实现_第3页
循环卷积和线性卷积的matlab实现_第4页
循环卷积和线性卷积的matlab实现_第5页
资源描述:

《循环卷积和线性卷积的matlab实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、循环卷积与线性卷积的实现一、实验目的:(1)进一步理解并掌握循环卷积与线性卷积的概念。(2)理解掌握二者的关系。三、实验原理两个序列的N点循环卷积定义为从定义中可以看到,循环卷积和线性卷积的不同之处在于:两个N点序列的N点循环卷积的结果仍为N点序列,而他们的线性卷积的结果的长度则为2N-1;循环卷积对序列的移位采取循环移位,而线性卷积对序列采取线性位移。正式这些不同,导致了线性卷积和循环卷积有不同的结果和性质。循环卷积和线性卷积虽然是不用的概念,但是它们之间有一个有意义的公式联系在一起其中也就是说,两个序列的N点循环卷积是他们的线性卷积以N

2、为周期的周期延阔。设序列的长度为,序列的长度为,此时,线性卷积结果的序列的点数为;因此如果循环卷积的点数N小于,那么上述周期性延阔的结果就会产生混叠,从而两种卷积会有不同的结果。而如果N满足的条件,就会有这就会意味着在时域不会产生混叠。因此,我们得出结论:若通过在序列的末尾填充适当的零值,使得和成为店序列,并作出这两个序列的循环卷积与线性卷积的结果在范围内相同。根据DFT循环卷积性质中的卷积定理便可通过两种方法求两个序列的循环卷积:一是直接根据定义计算;二是根据性质先分别求两个序列的N点DFT,并相乘,然后取IDFT以得到循环卷积。第二种方

3、法看起来要经过若干个步骤,但由于求序列的DFT和IDFT都有快速算法,因此它的效率比第一种方法要高得多。同样,根据线性卷积和循环卷积的关系,可以通过计算循环卷积以求得线性卷积,提高计算序列线性卷积的效率。四、实验内容输入程序序列如下:n=[0:1:4];m=[0:1:3];x1=1+n;x2=4-m;%生成函数x1和x2L1=length(x1)-1;L2=length(x2)-1;%取函数的长度y1=conv(x1,x2);%直接用函数conv计算线性卷积n1=[0:1:L1+L2];subplot(3,1,1);stem(n1,y1)%

4、绘制线性卷积图形xlabel('n');ylabel('y(n)');%标注x、y轴N2=5;%求5点圆卷积iflength(x1)>N2error('N必须大于序列x1的长度')endiflength(x2)>N2error('N必须大于序列x2的长度')end%以上语句判断两个序列的长度是否小于NX21=fft(x1,N2);%作序列1的FFTX22=fft(x2,N2);%作序列2的FFTy2=ifft(X21.*X22);%求两序列的循环卷积(时域)n2=[0:1:N2-1];subplot(3,1,2);stem(n2,y2)%绘

5、制两序列循环卷积图形axis([0,7,0,40])%修改x、y轴长度N3=8iflength(x1)>N3error('N必须大于序列x1的长度')endiflength(x2)>N3error('N必须大于序列x2的长度')endx31=[x1,zeros(1,N3-length(x1))]x32=[x2,zeros(1,N3-length(x2))]X31=fft(x31)X32=fft(x32)y3=ifft(X31.*X32)n3=[0:1:N3-1]subplot(3,1,3);stem(n3,y3)将程序输入MATLAB运行结

6、果如下:MATLAB运行显示的图形为:五、实验心得:本次实验对我意义很大,让我熟练的运用了matlab软件。使我对课本上的知识又加深了很多理解和运用。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。