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

合集下载

圆周卷积的积分算法

圆周卷积的积分算法
由于yi(n)的长度为N,而xi(n)的长度为N2,因此相邻两yi(n)序列必然有N-N2=N1-1点发生重叠,这个重叠部分应该相加起来才能构成最后的输出序列。
计算步骤:
a.事先准备好滤波器参数H(k)=DFT[h(n)],N点
b.用N点FFT计算Xi(k)=DFT[xi(n)]
c.Yi(k)=Xi(k)H(k)
程序:
function y = overlap_add(x1,x2,N)
%重叠相加法实现
%将高点数DFT转化为低点数DFT
M = length(x2);%获得x2(n)的长度
if N<M
N = M+1;
end
L = M+N-1;
Lx = length(x1);
T = ceil(Lx/N);%确定分段数
其次,我要感谢帮助过我的同学,同时也感谢学院为我提供良好的做课程设计的环境。
最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学!
参考文献
[1]刘泉,阙大顺,郭志强.数字信号处理.北京:电子工业出版社,2009
[2]唐昌建.Matlab编程基础与应用.四川:四川大学网络教育学院,2003
[3]陈怀琛.数字信号处理教程-Matlab释疑与实现.北京:电子工业出版社,2004
2.2圆周卷积计算过程
具体步骤如下:
(1)在二元坐标上做出 与 ;
(2)把 沿着纵坐标翻转,得到 ;
(3)对 做圆周移位,得到 ;
(4) 与 对应相同的m的值进行相乘,并把结果相加,得到对应于自变量n的一个 ;
(5)换另一个n,重复以上两步,直到n取遍0到N-1所有的值,得到完整的 。
3重叠相加法原理
这次课程设计主要用到了matlab软件,这款软件在对数字信号处理的建模、编程、分析、实现等方面功能非常强大,由于之前在实验课中我们曾经接触过matlab,因此这次做起来相对轻松一些。我选做的题目是基于重叠相加法的圆周卷积,在开始进行程序设计之前,我先对理论知识进行了回顾,在熟悉了圆周卷积以及重叠相加法的原理以及matlab的应用环境后,我开始了软件的设计,虽说之前对matlab有所了解,但对软件里面的程序包并不了解,所以编程的过程中也遇到过很多问题,比如找不到需要用的函数,但通过查看软件自带的帮助信息我很快能够找到自己想要的东西,在熟悉了原理后,程序设计并不复杂,但程序的调试却花了很长时间,其中也遇到了一些莫名其妙的问题,调试成功后第二次再打开就不行了,经过了长时间的调试,并且在老师和Leabharlann 学的帮助下,我换了个软件终于解决了。

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

线性卷积与圆周卷积的计算
周三晚上
数字信号处理实验报告
实验名称:线性卷积与圆周卷积的计算(实验四)
专业班 级: 学生姓名: 学 号: 指导教师:
二○一 年 月 日
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

线性卷积和圆周卷积的关系-email-0

线性卷积和圆周卷积的关系-email-0

1、离散傅里叶级数变换推导(参考书P102)dsp31:ppt251、DFS 反变换的推导:连续周期信号的傅立叶级数为∑∑∑∞-∞=∞-∞=∞-∞=ΩΩ=Ω====Ω===ΩΩ=k nkN jk nT NT jk p p p k tjk e k X e k X nT x n x NT T NT T nT t T ek X t x πππππ2020000)(~)(~)(~)(~/2/2,,,/2)()(~0则令其中频域的周期和采样间隔:0)//(2/22Ω====ΩN N T T f p s s πππ)(~nT x 时域周期、离散序列,周期为N ,采样间隔T ;)(~0Ωk X 频域周期、离散序列,周期为N ,采样间隔0Ω;反变换推导初步结果:+∞-∞==∑∞-∞=~,)(~)(~2n e k X n x k nk N j π进一步化简。

由于knN j n rN k N j e e ππ2)(2=+离散傅立叶级数只能取k=0~N-1的N 个独立谐波分量。

因此有+∞-∞==∑-=~,)(~)(~102n e k X n x N k nk N j π2、DFS 正变换的推导:下式实际上是等比级数公式⎩⎨⎧==--=∑-=r m m N r N e e e r N j rNN j N n rn N j 其他,为任意整数0,,1122102πππ有)(~)(~)(~])(~[)(~1010)(21010)(2101022102r X N e k X e k X e e k X e n x N k N n n r k N j N n N k n r k N j N n N k rn N j kn N j N n rn N j ====∑∑∑∑∑∑∑-=-=--=-=--=-=--=-πππππ因此∑-=-=102)(~1)(~N n knN j e n x N k X π3、正、反变换最终形式推导:为与其他变换的书写形式统一,常写成∑-=-=102)(~)(~N n knN j e n x k X π,+∞-∞=~k∑-==102)(~1)(~N k nkN j e k X N n x π,+∞-∞=~n以上就是离散傅立叶级数(DFS )变换对。

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

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

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

圆周卷积计算方法

圆周卷积计算方法

圆周卷积计算方法圆周卷积是数字信号处理中的重要概念,它在图像处理、语音识别、通信系统等领域都有着广泛的应用。

在实际应用中,我们经常需要对信号进行圆周卷积运算,因此了解圆周卷积的计算方法对于数字信号处理工程师来说是非常重要的。

本文将介绍圆周卷积的基本概念和计算方法,希望能够对读者有所帮助。

圆周卷积的基本概念。

圆周卷积是指两个周期信号进行卷积运算后得到的周期信号。

在时域上,两个周期信号的卷积结果是它们的卷积和在一个周期内的重复。

在频域上,圆周卷积可以通过傅里叶变换来进行计算,即将两个信号分别进行傅里叶变换,然后相乘得到卷积结果的傅里叶变换,最后再进行逆变换得到圆周卷积结果。

圆周卷积的计算方法。

圆周卷积的计算方法可以分为时域计算和频域计算两种。

下面将分别介绍这两种计算方法。

时域计算方法。

时域计算方法是直接利用卷积的定义进行计算。

假设有两个周期信号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表示离散傅里叶逆变换。

这种计算方法的复杂度较低,适用于信号长度较长的情况。

圆周卷积的应用。

圆周卷积在数字信号处理中有着广泛的应用。

在图像处理中,圆周卷积常常用于图像的模糊处理和边缘检测;在语音识别中,圆周卷积常常用于语音信号的特征提取和语音识别;在通信系统中,圆周卷积常常用于信道均衡和信号恢复。

卷积定理验证实验

卷积定理验证实验

信息与通信工程学院实验报告课程名称:数字信号处理实验题目:卷积定理 指导教师:班级: 学号: 学生姓名: 一、实验目的与任务通过本实验,验证卷积定理,掌握利用DFT 与FFT 计算线性卷积的方法。

二、实验原理时域圆周卷积在频域上相当于两序列DFT 的相乘,因而可以采用FFT 的算法来计算圆周卷积,当满足121-+≥N N L 时,线性卷积等于圆周卷积,因此可利用FFT 计算线性卷积。

三、实验内容及步骤1. 给定离散信号)(n x 与)(n h ,用图解法求出两者的线性卷积与圆周卷积;2. 编写程序计算线性卷积与圆周卷积;3. 比较不同列长时的圆周卷积与线性卷积的结果,分析原因。

三、实验数据及程序代码给定两个序列[][]1,6,0,5,0,3,4,2,4,3,1,6,0,5,0,3,4,2X Y ==,点数N=18,分别用conv()函数与FFT 与IFFT 计算卷积。

代码如下:clc;clear;x = [1 6 0 5 0 3 4 2 4 3]; %原始序列y = [1 6 0 5 0 3 4 2];N = length(x) + length(y); %两序列的长度与z=conv(x,y); %直接计算线性卷积%利用 FFT 计算% %手动补零% x1 = [x zeros(1,N-length(x))]; %利用对序列 x 补零点% y1 = [y zeros(1,N-length(y))]; %利用对序列 x 补零点X = fft(x , N); %对两序列分别求 FFTY = fft(y, N);Z = X 、*Y; %对两序列的 FFT 相乘并求 IFFTz1=ifft(Z);figure('numbertitle','off','name','1605034243刘桢');subplot(221),stem(x);axis([1 N -inf inf]);title('序列 x');subplot(222),stem(y);axis([1 N -inf inf]);title('序列 y');subplot(223),stem(z);axis([1 N -inf inf]);title('直接卷积');subplot(224),stem(z1);axis([1 N -inf inf]);title('N=18 点的圆周卷积'); 成绩四、实验数据分析及处理笔算与机算结果如表1所示,卷积结果序列如图1所示。

圆周卷积长度

圆周卷积长度

圆周卷积长度
圆周卷积长度(Circular convolution length)是指进行圆周卷
积时输入序列和卷积核序列的长度。

在圆周卷积中,输入序列和卷积核序列都被认为是周期性的,即序列的最后一个元素与第一个元素相连。

当进行卷积运算时,序列的末尾元素会与序列的开始元素相乘。

因此,圆周卷积结果的长度会与输入序列和卷积核序列的长度有关。

圆周卷积的长度计算公式如下:
L = N + M - 1
其中,L表示圆周卷积的长度,N表示输入序列的长度,M表
示卷积核序列的长度。

需要注意的是,圆周卷积长度通常是通过在输入序列和卷积核序列末尾添加适当数量的零来计算的,以满足上述公式。

这样可以确保在进行卷积运算时,序列元素之间的关系保持不变。

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

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

信号、系统与信号处理实验Ⅱ实验报告实验名称:线性卷积与圆周卷积的计算一、实验目的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的圆周卷积输出。

总结:
上述简便竖式法计算描述了两种卷积的计算步骤,即线性卷积和圆周卷积,在结果求叠加和时,用来表示信号实际上与自身的旋转有关的圆周卷积结果是不同的。

因此,这两种卷积的计算采用的步骤也有所不同。

以上就是线性卷积及圆周卷积的简便竖式法计算的长文描述。

线性卷积和圆周卷积的关系

线性卷积和圆周卷积的关系

X~
(k0
)e
jk
2 NT
nT
k
X~
(k0
)e
j
2 N
nk
k
频域的周期和采样间隔:
s 2fs 2 / T 2 /(Tp / N ) N0
~x (nT ) 时域周期、离散,周期为 N,采样间隔 T;
X~(k0 ) 频域周期、离散,周期为 N,采样间隔 0
反变换推导初步结果:
~x (n)
L 1
圆周卷积为: y(n) [ x1(m)x2 ((n m)) L ] RL (n) m0
这里必须将一个序列变成 L 点周期延拓序列,这里采用 x2 (n) 序列:
~x2 (n) x2 ((n)) L
x2 (n rL)
r
把它带入到 y(n) 中并考虑到前面的线性卷积公式,可得到:
L 1
k 0
n0
因此
X~ (k )
1
N
1
~x (n)e
j
2 N
kn
N n0
3、为与其他变换的书写形式统一,常写成
X~ (k )
N
1
~x
(n)e
j
2 N
kn
,k
~
n0
~x (n)
1 N
N
1
X~
(k
)e
j
2 N
nk
k 0

n
~
以上就是离散傅立叶级数(DFS)变换对
引入符号:
j 2
WN e N
正变换:
n0
j 2 rN
1 e
N j 2 r
1e N
N, 0,

r mN , m为任意整数 其他r

圆周卷积定理的内容

圆周卷积定理的内容

圆周卷积定理的内容
圆周卷积定理是一项重要的信号处理理论,其在数字信号处理和图像处理领域
中得到广泛应用。

该定理是基于信号的频域表示进行推导,它描述了两个周期信号的卷积运算可以通过将它们的频域表示相乘后进行逆傅里叶变换得到。

圆周卷积定理的应用广泛,其中一个重要的应用是图像处理中的滤波操作。


图像处理中,我们经常需要对图像进行模糊、锐化或去噪等操作,而这些操作可以通过卷积运算实现。

卷积运算可以应用于图像的每个像素,通过将图像与一个特定的卷积核进行卷积操作,从而改变图像的特性。

圆周卷积定理为图像滤波提供了便捷的方法。

通过将图像和卷积核的频域表示
相乘后进行逆傅里叶变换,我们可以得到卷积运算的结果。

这种基于频域计算的方法比直接在时域进行卷积更快捷有效,特别是对于大尺寸的图像和复杂的卷积核。

除了图像处理,圆周卷积定理还在音频处理、信号分析等领域得到广泛应用。

通过将信号的频域表示相乘后进行逆傅里叶变换,我们可以实现信号的卷积运算,从而改变信号的特性。

总结来说,圆周卷积定理是一项重要的信号处理理论,其广泛应用于数字信号
处理和图像处理领域。

该定理通过将信号的频域表示相乘后进行逆傅里叶变换,实现了信号的卷积运算。

这种基于频域计算的方法比直接在时域进行卷积更快捷有效,为信号处理提供了便捷的方法。

圆周卷积与周期卷积、线性卷积的关系与计算

圆周卷积与周期卷积、线性卷积的关系与计算

圆周卷积与周期卷积、线性卷积的关系及计算一、三者关系设:1122()01()01x n n N x n n N ≤≤-≤≤-N :圆周卷积的点数⏹ 圆周卷积是周期卷积的主值序列。

周期卷积:1120()()()N m y n x m x n m -==-∑ (1)圆周卷积:1120()()()[()(())]()N c N N N m y n y n R n x m x n m R n -===-∑1210[()(())]()N N N m x m x n m R n -==-∑ (2)注意:(2)式直接使用的前提是圆周卷积的点数N 应满足:12max[,]N N N ≥(一般题目均符合此种情况)⏹ 周期卷积是线性卷积的周期延拓。

线性卷积:1112120()()*()()()N l m y n x n x n x m x n m -===-∑212121()()()*()N m x m x n m x n x n -==-=∑ (4)圆周卷积与线性卷积的关系:()[()]()c l N r y n y n rN R n ∞=-∞=+∑ (5)注意:上述关系式对任意长度的圆周卷积均适合。

二、举例说明1、对于12max[,]N N N ≥的情况,各教材例题很多,不再举例。

2、12N N N N <<或的情况。

习题8.已知序列()()2(1)(4)3(5)x n n n n n δδδδ=+-+-+-,4()()y n R n =,求:(1)()()*()z n x n y n =(2)()()f n x n =○5()y n (5点圆周卷积)。

解:(){1,2,0,0,4,3},(){1,1,1,1}x n y n ==(1)()()(){1,3,3,3,3,4,4,4,3}z n x n y n =*=(过程略) (2)()()f n x n =○5()y n (5点圆周卷积),N =5。

线性卷积与圆周卷积演示程序的设计

线性卷积与圆周卷积演示程序的设计

1.设计基本原理1.1课题研究的背景卷积运算广泛的应用于通讯、电子、自动化等领域的线性系统的仿真、分析及数字信号处理等方面。

在MATLAB中可以使用线性卷积和圆周卷积实现离散卷积。

线性卷积是工程应用的基础,但圆周卷积实现线性离散卷积具有速度快等优势。

圆周卷积采用循环移位,在MATLAB中没有专用函数,需要根据圆周卷积的运算过程编制程序代码。

本实验主要围绕线性卷积和圆周卷积的演示程序设计来展开,给出了线性卷积和圆周卷积演示的程序及动态实现。

在线性时不变连续系统中,利用系统的冲激响应和叠加原理来求系统对任意激励信号作用时的零状态响应,这就是卷积方法的原理。

因此,在时域内,卷积运算是求解线性非时变系统零状态响应的重要方法,特别是激励信号为时限信号时尤其如此。

卷积运算的计算比较复杂,是信号与系统分析中的重点和难点,特别适合用于计算机来计算。

以往的卷积积分多用fortran、c、VB等语言编程,不仅编程繁琐,而且可视性差。

用MATLAB来计算卷积积分问题要比用C、FORTRAN 等语言完成相同的事情简洁的多。

在MATLAB中,有很多现成的函数可以直接调用,而且在计算机方面,可以直接用相应的计算机符号即可。

在编写程序语言方面,它与其他语言相比更为简单。

正因为上述原因,使他深受工程技术人员及科学专家的欢迎,并很快成为应用学科计算机辅助分析、设计、仿真、教学等领域不仅可缺少的基础软件。

1.2课题研究意义本课程为电子信息工程专业的独立实践课,是建立在信号与系统、数字信号处理等课程的基础上,加强实践环节而开设的。

其目的在于通过本课程设计使学生进一步巩固数字信号处理的基本概念、理论、分析方法和实现方法;使学生能有效地将理论和实际紧密结合;增强学生软件编程实现能力和解决实际问题的能力。

通过课程设计,主要达到以下的目的:(1)使学生增进对MATLAB的认识,加深对信号处理理论的理解。

(2)使学生掌握数字信号处理中频谱分析的概念和方法。

线性卷积和圆周卷积

线性卷积和圆周卷积

x1 ( n)
DSP
1
0
x2 ( n)
N 1
n
1
0
x2 ((0 m)) N RN ( m)
N 1
n
1
x2 ((1 m)) N RN ( m)
1
N 1
m
0
y ( n) x1 ( n) N x2 ( n)
N 1
m
3 2 1 0
N 1
m
结论
DSP
设两序列为x(n)和h(n),长度分别为N、M;则其 线形卷积的长度为N+M-1,而圆周卷积的长度为 K=Max(N,M)。实际上还可以计算K+1、 K+2、。。。、N+M-1、N+M、N+M+1….等点 的圆周卷积,只有L≥N1+N2-1,则L点圆周卷 积和线性卷积相等。
DSP
圆周卷积过程
DSP
补零:若 x(n) 的长度是 N,h(n) 的长度是 M, 取,对序列补零至H点。 周期延拓:先在哑变量坐标 m 上作出 x(m) 和 h(m),将h(m)周期延拓。 翻褶,取主值序列:对 h(m)以 m=0的垂直轴 为对称轴翻褶成h (-m),然后取主值序列。 圆周移位:对得到的序列进行圆周移位。 相乘相加:与 x(m) 对应项相乘,并累加,得到 y(n)
DSP
线性卷积和圆周卷积
付海燕
实验目的
DSP
理解离散序列的线性卷积与圆周卷积的原理,比 较其相同和不同点 掌握线性卷积与圆周卷积的计算步骤和计算方法 能熟练使用Matlab的相关命令。
卷积和的运算步骤
DSP
翻 褶 : 先 作 出 x(m) 和 h(m), 将 h(m) 以 m=0的垂直轴为对称轴翻褶成h(-m)。 移位:将h(-m)移位,即得h(n-m)。当n为正 整数时,右移n位。当为负整数时,左移n位。 相乘:再将 h(n-m) 和 x(m) 的相同 m 值的对应 点值相乘 相加:把以上所有对应点的乘积叠加起来,即得 y(n)值。

线性卷积与圆周卷积实验报告

线性卷积与圆周卷积实验报告

大连理工大学实验报告学院(系):电子信息与电气工程学部专业:电子信息工程(英语强化) 班级:电英1001班姓名:刘志旋学号:201081510 组:___ 实验时间:实验室:实验台:指导教师签字:成绩:实验二电话拨号音的合成与识别五、实验数据记录和处理在函数num1_OpeningFcn中定义全局变量handles.NUM实验程序如下:1.数字键1的代码wl1=2*pi*697/8192; %数字1 的行频wh1=2*pi*1209/8192; %数字1 的列频n=[1:410]; % 每个数字用410 个采样点表示d1=sin(wl1*n)+sin(wh1*n); % 对应行频列频叠加space=zeros(1,410); %410 个0 模拟静音信号phone=[handles.NUM,d1];handles.NUM=[phone, space]; %将得到的820点存入全局变量handles.NUM中n1=strcat(get(handles.numshow,'string'),'1'); % 获取数字号码set(handles.numshow,'string',n1); % 显示号码guidata(hObject, handles); %刷新wavplay(d1,8192); %按键音其他的数字键同1,只需要修改其中的行列频和显示数字2.删除键(*键)的代码wl1=2*pi*941/8192; %*键的行频wh1=2*pi*1209/8192; %*键的列频n=[1:410];d1=sin(wl1*n)+sin(wh1*n);num=get(handles.numshow,'string'); %得到屏幕上的内容l=length(num); %得到长度n11=strrep(num,num,num(1:l-1)); %删除最后的一个字符set(handles.numshow,'string',n11); %显示现在的结果L=length(handles.NUM);handles.NUM=handles.NUM(1:L-820); %删除820点,该为要删除点的采样值guidata(hObject, handles);wavplay(d1,8192);3.全部清除键(#键)的代码wl1=2*pi*941/8192;wh1=2*pi*1477/8192;n=[1:410]; % 每个数字用 410 个采样点表示d1=sin(wl1*n)+sin(wh1*n); % 对应行频列频叠加handles.NUM=[]; %将全局变量handles.NUM清空set(handles.numshow,'string',[]); % 将显示清空guidata(hObject, handles);wavplay(d1,8192);4.识别键(receive 键)的代码L=length(handles.NUM);n=L/820;number=zeros(1,n);for i=1:nj=(i-1)*820+1;d=handles.NUM(j:(j+410-1)); % 截取出每个数字f=fft(d,8192); % 以N=2048 作FFT 变换a=abs(f);p=a.*a/8192; % 计算功率谱num(1)=find(p(1:1000)==max(p(1:1000))); % 找行频%找列频num(2)=1000+find(p(1000:1700)==max(p(1000:1700)));if (num(1) < 730)row=1; % 确定行数elseif (num(1) < 810)row=2;elseif (num(1) < 900)row=3;elserow=4;endif (num(2) < 1260)column=1; % 确定列数elseif (num(2) < 1400)column=2;elsecolumn=3;end z=[row,column]; % 确定数字if z==[4,2]phone=0;elseif z==[1,1]phone=1;elseif z==[1,2]phone=2;elseif z==[1,3]phone=3;elseif z==[2,1]phone=4;elseif z==[2,2]phone=5;elseif z==[2,3]phone=6;elseif z==[3,1]phone=7;elseif z==[3,2]phone=8;elseif z==[3,3]phone=9;end%将整型数转化成字符number=strcat(number,int2str(phone)); end% 显示号码set(handles.shownum1,'string',number);5.数字拨号音的频谱图产生代码a=handles.NUM(1:420);a=fft(a,8192);a=abs(a);figure(1)stem(a)title('第一个输入数字拨号音的频谱图')xlabel('频率Hz'),ylabel('幅度')figure(2)a=a(1:1700);stem(a)title('第一个输入数字拨号音的频谱图')xlabel('频率Hz'),ylabel('幅度')六、实验结果与分析1.GUI下的实验结果图上面的六张图从左到右,从上到下分别是:运行程序后的界面、输入1008611后的界面、按1次*键(删除键)后的界面、按1次Receive(识别键)后的界面、按1次#键(清除键)后的界面、再按1次Receive(识别键)后的界面。

仿真实验四 循环卷积和线性卷积的实现

仿真实验四 循环卷积和线性卷积的实现

实验四 循环卷积和线性卷积的实现一、实验目的1.进一步了解并掌握循环卷积与线性卷积的概念2.掌握线性卷积与循环卷积软件实现的方法,理解掌握二者的关系 二、实例分析与计算 实验原理:两个序列的N 点循环卷积定义为)())(()()]()([N n m n x m h n x n h N k NN <≤-=⊗∑-=01从定义中可以看出,循环卷积和线性卷积的不同之处在于:两个N 点序列的N 点循环卷积的结果认为N 点序列,而它们的线性卷积的结果的长度则为2N-1;循环卷积对序列的移位采取循环移位,而线性卷积对序列采取线性移位。

圆卷积与线卷积结果完全不同,出现这种差异的实质是:线卷积过程中,经反褶再向右平移的序列,在左端将依次留出空位,而圆卷积过程中,经反褶做圆移的序列,向右移去的样值又从左端循环出现,这样就使两种情况下相乘、叠加所得之数值截然不同。

根据DFT 循环卷积性质中的卷积定理)]([)]([})]()({[n h DFT n x DFT n x n h DFT N ∙=⊗可通过两种方法求两个序列的循环卷积:一是直接根据定义计算;二是根据性质先分别求两个序列的N 点DFT ,并相乘,然后取IDFT 以得到循环卷积。

第二种方法看起来要经过若干个步骤,但由于求序列的DFT 和IDFT 都有快速算法,因此它的效率比第一种方法高得多。

已知有线长序列)(n x 如图题5-8所示,试画出(1))(n x与)(n x的线卷积;(2))(n x与)(n x的4点圆卷积;(3))(n x与)(n x的10点圆卷积;(4)欲使)(n x与)(n x的圆卷积和线卷积相同,求长度L之最小值解:(1)线卷积m 0 1 2 3X(m) 0.5 1 1 0.5H(m) 0.5 0 0 0 y(0)=0.5x0.5=0.251 0.5 0 0 y(1)=1x0.5+1x0.5=11 1 0.5 0 y(2)=1x0.5+1x1+1x0.5=20.5 1 1 0.5 y(3)=0.5x0.5+1x1+1x1+0.5x0.5=2.50 0.5 1 1 y(4)=0.5x1+1x1+0.5x1=20 0 0.5 1 y(5)=0.5x1+0.5x1=10 0 0 0.5 y(6)=0.5x0.5=0.250 0 0 0 y(7)=0(2)44))((,))((n h n xm 0 1 2 3)(m x 0.5 1 1 0.5)(m h - 0.5 0.51 1y(0)=0.5x0.5+1x0.5+1x1+0.5x1=49m 0 1 2 3)(m x 0.5 1 10.5)(m h - 1 0.5 0.5 1y(1)=0.5x1+1x0.5+1x0.5+0.5x1=2m 0 1 2 3)(m x 0.5 1 1 0.5 )(m h - 1 1 0.50.5y(2)=0.5x1+1x1+1x0.5+0.5x0.5=49m 0 1 2 3)(m x 0.5 1 1 0.5 )(m h - 0.5 1 10.5y(3)=0.5x0.5+1x1+1x1+0.5x0.5=2.5(3)1010))((,))((n x n xm 0 1 2 3 4 5 6 7 8 9)(m x 0.5 1 1 0.5 0 0 0 0 0 0 )(m h - 0.5 0 00 0 0 0 0.5 1 1y(0)=0.5x0.5=0.25m 0 1 2 3 4 5 6 7 8 9)(m x 0.5 1 1 0.5 0 0 0 0 0 0 )(m h - 1 0.5 00 0 0 0 0 0.5 1y(1)=0.5x1+1x0.5=1m 0 1 2 3 4 5 6 7 8 9)(m x )(m h - 1 1 0.50 0 0 0 0 0 0.5y(2)=0.5x1+1x1+1x0.5=2m 0 1 2 3 4 5 6 7 8 9)(m x 0.5 1 1 0.5 0 0 0 0 0 0 )(m h - 0.5 1 10.5 0 0 0 0 0 0y(3)=0.5x0.5+1x1+1x1+0.5x0.5=2.5m 0 1 2 3 4 5 6 7 8 9)(m x 0.5 1 1 0.5 0 0 0 0 0 0 )(m h - 0 0.5 11 0.5 0 0 0 0 0y(4)=1x0.5+1x1+0.5x1=2m 0 1 2 3 4 5 6 7 8 9)(m x 0.5 1 1 0.5 0 0 0 0 0 0 )(m h - 0 0 0.51 1 0.5 0 0 0 0y(5)=1x0.5+0.5x1=1m 0 1 2 3 4 5 6 7 8 9)(m x 0.5 1 1 0.5 0 0 0 0 0 0 )(m h - 0 0 00.5 1 1 0.5 0 0 0y(6)=0.5x0.5=0.25m 0 1 2 3 4 5 6 7 8 9)(m x )(m h - 0 0 00 0.5 1 1 0.5 0 0y(7)=0m 0 1 2 3 4 5 6 7 8 9)(m x 0.5 1 1 0.5 0 0 0 0 0 0 )(m h - 0 0 00 0 0.5 1 1 0.5 0y(8)=0m 0 1 2 3 4 5 6 7 8 9)(m x 0.5 1 1 0.5 0 0 0 0 0 0 )(m h - 0 0 00 0 0 0.5 1 1 0.5y(9)=0 (4)L ≥M+N-1=4+4-1=7 所以L 的最小长度为7三、应用MATLAB 仿真所用程序实现如下:首先得有计算循环卷积的函数function y = circonv1(x1,x2,N)if length(x1)>Nerror('N must not be less than length of x1') endif length(x2)>Nerror('N must not be less than length of x2') endx1=[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:NH(n,:)=cirshiftd(x2,n-1,N); endy=x1*H';function y=cirshiftd(x,m,N)% 输出序列含循环移位(y=Output sequence contains circular shift 。

卷积计算的实验报告

卷积计算的实验报告

1. 理解卷积的基本概念和原理;2. 掌握卷积的计算方法;3. 通过MATLAB软件实现卷积运算;4. 分析卷积运算在信号处理中的应用。

二、实验原理卷积是一种线性运算,它描述了两个信号之间的相互作用。

对于两个离散信号x[n]和h[n],它们的卷积y[n]定义为:y[n] = Σx[k]h[n-k]其中,n和k为离散时间变量,Σ表示求和。

卷积运算具有以下性质:1. 交换律:x[n] h[n] = h[n] x[n]2. 结合律:(x[n] h[n]) g[n] = x[n] (h[n] g[n])3. 分配律:x[n] (h[n] + g[n]) = x[n] h[n] + x[n] g[n]卷积运算在信号处理中具有重要的应用,如信号滤波、系统分析、图像处理等。

三、实验内容1. 熟悉MATLAB软件环境;2. 编写MATLAB程序实现卷积运算;3. 分析卷积运算的结果,验证卷积性质;4. 应用卷积运算解决实际问题。

四、实验器材1. 计算机;2. MATLAB软件;3. 离散信号数据。

1. 创建离散信号数据:在MATLAB中创建两个离散信号x[n]和h[n],分别代表输入信号和系统响应。

2. 编写卷积程序:使用MATLAB内置函数conv实现卷积运算,计算y[n] = x[n] h[n]。

3. 分析卷积结果:观察卷积运算的结果,验证卷积性质,如交换律、结合律、分配律等。

4. 应用卷积运算解决实际问题:选择一个实际问题,如信号滤波,使用卷积运算进行求解。

六、实验结果与分析1. 卷积运算结果:运行卷积程序,得到卷积运算结果y[n]。

观察y[n]的波形,分析卷积运算对信号的影响。

2. 验证卷积性质:通过比较x[n] h[n]和h[n] x[n]的卷积结果,验证交换律;通过比较(x[n] h[n]) g[n]和x[n] (h[n] g[n])的卷积结果,验证结合律;通过比较x[n] (h[n] + g[n])和x[n] h[n] + x[n] g[n]的卷积结果,验证分配律。

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

实验三 线性卷积与圆周卷积的计算
一、 实验目的
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 )
(*)()()()(
上式称为离散卷积或线性卷积。

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

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

注:)(~1n x 为)(1n x 序列的周期化序列;)()(~1n R n x N 为)(~1n x 的主值序列。

上机编程计算时,
)
(3n x 可表示如下:
∑∑-+==-++
-=1
1
2
1
213)
()()()()(N n m n
m m n N x
m x m n x m x n x
3、两个有限长序列的线性卷积
序列)(1n x 为L 点长,序列)(2n x 为P 点长,)
(3n x 为这两个序列的线性卷积,

)
(3n x 为
∑+∞
-∞
=-=
m m n x
m x n x )
()()(2
1
3
且线性卷积
)
(3n x 的最大长1-+P L ,也就是说当1-≤n 和1-+≥P L n 时
)(3=n x 。

4、圆周卷积与线性卷积的关系
序列)(1n x 为L 点长,序列)(2n x 为P 点长,若序列)(1n x 和)(2n x 进行N 点的圆周卷积,其结果是否等于该两序列的线性卷积,完全取决于圆周卷积的长度:
当1-+≥P L N 时圆周卷积等于线性卷积,即
)(1n x N )(*)()(212n x n x n x =
当1-+<P L N 时,圆周卷积等于两个序列的线性卷积加上相当于下式的时间混叠,即
⎪⎩⎪⎨⎧-≤≤+=∑+∞
-∞
=n
N n rN n x n x r N 其它010)
()(33
三、实验步骤
已知两个有限长序列
)4(5)3(4)2(3)1(2)()(-+-+-+-+=n n n n n n x δδδδδ )3(2)2()1(2)()(-+-+-+=n n n n N H δδδδ
1、实验前,预先笔算好这两个序列的线性卷积及下列几种情况的圆周卷积
)()1(n x ⑤)(n h )()2(n x ⑥)(n h )()3(n x ⑨)(n h )()4(n x ⑩)(n h
2、编制一个计算圆周卷积的通用程序,计算上述4种情况下两个序列)(n x 与
)(n h 的圆周卷积。

function yc=circonv(x1,x2,N) if length(x1)>N error; end
if length(x2)>N error; 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,:)=cirshifted(x2,n-1,N); end
yc=x1*H';
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);
• 函数(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('圆周卷积');
3、上机调试并打印或记录实验结果。

4、将实验结果与预先笔算的结果比较,验证其正确性。

五、实验报告
1、列出计算两种卷积的公式,列出实验程序清单(包括必要的程序说明)。

2、记录调试运行情况及所遇问题的解决方法。

3、给出实验结果,并对结果作出分析。

验证圆周卷积两者之间的关系。

相关文档
最新文档