当前位置:文档之家› 基于重叠相加法圆周卷积的实现

基于重叠相加法圆周卷积的实现

基于重叠相加法圆周卷积的实现
基于重叠相加法圆周卷积的实现

课程设计任务书

学生姓名:专业班级:

指导教师:工作单位:信息工程学院

题目:基于重叠相加法圆周卷积的实现

初始条件:

具备数字信号处理的理论知识;

具备Matlab编程能力;

分析重叠相加法的圆周卷积的原理;

提供编程所需要的计算机一台

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1、独立编写程序实现基于重叠相加法的圆周卷积

2、用Matlab验证程序结果,并分析重叠相加法的圆周卷积的原理

3、完成符合学校要求的设计说明书

时间安排:

一周,其中3天程序设计,2天程序调试

指导教师签名:年月日

系主任(或责任教师)签名:年月日

目录

摘要 (2)

1 概述 (3)

2 理论分析 (4)

2.1圆周卷积原理 (4)

2.2重叠相加法 (5)

2.3重叠相加法圆周卷积 (6)

2.4线性卷积、圆周卷积、重叠相加法、DFT、FFT之间的联系 (8)

3 程序设计 (9)

3.1程序设计思路 (9)

3.2程序设计流程图 (10)

3.3 程序代码 (10)

4结果分析 (12)

4.1线性卷积结果 (12)

4.2重叠相加法圆周卷积结果 (13)

5心得体会 (14)

参考文献 (15)

摘要

MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,主要用于算法开发、数据可视化、数据分析以及数值计算等领域。本次课程设计将通过MATLAB软件进行重叠相加法圆周卷积的设计,并对其具体过程进行分析。关键词:MATLAB 重叠相加法圆周卷积

1概述

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JA V A的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以使用。

MATLAB具有以下特点:

1.高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;

2.具有完备的图形处理功能,实现计算结果和编程的可视化;

3.友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;

4.功能丰富的应用工具箱,为用户提供了大量方便实用的处理工具。

2 理论分析

2.1圆周卷积原理

对两个N 点序列)(1n x 和)(2n x ,除了可以做线性卷积外,还有一种很重要的卷积运算,就是圆周卷积。

则圆周卷积结果长度不变, 为N.

由上式可以得出圆周卷积与周期卷积的关系,就是有限长序列圆周卷积结果的周期延拓,等于它们周期延拓后的周期卷积。也就是说,周期卷积的主值序列,是各周期序列主值序列的圆周卷积。

若)(1n x 、)(2n x 分别是长度为N 、M 的序列则)(1n x 与)(2n x 线性卷积至多M+N-1个非零值,如果LM+N-1时,周期延拓才不会发生混叠。

之所以讨论用圆周卷积来计算线性卷积的条件,是因为圆周卷积可在频域下利用DFT 求得,从而可采用DFT 的快速算法FFT 来计算,这样就可以利用FFT 来计算线性卷积,大大提高运算效率。

??

?-≤≤-≤≤=1

10)

()(1111N n N N n n x n x ??

?-≤≤-≤≤=101

0)()(2222N n N N n n x n x ∑∑-=-=-=-=?=1

121

2121))(()())(()()

()()(N m N

N m N m n x m x m n x m x n x n x n y

圆周卷积的实现步骤如下图:

图2.1 圆周卷积的实现步骤

2.2重叠相加法

DFT 是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换频域的采样。在形式上,变换两端(时域和频域上)的序列是有限长的。DFT 具备明确且合理的物理含义,适合应用于数字系统,同时可以方便地由计算机进行运算。

对于线性非移变离散系统,可由线性卷积表示时域输入输出关系,即

y(n)=x(n)*h(n)

通常采用循环卷积降低运算量,但实际中往往无法满足对信号处理的实时性要求。因此,产生了重叠相加法,用以快速计算线性卷积,成为了DFT 的一个重要应用。

重叠相加法是将待过滤的信号分割成长为N 的若干段,如图1 所示,每一段都可以和有限时宽单位取样响应作卷积,再将过滤后的各段重叠相加。

具体算法实现原理如图2 所示,建立缓存序列,每次输入N 点序列,通过计算

x(n) 和h(n) 的循环卷积实现线性卷积运算,将缓存的M-1 点序列和卷积结果相加,并输出前N 点作为计算结果,同时缓存后M-1 点,如此循环,直至所有分段计算完毕,则输出序列y(n)为最终计算结果。

图2.2 重叠相加法的分段示意图

图2.3 重叠相加法算法示意图

2.3重叠相加法圆周卷积

在实际应用中利用FFT来计算两个序列的圆周卷积从而实现计算其线性卷积,但是常遇到的问题是参加卷积的两个序列的长度相差较大,这样长度小的序列就需要补很多的零点,这样就需要较大的存储量,运算时间也会变长。所以常用到的解决方法有两种,其中一种就是重叠相加法。

h(n)长度为N ,x(n)长度为无限长, x(n)取M 点,且与N 尽量接近

图2.4 重叠相加法的卷积示意图

重叠相加法的步骤如下

(1)将h(n)补零延长到L =M+ N -1,并计算长为L 的FFT ,得到 H(k)。 (2)分别将x k (n)补零延长到L =M+ N -1,并计算长为L 的FFT ,得到 X k (k) (3)计算)()()(k H k X k Y k k =,并求长为L 的反变换,即

)]([)(k Y IFFT n y k k =

(4)将y k (n)的重叠部分相加,最后得到结果为∑∞

-∞

==

k k

n y n y )()(

∑∞

-∞

==

k k

n x

n x )

()()

()()(kM n R n x n x M k -=x(n)与h(n)的卷积为

)

(*

)()(*)()(n x n h n h n x n y k k ∑

-∞

===)

()](*)([n y n h n x

k k k

k ∑

∑∞

-∞

=∞

-∞

==

=

2.4线性卷积、圆周卷积、重叠相加法、DFT 、FFT 之间的联系

由时域与频域的关系可知,两序列)(1n x 和)(2n x 在时域下进行线性卷积的结果等于这两个序列在频域下相乘后进行反变换回时域的结果。圆周卷积在一定条件下(L>M+N-1)与线性卷积得到的结果相同,而圆周卷积可在频域下利用DFT 求得,从而可采用DFT 的快速算法FFT 来计算,这样就可以利用FFT 来计算线性卷积,大大提高运算效率。而在利用FFT 来计算圆周卷积的过程中当两序列的长度相差较大时采用重叠相加法来进行计算可有效提高计算的效率,减小存储空间的消耗。

3 程序设计

3.1程序设计思路

线性卷积函数iconv (x1,x2,L)设计

(1)x

1(n)进行N点快速傅里叶变换得X

1

(k)

(2)x

2(n)进行N点快速傅里叶变换得X

2

(k)

(3)进行频域相乘Y(k)=X

1(k)*X

2

k

(4)对Y(k)进行反变换得到时域卷积结果y(n)

圆周卷积函数oconv(x,h,N)设计

方案1:

(1)首先取长序列x(n)进行分段的长度N,以使其分段后的长度与较短的相近(2)确定圆周卷积的周期L

(3)填充序列使得循环中对序列的索引不会超出范围

(4)确定分段数K

(5)对序列进行分段调用conv ()函数计算圆周卷积

(6)各段重叠相加

(7)取出实际的输出序列

方案2:

(1)首先取圆周卷积的周期L(即进行L点的快速傅里叶变换)

(2)计算每一分段的大小N

(3)填充序列使得循环中对序列的索引不会超出范围

(4)计算分段数T

(5)对序列进行分段调用conv ()函数计算圆周卷积

(6)各段重叠相加

(7)取出实际的输出序列

结论:方案二比较接近我们平常的思维,使用较为方便,利于程序调试。

3.2程序设计流程图

图3.1 程序设计流程图

3.3 程序代码

function y = iconv( x1,x2,L)

% 利用循环卷积计算线性卷积

% 循环卷积采用频域计算方法,已FFT代替DFT,降低运算量X1k = fft(x1,L); %x1做L点FFT

X2k = fft(x2,L); %x1做L点FFT

Yk = X1k.*X2k; %频域相乘

y = ifft(Yk); %FFT反变换得循环卷积结果

function y = oconv(x,h,N)

%重叠相加法实现

%核心为将高点数DFT转化为低点数DFT,且用循环卷积计算线性卷积M = length(h); %获得h(n)的长度

if N

N = M+1;

end

L = M+N-1; %循环卷积与线性卷积结果相同时需要进行运算的最少点数Lx = length(x); %获得x(n)的长度

T = ceil(Lx/N); %确定分段数T

t = zeros(1,M-1); %初始化序列t(n)

x = [x,zeros(1, (T+1)*N-Lx)]; %不足的分段补零

y = zeros(1, (T+1)*N); %生成输出序列y(n),长度足够长

for i=0:1:T

xi=i*N+1;

x_seg = x(xi:xi+N-1); %选择低点数计算时的分段x(n)

y_seg =iconv(x_seg,h,L); %调用循环卷积计算线性卷积

y_seg(1:M-1) = y_seg(1:M-1)+t(1:M-1);%完成重叠相加

t(1:M-1) = y_seg(N+1:L); %重新对t(n)赋值为保留的后M-1点

y(xi:xi+N-1) = y_seg(1:N); %直接输出前N个点

end

y=y(1:Lx+M-1); %取出最终的输出序列

4结果分析

先输入程序段iconv( x1,x2,L)保存为iconv.m

再输入程序段oconv(x,h,N)保存为oconv.m

输入序列和周期L

4.1 线性卷积结果

x1=[1,2,3,4,5,6,7,8,9];

x2=[3,2,1];

L=14;

iconv( x1,x2,L)

图4.1 线性卷积结果

如图可见,运算结果:3 8 14 20 26 32 38 44 50 26 9

4.2重叠相加法圆周卷积结果

x=[1,2,3,4,5,6,7,8,9];

h=[3,2,1];

N=4;

oconv(x,h,N)

图4.2 重叠相加法圆周卷积结果

如图可见,运算结果:3 8 14 20 26 32 38 44 50 26 9由程序运行结果与线性卷积结果比较可以知道程序计算结果正确的,程序设计完成。

5心得体会

MATLAB这款软件对数字信号处理的建模、编程、分析、实现有极大的帮助作用,所以我们应该掌握使用MATLAB编程来实现对数字信号的分析处理。

这次要完成的课设是基于重叠相加法圆周卷积的实现,为此我仔细研究了与题目相关的原理,包括线性卷积、周期卷积、圆周卷积、重叠相加法、离散傅里叶变换DFT、快速傅里叶变换FFT等原理知识,弄清楚了它们之间的关系。通过这次课程设计,我不仅顺利完成课程设计的要求,而且在课程设计过程中通过对相关原理的回顾,对各相关原理之间的关系有了脱胎换骨般的认识。

通过本次课设,加深了对MATLAB的理解与运用,巩固了所学的知识,还学到了许多课本上没有的知识,让我受益匪浅。

参考文献

[1]刘泉、阙大顺、郭志强,《数字信号处理》,电子工业出版社,2009

[2]Ingle.V.K,《数字信号处理(MATLAB版)(第2版)》,西安交通大学出版社,2008

[3]张德丰 ,《详解MATLAB 数字信号处理》, 电子工业出版社,2010

[4]程佩青,《数字信号处理教程(第3版)》,清华大学出版社,2008

[5]张志涌,《MATLAB教程》,北京航天航空大学出版社,2005

本科生课程设计成绩评定表

指导教师签字:

2015年1 月20 日

重叠相加法实现卷积

设计任务 计算1个给定序列与输入序列的卷积。 功能:对给定的数据进行卷积运算,要求分段卷积由循环卷积实现。要求设计有数据导入界面,各种参数从软件界面可以输入,其中给定序列可以由界面输入,对运算前后的数据绘制曲线。 要求: 1)初步完成总体设计,搭好框架,确定人机对话的界面,确定函数功能,控制参数的输入方法; 2)设计线性卷积的实现方案; 3)编写两序列作循环卷积的程序; 4)通过直接做线性卷积来检验最后结果。 设计步骤: 1)用结构化设计方法。一个程序划分成若干模块,每一个模块的函数功能要划分好,总体设计应画出流程图; 2)输入输出界面要友好; 3)源程序书写要规范,加必要的注释; 4)要提供通过直接卷积进行检验的结果; 5)程序一定要要能运行起来。

一、原理 1、算法产生背景 DFT 是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换频域的采样。在形式上,变换两端(时域和频域上)的序列是有限长的。DFT 具备明确且合理的物理含义,适合应用于数字系统,同时可以方便地由计算机进行运算。 对于线性非移变离散系统,可由线性卷积表示时域输入输出关系,即y(n)=x(n)*h(n) 通常采用循环卷积降低运算量,但实际中往往无法满足对信号处理的实时性要求。因此,产生了重叠相加法和重叠保留法两种典型的算法,用以快速计算线性卷积,成为了DFT 的一个重要应用。 2、算法基本思想 重叠相加法是将待过滤的信号分割成长为 N 的若干段,,每一段都可以和有限时宽单位取样回应作卷积,再将过滤后的各段重叠相加。 在实际应用中利用FFT来计算两个序列的圆周卷积从而实现计算其线性卷积,但是常遇到的问题是参加卷积的两个序列的长度相差较大,这样长度小的序列就需要补很多的零点,这样就需要大的存储量,运算时间也会变长。所以常用重叠相加法来解决。 如以下情况: h(n)长度为N,x(n)长度为无限长 x(n)取M点,且与N尽量接近 可采用如下方法来解决

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

圆周卷积与周期卷积、线性卷积的关系及计算 一、三者关系 设: 1122()01()01 x n n N x n n N ≤≤-≤≤-N :圆周卷积的点数 ? 圆周卷积是周期卷积的主值序列。 周期卷积:1 120()()()N m y n x m x n m -==-∑ (1) 圆周卷积:1 120 ()()()[()(())]()N c N N N m y n y n R n x m x n m R n -===-∑ 1 210 [()(())]()N N N m x m x n m R n -==-∑ (2) 注意:(2)式直接使用的前提是圆周卷积的点数N 应满足: 12max[,]N N N ≥(一般题目均符合此种情况) ? 周期卷积是线性卷积的周期延拓。 线性卷积:11 12120()()*()()()N l m y n x n x n x m x n m -===-∑ 212 1 2 1 ()()()*()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。 *利用圆周卷积与线性卷积的关系计算* ()[()]()[...(5)()(5)...]() N N r f n z n rN R n z n z n z n R n ∞ =-∞ =+=+-++++∑ 所以:()()f n x n =○5()y n ={5,7,7,6,3} 这种方法计算过程比较简单,但前提是先计算出线性卷积的结果。 三、结论 ? 圆周卷积的计算始终要记住一点:圆周卷积虽然是针对有限长序列的卷积运算,但它是由周期卷积推导而来的,故隐含了周期性。 ? (2)式虽然是圆周卷积的定义式,但要正确理解,灵活应用。它是在满足12max[,]N N N ≥的前提下由周期卷积推导而来的,其适用场合仅限于12max[,]N N N ≥的情况。

主成分分析报告matlab程序

Matlab编程实现主成分分析 .程序结构及函数作用 在软件Matlab中实现主成分分析可以采取两种方式实现:一是通过编程来实现;二是直接调用Matlab种自带程序实现。下面主要主要介绍利用Matlab的矩阵计算功能编程实现主成分分析。 1程序结构 2函数作用 Cwstd.m——用总和标准化法标准化矩阵 Cwfac.m——计算相关系数矩阵;计算特征值和特征向量;对主成分进行排序;计算各特征值贡献率;挑选主成分(累计贡献率大于85%),输出主成分个数;计算主成分载荷 Cwscore.m——计算各主成分得分、综合得分并排序 Cwprint.m——读入数据文件;调用以上三个函数并输出结果

3.源程序 3.1 cwstd.m总和标准化法标准化矩阵 %cwstd.m,用总和标准化法标准化矩阵 function std=cwstd(vector) cwsum=sum(vector,1); %对列求和 [a,b]=size(vector); %矩阵大小,a为行数,b为列数 for i=1:a for j=1:b std(i,j)= vector(i,j)/cwsum(j); end end 3.2 cwfac.m计算相关系数矩阵 %cwfac.m function result=cwfac(vector); fprintf('相关系数矩阵:\n') std=CORRCOEF(vector) %计算相关系数矩阵 fprintf('特征向量(vec)及特征值(val):\n') [vec,val]=eig(std) %求特征值(val)及特征向量(vec) newval=diag(val) ; [y,i]=sort(newval) ; %对特征根进行排序,y为排序结果,i为索引fprintf('特征根排序:\n') for z=1:length(y) newy(z)=y(length(y)+1-z); end fprintf('%g\n',newy) rate=y/sum(y); fprintf('\n贡献率:\n') newrate=newy/sum(newy) sumrate=0; newi=[]; for k=length(y):-1:1 sumrate=sumrate+rate(k); newi(length(y)+1-k)=i(k); if sumrate>0.85 break; end end %记下累积贡献率大85%的特征值的序号放入newi中fprintf('主成分数:%g\n\n',length(newi)); fprintf('主成分载荷:\n') for p=1:length(newi)

基于重叠保留法的圆周卷积

1.理论知识 1.1圆周卷积的定义 设)(1n x 和)(2n x 为长度为N 的有限长序列,且[])()(11k X n x DFT =, [])()(22k X n x DFT =,如果()()()k X k X k Y 21=,则 ()()[]k Y IDFT n y = ()()()()n R m n x m x N N N m -=∑-=11 02 (1) 证明:相当于将)(~),(~ 21n x n x 作周期卷积和后,再取主值序列。 将)(k y 周期延拓:)(~ )(~~21k X k X k Y =) (则有: [] ()()?? ? ???-=-==∑∑-=-=102110 21))(() (~)(~) (~)(~N m N N N m m n x m x m n x m x k Y IDFS n y 在主值区间)())((,1011m x m x N m N =-≤≤ ,所以: ()()()n R m n x m x n R n y n y N N m N N ?? ? ???-==∑-=1021)() ()(~)( 同样可以证明: ()())()()(1012n R m n x m x n y N N m N ??? ???-=∑-= 定义式(1)为序列)(1n x 与)(2n x 的圆周卷积,习惯表示为 ()()()n n x y 21x ⊙n = 从以上的证明过程也可以得出圆周卷积与周期卷积之间的关系,即有限长序列圆周卷积结果的周期延拓等于它们周期延拓后的周期卷积。也就是说,周期卷积的主值序列是各周期序列主值序列的圆周卷积。

1.2圆周卷积的计算 圆周卷积的具体步骤为: 第一步:在哑元坐标上做)(1m x 与)(2m x ; 第二步:把)(2m x 沿着纵坐标翻转,得到)(2m x -; 第三步:对)(2m x -做圆周移位,得()()()n R m n x N N -2; 第四步:)(1m x 与()()()n R m n x N N -2对应的相同m 的值进行相乘,并把结果进行相加,得到的对应于自变量n 的一个()n y ; 第五步:换另一个n ,重复第三、四步,直到n 取遍[0,N-1]中的所有值,得到完整的 ()n y 。 1.3重叠保留法 为了克服重叠相加法中分段卷积后,仍然需要相加的缺点,人们提出了重叠保留法。 与重叠相加法不同的是,对无限长序列()n x 1进行分段时,前一分段()n x k 1的后1-M 个抽样值与后一份段的()()n x k 11+的前1-M 个抽样值相同,且分段的长度选圆周卷积的长度L ,这样形成的分段序列为当10-≤≤L n 时,()()11+-+=M kN n x n x k ,其他时()01=n x k 。然后计算()n x 2与各分段()n x k 1之间的卷积()()()n x n x n k k 12'*y =,显然,()n k 'y 的前1-M 个值发生了混叠,不等于()n x 2与()n x k 1的卷积。把()n k 'y 的前1-M 个值舍去,保留()n k 'y 没有发生混 叠的后N 个值,形成序列()()n n y k k ' y =,11-≤≤-L n M ,()0=n y k ,其他。最后输出序列 ()()∑+∞ -∞ =-+-= k k M kN n y n y 1

层次分析报告法及matlab程序

层次分析法建模 层次分析法(AHP-Analytic Hierachy process)---- 多目标决策方法 70 年代由美国运筹学家T·L·Satty提出的,是一种定性与定量分析相结合的多目标决策分析方法论。吸收利用行为科学的特点,是将决策者的经验判断给予量化,对目标(因素)结构复杂而且缺乏必要的数据情况下,採用此方法较为实用,是一种系统科学中,常用的一种系统分析方法,因而成为系统分析的数学工具之一。 传统的常用的研究自然科学和社会科学的方法有: 机理分析方法:利用经典的数学工具分析观察的因果关系; 统计分析方法:利用大量观测数据寻求统计规律,用随机数学方法描述(自然现象、 社会现象)现象的规律。 基本内容:(1)多目标决策问题举例AHP建模方法 (2)AHP建模方法基本步骤 (3)AHP建模方法基本算法 (3)AHP建模方法理论算法应用的若干问题。 参考书:1、姜启源,数学模型(第二版,第9章;第三版,第8章),高等教育出版社 2、程理民等,运筹学模型与方法教程,(第10章),清华大学出版社 3、《运筹学》编写组,运筹学(修订版),第11章,第7节,清华大学出版社 一、问题举例: A.大学毕业生就业选择问题 获得大学毕业学位的毕业生,“双向选择”时,用人单位与毕业生都有各自的选择标准和要求。就毕业生来说选择单位的标准和要求是多方面的,例如: ①能发挥自己的才干为国家作出较好贡献(即工作岗位适合发挥专长); ②工作收入较好(待遇好); ③生活环境好(大城市、气候等工作条件等); ④单位名声好(声誉-Reputation); ⑤工作环境好(人际关系和谐等) ⑥发展晋升(promote, promotion)机会多(如新单位或单位发展有后劲)等。 问题:现在有多个用人单位可供他选择,因此,他面临多种选择和决策,问题是他将如何作出决策和选择?——或者说他将用什么方法将可供选择的工作单位排序?

序列的卷积和快速卷积运算的编程实现

课程设计任务书 学生姓名:韩新颖专业班级:电信1203班 指导教师:阙大顺王虹工作单位:信息工程学院 题目: 序列的卷积和快速卷积运算的编程实现 初始条件: 1.Matlab6.5以上版本软件; 2.课程设计辅导资料:“Matlab语言基础及使用入门”、“数字信号处理原理与实现”、“Matlab及在电 子信息课程中的应用”等; 3.先修课程:信号与系统、数字信号处理、Matlab应用实践及信号处理类课程等。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1.课程设计时间:1周(课内实践); 2.课程设计内容:序列的卷积和快速卷积运算的编程实现,具体包括:直接卷积及应用、快速卷积方 法及实现、两者的比较分析等; 3.本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设 计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结; 4.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括: ①目录; ②与设计题目相关的理论分析、归纳和总结; ③与设计内容相关的原理分析、建模、推导、可行性分析; ④程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结; ⑤课程设计的心得体会(至少500字); ⑥参考文献; ⑦其它必要内容等。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

摘要 卷积在数字信号处理中有着重要的作用。然而直接计算卷积的运算量非常大,它与序列长度的平方成反比,因此制约了卷积的应用。快速卷积是实现卷积的一种快速算法,减少了运算量,节约了时间。通过分析我们可在MATLAB里编程实现。 关键词:卷积;快速卷积;MATLAB。

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

实验三 线性卷积与圆周卷积的计算 一、 实验目的 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 0213) ()()()()(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 时 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-+

重叠相加法和重叠保留法的原理与实现

重叠相加法与重叠保存法的原理实现 侯凯 (吉林大学通信工程学院吉林长春130012) 0概述 线性卷积是求离散系统响应的主要方法之一,许多重要应用都建立在这一理论基础上,如卷积滤波等。 用圆周卷积计算线性卷积的方法归纳如下: 将长为N 2的序列x(n)延长到L,补L-N 2个零,将长为N 1的序列h(n)延长到L,补L-N 1个零。如果L ≥N1+N2-1,则圆周卷积与线性卷积相等,此时,可有FFT 计算线性卷积,方法如下: a.计算X(k)=FFT[x(n)] b.求H(k)=FFT[h(n)] c.求Y(k)=H(k)Y(k) k=0~L-1 d.求y(n)=IFFT[Y(k)] n=0~L-1 可见,只要进行二次FFT,一次IFFT 就可完成线性卷积计算。 上述结论适用于x(n)、h(n)两序列长度比较接近或相等的情况,如果x(n)、h(n)长度相差较多。例如,h(n)为某滤波器的单位脉冲响应,长度有限,用来处理一个很长的输入信号x(n),或者处理一个连续不断的信号,按上述方法,h(n)要补许多零再进行计算,计算量有很大的浪费,或者根本不能实现。为了保持快速卷积法的优越性,可将x(n)分为许多段后处理,每小段的长与h(n)接近,其处理方法有两种:重叠相加法和重叠保留法。 1重叠相加法——由分段卷积的各段相加构成总的卷积输出 假定x i (n)表示图中第i 段x(n)序列如下图: 22()(1)1()0 i x n iN n i N x n ≤≤+-?=?? 则输入序列可表为:()()i i x n x n ∞ =-∞=∑ 图1 长序列分段滤波 于是输出可分解为:()()*()()*()()i i i i i y n x n h n x n h n y n ∞∞ =-∞=-∞== =∑∑

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

实验一线性卷积与圆周卷积演示程序的设计 实验报告 学号 专业班级 指导老师 分数

《数字信号处理课程设计》任务书

实验一 线性卷积与圆周卷积演示程序的设计 一、 实验目的 目的:① 熟练掌握MATLAB 工具软件在工程设计中的使用; ② 熟练掌握线性卷积与圆周卷积的关系及LSI 离散时间系统系统响应的求解方法。 要求:① 动态演示线性卷积的完整过程; ② 动态演示圆周卷积的完整过程; ③ 对比分析线性卷积与圆周卷积的结果。 步骤:① 可输入任意2待卷积序列x1(n)、x2(n),长度不做限定。测试数据为: x1(n)={1,1,1,1,0,0,1,1,1,1,0,0},x2(n)={0,1,2,1,0,0,0,1,2,1,0,0}; ② 分别动态演示两序列进行线性卷积x1(n)﹡x2(n)和圆周卷积x1(n)⊙x2 (n)的 过程;要求分别动态演示翻转、移位、乘积、求和的过程; ③ 圆周卷积默认使用2序列中的最大长度,但卷积前可以指定卷积长度N 用以进行混叠分析; ④ 根据实验结果分析两类卷积的关系。 ⑤ 假定时域序列x1(n)、x2(n)的长度不小于10000,序列容自定义。利用 FFT 实现快速卷积,验证时域卷积定理,并与直接卷积进行效率对比。 二、实验原理 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 ) (*)()()()(

matlab动力学分析程序详解

1 1.微分方程的定义 对于duffing 方程03 2 =++x x x ω ,先将方程写作??? --==3 1122 21x x x x x ω function dy=duffing(t,x) omega=1;%定义参数 f1=x(2); f2=-omega^2*x(1)-x(1)^3; dy=[f1;f2]; 2.微分方程的求解 function solve (tstop) tstop=500;%定义时间长度 y0=[0.01;0];%定义初始条件 [t,y]=ode45('duffing',tstop,y0,[]); function solve (tstop) step=0.01;%定义步长 y0=rand(1,2);%随机初始条件 tspan=[0:step:500];%定义时间范围 [t,y]=ode45('duffing',tspan,y0); 3.时间历程的绘制 时间历程横轴为t ,纵轴为y ,绘制时只取稳态部分。 plot(t,y(:,1));%绘制y 的时间历程 xlabel('t')%横轴为t ylabel('y')%纵轴为y grid;%显示网格线

2 axis([460 500 -Inf Inf])%图形显示范围设置 4.相图的绘制 相图的横轴为y ,纵轴为dy/dt ,绘制时也只取稳态部分。红色部分表示只取最后1000个点。 plot(y(end-1000:end ,1),y(end-1000:end ,2));%绘制y 的时间历程 xlabel('y')%横轴为y ylabel('dy/dt')%纵轴为dy/dt grid;%显示网格线 5.Poincare 映射的绘制 对于不同的系统,Poincare 截面的选取方法也不同 对于自治系统一般每过其对应线性系统的固有周期,截取一次 对于非自治系统,一般每过其激励的周期,截取一次 例程:duffing 方程03 2=++x x x ω 的poincare 映射 function poincare(tstop) global omega; omega=1; T=2*pi/omega;%线性系统的周期或激励的周期 step=T/100;%定义步长为T/100 y0=[0.01;0];%初始条件 tspan=[0:step:100*T];%定义时间范围 [t,y]=ode45('duffing',tspan,y0); for i=5000:100:10000%稳态过程每个周期取一个点 plot(y(i,1),y(i,2),'b.'); hold on;% 保留上一次的图形 end xlabel('y');ylabel('dy/dt');

重叠相加法计算圆周卷积

1理论分析 1.1 圆周卷积的定义 对两个N 点序列)(1n x 和)(2n x ,除了可以做线性卷积外,还有一种很重要的卷积运算,还有一种很重要的卷积运算,就是圆周卷积。 若)(1n x 、)(2n x 的离散付里叶变换分别为()k X 1、()k X 2,且有 ()k X 3=()k X 1()k X 2 则 ()n x 3=IDFT[()k X 3] =()()()()n R m n x m x N N N m -∑-=11 02 上式即为序列)(1n x 与)(2n x 的圆周卷积,习惯表示为 ()n x 3=)(1n x ⊙)(2n x 圆周卷积与周期卷积之间的关系,就是有限长序列圆周卷积结果的周期延拓,等于它们周期延拓后的周期卷积。换句话说,周期卷积的主值序列,是各周期序列主值序列的圆周卷积。周期卷积得到是周期序列,圆周卷积得到的是有限长序列,而且长度等于参加卷积的序列的长度。 1.2 圆周卷积的计算 若)(1n x 、)(2n x 分别是长度为N 、M 的序列则)(1n x 与)(2n x 线性卷积至多M+N-1个非零值,如果LM+N-1时,周期延拓才不会发生混叠。 之所以讨论用圆周卷积来计算线性卷积的条件,是因为圆周卷积可在频域下利用DFT 求得,从而可采用DFT 的快速算法FFT 来计算,这样就可以利用FFT 来计算线性卷积,大大提高运算效率。

圆周卷积与周期卷积的卷积过程一样,只是结果只取主值序列,其具体步骤结构框图大致如下所示: 图1-1 圆周卷积计算结构框图 1.3 重叠相加法 在实际应用中利用FFT来计算两个序列的圆周卷积从而实现计算其线性卷积,但是常遇到的问题是参加卷积的两个序列的长度相差较大,这样长度小的序列就需要补很多的零点,这样就需要打的存储量,运算时间也会变长。所以常用到的解决方法有两种,其中一

周期卷积、循环卷积和线性卷积比较

数字信号处理实验报告 黎美琪 201300800610 13通信2 实验一名称:周期卷积、循环卷积和线性卷积比较 一、实验目的 1.理解周期卷积、循环卷积、线性卷积的定义 2.用图像显示上述几种卷积并对其进行直观的比较 二、实验步骤 自行设定: )它们的线性卷积()求它们的循环卷积(求它们的周期卷积(两个有限长序列 3)8(2)8)1(20 12,81,1129,1)(,2012,81,0129,8)(21==?? ?≤≤≤≤-≤≤=???≤≤≤≤≤≤-=N N n n n n x n n n n n x 实验代码:(大部分语句为图像显示处理) %循环卷积&线性卷积&周期卷积 %%线性卷积 figure(1); set(gcf, 'color', 'w')%将图的背景设置为白色 x1=[zeros(1,8),[1:4],zeros(1,4),zeros(1,8)];%原有限长序列x1(n ) x2=[zeros(1,8),ones(1,4),zeros(1,4),zeros(1,8)] ; %原有限长序列x2(n ) L=length(x1)%长度L M=length(x2)%长度M y1=conv(x1,x2) %线性卷积 subplot(311) stem(x1); title('有限长序列x1(n )') axis([1 L 0 5]) subplot(312) stem(x2); title('有限长序列x2(n )') axis([1 M 0 1]) subplot(313) stem(y1);grid on ; title('线性卷积') axis([1 L+M-1 0 11]) %%循环卷积(圆周卷积) figure(2); set(gcf, 'color', 'w')%将图的背景设置为白色 %x11=[[1:4],zeros(1,4),[1:4],zeros(1,4),[1:4],zeros(1,4)]; x11=[[1:4],zeros(1,2),[1:4],zeros(1,2),[1:4],zeros(1,2),[1:4],zeros(1

数字信号处理重叠保留法

课程设计任务书 学生姓名:专业班级: 指导教师:黄朝兵工作单位:信息工程学院 题目:基于重叠保留法圆周卷积的实现 初始条件: 具备数字信号处理的理论知识; 具备Matlab编程能力; 分析重叠保留法的圆周卷积的原理; 提供编程所需要的计算机一台 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1、独立编写程序实现基于重叠保留法的圆周卷积 2、用Matlab验证程序结果,并分析重叠保留法的圆周卷积的原理 3、完成符合学校要求的设计说明书 时间安排: 一周,其中3天程序设计,2天程序调试 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要 (1) 1 概述 (2) 2 理论分析 (3) 2.1圆周卷积与线性卷积 (3) 2.2圆周卷积的计算 (4) 2.3重叠保留法 (5) 3 程序设计 (7) 3.1程序流程 (7) 3.2程序流程图 (8) 3.3具体程序设计 (9) 3.4编写完整的程序 (10) 4 结果及分析 (11) 5 心得体会 (12) 参考文献 (13)

摘要 重叠保留法在运用时,随着数据规模的增大,运算耗时呈线性增长。当数据达到千万量级时,运算延时最少大约为2.335s,由此可见,此方法可运用于对信号的实时处理,同时重叠保留法具有较好的时间和空间复杂度。本次课程设计以matlab为工具得到重叠保留法的源程序,通过对序列的线性卷积计算,进而对重叠保留法进行更深层次的认识。 关键字:重叠保留法序列线性卷积 matlab

1 概述 对于一个长序列()n x 1和一个短序列()n x 2,长度分别为N ,M ,圆周卷积的长度为L ,在长序列的前面加上1-M 个零,然后对长序列进行分段,使得每段的长度为L 不足的用零补。且前一分段的后1-M 个抽样值和后一分段的前1-M 个抽样值相同。这样形成的分段序列为: .()()???-≤≤+-+=其他 ,01 0,11L n M kN n x n x k (1.1) 分成的段数为: 12+??? ???-+=L M N k (1.2) 然后计算()n x 2与各个分段之间的圆周卷积, ()()() ()()?? ?≤≤==其他 ,,01-L n 1-M y ⊙y '12'n n y n x n x n k k k k (1.3) 显然,()n k 'y 的前1-M 个值发生了混叠,不等于()n x 2和()n x k 1的圆周卷积,把()n k 'y 的前 1-M 个值舍去,保留没发生混叠的后N 个值,形成序列: ()()???≤≤=其他 ,,01 -L n 1-M y 'n n y k k (1.4) 最后将各段相加就可以得到最终的结果, ()()∑+∞ -∞ =-+-= k k M kN n y n y 1 (1.5)

线性卷积与圆周卷积

信号、系统与信号处理实验Ⅱ 实验报告

实验名称:线性卷积与圆周卷积的计算 一、 实验目的 (1) 通过编程、上机调试程序,进一步掌握使用计算机解决问题的能力 (2) 掌握线性卷积和圆周卷积软件实现的方法,并验证二者之间的关系 二、 实验内容与要求 1. 线性卷积 当系统输入序列为x(n),系统的单位冲击响应为h(n),输出序列为y (n ),则线性时不变系统输入、输出间的关系为: Y (n )=h (n )*x (n ) 2. 圆周卷积 设两个有限长序列1()x n 和2()x n ,均为N 点,其N 点的DFT 分别为1()X k 和2()X k ,如果312()()()X k X k X k =?,则 1 3120()[()()]()N N m x n x m x n m R n -==-∑ 1 120()(())N N m x m x n m -==-∑ 1()x n =○ N 2()x n 01n N ≤≤- 已知两个有限长序列: ()()2(1)3(2)4(3)5(4)x n n n n n n δδδδδ=+-+-+-+- ()()2(1)(2)2(3)h n n n n n δδδδ=+-+-+- (1) 实验前,预先笔算好这两个序列的线性卷积及下列几种情况的圆周卷积 ①()x n ⑤()h n ②()x n ⑥()h n ③()x n ⑨()h n ④()x n ⑩()h n (2)编制一个计算两个序列线性卷积的通用程序,计算()()x n h n *。 (3)编制一个计算圆周卷积的通用程序,计算上述4种情况下的两个序列的圆周卷积。 (4)上机调试并记录实验结果 (5)将实验结果和预先笔算的结果比较,验证其正确性。

时域和频域法计算4点卷积

已知x1(n)={2,3,2},x2(n)={1,2,3,4}(1)求出x2(m-n),当m=0,1,2,3时的序列;(2)计算出x1(n)与x2(n)的卷积;(3)用频域方法算出x1(n)与x2(n)的卷积 解:(1)m=0时,x(m-n)=x(-n) , x(-0)=x(-0+4)=1;x(-1)=x(-1+4)=4;x(-2)=3;x(-3)=2; 故x(-n)={1,4,3,2} 同理m=1时;x(m-n)=x(1-n)={2,1,4,3} 同理m=2时;x(m-n)=x(2-n)={3,2,1,4} 同理m=3时;x(m-n)=x(3-n)={4,3,2.1} (2)m=0时 3 =∑[{2,3,2,0}*{1,4,3,2}]=∑{2,12,6,0}=20 n=0 m=1时 3 =∑[{2,3,2,0}*{2,1,4,3}]=∑{4,3,8,0}=15 n=0 m=2时 3 =∑[{2,3,2,0}*{3,2,1,4}]=∑{6,6,2,0}=14 n=0

m=3时 3 =∑[{2,3,2,0}*{4,3,2.1}]=∑{8,9,4,0}=21 n=0 (3) x1(n)={2,3,2=}==> X1(k)={6, -2-2j, 2, 2j-2} x2(n)={1,2,3,4}==>X2(k)={10,-2+2j,-2,-2-2j} X1(k)?X2(k)={60, 8,- 4, 8} 令Y(k)=X1(k)·X2(k) y(n)=x1(n)x2(n) IDFT后 3 3 y(n)=(1/N )∑Y(k)e^(j(2π/4)kn)=(1/N )∑Y(k)(-j)^(kn) k=0 k=0 ={ 18,16,10,21}

基于Matlab的相关频谱分析程序教程

Matlab 信号处理工具箱 谱估计专题 频谱分析 Spectral estimation (谱估计)的目标是基于一个有限的数据集合描述一个信号的功率(在频率上的)分布。功率谱估计在很多场合下都是有用的,包括对宽带噪声湮没下的信号的检测。 从数学上看,一个平稳随机过程n x 的power spectrum (功率谱)和correlation sequence (相关序列)通过discrete-time Fourier transform (离散时间傅立叶变换)构成联系。从normalized frequency (归一化角频率)角度看,有下式 ()()j m xx xx m S R m e ωω∞ -=-∞ = ∑ 注:()() 2 xx S X ωω=,其中()/2 /2 1 lim N j n n N n N X x e N ωω→∞=-=∑ πωπ-<≤。其matlab 近似为X=fft(x,N)/sqrt(N),在下文中()L X f 就是指matlab fft 函数的计算结果了 使用关系2/s f f ωπ=可以写成物理频率f 的函数,其中s f 是采样频率 ()()2/s jfm f xx xx m S f R m e π∞ -=-∞ = ∑ 相关序列可以从功率谱用IDFT 变换求得: ()()()/2 2//2 2s s s f jfm f j m xx xx xx s f S e S f e R m d df f πωπ π ωωπ--= =? ? 序列n x 在整个Nyquist 间隔上的平均功率可以表示为 ()()() /2 /2 02s s f xx xx xx s f S S f R d df f π π ωωπ- -= =?? 上式中的

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

题目:已知两个有限长序列 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>>]。

卷积运算

卷积运算 信号的卷积运算是信号处理领域中最重要的运算之一。随着对信号与系统理论研究的深入,特别是计算机技术的不断发展,不仅使卷积方法在很我领域得到了很广泛的应用,而且卷积运算的逆运算---反卷积的问题也受到了越来越大的重视和应用。 比如,在语音识别、地震勘探、超声诊断、光学成像、系统辨识及其他诸多信号处理领域中,甚至可以说卷积与反卷积的问题无处不在,而且很多的问题,都是有待深入研究的课题。 所以,大家要切实理解和掌握好卷积分运算的各个方面,打好牢固的基础。下面,我们来看看卷积的定义是怎样的。 信号的卷积积分(简称卷积),定义为: 简记为,其中的星号是卷积运算符。注意不要与我们在编写计算机程序时所用的乘法的表示符号搞混了。在信号处理课程里,乘法往往是用居中的点来表示的,或者干脆不写居中的点,而直接将要进行乘积运算的信号(包括直流信号---它是一个常数)连在一起写。 信号的卷积运算对应着一定的物理背景,这要在我们进一步学习了关于系统的激励与响应的关系之后,才能更深入地理解。 不仅如此,信号的卷积运算还对应着一定的几何解释。从定义式我们可以看出:(1) 在积分式中,信号自变量改变了符号,这对应在几何波形上,就是将信号进行了反褶变换;(2) 并且,信号f2的波形 位置与积分变量的取值有关,积分变量在积分限内的不断变化,将导致信号的波形发生移动,即是对它不断进行平移操作;(3) 最后,每当信号处在一个新位置,都要与信号f1相乘,且依据积分的定义,要将这些乘积加起来,而其结果实际上对应着两信号波形相交部分的面积。所以,卷积运算可以用几何图解方式来直观求解。 下面我们来说明如何用它的几何意义来求解两信号的卷积。 将信号的自变量改为,信号变为。对任意给定的,卷积的计算过程为: (a) 将关于r进行反褶得到; (b) 再平移至t0得到; (c) 与相乘得到; (d) 对r进行积分得,即; 不断变化,就可以得到s(t)。

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

1.实验目的 1) 通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。 2) 掌握线性卷积与圆周卷积软件实现的方法,并验证两者之间的关系。 2.基本原理 线性卷积;圆周卷积;两个有限长序列的线性卷积;圆周卷积与线性卷积的关系。 3.实验内容及要求 已知两个有限长序列 X(n)= S (n)+2 -?+3 S -2)+4 S -3)+5 S (rt) h(n)= S (n)+2-1S+(n S -2)+2 S (3) 1.编制一个计算两个线性卷积的通用程序,计算x(n)*h(n) 。 2?编制一个计算圆周卷积的通用程序,计算上述4种情况下两个序列x(n)与h(n)的圆周卷积。 3.上机调试并打印或记录实验结果。 4.将实验结果与预先笔算的结果比较,验证真确性。 4.相应程序及图像 1 )编制一个计算两个序列线性卷积的通用程序,计算x(n)*h(n). clear all; xn=[1 2 3 4 5]; hn=[1 2 1 2]; yln=conv(xn,hn); ny=[0:1:length(yln)-1]; stem(ny,yln); xlabel('时间序号n'); ylabel('信号幅度'); title('线性卷积');

线性卷积 1 1 T — 2)编制一个计算圆周卷积的通用程序,计算上述4种情况下两个序列x(n)与h(n)的圆周卷 积。 主程序: clear all clc N=[5 6 9 10];%圆周卷积的长度向量 xn=[1 2 3 4 5]; hn=[1 2 1 2]; y1n=conv(xn,hn)%计算线性卷积 ny仁0:length(y1 n)-1;%分别计算x (n)和h ( n)的5点,6点,9点和10点圆周卷积 yc1=circ onv(xn,hn,N ⑴) yc2=circo nv(x n,h n,N(2)) yc3=circo nv(x n,h n,N(3)) yc4=circonv(xn,hn,N(4))%分别作出线性卷积和取不同点数的圆周卷积的图像比较 subplot(1,2,1) stem (n y1,y1 n); xlabel('时间序号n'); ylabel('信号幅度'); title('线性卷积'); subplot(1,2,2) stem(0:N(1)-1,yc1); xlabel('时间序号n'); ylabel('信号幅度'); title('5点圆周卷积'); figure subplot(1,2,1) stem(ny1,y1n); xlabel(' 时间序号n'); ylabel(' 信号幅度');

相关主题
文本预览
相关文档 最新文档