好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

循环卷积与线性卷积的实现

一、 实验目的:(1)进一步理解并掌握循环卷积与线性卷积的概念。

(2)理解掌握二者的关系。 三、实验原理

两个序列的N点循环卷积定义为

?h?n??x?n??N??h?m?x??n?m???0?n?N?

Nk?0N?1从定义中可以看到,循环卷积和线性卷积的不同之处在于:两个N点序列的N点循环卷积的结果仍为N点序列,而他们的线性卷积的结果的长度则为2N-1;循环卷积对序列的移位采取循环移位,而线性卷积对序列采取线性位移。正式这些不同,导致了线性卷积和循环卷积有不同的结果和性质。

循环卷积和线性卷积虽然是不用的概念,但是它们之间有一个有意义的公式联系在一起

y?n???h?n??x?n??N??????y??n?rN??GN?n? ?r????其中y??n??h?n??x?n?

也就是说,两个序列的N点循环卷积是他们的线性卷积以N为周期的周期延阔。设序列h?n?的长度为N1,序列x?n?的长度为N2,此时,线性卷积结果的序列的点数为N??数N小于N1?N2N1?N2?1;因此如果循环卷积的点

?1,那么上述周期性延阔的结果就会产生混叠,从

?N?的条件,就会有

而两种卷积会有不同的结果。而如果N满足Ny?n??y??n??0?n?N?

这就会意味着在时域不会产生混叠。因此,我们得出结论:若通过在序列的末尾填充适当的零值,使得x?n?和h?n?成为N1?N2列,并作出这两个序列的N1?N20?n?N?1店序

?1循环卷积与线性卷积的结果在

范围内相同。

根据DFT循环卷积性质中的卷积定理

DFT??h?n??x?n??N??DFT?x?n???DFT?h?n??

便可通过两种方法求两个序列的循环卷积:一是直接根据定义计算;二是根据性质先分别求两个序列的N点DFT,并相乘,然后取IDFT以得到循环卷积。第二种方法看起来要经过若干个步骤,但由于求序列的DFT和IDFT都有快速算法,因此它的效率比第一种方法要高得多。

同样,根据线性卷积和循环卷积的关系,可以通过计算循环卷积以求得线性卷积,提高计算序列线性卷积的效率。 四、 实验内容

输入程序序列如下: n=[0:1:4];m=[0:1:3];

x1=1+n;x2=4-m; %生成函数x1和x2 L1=length(x1)-1;L2=length(x2)-1; %取函数的长度

y1=conv(x1,x2); %直接用函数conv计算线性卷积 n1=[0:1:L1+L2];

subplot(3,1,1);stem(n1,y1) %绘制线性卷积图形

xlabel('n');ylabel('y(n)'); %标注x、y轴

N2=5; %求5点圆卷积 if length(x1)>N2

error('N必须大于序列x1的长度') end

if length(x2)>N2

error('N必须大于序列x2的长度')

end 是否小于N

X21=fft(x1,N2); X22=fft(x2,N2); y2=ifft(X21.*X22); n2=[0:1:N2-1];

subplot(3,1,2);stem(n2,y2) axis([0,7,0,40]) N3=8

if length(x1)>N3

error('N必须大于序列x1的长度') end

if length(x2)>N3

%以上语句判断两个序列的长度 %作序列1的FFT %作序列2的FFT

%求两序列的循环卷积(时域) %绘制两序列循环卷积图形 %修改x、y轴长度 error('N必须大于序列x2的长度') end

x31=[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运行结果如下:

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

循环卷积与线性卷积的实现一、实验目的:(1)进一步理解并掌握循环卷积与线性卷积的概念。(2)理解掌握二者的关系。三、实验原理两个序列的N点循环卷积定义为?h?n??x?n??N??h?m?x??n?m???0?n?N?Nk?0N?1从定义中可以看到,循环卷积和线性卷积的不同之处在于:两个N点序列的N点循环卷积
推荐度:
点击下载文档文档为doc格式
59i4005qt84ddq343h0c
领取福利

微信扫码领取福利

微信扫码分享