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

计算步骤:
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

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 )变换对。
卷积的原理及应用实验

卷积的原理及应用实验简介卷积是一种常用的数学运算方法,广泛应用于信号处理、图像处理、神经网络等领域。
本文将介绍卷积的基本原理,并结合实验案例,说明卷积在实际应用中的重要性和效果。
卷积的基本原理卷积是一种数学运算,通过将两个函数(信号)重叠并相乘、求和得到一个新的函数(信号)。
在离散情况下,卷积的计算公式如下:\[ y[n] = \sum_{k=-\infty}^{\infty} x[k] \cdot h[n-k] \]其中,\(x[n]\) 和 \(h[n]\) 分别表示输入信号和卷积核(或滤波器),\(y[n]\) 表示卷积运算的结果。
卷积的过程卷积的过程可以简单概括为以下几个步骤: 1. 将卷积核翻转180度; 2. 将翻转后的卷积核与输入信号进行逐点相乘; 3. 对每个相乘得到的结果进行求和,得到卷积的结果。
卷积的作用卷积在信号处理和图像处理中具有重要的作用,主要有以下几个方面: - 滤波器:通过设置合适的卷积核,可以实现对信号的滤波效果,例如低通滤波器、高通滤波器等; - 特征提取:通过卷积运算,可以提取出输入信号中的特征信息,用于后续的分类、识别等任务; - 图像处理:在图像处理领域,卷积被广泛应用于图像的模糊、锐化、边缘检测等操作。
卷积的应用实验为了更好地理解卷积的原理和应用,我们将通过一个实验案例进行说明。
实验目的本实验旨在通过实际操作,展示卷积运算在图像处理中的应用效果,并通过代码的编写,深入理解卷积的原理。
实验步骤1.导入图像处理库和相关工具包;2.读取待处理的图像,并转换成灰度图像;3.设计合适的卷积核,例如边缘检测滤波器;4.对灰度图像进行卷积运算,得到处理后的图像;5.展示原始图像和处理后的图像进行对比。
实验结果通过实验,我们可以观察到卷积运算对图像的影响,例如边缘检测滤波器可以突出图像中的边缘信息,使图像更加清晰。
具体实验结果可以参考以下代码:import cv2import numpy as np# 读取图像并转换成灰度图像image = cv2.imread('input.jpg')gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 设计卷积核(边缘检测)kernel = np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]])# 进行卷积运算result = cv2.filter2D(gray_image, -1, kernel)# 展示原始图像和处理后的图像cv2.imshow('Original Image', gray_image)cv2.imshow('Result Image', result)cv2.waitKey(0)cv2.destroyAllWindows()实验结果展示了经过边缘检测滤波器处理后的图像,可以明显看到边缘信息被突出出来。
圆周卷积计算方法

圆周卷积计算方法圆周卷积是数字信号处理中的重要概念,它在图像处理、语音识别、通信系统等领域都有着广泛的应用。
在实际应用中,我们经常需要对信号进行圆周卷积运算,因此了解圆周卷积的计算方法对于数字信号处理工程师来说是非常重要的。
本文将介绍圆周卷积的基本概念和计算方法,希望能够对读者有所帮助。
圆周卷积的基本概念。
圆周卷积是指两个周期信号进行卷积运算后得到的周期信号。
在时域上,两个周期信号的卷积结果是它们的卷积和在一个周期内的重复。
在频域上,圆周卷积可以通过傅里叶变换来进行计算,即将两个信号分别进行傅里叶变换,然后相乘得到卷积结果的傅里叶变换,最后再进行逆变换得到圆周卷积结果。
圆周卷积的计算方法。
圆周卷积的计算方法可以分为时域计算和频域计算两种。
下面将分别介绍这两种计算方法。
时域计算方法。
时域计算方法是直接利用卷积的定义进行计算。
假设有两个周期信号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所示。
实验三 卷积

实验三卷积实验目的:1、掌握线性卷积的计算机编程方法,利用卷积的方法观察、分析系统响应的时域特性;2、验证卷积定理;3、掌握圆周卷积的计算机编程方法,并比较与线性卷积的差别。
利用圆周卷积的方法观察、分析系统响应的时域特性。
实验结果:圆周卷积函数circonv.mfunction y=circonv(x1,x2,N)if length(x1)>Nerror('N必须>=x1的长度')endif length(x2)>Nerror('N必须>=x2的长度')endx1=[x1 zeros(1,N-length(x1))];x2=[x1 zeros(1,N-length(x2))];m=[0:1:N-1];x2=x2(mod(-m,N)+1);H=zeros(N,N);for n=1:1:NH(n,:)=cirshift(x2,n-1,N);endy=x1*H';圆周位移函数circshift.mfunction y=cirshift(x,m,N)if length(x)>Nerror('N必须>=x的长度')endx=[x zeros(1,N-length(x))];n=[0:1:N-1];n=mod(n-m,N);y=x(n+1);M文件:g1=[1 2 3 4 5];g2=[2 2 0 1 1];yl=conv(g1,g2);y2=circonv(g1,g2,5);n1=[0:1:length(yl)-1];n2=[0:1:length(y2)-1];subplot(2,1,1);stem(n1,yl);ylabel('线性卷积');subplot(2,1,2);stem(n2,y2);ylabel('圆周卷积');>> sy3_1a.mM文件:g1=[1 3 5 7 9 11 13 15 17];g2=[1 -2 3 -2 1];yl=conv(g1,g2);y2=circonv(g1,g2,5);n1=[0:1:length(yl)-1];n2=[0:1:length(y2)-1];subplot(2,1,1);stem(n1,yl);ylabel(‘线性卷积’);subplot(2,1,2);stem(n2,y2);ylabel(‘圆周卷积’);>> sy3_1b.m??? Error using ==> circonvN必须>=x1的长度Error in ==> a at 4y2=circonv(g1,g2,5);%用函数circonv计算N1点圆周卷积分析:N必须大于等于x1的长度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 ⎥⎦⎤⎢⎣⎡-=∑-=
[]
∑---=1021)()(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 可表示如下:
∑∑-+==-++
-=11210213)()()()()(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 )()()(213
且线性卷积
)(3n x 的最大长1-+P L ,也就是说当1-≤n 和1-+≥P L n 时0)(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('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,:)=cirshiftd(x2,n-1,N);
end
yc=x1*H';
function y=cirshiftd(x,m,N)
if length(x)>N
error('length of x must be less than N');
end
x=[x,zeros(1,N-length(x))];
n=[0:1:N-1];
y=x(mod(n-m,N)+1);
clc
clear all
N1=5;
N2=6;
N3=9;
N4=10;
x1=[1,2,3,4,5];
x2=[1,2,1,2];
z1=circonv(x1,x2,N1);
subplot(4,1,1)
stem(z1);
z2=circonv(x1,x2,N2);
subplot(4,1,2);
stem(z2);
z3=circonv(x1,x2,N3);
subplot(4,1,3);
stem(z3);
z4=circonv(x1,x2,N4);
subplot(4,1,4);
stem(z4);
3、上机调试并打印或记录实验结果。
4、将实验结果与预先笔算的结果比较,验证其正确性。
五、实验报告
1、列出计算两种卷积的公式,列出实验程序清单(包括必要的程序说明)。
2、记录调试运行情况及所遇问题的解决方法。
3、给出实验结果,并对结果作出分析。
验证圆周卷积两者之间的关系。