数字信号处理实验4——线性卷积与圆周卷积的计算
线性卷积与圆周卷积的计算

数字信号处理实验报告
实验名称:线性卷积与圆周卷积的计算(实验四)
专业班 级: 学生姓名: 学 号: 指导教师:
二○一 年 月 日
1
一、 实验原理 1.线性卷积
当系统输入序列为 x(n),系统的单位冲激响应为 h(n),输出序列为 y(n),则线性时不变系统 y(n) = x(n)*h(n). 2.圆周卷积
圆周移位代替线性移位的好处: 时域圆周卷积在频域上相当于两序列的 DFT 的相乘,而计算 DFT 可 以采用它的快速算法——快速傅立叶变换(FFT),因此圆周卷积和线 性卷积相比,计算速度可以大大加快。
7
调试中所遇到的问题: 图形输出与算得的不符,经过结果逆推回去,发现计算圆周卷积的一 个矩阵没有转置。 圆周卷积与线性卷积的关系: 根据实验结果,可以发现,当 N>=L+P-1 时,圆周卷积等于线性卷积; 而当 N<L+P-1 时,圆周卷积等于两个序列的线性卷积加上时间的混 叠。
6
线性卷积的运算步骤: 求 x1(n)与 x2(n) 的线性卷积:对 x1(m)或 x2(m)先进行镜像移 位 x1(-m),对移位后的序列再进行从左至右的依次平移 x(n-m),当 n=0,1,2.…N-1 时,分别将 x(n-m)与 x2(m)相乘,并在 m=0,1,2.… N-1 的区间求和,便得到 y(n)。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
圆周卷积通用程序
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function yc = circonv(x1,x2,N) % 定义函数 if length(x1)>N
实验四 线性卷积实验

实验四线性卷积实验[实验目的]1.熟悉并验证卷积的性质2.利用卷积生成新的波形,建立波形间的联系3.验证卷积定理[实验原理]信号的卷积是针对时域信号处理的一种分析方法。
信号的卷积一般用于求取信号通过某系统后的响应。
在信号与系统中,我们通常求取某系统的单位冲激响应,所求得的h(k)可作为系统的时域表征。
任意系统的系统响应可用卷积的方法求得:hky*=kx(k))()(两个序列的线性卷积可经过下列步骤:①将x(n)和h(n)用x(m)和h(m)表示,并将h(m)进行翻转,形成h(-m);②②将h(-m)移位n,得到h(n-m)。
当n>0时,序列右移;n<0时,序列左移;③③将x(m)和h(n-m)相同m的序列值对应相乘后④求和,将以上所有对应点的乘积累加起来,可得到卷积结果y(n)。
[实验内容]1.MATLAB提供了一个内部函数conv来计算两个有限长序列的卷积。
conv函数假定两个序列都从n=0开始。
给出序列x=[3,11,7,0,-1,4,2];h=[2,3,0,-5,2,1];求两者的卷积y 。
解:>> x=[3,11,7,0,-1,4,2]x = 3 11 7 0 -1 4 2>> h=[2,3,0,-5,2,1]h = 2 3 0 -5 2 1>> y=conv(x,h)y = 6 31 47 6 -51 -5 41 18 -22 -3 8 22.将函数conv稍加扩展为函数conv_m,它可以对任意基底的序列求卷积。
格式如下:function [y,ny]=conv_m(x1,x2)% 信号处理的改进卷积程序% [y,ny]=conv_m(x1,x2)% [y,ny]=卷积结果% [x,nx1]=第一个信号% [h,nx2]=第二个信号解:function [y,ny]=conv_m(x1,x2)x1=input('x1=');x2=input('x2=');N1=length(x1);M=length(x2);L=N1+M-1;ny=0:L-1for(n=1:L)y(n)=0;for(m=1:M)k=n-m+1;if(k>=1&k<=N1)y(n)=y(n)+x2(m)*x1(k);endendendyy1=conv(x1,x2);nx1=0:N1-1;nx2=0:M-1;subplot(221);stem(nx1,x1,'.k');ylabel('x1(n)');xlabel('n');grid on;title('x1');subplot(222);stem(nx2,x2,'.k');ylabel('x2(n)');xlabel('n');grid on;title('x2');subplot(223);stem(ny,y,'.k');ylabel('y(n)');xlabel('n');grid on;title('y');subplot(224);stem(y1);ylabel('y1');xlabel('n');grid on;title('y1');246x 1(n )n x1x 2(n )n x251015y (n )ny051015-100-50050y 1ny1根据线性卷积分析,参考程序流程为3.对下面三个序列,用conv_m 函数,验证卷积特性(交换律、结合律、分配 律、同一律))()()()(1221n x n x n x n x *=* 交换律 )]()([)()()]()([321321n x n x n x n x n x n x **=** 结合律 )()()()()]()([)(3121321n x n x n x n x n x n x n x *+*=+* 分配律 )()()(0101n n x n n n x -=-*δ 同一律 其中:x 1(n)=n[u(n+10)-u(n-20)] x 2(n)=)1.0cos(n π [u(n)-u(n-30)] x 3(n)=(1.2)n [u(n+5)-u(n-10)]x 1(n )n x1x 2(n )n x2204060y (n )ny204060y 1ny1。
实验四 有限长序列的线性卷积、圆周卷积及分段卷积(数字信号处理)

电子信息与自动化学院《数字信号处理》实验报告学号: 姓名:实验名称: 实验四 有限长序列的线性卷积、圆周卷积及分段卷积一、 实验目的(1) 在理论学习的基础上,通过本实验,加深对线性卷积、圆周卷积、分段卷积的理解;(2) 掌握计算线性卷积、圆周卷积、分段卷积的方法;(3) 体会有限长序列卷积运算的关系;二、 实验原理1、有限长序列卷积有两种形式:线性卷积和圆周卷积然而现实中要解决的实际问题是要计算两个有限长序列的线性卷积,如信号通过线性系统,系统的输出 y(n)是输入信号 x(n)与系统抽样响应 h(n)的线性卷积:y(n)=x(n)*h(n)。
设n x 1和n x 2是两个长度分别为 M 和 N 的有限长序列,则其线性卷积为)(*)()(211n x n x n y =。
)(1n y 是一个长度为 L1=N+M-1 点的有限长序列.将n x 1和n x 2均补零成 L 点的有限长序列,其中 L ≥max(M,N),则其 L 点的圆周卷积为)(]))(()([)()()(1021212n R m n x m x n x n x n y L L m L ∑-=-=⊗=,现在讨论)(1n y 和)(2n y 的关系。
显然]∑∑∑∑∑∑∑∑∞-∞=∞-∞=∞∞=-=-=∞-∞=-=-=+=+=+-=+-=-=-=r r L r M m L M m L r L M m L L L m L rL n y n R rL n x n xn R rL m n x n R rL m n x m x n R m n x m x n R m n x m x n y )([)()](*)([)()()()()()(]))(()([)(]))(()([)(121102102112110212由此可见,L 点的圆周卷积)(2n y 是线性卷积)(2n y 以 L 为周期,进行周期延拓后在区间 0 到 L-1 范围内所取的主值序列。
数字信号处理实验线性卷积圆周卷积

数字信号处理实验线性卷积圆周卷积⼤连理⼯⼤学实验报告学院(系):电信专业:⽣物医学⼯程班级:**1101姓名:**** 学号:201181*** 组:___实验时间:实验室:实验台:指导教师签字:成绩:实验⼀线性卷积和圆周卷积⼀、实验程序1.给出序列x=[3,11,7,0,-1,4,2],h=[2,3,0,-5,2,1];⽤两种⽅法求两者的线性卷积y,对⽐结果。
a)直接调⽤matlab内部函数conv来计算。
b)根据线性卷积的步骤计算。
clear;clc;x=[3 11 7 0 -1 4 2];n1=0:1:length(x)-1;h=[2 3 0 -5 2 1];n2=0:1:length(h)-1;y=conv(x,h);n3=0:1:length(x)+length(h)-2;figure(1);subplot(121);stem(n1,x,'.');axis([0 6 -15 15]);title('x(n)序列');grid;subplot(122);stem(n2,h,'.');axis([0 5 -10 10]);title('h(n)序列');grid;figure(2);subplot(121);stem(n3,y,'.');axis([0 12 -60 60]);title('调⽤conv函数的线性卷积后序列');grid;N=length(x);M=length(h);L=N+M-1;for(n=1:L)y1(n)=0;for(m=1:M)k=n-m+1; if(k>=1&k<=N)y1(n)=y1(n)+h(m)*x(k); end; end; end;subplot(122);stem(n3,y1,'*');axis([0 12 -60 60]);title('按步骤计算的线性卷积后序列');grid; 结果2.卷积后结果y=[ 6 , 31 , 47 , 6 , -51 , -5 , 41 , 18 , -22 , -3 , 8 , 2]。
圆周卷积计算方法

圆周卷积计算方法圆周卷积是数字信号处理中的重要概念,它在图像处理、语音识别、通信系统等领域都有着广泛的应用。
在实际应用中,我们经常需要对信号进行圆周卷积运算,因此了解圆周卷积的计算方法对于数字信号处理工程师来说是非常重要的。
本文将介绍圆周卷积的基本概念和计算方法,希望能够对读者有所帮助。
圆周卷积的基本概念。
圆周卷积是指两个周期信号进行卷积运算后得到的周期信号。
在时域上,两个周期信号的卷积结果是它们的卷积和在一个周期内的重复。
在频域上,圆周卷积可以通过傅里叶变换来进行计算,即将两个信号分别进行傅里叶变换,然后相乘得到卷积结果的傅里叶变换,最后再进行逆变换得到圆周卷积结果。
圆周卷积的计算方法。
圆周卷积的计算方法可以分为时域计算和频域计算两种。
下面将分别介绍这两种计算方法。
时域计算方法。
时域计算方法是直接利用卷积的定义进行计算。
假设有两个周期信号x(n)和h(n),它们的周期分别为N1和N2,那么它们的圆周卷积y(n)可以通过以下公式进行计算:y(n) = Σx(k)h(n-k) mod N。
其中,k的取值范围为0到N-1,mod N表示取模运算。
这种计算方法的复杂度较高,适用于信号长度较短的情况。
频域计算方法。
频域计算方法是利用傅里叶变换将卷积运算转化为乘法运算。
假设有两个周期信号x(n)和h(n),它们的傅里叶变换分别为X(k)和H(k),那么它们的圆周卷积y(n)可以通过以下公式进行计算:y(n) = IDFT{DFT(x(n)) DFT(h(n))}。
其中,表示乘法运算,DFT表示离散傅里叶变换,IDFT表示离散傅里叶逆变换。
这种计算方法的复杂度较低,适用于信号长度较长的情况。
圆周卷积的应用。
圆周卷积在数字信号处理中有着广泛的应用。
在图像处理中,圆周卷积常常用于图像的模糊处理和边缘检测;在语音识别中,圆周卷积常常用于语音信号的特征提取和语音识别;在通信系统中,圆周卷积常常用于信道均衡和信号恢复。
数字信号处理卷积定理

数字信号处理实验报告实验二:卷积定理班级:10051041姓名:学号:10051041一、实验目的通过本实验,验证卷积定理,掌握利用DFT和FFT计算线性卷积的方法。
二、实验原理时域圆周卷积在频域上相当于两序列DFT的相乘,因而可以采用FFT的算法来计算圆周卷积,当满足121L N N≥+-时,线性卷积等于圆周卷积,因此可利用FFT计算线性卷积。
三、实验内容和步骤1.给定离散信号()x n和()h n,用图解法求出两者的线性卷积和圆周卷积;2.编写程序计算线性卷积和圆周卷积;3.比较不同列长时的圆周卷积与线性卷积的结果,分析原因。
四、实验设备计算机、Matlab软件五、实验报告要求1.整理好经过运行并证明是正确的程序,并且加上详细的注释。
2.给出笔算和机算结果对照表,比较不同列长时的圆周卷积与线性卷积的结果对照,作出原因分析报告。
3.给出用DFT计算线性卷积的方法。
六、实验结果与分析X=[0 0.5 1 1.5]Y=[1 1 1]笔算结果线性卷积:[0 0.5 1.5 3 2.5 1.5 0]圆周卷积:N=10 时[0 0.5 1.5 3 2.5 1.5 0 0 0 0 ]N=5 [1.5 0.5 1.5 3 2.5]机算结果线性卷积:[0 0.5 1.5 3 2.5 1.5 0]圆周卷积:N=10 时[0 0.5 1.5 3 2.5 1.5 0 0 0 0 ]N=5 [1.5 0.5 1.5 3 2.5]原因分析:循环卷积是线性卷积以L为周期的周期延拓序列的主值序列。
由于线性卷积的长度是N1+N2-1,所以只有当121L N N≥+-时,线性卷积以L为周期进行周期延拓时才不会发生混叠,周期序列的主值序列才等于线性卷积,即L点循环卷积代替线性卷积的条件是121L N N≥+-。
具体计算结果图示如下程序:用DFT 计算线性卷积的方法:七、实验体会通过本次实验,验证了卷积定理,熟悉了线性卷积与圆周卷积的计算方法,并验证了两者之间的关系。
线性卷积与圆周卷积的计算(杭电)

信号、系统与信号处理实验Ⅱ实验报告实验名称:线性卷积与圆周卷积的计算一、实验目的1、通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。
2、掌握线性卷积与圆周卷积软件实现的方法,并验证两者之间的关系。
二、实验内容与要求已知两个有限长序列:x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4);h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)1.编制一个计算两个线性卷积的通用程序,计算x(n)*h(n)。
2.编制一个计算圆周卷积的通用程序,计算上述4种情况下两个序列x(n)与h(n)的圆周卷积。
3.上机调试并打印或记录实验结果。
4.将实验结果与预先笔算的结果比较,验证真确性。
三、实验程序与结果1、计算两个线性卷积的通用程序,计算x(n)*h(n)。
xn=[1 2 3 4 5]hn=[1 2 1 2]N=length(xn);M=length(hn);L=N+M-1;for(n=1:L)y(n)=0;for(m=1:M)k=n-m+1;if(k>=1&k<=N)y(n)=y(n)+hn(m)*xn(k);endendendy=conv(xn,hn);ny=0:L-1;stem(ny,y) ;xlabel('n ');ylabel('y(n) ');figurestem(ny,yn) ;xlabel('n ');ylabel('y ');根据定义编写循环实现线性卷积结果:01234567n y (n )Conv 函数实现线性卷积结果:01234567n y2. 计算圆周卷积的通用程序,计算上述4种情况下两个序列x(n)与h(n)的圆周卷积。
主程序:clear allN=[5 6 9 10];xn=[1 2 3 4 5];hn=[1 2 1 2];yc1=circonv(xn,hn,N(1))yc2=circonv(xn,hn,N(2))yc3=circonv(xn,hn,N(3))yc4=circonv(xn,hn,N(4))figurestem(0:N(1)-1,yc1);xlabel('时间序号n');ylabel('信号幅度');title('5点圆周卷积');figurestem(0:N(2)-1,yc2);xlabel('时间序号n');ylabel('信号幅度');title('6点圆周卷积');figurestem(0:N(3)-1,yc3);xlabel('时间序号n');ylabel('信号幅度');title('9点圆周卷积');figurestem(0:N(4)-1,yc4);xlabel('时间序号n');ylabel('信号幅度');title('10点圆周卷积');定义函数:function yc=circonv(x1,x2,N)if length(x1)>Nerror('N必须大于等于x1的长度'); endif length(x2)>Nerror('N必须大于等于x2的长度'); endx1=[x1,zeros(1,N-length(x1))];x2=[x2,zeros(1,N-length(x2))];n=[0:N-1];x2=x2(mod(-n,N)+1);H=zeros(N,N);for n=1:1:NH(n,:)=cirshiftd(x2,n-1,N);yc=x1*H';function y=cirshiftd(x,m,N)if length(x)>Nerror('x 的长度必须小于N');endx=[x,zeros(1,N-length(x))];n=[0:1:N-1];y=x(mod(n-m,N)+1);时间序号n 信号幅度5点圆周卷积00.51 1.52 2.533.54 4.55时间序号n 信号幅度时间序号n 信号幅度时间序号n 信号幅度四、仿真结果分析编写的线性卷积程序和conv 函数的结果相同,也与笔算结果相同。
关于线性卷积及圆周卷积的简便竖式法计算

关于线性卷积及圆周卷积的简便竖式法计算
线性卷积和圆周卷积是数字信号处理中常见的两种卷积操作。
简单来说,线性卷积可以把两个信号之间的关系映射到输出上,而圆周卷积是一种更为复杂的运算,它可以寻找两个旋转的信号之间的关系。
下面就描述一下这两种卷积的简便竖式法计算。
线性卷积:
输入:
f(n)=x(n)*h(n)
f:输入信号;
x:样本函数;
h:滤波器。
步骤:
(1)将输入信号f分段;
(2)用滤波器在f的每一段输入取值上乘以x;
(3)对f的每一段结果求和,最终得到f的线性卷积输出。
圆周卷积:
输入:
F(n)=X(n)*H(n)
F:输入信号;
X:变换函数;
H:滤波器。
步骤:
(1)将输入信号F分段,每一段变换为正弦、余弦等函数;
(2)对每一段变换后的函数,用滤波器H乘以X;
(3)对每一段变换后函数结果求叠加和,以得到F的圆周卷积输出。
总结:
上述简便竖式法计算描述了两种卷积的计算步骤,即线性卷积和圆周卷积,在结果求叠加和时,用来表示信号实际上与自身的旋转有关的圆周卷积结果是不同的。
因此,这两种卷积的计算采用的步骤也有所不同。
以上就是线性卷积及圆周卷积的简便竖式法计算的长文描述。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
将实验结果和预先笔算的结果进行比较,验证其正确性。 对比可知程序完全正确,输出结果完全一致。
思考题
:有一些问题的答案已经渗透在上面的报告中,故这里不再赘述,只做一些补充 线性卷积的运算步骤一般可以分为哪几个部分? 翻转,平移,相乘,相加。 另一种思路:
1. for i in range(0,n-1):
线性卷积和 点圆周卷积:
线性卷积和 点圆周卷积:
线性卷积和
点圆周卷积:
程序清单:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. % 用直接法实现圆周卷积 % y=circonv(x1,x2,N) % y:输出序列 % x1,x2:输入序列 % N:圆周卷积的长度 function yc=circonv(x1,x2,N) if length(x1)>N error('N必须大于等于x1的长度') end if length(x2)>N error('N必须大于等于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);%对下标取模后重新排列,生成序列x2((-n))N H=zeros(N,N); for n=1:1:N H(n,:)=cirshiftd(x2,n-1,N);%该矩阵第k行为x2((k-1-n))N end yc=x1*H';%矩阵转置后进行圆周卷积
计算圆周卷积的主要流程,即翻转 序列,每次计算完一个点的值以后对 序列循环移 位然后再 序列对应相乘相加计算新的位置的点值,所以这里我们的思路就是对于翻转 后的 序列我们构造一个 波形图: 线性卷积和 点圆周卷积: 矩阵后将其转置再左乘 序列后求得的序列即是我们 要的圆周卷积序列。正确性不言而喻,就是把上面的过程用矩阵乘法的形式表现出来。
22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
' % 直接实现序列x的圆周移位 % y=cirshifed(x,m,N) % x:输入序列,且它的长度小于N % m:移位位数 % N:圆周卷积的长度 % y:输出的移位序列 function y=cirshiftd(x,m,N) if length(x)>N error('x的长度必须小于N'); end x=[x,zeros(1,N-length(x))]; n=[0:1:N-1]; y=x(mod(n-m,N)+1); % 主程序,axis 的坐标范围根据各自的圆周卷积后的长度进行调整 xn=[1,2,3,4,5]; hn=[1,2,1,2]; yln=conv(xn,hn); ycn=circonv(xn,hn,5); ny1=[0:1:length(yln)-1]; ny2=[0:1:length(ycn)-1]; subplot(2,1,1); stem(ny1,yln); subplot(2,1,2); stem(ny2,ycn); axis([0,5,0,25]);
数字信号处理实验 ——线性卷积与圆周卷积的计 算
通信中英2班 潘奕铭(16086214)
实验目的
通过编程、上机调试程序,进一步增强使用计算机解决问题的能力。 掌握线性卷积与圆周卷积软件的实现方法,并验证两者之间的关系。
基本原理
线性卷积:
圆周卷积:设两个有限长序列 如下程序:
1. 2. 3.
和
,均为 点长,则它们的 的圆周卷积等价于
2. 3.
for j in range(0,m-1): h[i+j]+=x[i]*y[j];
采用圆周卷积运算代替线性卷积运算的原因? 时域上的圆周卷积对应于频域上相当于两个序列的 从 优化到 ,即对两个序列 相乘,而这一步我们可以用 求得 序列后相乘再用
回去,运行速度大大提升,可以运用到需要更大计算量的卷积中去。
点的圆周卷积,其结果是否等于该两序列的线性卷积,完全取决于圆周卷积 时圆周卷积等于两个序列的线性卷积加上相当于下式的时间混叠,即:
实验内容
已知两个有限长序列:
实验前,预先笔算好这两个序列的线性卷积及下列几种情况的圆周卷积: 线性卷积: 点圆周卷积: 点圆周卷积: 点圆周卷积: 点圆周卷积: 编写程序计算两个序列的线性卷积和各点的圆周卷积并打印出来。 思路:线性卷积 自带了我们直接调用即可。对于圆周卷积,我们要先回顾一般
for i in range(0,n-1): for j in range(0,n-1): h[(i+j)%n)]+=x[i]*y[j];
两个有限长序列的线性卷积:序列 卷积 的最大长度为 。 圆周卷积和线性卷积的关系:序列 进行 的长度。 当
为 点长,序列 ,也就是说当 为 点长,序列 和
为 点长,则它们的线性 时 为 点长,若序列 和