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

合集下载

5 求解线性卷积、循环卷积的课上例题

5 求解线性卷积、循环卷积的课上例题

求解线性卷积、循环卷积的课上例题例:}1,1,1{)()(3==n R n x ,20≤≤n ;}1,2,3,4{)()4()(4=-=n R n n h ,30≤≤n ,求线性卷积)(*)()(n h n x n y =和L 点循环卷积。

线性卷积:)(*)()(n h n x n y =∑∞-∞=-=m m n h m x )()(∑∞-∞=-=m m n x m h )()(1y (n )={4, 7, 9, 6, 3, 1},50≤≤n ,非零数据长度6=4+3-1 ()(n h 长度为N ,)(n x 长度为M ,y (n )长度为1-+M N )2)移位加权和法(以n 为变量)∑=-=21)()()(m m m m n h m x n y )2()2()1()1()()0(-+-+=n h x n h x n h x ,其中}1 1, ,1{)(=m x ,20≤≤my (n )={4, 7, 9, 6, 3, 1}50≤≤nL 点循环卷积:)())(()()(1n R m n h m x n y L L m L c ∑-=-=)())(()(1n R m n x m h L L m L ∑-=-=1)矩阵方程法(以m 为变量)先将x (n )、h (n )补零到L 点长;再将其中一个序列周期延拓、翻褶、取主值区间的值、循环右移构成方阵,将另一个序列写成列矩阵,二者做矩阵乘法运算。

以用x (n )构成方阵为例。

方阵第一行的构成:x (0)不动,将其它值从后往前倒过来写。

下面各行依次对上一行循环右移一位,共L 行。

例:求)()(3n R n x =,)()4()(4n R n n h -=的4点循环卷积)()()(1n h n x n y c ④=。

⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=69870111432114322143321412341110011110111101)(1n y cy c 1(n )={7, 8, 9, 6},30≤≤n例:求)()(3n R n x =,)()4()(4n R n n h -=的8点循环卷积)()()(2n h n x n y c ⑧=。

因果卷积实现方式

因果卷积实现方式

因果卷积实现方式
因果卷积是一种非常重要的信号处理技术,它在数字信号处理、图像处理、音频处理等领域中得到广泛应用。

因果卷积实现方式是指如何将一个信号与另一个信号进行卷积运算,以达到相应的信号处理目的。

在因果卷积实现方式中,常用的方法有线性卷积和循环卷积。

线性卷积是指对两个信号进行完整的卷积计算,得到具有相同长度的输出信号。

循环卷积是指对两个信号进行周期性的卷积计算,得到长度为两个信号长度之和减去1的输出信号。

线性卷积可以通过FFT算法实现,这种方法的优点是计算速度快,但缺点是需要占用大量的内存空间。

循环卷积可以通过循环移位和加法运算实现,这种方法的优点是计算速度较快,且不需要占用大量的内存空间。

除了线性卷积和循环卷积之外,还有一种特殊的卷积运算,即因果卷积。

因果卷积是指只对输入信号的一部分与滤波器进行卷积计算,输出信号的长度小于等于输入信号的长度。

因果卷积可以通过逆滤波器法实现,这种方法的优点是计算速度快,且不需要占用大量的内存空间。

总之,因果卷积实现方式是数字信号处理中的重要内容,不同的卷积方法有各自的优缺点,需要根据具体的应用场景选择合适的方法。

- 1 -。

实验三 线性卷积与循环卷积

实验三 线性卷积与循环卷积

实验三 线性卷积与循环卷积1、实验目的(1)掌握线性卷积的计算机编程方法,利用卷积的方法观察系统响应的时域特性。

(2)掌握循环卷积的计算机编程方法,并比较与线性卷积的差别,验证二者之间的关系。

利用循环卷积的方法观察、分析系统响应的时域特性。

2、实验原理(1)线性卷积:线性时不变系统(Linear Time-Invariant System, or LTI 系统)输入、输出间的关系为:当系统输入序列为)(n x ,系统的单位脉冲响应为)(n h ,输出序列为)(n y ,则系统输出为:∑∞-∞=-=*=m m n h m x n h n x n y )()()()()( 上式称为线性卷积。

(2)循环卷积设两个有限长序列)(1n x 和)(2n x ,长度分别为1N 和2N ,)()(11k X n x D FT N −−−→←点 )()(22k X n x D F T N −−−→←点如果)()()(21k X k X k X ⋅=则∑---==1021)())(()()]([)(N m N N n R m n x m x k X IDFT n x上式称为)(1n x 和)(2n x 的循环卷积。

(3)两个有限长序列的线性卷积序列)(1n x 和)(2n x ,长度分别为L 点和M 点,)(3n x 为这两个序列的线性卷积,则)(3n x 为∑∞-∞=-=*=m m n x m x n x n x n x )()()()()(21213且线性卷积)(3n x 的非零值长度为L +M -1点。

(4)循环卷积与线性卷积的关系 序列)(1n x 为L 点长,序列)(2n x 为M 点长,若序列)(1n x 和)(2n x 进行N 点的循环卷积)(n x c ,其结果是否等于该两序列的线性卷积)(n x l ,完全取决于循环卷积的长度。

由教材相关推导,得∑∞-∞=+=q N l c n R qN n x n x )()()(,也就是说,循环卷积是线性卷积的周期延拓序列再取主值区间。

循环卷积和圆周卷积

循环卷积和圆周卷积

循环卷积和圆周卷积循环卷积与圆周性卷积的实现⼀、实验⽬的(1)进⼀步理解并掌握循环卷积与线性卷积和圆周卷积和的概念。

(2)理解掌握三者的关系。

⼆、实验原理两个序列的N 点循环卷积定义为[]∑-=-=?10))(()()()(N k N N m n x m h n x n h )0(N n ≤≤ (9-16)从定义中可以看到,循环卷积和线性卷积的不同之处在于:两个N 点循环卷积的结果仍为N 点序列,⽽它们的线性卷积的结果的长度则为2N-1;循环卷积对序列的移位采取循环移位,⽽线性卷积对序列采取线性移位。

正是这些不同,导致了线性卷积和循环卷积有不同的结果和性质。

循环卷积和线性卷积虽然是不同的概念,但它们之间由⼀个有意义的公式联系在⼀起[])())('()()()(10n G rN n y n x n h n y N N k N ∑-=-=?= (9-17)其中)(*)()('n x n h n y =也就是说,两个序列N 点循环卷积是它们的线性卷积以N 为周期的周期延拓,设序列h (n )的长度为1N ,序列x (n )的长度为2N ,此时,线性卷积结果的序列的点数为1'21-+=N N N ,因此如果循环卷积的点数N ⼩于121-+N N ,那么上述周期延拓的结果就会产⽣混叠,从⽽两种卷积会有不同的结果。

⽽如果N 满⾜'N N =的条件,就会有)(')(n y n y = )0(N n ≤≤ (9-18)这就意味着在时域不会产⽣混叠。

因此,我们得出结论:若通过在序列的末尾充填适当的零值,使得x (n )和h (n )成为121N N +-点序列,并作出这两个序列的11N N +-循环卷积,那么循环卷积与线性卷积的结果在0n N ≤≤范围内相同。

根据DFT 循环卷积性质中的卷积定理{}[()()][()][()]N DFT h n x n DFT x n DFT h n ?=?(9-19)便可通过两种⽅法求两个序列的循环卷积:⼀是直接根据定义计算,⼆是根据性质线分别求两个序列的N点DFT,并相乘,然后取IDFT以得到循环卷积。

周期卷积_循环卷积与线性卷积.

周期卷积_循环卷积与线性卷积.
n7不足的补零加长2其中一个序列周期延拓3翻褶取主值序列4循环移位5相乘相加循环卷积443y114h2my226h3my320h4my414h5m得到循环卷积的示意图14262014可见线性卷积与循环卷积相同当nn15n2317时y013h1my117h2my226h3my320h4my414h5m得到循环卷积的示意图1726132014可见线性卷积与循环卷积不同当nn15n2317时能代表线性卷积点循环卷积周期延拓才无混叠现象为周期进行所以只有当的长度为序列
-111111-1-1-1-1 -111111-1-1-1-1 -1-111111-1-1-1 -1-1-111111-1-1 -1-1-1-111111-1
11111-1-1-1-1-1 1-1-1-1-1-11111
11-1-1-1-1-1111 111-1-1-1-1-111 1111-1-1-1-1-11 11111-1-1-1-1-1
m 0 6
y(2) [ x1 (m) x2 ((2 m))7 ]R7 (m) 11 11 11 0 1 0 0 0 0 0 0 3
m 0 6
y(3) [ x1 (m) x2 ((3 m))7 ]R7 (m) 1 0 11 11 0 1 0 1 0 0 0 2 2
0 1 2 3
m
~ x2 (m)
计算区
m
4.2.1 周期卷积
~ y (1) ~ x1 (m) x2 (1 m)
m 0 5
4
~ x1 (m)
1 1 1 0 1 0 1 0 0 1 0 1 1
0 1 2 3
m
~ x2 (1 m)
m
4.2.1 周期卷积

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

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

编号:数字信号处理实训 (论文)说明书题目:用matlab实现两信号的卷积院(系):应用科技学院专业:电子信息工程学生姓名:***学号: ********** 指导教师:严素清童有为纪元法2011 年 6 月29日摘要本文讲述的是运用matlab软件编写线性卷积和循环卷积,运行程序并得到正确结果,附上运行结果图让大家参照对比。

MATLAB是一款在数学类科技应用软件中特别是在数值计算方面首屈一指的软件,它可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

而线性卷积和循环卷积在工程上的应用亦非常广泛,在Matlab软件处理下,实现任意两个序列的线性和循环卷积对于工程上的辅助是相当重要的。

卷积关系最重要的一种情况,就是在信号与线性系统或数字信号处理中的卷积定理。

利用该定理,可以将时间域或空间域中的卷积运算等价为频率域的相乘运算,从而利用FFT等快速算法,实现有效的计算,节省运算代价。

本文从线性卷积和循环的定义出发,分析其运算原理以及相关的公式、程序,着重介绍并分析了卷积的运算过程,让大家明白什么是卷积。

程序运行之后得到正确的结果,将运行后正确的波形图图放在本次论文中让大家直观的做比较。

关键词:Matlab;线性卷积;循环卷积;波形图;正确AbstractThis is about using matlab software linear convolution and cyclic convolution, operation procedure and get the right result, enclosed operation result diagram let everybody reference MATLAB is a type of technology in applications of mathematics, especially in numerical calculation of the leading software, which can be matrix calculation, and data mapping function, the realization of algorithms, creation of user interface, connected to other procedures, such as programming languages, the main application in engineering computing, control design, signal processing and communications, image processing, signal detection, financial modeling in areas such as design and analysis. And linear convolution in the application of engineering has a very wide range of software in Matlab, the realization of any two sequences of linear convolution support for projects is very important. Convolution relationship between the most important case, that is linear in the signal and digital signal processing system or the convolution theorem. Use of the theorem can be time-domain or space domain to the convolution operation in frequency domain equivalent of the multiplication operation, thus the use of FFT and other fast algorithms, the calculation of effective, cost-saving operation.From linear convolution and circulation of the definition, analyzes its operation principle and relevant formula, procedures, and emphatically introduces and analyses the convolution operation process, let everyone know what convolution. After the program is running properly after operation, the results will be put on the right of the waveform Desmond tutu paper let everybody intuitive to compare.Key words:Matlab;Linear convolution;Circular convolution;Sequence;Wave;Right目录引言 (1)1 MATLAB软件简介 (1)1.1 MATLAB的优势 (1)1.2 MATLAB的组成 (3)2 卷积分析 (3)2.1 卷积的定义 (3)2.2 线性卷积的运算 (4)2.3 循环卷积的运算 (5)3 MATLAB设计线性卷积 (5)3.1 线性卷积的分析 (5)3.2 线性卷积的设计流程图 (6)3.3 线性卷积的MATLAB设计源程序 (6)4 MATLAB设计循环卷积 (8)4.1 循环卷积的分析 (8)4.2 根据循环卷积分析设计流程图 (8)4.3 根据循环卷积流程图设计matlab源代码 (10)5 总结 (11)谢辞 (12)参考文献 (13)引言在泛函分析中,卷积(卷积)、旋积或摺积(英语:Convolution)是通过两个函数f和g生成第三个函数的一种数学算子,表徵函数f与经过翻转和平移与g 的重叠部分的累积。

基于Matlab实现线性卷积等

基于Matlab实现线性卷积等

线性卷积与循环卷积一、作品目的通过matlab的强大功能展示线性卷积和循环卷积过程中方方面面的计算和变化,让大家对这两种卷积有一个更加完美的认识。

二、概念简介卷积是一种典型的乘累加运算。

1.线性卷积线性卷积是对线性移不变(LSI)系统的输入输出关系的描述,体现系统的特性。

线性卷积的表达式为一般情况,现实的系统为因果系统,有k<0时,恒有h(k)=0,则若x(n)是一个N点序列,h(n)是一个m点序列,则卷积的结果y(n)将是L=N+M-1点的序列。

2.循环卷积设x1(n) 和x2(n) 是两个长度为L、M的有限长序列,它们的N 点循环卷积x3(n) 定义为:注意:其中N>=Max{L,M}如果其中一个序列(或者两个序列)的长度没有所求N点循环卷积的长度长,那在该序列后面补零,直到长度达到N。

三、设计思路及程序1. 线性卷积:(1)以输入序列x(n)=[5,4,3,2,1],脉冲响应h(n)=[1,1,1,1]为列进行演示。

(2)计算输入序列和脉冲响应的长度。

(3)画出补零后的输入序列和脉冲响应(4)设计一个循环,在循环中实现反转、位移和计算。

并画出反转后的图像变化和卷积图像,将每一次移位结果保存为fig图。

(5)最后将上一步所生成的所有fig图合起来生成一张gif图程序展示:clear;clc;close all;(1)(2)xn=[5,4,3,2,1];M=length(xn);%输入任意序列并计算长度Mhn=[1,1,1,1];N=length(hn);%输入任意脉冲响应并计算长度Nm=[-(M-1):M+N-2];%设置代换变量的范围以便x(m)翻转和移位(3)xm=[zeros(1,M-1),xn,zeros(1,N-1)];%补零以便与m对应绘图subplot(2,2,1);stem(m,xm,'r.');%%绘输入序列x(m) ylabel('x(m)'); grid on;title('(a)输入序列x(m)');hm=[zeros(1,M-1),hn,zeros(1,M-1)];%补零以便与m对应绘图subplot(2,2,2);stem(m,hm,'r.');%绘脉冲响应ylabel('h(m)'),grid,title('(b)脉冲响应h(m)');%%加标签网格和标题yn=zeros(1,2*M+N-2);%卷积输出初始化(4)for n=0:M+N-2;%逐个计算卷积输出if n==0;xmfy=[fliplr(xn),zeros(1,M+N-2)];%实现翻转else for k=M:-1:1;xmfy(k+n)=xmfy(k+n-1);endxmfy(n)=0;xmfy;%实现翻转后移位并显示endsubplot(2,2,3);stem(m,xmfy,'b.');%%绘制翻转移位序列ylabel('x(n-m)'), grid,title('(c)x(n-m)');%%加标签网格和标题yn(M+n)=sum(xmfy.*hm);%计算第n位输出并与m位置对应subplot(2,2,4);stem(m,yn,'r.');%%绘制卷积输出序列axis([min(m),max(m),min([0,conv(xn,hn)]),max([0,c onv(xn,hn)])]);%%控制绘图坐标ylabel('y(n)');grid on;title('(d)卷积输出y(n)');%%加标签网格和标题pause(.5);drawnow,picname=[num2str(n) '.fig'];%保存的文件名:如i=1时,picname=1.fighold on % 写后面的字时,不把前面的字冲掉saveas(gcf,picname)endyn;stepall=M+N-2;(5)for i=1:stepallpicname=[num2str(i) '.fig'];open(picname)set(gcf,'outerposition',get(0,'screensize'));% matlab窗口最大化frame=getframe(gcf);im=frame2im(frame);%制作gif文件,图像必须是index索引图像[I,map]=rgb2ind(im,20);if i==1imwrite(I,map,'xianxingjuanji.gif','gif', 'Loopcount',inf,'DelayTime',0.5);elseif i==stepallimwrite(I,map,'xianxingjuanji.gif','gif','WriteMo de','append','DelayTime',0.5);elseimwrite(I,map,'xianxingjuanji.gif','gif','WriteMode','append','DelayTime',0.5); end;close allend实验结果展示:2. 循环卷积(1)以输入序列x(n)=[5,4,3,2,1],脉冲响应h(n)=[1,1,1,1]为列进行演示。

ch335循环卷积

ch335循环卷积
因此,对于长度为N的有限长序列,对Z变换 取样即频率取样不失真的条件,是取样点数 M应 等于或大于原序列的长度N,即M≥N。在M=N时, Z变换的取样即DFT-- X(k),利用IDFT公式可 由X(k)恢复原序列x(n),即
这就是频域采样定理。
2020/8/10
16
x(n)--X(z)--X(k)--xp(n)--xN(n)
5
例1 已知序列x1(n)和x2(n)如下:
1,0n24
,0n9
x2(n)
0,others
(1)求x1(n)和x2(n)的25点循环卷积y1(n) (2)求x1(n)和x2(n)的34点循环卷积y2(n)
解: (1)
10 y1(n)0
0n24 另外:
others
(2)
y1(n) [ y2(n25q)]R25(n)
y2(n )x1(n ) x2(n )x1(n )*x2(n )
q
1 ,2 ,3 ,...,1 0 ,1 0 ,...,1 0 ,9 ,8 ,...,1n0 ,1 ,2 ,...,9 ,1 0 ,...,2 4 ,2 5 ,2 6 ,...3 3
0
为了下面分析方便,先将x1(n)和x2(n)以L为周期进行延拓, 得到两个周期序列
和 它们的周期卷积为
2020/8/10
3
注意到在区间0≤m≤L-1中,x1((m))L=x1(m);并交换求和次 序得
上式表明,x1(n)和x2(n)的周期卷积是它们的线性卷积的 周期延拓。对周期卷积取主值,得到循环卷积
如果在单位圆上对X(z)进行等角距取样,取样点数为M, 则得
根据DFT的定义,对X(k)求反变换得
2020/8/10
9
现在我们来考察xp(n)与原序列x(n)的关系,看它如何才能代 表原序列x(n)。

线性卷积和循环卷积的关系

线性卷积和循环卷积的关系

线性卷积和循环卷积的关系这个例子说明了如何建立线性卷积和循环卷积之间的等价关系。

线性卷积和循环卷积是本质不同的运算。

然而,在某些条件下,线性卷积和循环卷积是等效的。

建立这种等效关系具有重要意义。

对于两个向量 x 和 y,循环卷积等于二者的离散傅里叶变换 (dft) 之积的逆 dft 变换。

了解线性卷积和循环卷积等效的条件,可让您使用 dft 来高效地计算线性卷积。

包含n个点的向量 x 和包含l个点的向量 y 的线性卷积长度为n + l - 1。

为了使x和y的循环卷积与之等效,在进行 dft 之前,必须用零填充向量,使长度至少为n + l - 1。

对 dft 的积求逆后,只保留前n + l - 1 个元素。

创建两个向量 x 和 y,并计算两个向量的线性卷积。

x = [2 1 2 1];y = [1 2 3];clin = conv(x,y);输出长度为 4+3-1。

用 0 填充两个向量,使长度为 4+3-1。

求出两个向量的dft,将其相乘,并求乘积的逆 dft。

xpad = [x zeros(1,6-length(x))];ypad = [y zeros(1,6-length(y))];ccirc = ifft(fft(xpad).*fft(ypad));填零后的向量 xpad 和 ypad 的循环卷积等效于 x 和 y 的线性卷积。

保留 ccirc 的所有元素,因为输出长度为 4+3-1。

绘制线性卷积的输出和 dft 之积的逆,以显示二者等效。

subplot(2,1,1)stem(clin,'filled')ylim([0 11])title('linear convolution of x and y')subplot(2,1,2)stem(ccirc,'filled')ylim([0 11])title('circular convolution of xpad and ypad')将向量填充到长度为 12,并使用 dft 之积的逆 dft 求得循环卷积。

实验五 线性卷积与循环卷积的计算

实验五  线性卷积与循环卷积的计算

实验五 线性卷积与循环卷积的计算一、实验目的1、进一步加深对线性卷积的理解和分析能力;2、通过编程,上机调试程序,进一步增强使用计算机解决问题的能力;3、掌握线性卷积与循环卷积软件实现的方法,并验证二者之间的关系。

二、实验原理1、线性卷积线性时不变系统(Linear Time-Invariant System, or L. T. I 系统)输入、输出间的关系为:当系统输入序列为)(n x ,系统的单位脉冲响应为)(n h ,输出序列为)(n y ,则系统输出为:∑∞-∞==-=m n h n x m n h m x n y )(*)()()()(或∑+∞-∞==-=m n x n h m n x m h n y )(*)()()()(上式称为离散卷积或线性卷积。

图6.1示出线性时不变系统的输入、输出关系。

)(n δ→ L. T. I —→)(n h —→ —→图6.1 线性时不变系统的输入、输出关系2、循环卷积设两个有限长序列)(1n x 和)(2n x ,均为N 点长)(1n x )(1k X )(2n x )(2k X 如果)()()(213k X k X k X ⋅=则 )()(~)(~)(10213n R m n x m x n x N N m ⎥⎦⎤⎢⎣⎡-=∑-=[]∑---=1021)()(N m N m n x m x)(1n x =N 10)(2-≤≤N n n x上式称为循环卷积或圆周卷积)(n x L. T. I h(n)∑+∞-∞=-=m m n h m x n y )()()(D F T D F T注:)(~1n x 为)(1n x 序列的周期化序列;)()(~1n R n x N 为)(~1n x 的主值序列。

上机编程计算时,)(3n x 可表示如下:∑∑-+==-++-=11210213)()()()()(N n m nm m n N xm x m n x m x n x3、两个有限长序列的线性卷积序列)(1n x 为L 点长,序列)(2n x 为P 点长,)(3n x 为这两个序列的线性卷积,则)(3n x 为∑+∞-∞=-=m m n xm x n x )()()(213且线性卷积)(3n x 的最大长1-+P L ,也就是说当1-≤n 和1-+≥P L n 时0)(3=n x 。

用Matlab验证循环卷积和线性卷积关系的软件设计与仿真

用Matlab验证循环卷积和线性卷积关系的软件设计与仿真

n
八点循环卷积
10000432 1 1 21000043 2 4 3 2 1 0 0 0 0 4 3 10 4 3 2 1 0 0 0 0 4 20 0 4 3 2 1 0 0 0 0 25 0 0 4 3 2 1 0 0 0 24 0 0 0 4 3 2 1 0 0 16 00004321 0 0
题目:用Matlab验证循环卷积和线性卷积
关系的软件设计与仿真
生物科学与技术学院2013年级 专业:生物医学工程 答辩人:蔡贝贝 导师:王小东
目录
研究背景
1
理论知识
2
实验数据与结论
3
第一部分
课题背景
主要应用 研究意义 研究方法
主要应用
系统 输出
线性时不变系统中,已知输入 和系统的单位脉冲响应,可以 通过线性卷积求解系统输出。
c(n)
30
25
20
15
10
5
0
0
1
2
3
4
5
6
7
8
9 10
n
四点循环卷积
矩阵相乘法
1 4 3 2 1 26 2 1 4 3 2 28 3 2 1 4 3 26 4 3 2 1 4 20
w(n)
Matlab法
30 25 20 15 10 5 0
0 1 2 3 4 5 6 7 8 9 10 n
五点循环卷积
1 0 4 3 2 1 25 2 1 0 4 3 2 20 3 2 1 0 4 3 10 4 3 2 1 0 4 20 0 4 3 2 1 0 25
w(n)
30 25 20 15 10 5 0
0 1 2 3 4 5 6 7 8 9 10 n

5-求解线性卷积、循环卷积的课上例题知识讲解

5-求解线性卷积、循环卷积的课上例题知识讲解

求解线性卷积、循环卷积的课上例题例:}1,1,1{)()(3==n R n x ,20≤≤n ;}1,2,3,4{)()4()(4=-=n R n n h ,30≤≤n ,求线性卷积)(*)()(n h n x n y =和L 点循环卷积。

线性卷积:)(*)()(n h n x n y =∑∞-∞=-=m m n h m x )()(∑∞-∞=-=m m n x m h )()(1y (n )={4, 7, 9, 6, 3, 1},50≤≤n ,非零数据长度6=4+3-1 ()(n h 长度为N ,)(n x 长度为M ,y (n )长度为1-+M N )2)移位加权和法(以n 为变量) ∑=-=21)()()(m m m m n h m x n y )2()2()1()1()()0(-+-+=n h x n h x n h x ,其中}1 1, ,1{)(=m x ,20≤≤my (n )={4, 7, 9, 6, 3, 1}50≤≤nL 点循环卷积:)())(()()(1n R m n h m x n y L L m L c ∑-=-=)())(()(1n R m n x m h L L m L ∑-=-=1)矩阵方程法(以m 为变量)先将x (n )、h (n )补零到L 点长;再将其中一个序列周期延拓、翻褶、取主值区间的值、循环右移构成方阵,将另一个序列写成列矩阵,二者做矩阵乘法运算。

以用x (n )构成方阵为例。

方阵第一行的构成:x (0)不动,将其它值从后往前倒过来写。

下面各行依次对上一行循环右移一位,共L 行。

例:求)()(3n R n x =,)()4()(4n R n n h -=的4点循环卷积)()()(1n h n x n y c ④=。

⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=69870111432114322143321412341110011110111101)(1n y c y c 1(n )={7, 8, 9, 6},30≤≤n例:求)()(3n R n x =,)()4()(4n R n n h -=的8点循环卷积)()()(2n h n x n y c ⑧=。

lesson 11 利用循环卷积计算线性卷积

lesson  11 利用循环卷积计算线性卷积

X z
n
x n z n

如果在单位圆上对 X z 进行等角距取样,取样点数为 M, 则得 k X k X z z W k xn WM n
M
n
频率取样
Frequency Sampling
根据DFT的定义,对 X k 求反变换得
函数 e j
2 j k j N 1 e N e 在 2 k 时的模值均为 1。

sin N / 2 e 2 N sin k / 2 N
N k j 2 2 N
利用循环卷积计算线性卷积
Linear Convolution Computation by Circular Convolution
Lesson 11
一个问题
许多实际问题中常需要计算线性卷积,如一个FIR数字 滤波器的输出就等于输入与滤波器的单位取样响应的 线性卷积。而循环卷积可以利用后面介绍的FFT进行快 速计算,因此就提出一个问题:如何利用循环卷积计 算线性卷积,或者是,在什么条件下循环卷积等于线 性卷积?
1 zN 其中 z N 1 WN k z 1
频率取样
Frequency Sampling
将 z e j 代入内插公式,便得到傅立叶变换的内插公式
X e j X k e j
k 0
j 其中 e
N 1
1e
jN
下图画出了在 N 5, k 0,1,2,3 时 e j 的曲线。
N
频率取样
Frequency Sampling
k 0
k 1
e j
N 5

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

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

实验四 循环卷积与线性卷积的实现一、仿真实验目的1)进一步明白得并把握循环卷积与线性卷积的概念; 2)明白得把握二者的关系。

二、实验分析和计算两个序列的N 点循环卷积概念为10[()()]()(())N N Nk h n x n h m x n m -=⊗=-∑ (0)n N ≤<从概念中能够看到,循环卷积和线性卷积的不同的地方在于:两个N 点序列的N 点循环卷积的结果仍为N 点序列,而它们的线性卷积的结果的长度为2N-1;循环卷积对序列的移位采取循环移位,而线性卷积对序列采取线性移位。

正是这些不同,致使了线性卷积和循环卷积有不同的结果和性质。

循环卷积和线性卷积尽管是不用的概念,但它们之间由一个成心义的公式联系在一路()[()()](())()N N r y n h n x n y n rN G n ∞=-∞'=⊗=-∑其中()()()y n h n x n '=*。

也确实是说,两个序列的N 点循环卷积是它们线性卷积以N 为周期的周期延拓。

设序列还()h n 的长度为1N ,序列()x n 的长度为2N ,现在,线性卷积结果的序列的点数为121N N N '=+-;因此若是循环卷积的点数N 小于121N N +-,那么上述周期性延拓的结果就会产生混叠,从而两种卷积会有不同的结果。

而若是N 知足N N '=的条件,就会有()()y n y n '= (0)n N ≤<这就意味着时域可不能产生混叠。

因此,咱们得出结论:假设通过在序列的末尾填充适当的零值,使得()x n 和()h n 成为121N N +-点序列,并作为这两个序列的121N N +-循环卷积,那么循环卷积与线性卷积的结果在0n N ≤<范围内相同。

依照DFT 循环卷积性质中卷积定理{[()()]}[()][()]N DFT h n x n DFT x n DFT h n ⊗=⋅即可通过两种方式求两个序列的循环卷积:一直直接依照概念计算;二是依照性质先别离求两个序列的N 点DFT ,并相乘,然后取IDFT 以取得循环卷积。

(完整word版)5 求解线性卷积、循环卷积的课上例题

(完整word版)5 求解线性卷积、循环卷积的课上例题

求解线性卷积、循环卷积的课上例题例:}1,1,1{)()(3==n R n x ,20≤≤n ;}1,2,3,4{)()4()(4=-=n R n n h ,30≤≤n ,求线性卷积)(*)()(n h n x n y =和L 点循环卷积。

线性卷积:)(*)()(n h n x n y =∑∞-∞=-=m m n h m x )()(∑∞-∞=-=m m n x m h )()(1y (n )={4, 7, 9, 6, 3, 1},50≤≤n ,非零数据长度6=4+3-1 ()(n h 长度为N ,)(n x 长度为M ,y (n )长度为1-+M N )2)移位加权和法(以n 为变量) ∑=-=21)()()(m m m m n h m x n y )2()2()1()1()()0(-+-+=n h x n h x n h x ,其中}1 1, ,1{)(=m x ,20≤≤my (n )={4, 7, 9, 6, 3, 1}50≤≤nL 点循环卷积:)())(()()(1n R m n h m x n y L L m L c ∑-=-=)())(()(1n R m n x m h L L m L ∑-=-=1)矩阵方程法(以m 为变量)先将x (n )、h (n )补零到L 点长;再将其中一个序列周期延拓、翻褶、取主值区间的值、循环右移构成方阵,将另一个序列写成列矩阵,二者做矩阵乘法运算。

以用x (n )构成方阵为例。

方阵第一行的构成:x (0)不动,将其它值从后往前倒过来写。

下面各行依次对上一行循环右移一位,共L 行。

例:求)()(3n R n x =,)()4()(4n R n n h -=的4点循环卷积)()()(1n h n x n y c ④=。

⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=69870111432114322143321412341110011110111101)(1n y c y c 1(n )={7, 8, 9, 6},30≤≤n例:求)()(3n R n x =,)()4()(4n R n n h -=的8点循环卷积)()()(2n h n x n y c ⑧=。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五 循环卷积与线性卷积的实现
一、实验目的
(1) 进一步理解并掌握循环卷积与线性卷积的概念; (2) 理解掌握二者的关系。

二、实验原理
两个序列的N 点的循环卷积定义为
1
0[()()]()(())N N N k h n x n h m x n m -=⊗=-∑ (0)
n N ≤< 从定义中可以看到,循环卷积和线性卷积的不同之处在于:两个N 点序列的N 点循环
卷积结果仍为N 点序列,而它们的线性卷积的结果长度则为2N -1;循环卷积对序列的移位采取循环移位,而线性卷积对序列采取线性移位。

正是这些不同,导致了线性卷积和循环卷积有不同的结果和性质。

两个序列的N 点循环卷积是它们的线性卷积以N 为周期的周期延拓。

设序列()h n 的长度为1N ,序列()x n 的长度为2N ,此时线性卷积结果的序列点数为'121N N N =+-;因此如果循环卷积的点数N 小于121N N +-,那么上述周期性延拓的结果就会产生混叠,从而两种卷积会有不同的结果。

而如果满足'N N =的条件,就有循环卷积与线性卷积的结果在0n N ≤<范围内相同。

根据DFT 循环卷积性质中的卷积定理
{[()()]}[()][()]N DFT h n x n DFT x n DFT h n ⊗=∙
因此可以根据性质先分别求两个序列的N 点DFT ,并相乘,然后取IDFT 以得到循环卷积。

三、实验分析
例题:已知有限长序列()x n 与()h n 如下图所示, (1) 画出两者之间的线性卷积 (2) 8点圆卷积。

(3) 5点圆卷积。

解析如下:
(1)()x n 与()h n 的线性卷积,由公式可知:
()*()()()m h n x n x m h n m ∞
=-∞
=
-∑
()x m 与()h m -的图形如下:
利用方格平移法:
由方格平移法可知: 当0n =时,()*()0h n x n = 当1n =时,()*()0h n x n =
当2n =时,()*()0*11*11h n x n =+= 当3n =时,()*()2*11*10*13h n x n =++= 当4n =时,()*()3*12*11*10*16h n x n =+++= 当5n =时,()*()3*12*11*10*16h n x n =+++= 当6n =时,()*()3*12*11*16h n x n =++= 当7n =时,()*()3*12*15h n x n =+= 当8n =时,()*()3*13h n x n ==
得到图形如下:
(2)()x n 与()h n 的8点圆卷积,由公式可知:
7
8880
()()(())(())()n x n h n x m h n m G n =⊗=-∑
8(())x m 与8(())h m -的图形如下:
根据下面图表可计算得到圆卷积:
取和得到圆卷积为3。

n=时:
当2
取和得到圆卷积为1。

取和得到圆卷积为6。

n=
5
取和得到圆卷积为6。

取和得到圆卷积为6。

7
n=
取和得到圆卷积为5。

得到波形如下:
(2)()x n 与()h n 的5点圆卷积,由公式可知:
4
4440
()()(())(())()n x n h n x m h n m G n =⊗=-∑
4(())x m 与4(())h m -的图形如下:
根据图标可计算得到圆卷积: 当0n =
取和得到圆卷积为6。

n=时:
当1
取和得到圆卷积为6。

n=
当2
n=
当3
取和得到圆卷积为6。

n=
当4
画出波形如下:
四、仿真实验
Matlab程序设计如下:
编写的循环卷积程序:
方法一:直接根据定义计算,程序编辑如下:
function y=circonv1(x1,x2,N)
if length(x1)>N
error('N must not be less than length of x1')
end
if length(x2)>N
error('N must not be less than length of x2')
end
x1=[x1,zeros(1,N-length(x1))];
x2=[x2,zeros(1,N-length(x2))];
n=[0:1:N-1];
x2=x2(mod(-n,N)+1);
H=zeros(N,N);
for n=1:1:N
H(n,:)=cd(x2,n-1,N);
end
y=x1*H';
function y=cd(x,m,N)
if length(x)>N
error
end
x=[x zeros(1,N-length(x))];
n=[0:1:N-1];
n=mod(n-m,N);
y=x(n+1);
方法二:根据性质先分别求两个序列的N点DFT,并相乘,然后取IDFT以得到循环卷积
function y=circonv2(x1,x2,N)
if length(x1)>N
error('N must not be less than length of x1')
end
if length(x2)>N
error('N must not be less than length of x2')
end
X1k=fft(x1,N);
X2k=fft(x2,N);
Yk=X1k.*X2k;
y=ifft(Yk);
if((all(imag(x1)==0))&&(all(imag(x2)==0))) y=real(y);
end
编写的主程序:
n=[0:1:4];m=[0:1:4];
N1=length(n);N2=length(m);
xn=ones(1,5);
hn=[0,0,1,2,3];
y1n=conv(xn,hn);
y2n=circonv2(xn,hn,N1+N2-1);
y3n=circonv1(xn,hn,N1);
ny1=[0:1:length(y1n)-1];
ny2=[0:1:length(y3n)-1];
subplot(3,1,1);
stem(ny1,y1n);
subplot(3,1,2);
stem(ny1,y2n);
subplot(3,1,3);
stem(ny2,y3n);
运行结果如下:
图表1实验结果
与理论结果一致。

五、实验小结
通过本次实验理解并掌握了循环卷积与线性卷积的概念,也掌握了两者之间的关系。

学会了matlab中线性卷积函数,以及如何编写循环卷积。

在仿真过程中出现了一些问题,由于matlab提供线性卷积函数,则只需要自己编写循环卷积,在编写过程中,没有注意到matlab 中的大小写的严格区别,导致程序运行错误。

经过反复检查之后发现了错误,经改正后得到了正确的运行结果。

收获很大。

相关文档
最新文档