实验线性卷积与圆周卷积的计算

合集下载

实验二 DFT(FFT)的应用—利用FFT实现快速卷积

实验二 DFT(FFT)的应用—利用FFT实现快速卷积

姓名:高铭遥 班级:16131701 学号:1120171450 成绩:实验二 DFT/FFT 的应用-利用FFT 实现快速卷积[实验目的]1.深刻理解DFT/FFT 的概念和性质,进一步掌握圆周卷积和线性卷积两者之间的关系。

2.掌握DFT/FFT 的应用。

理解FFT 在实现数字滤波(或快速卷积)中的重要作用,更好地利用FFT 进行数字信号处理。

[实验内容及要求]1.给定两个序列()[]2,1,1,2x n =,()[]1,1,1,1h n =--。

首先直接在时域计算两者的线性卷积;然后用FFT 快速计算二者的线性卷积,验证结果。

(1)线性卷积 程序代码:figure(1);N1=4; N2=4; xn=[2,1,1,2]; hn=[1,-1,-1,1];N=N1+N2-1;%卷积后的序列长度 yn=conv(xn,hn);%线性卷积 x=0:N-1;stem(x,yn);title('线性卷积'); 运行结果:(2)FFT 卷积快速卷积 程序代码: figure(1); n=0:1:3; m=0:1:3;N1=length(n);%xn 的序列长度 N2=length(m);%hn 的序列长度 xn=[2,1,1,2]; hn=[1,-1,-1,1];姓名:高铭遥 班级:16131701 学号:1120171450 成绩:N=N1+N2-1;%卷积后的序列长度XK=fft(xn,N);%xn 的离散傅里叶变换 HK=fft(hn,N);%hn 的离散傅里叶变换 YK=XK.*HK;yn=ifft(YK,N);%逆变换if all(imag(xn)==0)&&(all(imag(hn)==0))%实序列的循环卷积仍为实序列 yn=real(yn); endx=0:N-1;stem(x,yn);title('FFT 卷积'); 运行结果:结果分析:对比(1)和(2)直接线性卷积和FFT 快速卷积的结果可以验证,用FFT 线性卷积的结果是与直接卷积的结果相同的,FFT 可以实现快速卷积,提高运算速度。

线性卷积与圆周卷积的计算

线性卷积与圆周卷积的计算
周三晚上
数字信号处理实验报告
实验名称:线性卷积与圆周卷积的计算(实验四)
专业班 级: 学生姓名: 学 号: 指导教师:
二○一 年 月 日
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、线性卷积和圆周卷积的关系(参考书P122)dsp31:ppt91设)(1n x 是1N 点的有限长序列)10(1-≤≤N n ,设)(2n x 是2N 点的有限长序列)10(2-≤≤N n ,(A ))(1n x 和)(2n x 的线性卷积为∑∑-=∞-∞=-=-=1021211)()()()()(N m m l m n x m x m n x m x n y 则线性卷积)(n y l 的长度为121-+N N 。

(B )两个有限长序列)(1n x 和)(2n x 做L 点的圆周卷积:首先将两个序列补零,扩成长度为L 的序列: ⎩⎨⎧-≤≤-≤≤=1,010),()(1111L n N N n n x n x ⎩⎨⎧-≤≤-≤≤=1,010),()(2222L n N N n n x n x 圆周卷积为:)(]))(()([)(1021n R m n x m x n y L L m L ⋅-=∑-=这里必须将一个序列变成L 点周期延拓序列,这里采用)(2n x 序列:∑∞-∞=+==r L rL n x n x n x )())(()(~222 把它带入到)(n y 中并考虑到前面的线性卷积公式,可得到:)(])()([)(]))(()([)(10211021n R m rL n x m x n R m n x m x n y L L m r L L m L ⋅-+=⋅-=∑∑∑-=∞-∞=-=)(])()([2101n R m rL n x m x Lr L m ⋅-+=∑∑∞-∞=-= )(])([n R rL n y L r l ⋅+=∑∞-∞=所以L 点圆周卷积)(n y 是线性卷积)(n y l 以L 为周期的周期延拓序列的主值序列。

因为)(n y l 有121-+N N 个非零值,所以延拓周期L 必须满足:121-+≥N N L 。

这时各延拓周期才不会交叠,而)(n y 的前121-+N N 个值正好是)(n y 的全部非零序列值,也正是线性卷积)(n y l 。

实验四 有限长序列的线性卷积、圆周卷积及分段卷积(数字信号处理)

实验四 有限长序列的线性卷积、圆周卷积及分段卷积(数字信号处理)

电子信息与自动化学院《数字信号处理》实验报告学号: 姓名:实验名称: 实验四 有限长序列的线性卷积、圆周卷积及分段卷积一、 实验目的(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]。

实验二 利用DFT计算线性卷积

实验二  利用DFT计算线性卷积

实验二 利用DFT 计算线性卷积一、实验目的1.掌握利用FFT 计算线性卷积的原理及具体实现方法。

2.加深理解重叠相加法和重叠保留法。

3.考察利用FFT 计算线性卷积各种方法的适用范围。

二、实验设备与环境计算机、MATLAB 软件环境三、实验基础理论1、线性卷积与圆周卷积设)(n x 为L 点序列,)(n h 为M 点序列,)(n x 和)(n h 的线性卷积为:∑∞-∞=-==m m n h m x n h n x n y )()()(*)()()(n y 的长度为:L+M-1,)(n x 和)(n h 的N 点圆周卷积为:)())(()()(10n R m n h m x n y N N m N -=∑-= 其中:1-+≥L M N此时圆周卷积等于线性卷积,而圆周卷积可利用FFT 计算。

2、快速卷积利用FFT 计算线性卷积步骤如下:(1)为了使线性卷积可以利用圆周卷积来计算,必须选择;同时为了能使用基2-FFT 完成卷积运算,要求γ2=N 。

采用补零的办法是)(n x 和)(n h 的长度均为N 。

(2)计算)(n x 和)(n h 的N 点FFT)()()()(k H n h k X n x FFTFFT →→(3)组成卷积 )()()(k H k X k Y =(4)利用IFFT 计算IDFT ,得到线性卷积y(n)(k)()IFFT Y y n −−−→3、分段卷积我们考察单位取样响应为)(n h 的线性系统,输入为)(n x ,输出为)(n y ,则)(*)()(n h n x n y =当输入序列时再开始进行卷积,会使输出相对输入有较大的延时,再者如果序列太长,需要大量的存储单元。

为此,我们把,分别求出每段的卷积,合在一起其到最后的总输出。

这种方法称为分段卷积。

分段卷积可细分为重叠相加法和重叠保留法。

重叠保留法:设)(n x 的长度为X N ,)(n h 的长度为M 。

我们把序列)(n x 分成多段N 点序列)(n x i ,每段与前一段重叠M-1个样本。

线性卷积与圆周卷积的计算(杭电)

线性卷积与圆周卷积的计算(杭电)

信号、系统与信号处理实验Ⅱ实验报告实验名称:线性卷积与圆周卷积的计算一、实验目的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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目:已知两个有限长序列
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>⑤y(n> (2>x(n>⑥y(n> (3>x(n>⑨y(n>
(4>x(n>⑩y(n>b5E2RGbCAP
●调用函数circonv
function yc=circonv(x1,x2,N>
%用直接法实现圆周卷积
%y=circonv(x1,x2,N>
%y:输出序列
%x1,x2:输入序列
%N:圆周卷积的长度
if length(x1>>N
error。

end
if length(x2>>N
error。

end
%以上语句判断两个序列的长度是否小于N
x1=[x1,zeros(1,N-length(x1>>]。

%填充序列x1(n>使其长度为N,序列h(n>的长度为N1,序列x(n>的长度为N2p1EanqFDPw
x2=[x2,zeros(1,N-length(x2>>]。

%填充序列x2(n>使其长度为N
n=[0:1:N-1]。

x2=x2(mod(-n,N>+1>。

%生成序列x2((-n>>N,镜像,可实现对x(n>以N为周期的周期延拓,加1是因为MATLAB向量下标只能从1开始。

DXDiTa9E3d
H=zeros(N,N>。

%生成N行N列的零矩阵
for n=1:1:N
H(n,:>=cirshiftd(x2,n-1,N>。

%该矩阵的k行为x2((k-1-n>>N end
yc=x1*H'。

%计算圆周卷积
●调用函数cirshiftd
function y=cirshiftd(x,m,N>
%直接实现序列x的圆周移位
%y=cirshiftd(x,m,N>
%x:输入序列,且它的长度小于N
%m:移位位数
%N:圆周卷积的长度
%y:输出的移位序列
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>。

•函数<1)x(n>⑤y(n>
clear all。

N1=5。

N2=4。

xn=[1 2 3 4 5]。

%生成x(n>
hn=[1 2 1 2]。

%生成h(n>
yln=conv(xn,hn>。

%直接用函数conv计算线性卷积
ycn=circonv(xn,hn,5>。

%用函数circonv计算N1点圆周卷积ny1=[0:1:length(yln>-1]。

ny2=[0:1:length(ycn>-1]。

subplot(2,1,1>。

%画图
stem(ny1,yln>。

ylabel('线性卷积'>。

subplot(2,1,2>。

stem(ny2,ycn>。

ylabel('圆周卷积'>。

•函数<2)x(n>⑥y(n>
clear all。

N1=5。

N2=4。

xn=[1 2 3 4 5]。

%生成x(n>
hn=[1 2 1 2]。

%生成h(n>
yln=conv(xn,hn>。

%直接用函数conv计算线性卷积
ycn=circonv(xn,hn,6>。

%用函数circonv计算N1点圆周卷积ny1=[0:1:length(yln>-1]。

ny2=[0:1:length(ycn>-1]。

subplot(2,1,1>。

stem(ny1,yln>。

ylabel('线性卷积'>。

subplot(2,1,2>。

stem(ny2,ycn>。

ylabel('圆周卷积'>。

•函数<3)x(n>⑨y(n>
clear all。

N1=5。

N2=4。

xn=[1 2 3 4 5]。

%生成x(n>
hn=[1 2 1 2]。

%生成h(n>
yln=conv(xn,hn>。

%直接用函数conv计算线性卷积
ycn=circonv(xn,hn,9>。

%用函数circonv计算N1点圆周卷积
ny1=[0:1:length(yln>-1]。

ny2=[0:1:length(ycn>-1]。

subplot(2,1,1>。

stem(ny1,yln>。

ylabel('线性卷积'>。

subplot(2,1,2>。

stem(ny2,ycn>。

ylabel('圆周卷积'>。

•函数<4)x(n>⑩y(n>
clear all。

N1=5。

N2=4。

xn=[1 2 3 4 5]。

%生成x(n>
hn=[1 2 1 2]。

%生成h(n>
yln=conv(xn,hn>。

%直接用函数conv计算线性卷积
ycn=circonv(xn,hn,10>。

%用函数circonv计算N1点圆周卷积ny1=[0:1:length(yln>-1]。

ny2=[0:1:length(ycn>-1]。

subplot(2,1,1>。

stem(ny1,yln>。

ylabel('线性卷积'>。

subplot(2,1,2>。

stem(ny2,ycn>。

ylabel('圆周卷积'>。

思考题:
①圆周卷积与线性卷积的关系:
若有x1(n>与x2<n)两个分别为N1与N2的有限长序列,则它们的线性卷积y1<n)为N1+N2-1的有限长序列,而它们的N点圆周卷积y2<n)则有以下两种情况:1,当N<N1+N2-1时,y2<n)是由y1<n)的前N点和后<N1+N2-1-N)点圆周移位后的叠加而成;N> N1+N2-1时,y2<n)的前N1+N2-1的点刚好是y1<n)的全部非零序列,而剩下的N-(N1+N2-1>个点上的序列则是补充的零。

RTCrpUDGiT
②线性卷积运算步骤:
求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)5PCzVD7HxA
③圆周卷积运算步骤:
圆周卷积过程中,求和变量为m,n为参变量,先将x2(m>周期化,形成x2((m>>N,再反转形成x2((-m>>N,取主值序列则得到x2((-m>>NRN(m>,通常称之为x2(m>的圆周反转。

对x2(m>圆周反转序列圆周右移n,形成x2((n-m>>NRN(m>,当n=0,1,2,…,N-1时,分别将x1(m>与x2((n-m>>NRN(m>相乘,并在m=0到N-1区间内求和,便得到圆周卷积y(n>。

jLBHrnAILg
④用圆周移位代替线性移位的好处:
时域圆周卷积在频域上相当于两序列的DFT的相乘,而计算DFT可以采用它的快速算法——快速傅立叶变换<FFT),因此圆周卷积和线性卷积相比,计算速度可以大大加快。

xHAQX74J0X
实验总结:
通过本次实验,我掌握了线性卷积与圆周卷积软件实现的方法,并验证了两者之间的关系,同时,通过上机调试程序,进一步增强了我使用计算机解决问题的能力。

在编程过程中照葫芦画瓢是没有用的,只有真正理解程序中的精华与奥妙,才能真正掌握,把书本上的知识转换为自己的知识。

LDAYtRyKfE
申明:
所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。

相关文档
最新文档