数字信号处理重叠保留法
北邮《数字信号处理》Matlab实验——实现重叠相加和重叠保留算法完成线性卷积的分段计算
![北邮《数字信号处理》Matlab实验——实现重叠相加和重叠保留算法完成线性卷积的分段计算](https://img.taocdn.com/s3/m/14b3b3a40029bd64783e2c62.png)
实验目的:
实现重叠相加和重叠保留算法,完成线性卷积的分段计算(可任意指定 x(n)及 h(n)) 。
试验内容:
1、对算法的概括性说明
重叠相加法是将待过滤的信号分割成长为 N 的若干段,每一段都可以和有限时宽单位 取样响应作卷积,再将过滤后的各段重叠相加。建立缓存序列,每次输入 N 点序列,通过 计算 x(n)和 h(n) 的循环卷积实现线性卷积运算,将缓存的 M‐1 点序列和卷积结果相加,并 输出前 N 点作为计算结果,同时缓存后 M‐1 点,如此循环,直至所有分段计算完毕,则输 出序列 y(n)为最终计算结果。
5、总结实验过程中出现的问题以及解决问题的具体措施
1.利用自定义函数解决代码重复使用的问题,避免多次输入同样代码。 2.构造分段补零不会实现,通过上网查资料后获得实现相关功能的代码。
可见, 用重叠相加法和重叠保留发分别计算的卷积结果与直接利用线性卷积计算的结果 一致。算法正确性得以验证。
4、结合教材 3.5.1 节作运算量分析
若有限长因果序列 x(n)和 h(n)的长度分别为 N 和 M,计算其线性卷积 y(n),需 MN 次乘 法运算,(M‐1)(N‐1)次加法运算。如果利用循环卷积方法,按基 2 时域抽选法实现 L 点 FFT 和 IFFT,需
3、实验结果
输入(参考教材例 3.4、3.5) :
n = 0:9; xn = n+1; hn = [1,0,-1]; N = 6;
y1 = conv(hn, xn) y2 = overlap_add(xn, hn, N) y3 = overlap_save(xn, hn, N)
输出:
y1 = 1 y2 = Columns 1 through 10 1.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2 2 2 2 2 2 2 2 2 -9 -10
DSP大作业2
![DSP大作业2](https://img.taocdn.com/s3/m/4bc5649c6bec0975f465e294.png)
重叠相加法和重叠保留法对于很长序列和短序列进行卷积,可采用重叠相加法和重叠保留法进行快速实现。
课本上只是通过公式图形来讲解,十分抽象。
许多人对这两种方法产生混淆,不理解,不会应用,特别是重叠保留法。
下面就先给出基本原理,再用实例讲解分析。
设h(n)的点数为M,信号x(n)为很长的序列。
重叠相加法是将长序列x(n)分解为很多段,每段x i(n)长度为L,L和M数量级相同。
将每段x i(n)和h(n)补零到N点(N>=L+M-1),用圆周卷积得到每段线性卷积的值,相邻两段输出序列的重叠M-1值相加得到正确值。
重叠保留法也是将长序列x(n)分解为很多段x i(n),但是每相邻段重叠M-1值取值(对第一段采取前面补M-1个零值),使得每段长度为N点,做N点的x i(n)和h(n)圆周卷积,将每段输出结果前M-1值去掉,剩下的值连结起来就是正确值。
下面就举例说明它们的用法。
例题1:已知 x(n)=(n+1),05≤≤, h(n)={1,0,1},分别用重叠相n加法和重叠保留法求解x(n)*h(n)。
解:通过直接卷积可知x(n)*h(n)值为 {1 2 2 2 2 2 -5 -6}。
解法一:重叠相加法已知M=3,令L=4, 将x(n)分段,得:x1(n)={1 2 3 4 };x2(n)={5 6 0 0 };将每段做N=8的圆周卷积。
x1(n) ⑧ h(n) ={1 2 2 2 -3 -4 0 0 }x2(n) ⑧ h(n) ={5 6 -5 -6 0 0 0 0}则:y1=x1(n)* h(n)= {1 2 2 2 -3 -4}y2=x1(n)* h(n)= {5 6 -5 -6}将y1尾部和y2头部值重叠 M-1=2点相加,得到y(n)={1 2 2 2 2 2 -5 -6}。
与直接卷积x(n)*h(n)值比较,发现两值相等。
说明此法正确。
解法二:重叠保留法已知M=3, 将x(n) 重叠 M-1=2点分段,每段长度为4,得:x1(n)={0 0 1 2 };x2(n)={1 2 3 4 };x3(n)={3 4 5 6 };x4(n)={5 6 0 0 };将每段做N=4的圆周卷积,得:y1=x1(n) ④ h(n) ={-1 -2 1 2 };y2=x2(n) ④ h(n) ={-2 -2 2 2 };y3=x3(n) ④ h(n) ={-2 -2 2 2 };y4=x4(n) ④ h(n) ={5 6 -5 -6 };每段输出去掉前M-1点,将剩下的值连接起来,得到y(n)={1 2 2 2 2 2 -5 -6}。
重叠相加法和重叠保留法的原理与实现
![重叠相加法和重叠保留法的原理与实现](https://img.taocdn.com/s3/m/0595e49d680203d8ce2f2483.png)
重叠相加法与重叠保存法的原理实现侯凯(吉林大学 通信工程学院 吉林 长春 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 -1d.求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()0i 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 ∞∞=-∞=-∞===∑∑其中 ()()*()i i y n x n h n =由此表明,只要将x(n)的每一段分别与h(n)卷积,然后再将这些卷积结果相加起来就可得到输出序列,这样,每一段的卷积都可用上面讨论的快速卷积来计算。
重叠相加法 重叠保留法点数与序列的关系
![重叠相加法 重叠保留法点数与序列的关系](https://img.taocdn.com/s3/m/8f96345bfd4ffe4733687e21af45b307e971f913.png)
重叠相加法重叠保留法点数与序列的关系重叠相加法和重叠保留法是在数值计算中常用的两种方法,用于计算序列或信号的运算结果。
1. 重叠相加法(Overlap-Add Method):
重叠相加法主要用于将长序列分解为多个较短的子序列进行处理。
具体步骤如下:
a. 将长序列划分为多个重叠的子序列,通常称为帧(Frame),帧之间有一定的重叠区域。
b. 对每个帧进行一定的处理(例如滤波、变换等)得到相应的子序列结果。
c. 将所有子序列结果进行重叠相加,得到最终的运算结果。
重叠相加法的优点是可以处理长序列,同时在处理过程中可以利用较短的子序列进行计算,从而减少计算量。
但是在相加过程中会引入重叠部分的累加误差,需要注意处理。
2. 重叠保留法(Overlap-Save Method):
重叠保留法也是将长序列分解为多个较短的子序列进行处理的方法,与重叠相加法不同的是,重叠保留法中的子序列是没有重叠的。
具体步骤如下:
a. 将长序列划分为多个不重叠的子序列,通常称为块(Block)。
b. 对每个块进行一定的处理得到相应的子序列结果。
c. 在处理过程中保留每个块的部分结果,将所有块的结果进
行拼接得到最终的运算结果。
重叠保留法的优点是可以避免重叠相加带来的累加误差,但是需要注意保留和拼接过程中的精度控制。
总结:
重叠相加法和重叠保留法都是在处理长序列时常用的方法。
它们通过将长序列分解为多个较短的子序列进行处理,从而减少计算量。
重叠相加法引入了重叠部分的累加误差,而重叠保留法通过不重叠的方式避免了此类误差。
具体选择使用哪种方法取决于应用场景和计算需求。
“数字信号处理”中重叠保留法的证明
![“数字信号处理”中重叠保留法的证明](https://img.taocdn.com/s3/m/b928a346767f5acfa1c7cd42.png)
一
Ke wo ds: v ra a e meh d;cr u a o v l to y r o el p s v t o ic l rc n ou in;l a o v l to i rc n ou i n ne
>
1●J
L
,L
离散 线 性 时 不 变 系统 的 响应 为 系 统 脉 冲 响 应 序列 ( ) 凡 与输入序列 ( ) 几 的线性卷积 , 通常 h n ()
v r o ri fnt e u n e e y lng o n i s q e c .Asf ra n w,ma y txbo k n d gt i n lp o e sn e c i e t e se f i e a s we k o n e t o s o iia sg a r c s i 来自 d s rb h tp o l
=
Z +地 。
卷积 , 而离 散傅 里 叶变 换 可 以通 过 快速 傅 里 叶变 换
“ 信号与系统” 课程 中给出的 ( ) h n 的线 n与 ()
性卷 积定 义 为
完成。例如 , 计算一段语音信号通过一个 FR滤波 I 器的响应就是这种情况 。先 简单介绍 “ 数字信 号处 理 ” 程 中的循 环卷 积 的定义 。 课
第3卷 3
第 6期
电气电子教学学报
J 0UR NAL OF EE E
No _ 3 No 6 l3 .
De . 01 c2 l
21 0 1年 1 2月
‘ 字 信 号 处 理 " 重 叠 保 留 法 的 证 明 ‘ 数 中
李昌利 霍冠英 ,
( 河海大学 计算机与信息学院, . 南京 2 10 , . 1 江苏 1 10 2 江苏 常州 2 32 ) 102
数字信号处理课后答案西电
![数字信号处理课后答案西电](https://img.taocdn.com/s3/m/2b49d73254270722192e453610661ed9ad515520.png)
1.2 教材第一章习题解答1. 用单位脉冲序列及其加权和表示题1图所示的序列。
解:2. 给定信号:(1)画出序列的波形,标上各序列的值;(2)试用延迟单位脉冲序列及其加权和表示序列;(3)令,试画出波形;(4)令,试画出波形;(5)令,试画出波形。
解:(1)x(n)的波形如题2解图(一)所示。
(2)(3)的波形是x(n)的波形右移2位,在乘以2,画出图形如题2解图(二)所示。
(4)的波形是x(n)的波形左移2位,在乘以2,画出图形如题2解图(三)所示。
(5)画时,先画x(-n)的波形,然后再右移2位,波形如题2解图(四)所示。
3. 判断下面的序列是否是周期的,若是周期的,确定其周期。
(1),A是常数;(2)。
解:(1),这是有理数,因此是周期序列,周期是T=14;(2),这是无理数,因此是非周期序列。
5. 设系统分别用下面的差分方程描述,与分别表示系统输入和输出,判断系统是否是线性非时变的。
(1);(3),为整常数;(5);(7)。
解:(1)令:输入为,输出为故该系统是时不变系统。
故该系统是线性系统。
(3)这是一个延时器,延时器是一个线性时不变系统,下面予以证明。
令输入为,输出为,因为故延时器是一个时不变系统。
又因为故延时器是线性系统。
(5)令:输入为,输出为,因为故系统是时不变系统。
又因为因此系统是非线性系统。
(7)令:输入为,输出为,因为故该系统是时变系统。
又因为故系统是线性系统。
6. 给定下述系统的差分方程,试判断系统是否是因果稳定系统,并说明理由。
(1);(3);(5)。
解:(1)只要,该系统就是因果系统,因为输出只与n时刻的和n时刻以前的输入有关。
如果,则,因此系统是稳定系统。
(3)如果,,因此系统是稳定的。
系统是非因果的,因为输出还和x(n)的将来值有关.(5)系统是因果系统,因为系统的输出不取决于x(n)的未来值。
如果,则,因此系统是稳定的。
7. 设线性时不变系统的单位脉冲响应和输入序列如题7图所示,要求画出输出输出的波形。
【免费下载】数字信号处理杨毅明习题答案
![【免费下载】数字信号处理杨毅明习题答案](https://img.taocdn.com/s3/m/8b33c57ffe4733687e21aa59.png)
《数字信号处理》杨毅明,部分练习题参考答案1《数字信号处理》杨毅明,部分练习题参考答案第1章1.(1)模拟信号。
(2)模拟信号。
(3)数字信号。
2.(1)分时测量。
(2)数字信号。
3.(1)麦克风。
(2)模拟信号。
4. 数字信号。
5. 数字信号处理。
6. 数字信号处理的方法。
7. 模拟电路的功率放大器。
8. 光电信号转换、低通滤波、模数转换、数字信号处理、数模转换、低通滤波和电声信号转换。
12. 数字方式。
第2章1. x(n)=18δ(n-8)+20δ(n-10)+21δ(n-12)+21δ(n-14)+20δ(n-16)+17δ(n-18)。
2. x(n)=0.5δ(n)+0.866δ(n-1)+δ(n-2)+0.866δ(n-3)+0.5δ(n-4)。
4. x(n)=2R 5(n+5)+2R 5(n-10)。
5.(1)x(n)不是周期序列。
(2)y(n)是周期序列。
6. 自然频率f=10Hz 。
7.(1)根据标准的相关系数公式,v(n)的波形比w(n)的更像u(n);(2)根据简化的相关系数公式,不能确定v(n)和w(n)哪个最像u(n)。
9. 。
)2()1(2)(2)1()(-+-+++=n n n n n r xy δδδδ10. 卫星和地球表面的距离=1200km 。
11. 该系统没有线性性质,但有时不变性质。
12. 该系统不是线性时不变系统,但它是时不变系统。
13. 。
)3()2(2)1(2)()1()()(33-+-+-+=-+=n n n n n R n R n y δδδδ14. 将R 3(n+2)向右平移2点。
15.(1)不能绝对可和。
(2)乘上一个绝对值小于1的指数序列。
16. 。
)()5.0(2)(n u n h n-=17. 。
)1(6.0)(3)(-+=n y n x n y 18. 。
)1()()(-+=n ay n bx n y 20. 。
)()()(d n n As n s n x -+=21. 。
数字信号处理判断题
![数字信号处理判断题](https://img.taocdn.com/s3/m/58b0495d83c4bb4cf7ecd188.png)
判断题1、 信号可定义为传载信息的函数2、模拟信号就是时间连续的信号3、连续时间信号就是时间连续的信号4、离散时间信号就是时间离散的信号5、数字信号就是时间幅度都是离散的信号6、系统就是反映信号处理因果关系的设备或运算7、连续时间系统就是输入输出都是连续时间信号的系统8、数字信号处理精度高9、数字信号处理不可时分复用10、数字信号处理可靠性强,但灵活性不大1、√2、×3、√4、√5、×6、√7、√8、√9、× 10、×1、理想取样可以看成实际取样的科学的本质的抽象2、连续时间的取样造成频谱的周期重复3、连续时间信号的取样可能发生频谱混叠4、离散时间信号可用序列表示5、两序列相乘就是对应序列值相乘6、所有正弦序列都是周期的7、所有复指数序列都是周期的8、当h(n)为因果序列时,系统一定是因果的9、当h(n)绝对可和时,系统一定是稳定的 10、)(1)(n u n n h =,则系统是稳定的 11、)(2)(n u n h n -=,系统是非因果的不稳定系统 12、2)()(+=n x n y ,系统是线性的 13、)()(n x a n y n =,系统是时变的14、离散时间线性非时变系统可用常系数线性差分方程描述15、系统频率响应是指系统对不同频率的正弦序列的不同传输能力16、系统频率响应是连续的非周期的17、系统频率响应是周期的,周期为2π18、任何序列的傅里叶变换都是存在的19、实序列的傅里叶变换是共轭对称的20、Z 变换的收敛域可以是方形区域21、Z 变换的收敛域是以极点来限定边界的22、双边序列的Z 变换的收敛域为环域23、)(n ∂的收敛域为整个Z 平面24、傅里叶变换就是单位圆上的Z 变换25、系统函数收敛域包括单位圆,则系统稳定26、系统函数的收敛域在环内,则系统是因果的27、极点、零点都在单位圆内,系统是最小相位系统28、极点在单位圆内,零点有在单位圆内,也有在单位圆外,则系统是最大相位系统29、极点在单位圆内,零点有在单位圆内,也有在单位圆外,则系统是非最小相位系统30、非最小相位系统可以看成最小相位系统和全通函数相乘1、√2、√3、√4、√5、√6、×7、×8、√9、√ 10、×11、× 12、× 13、√ 14、√ 15、× 16、× 17、√ 18、× 19、√ 20、×21、√ 22、√ 23、√ 24、√ 25、√ 26、× 27、√ 28、× 29、√ 30、√1、离散傅里叶变换在一个域里边是周期的,则另一个域是连续的2、离散傅里叶变换在一个域里边是非周期的,则另一个域是离散的3、离散傅里叶变换一个域里边周期的倒数是另一个域的周期4、DFT 是DFS 取主值5、DFT 不隐含周期性6、DFT 不是连续傅里叶变换的近似7、DFT 是X(z)在单位圆上的等间隔取样8、DFT 的综合就是X(z)9、DFT 和IDFT 可用一套程序计算10、补零增长可使谱线变密11、x(n)反转,X(k)也反转。
用matlaB分析重叠相加、重叠保留法
![用matlaB分析重叠相加、重叠保留法](https://img.taocdn.com/s3/m/4a1d7fd277232f60ddcca1fd.png)
用matlaB分析重叠相加、重叠保留法Matlab实验一重叠相加法和重叠保留法的实现学院:信息与通信工程学院班级:学号:班内序号姓名:一.实验原理为了实现线性卷积的快速计算方法,重叠相加法和重叠保留法的实质都是以逐段地方式通过循环卷积来完成线性卷积的计算。
将输入序列x(n)进行分段,每段长为N,且N≥M(M为有限长因果序列h(n)的长度),x(n)逐段与h(n)进行循环卷积,在重叠保留法中需在x(n)序列首部加入长度为M-1的0序列。
在算法中,在获得N个点的输入后,进行N+M-1点循环卷积计算,之后输出N个点。
通过for循环逐段进行循环卷积,使用fft 和ifft计算两个有限长序列的N点循环卷积结果。
二.源代码和流程图重叠相加法代码function [Y]=overpl(x,h,N)Lx=length(x); %序列长度M=length(h); %h(n)长度x=[x,zeros(1,N-1)];t=zeros(1,M-1);Y=zeros(1,Lx+M-1);a=floor(Lx/N);for k=0:aA=x(k*N+1:k*N+N);y1=fft(A,Lx+M-1); %利用fft进行运算y2=fft(h,Lx+M-1);y3=y1.*y2;q=ifft(y3,Lx+M-1);Y(k*N+1:k*N+M-1)=q(1:M-1)+t(1:M-1);Y(k*N+M:k*N+N)=q(M:N);t(1:M-1)=q(N+1:N+M-1);endY(1:Lx+M-1);对应流程图图二图一:每段利用fft和ifft实现循环卷积图二:对x(n)逐段进行循环卷积然后相加得输出线性卷积结果y(n)重叠保留法代码function[Y]=overlpsav(x,h,N)Lx=length(x);M=length(h);M1=M -1;L=N-M1;h=[h,zeros(1,N-M)];x=[zeros(1,M1),x,zeros(1,N-1)];a=floor ((Lx+M1-1)/(L))+1;Y=zeros(1,N);for k=0:a-1xk=x(k*L+1:k*L+N);b=fft(xk,N);C=fft(h,N);Z=b.*C;Y(k+1,:)=ifft(Z,N);endY=Y(:,M:N)';Y=(Y(:))'对应流程图三.实验结果重叠相加法x=[1,2,3,4,5,6,7,8,9,10] h=[1,0,-1] N=6重叠保留法x=[1,2,3,4,5,6,7,8,9,10] h=[1,0,-1] N=4四.结果分析(有关运算量的定量分析结果)有限长因果序列x(n)h(n)的长度分别为N和M,直接计算线性卷积y(n),y(n)可视为N个序列的叠加结果,序列长度为M,所以每生成一个序列需完成M次乘法,共需完成MN次乘法运算。
重叠相加法与重叠保留法原理
![重叠相加法与重叠保留法原理](https://img.taocdn.com/s3/m/263ae42b0a1c59eef8c75fbfc77da26925c5960e.png)
重叠相加法通过将多个重叠的图像或数据序列叠加在一起,可以获得更完整或更丰富的信息。这种方法常用于拼接图像和合并数据集。
重叠保留法则是一种保留重叠部分并处理其他部分的方法。它常用于图像拼接和数据处理中,可以保留重要细节和避免重复计算。
结论与展望
CATALOGUE
06
重叠相加法
01
该方法通过将重叠部分相加来计算重叠面积,适用于不同重叠程度和形状的图形重叠问题。在重叠面积较小的情况下,该方法能够得到较为精确的结果。
随着信号处理技术的发展,对重叠相加法和重叠保留法的研究有助于提高信号处理的效果和精度,进一步推动相关领域的技术进步。
深入理解这两种算法的原理和特点,有助于在实际应用中选择合适的算法,提高信号处理的效果和效率。
重叠相加法原理
CATALOGUE
02
重叠相加法是一种将多个重叠部分进行相加的方法,用于解决重叠或交叉的问题。
详细描述
重叠相加法适用于需要计算重叠部分总和的场景,而重叠保留法适用于需要保留最大值的场景。
总结词
重叠相加法适用于那些需要将重叠部分累加的场景,例如计算重叠部分的面积、体积等。而重叠保留法适用于那些需要保留最大值的场景,例如在图像处理中,重叠保留法可以用于保留最大的像素值,以突出显示图像中的重要区域。
跨学科合作
加强与其他学科领域的合作与交流,借鉴相关学科的理论和方法,推动重叠相加法和重叠保留法的进一步发展。
标准化与规范化
制定重叠相加法和重叠保留法的标准操作流程和规范,促进其在不同领域中的普及和应用。同时,加强与其他国家和地区的交流与合作,推动相关方法的国际标准化进程。
应用拓展
将重叠相加法和重叠保留法应用于更多领域,如地理信息系统、图像处理、生物信息学等。探索其在不同领域中的实际应用价值,为相关领域的研究提供新的思路和方法。
数字信号处理》第三版课后习题答案
![数字信号处理》第三版课后习题答案](https://img.taocdn.com/s3/m/569ae2aa31126edb6e1a102f.png)
数字信号处理课后答案教材第一章习题解答1.用单位脉冲序列()nδ及其加权和表示题1图所示的序列。
解:2.给定信号:25,41 ()6,040,n nx n n+-≤≤-⎧⎪=≤≤⎨⎪⎩其它(1)画出()x n序列的波形,标上各序列的值;(2)试用延迟单位脉冲序列及其加权和表示()x n序列;(3)令1()2(2)x n x n=-,试画出1()x n波形;(4)令2()2(2)x n x n=+,试画出2()x n波形;(5)令3()2(2)x n x n=-,试画出3()x n波形。
解:(1)x(n)的波形如题2解图(一)所示。
(2)(3)1()x n的波形是x(n)的波形右移2位,在乘以2,画出图形如题2解图(二)所示。
(4)2()x n的波形是x(n)的波形左移2位,在乘以2,画出图形如题2解图(三)所示。
(5)画3()x n时,先画x(-n)的波形,然后再右移2位,3()x n波形如题2解图(四)所示。
3.判断下面的序列是否是周期的,若是周期的,确定其周期。
(1)3()cos()78x n A n ππ=-,A 是常数;(2)1()8()j n x n e π-=。
解:(1)3214,73w w ππ==,这是有理数,因此是周期序列,周期是T=14;(2)12,168w wππ==,这是无理数,因此是非周期序列。
5.设系统分别用下面的差分方程描述,()x n 与()y n 分别表示系统输入和输出,判断系统是否是线性非时变的。
(1)()()2(1)3(2)y n x n x n x n =+-+-; (3)0()()y n x n n =-,0n 为整常数; (5)2()()y n x n =; (7)0()()nm y n x m ==∑。
解:(1)令:输入为0()x n n -,输出为'000'0000()()2(1)3(2)()()2(1)3(2)()y n x n n x n n x n n y n n x n n x n n x n n y n =-+--+---=-+--+--=故该系统是时不变系统。
数字信号处理第三章习题解答
![数字信号处理第三章习题解答](https://img.taocdn.com/s3/m/c0b3bdaad1f34693daef3e58.png)
(4)在频带宽度不变的情况下,将频率分辨率提高一倍的N值。
解:
(1)已知
(2)
(3)
(4)频带宽度不变就意味着采样间隔T不变,应该使记录时间扩大一倍为0.04s实现频率分辨率提高一倍(F变为原来的1/2)
18.我们希望利用 长度为N=50的FIR滤波器对一段很长的数据序列进行滤波处理,要求采用重叠保留法通过DFT来实现。所谓重叠保留法,就是对输入序列进行分段(本题设每段长度为M=100个采样点),但相邻两段必须重叠V个点,然后计算各段与 的L点(本题取L=128)循环卷积,得到输出序列 ,m表示第m段计算输出。最后,从 中取出B个,使每段取出的B个采样点连接得到滤波输出 。
————第三章————
离散傅里叶变换DFT
3.1 学习要点
3.1.1DFT的定义、DFT与Z变换(ZT)、傅里叶变换(FT)的关系及DFT的物理意义
1.DFT的定义
设序列 为有限长序列,长度为 ,则定义 的 点离散傅立叶变换为
(3.1)
的 点离散傅立叶逆变换为
(3.2)
其中, , 成为DFT变换区间长度。
学习DFT的性质时,应与傅里叶变换的性质对照学习,要搞清两者的主要区别。我们知道,傅里叶变换将整个时域作为变换区间,所以在其性质中,对称性以原点为对称点,序列的移动范围无任何限制。
然而,DFT是对有限长序列定义的一种变换,也就是说,DFT变换区间为 。这一点与傅立叶变换截然不同,由于 及 区间在DFT变换区间以外,所以讨论对称性时,不能再以原点作为对称点,而是以 点作为对称点。为了区别于无限长共轭对称序列,用 和 分别表示有限长(或圆周)共轭对称序列和共轭反对称序列。其定义为
即 隐含周期性,周期为 。
数字信号处理实验第一次报告实验三-快速傅立叶变换及其应用
![数字信号处理实验第一次报告实验三-快速傅立叶变换及其应用](https://img.taocdn.com/s3/m/d203f78d3b3567ec112d8a1f.png)
实验三快速傅立叶变换及其应用姓名:学号:一.实验平台二.实验目的:(1)在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB中的有关函数。
(2)应用FFT对典型信号进行频谱分析。
(3)了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。
(4)应用FFT实现序列的线性卷积和相关。
三.实验原理:(1)混叠:采样序列的频谱是被采样信号频谱的周期延拓,当采样频率不满足奈奎斯特采样定理的时候,就会发生混叠,使得刺痒后的序列信号的频谱不能真实的反映原采样信号的频谱。
(2)泄露:根据理论分析,一个时间的信号其频带宽度为无限,一个时间无限的信号其频带宽度则为有限。
因此对一个时间有限的信号,应用DFT进行分析,频谱混叠难以避免。
对一个时间无限的信号虽然频带有限,但在实际运算中,时间总是取有限值,在将信号截断的过程中,出现了分散的扩展谱线的现象,称之为频谱泄露或功率泄露。
(3)栅栏效应:DFT是对单位圆上Z变换的均匀采样,所以它不可能将频谱视为一个连续函数,就在一定意义上看,用DFT来观察频谱就好象通过一个栅栏来观看一个景象一样,只能在离散点上看到真实的频谱,这样就有可能发生一些频谱的峰点和谷点被“尖桩的栅栏”所挡住,不能被我们观察到。
(4)圆周卷积:把序列X(N)分布在N等份的圆周上,而序列Y(N)经反摺后也分布在另一个具有N等份的同心圆的圆周上。
两圆上对应的数两量两相乘求和,就得到全部卷积序列。
这个卷积过程称做圆周卷积。
(5)互相关函数反映了两个序列X(N)和Y(N)的相似程度,用FFT可以很快的计算互相关函数。
四.实验内容:实验中用到的函数序列:(a)Gaussian序列exp(-(n-p).^2)/q), 0=<n=<15X a(n)=0, 其他(b)衰减正弦序列exp(-an)*sin(2pi*fn),0=<n=<15X(b)=0, 其他(c)三角波序列n, 0=<n=<3X b(n)= 8-n, 4=<n=<70, 其他(d)反三角波序列4-n, 0=<n=<3X c(n)= n-4, 4=<n=<70, 其他五.上机实验内容:1.观察高斯序列的时域和幅频特性,固定信号xa(n)中参数p=8,改变q的值,使q分别等于2,4,8,观察他们的时域和幅频特性,了解当q取不同值时,对信号序列的时域和幅频特性影响;改变p,使p分别等于8,13,14,观察参数p变化对信号序列的时域和幅频特性影响,注意p等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。
数字信号处理重叠保留法
![数字信号处理重叠保留法](https://img.taocdn.com/s3/m/69f7201c8762caaedc33d41f.png)
课程设计任务书学生姓名:专业班级:指导教师:黄朝兵工作单位:信息工程学院题目:基于重叠保留法圆周卷积的实现初始条件:具备数字信号处理的理论知识;具备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为工具得到重叠保留法的源程序,通过对序列的线性卷积计算,进而对重叠保留法进行更深层次的认识。
关键字:重叠保留法序列线性卷积 matlab1 概述对于一个长序列()n x 1和一个短序列()n x 2,长度分别为N ,M ,圆周卷积的长度为L ,在长序列的前面加上1-M 个零,然后对长序列进行分段,使得每段的长度为L 不足的用零补。
且前一分段的后1-M 个抽样值和后一分段的前1-M 个抽样值相同。
这样形成的分段序列为:.()()⎩⎨⎧-≤≤+-+=其他,010,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 kM kN n y n y 1 (1.5)2 理论分析2.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 -=∑-=1102 (2.1.1)证明:相当于将)(~),(~21n x n x 作周期卷积和后,再取主值序列。
DSP实验报告重叠保留法和重叠相加法(精)
![DSP实验报告重叠保留法和重叠相加法(精)](https://img.taocdn.com/s3/m/3b4d55080b4e767f5acfce1a.png)
北京邮电大学实学班姓学日验报告MATLAB 实现线性卷积运算院:信息与通信工程学院级:名: ______号:期:实验名称:用索引一、实验原理 ..................................................................................................................... 3 1、算法产生背景 (3)2、算法基本思想 ...........................................................................................................................3 1)重叠相加法 (3)2)重叠保留法 ...........................................................................................................................4 二、流程图设计 . ................................................................................................................. 5 1、重叠相加法 . .............................................................................................................................. 5 2、重叠保留法 . (6)三、MATLAB 源代码 . ........................................................................................................... 7 1、重叠相加源码 ...........................................................................................................................7 2、重叠保留源码 ...........................................................................................................................8 四、实验结果与分析 ........................................................................................................... 9 ①调用CONV (计算 . ......................................................................................................................... 9 ②测试重叠相加算法 (9)③测试重叠保留算法 .....................................................................................................................9 五、讨论与总结 . ............................................................................................................... 10 1、算法效率分析: .....................................................................................................................10 A. 重叠相加法 . (10)B. 重叠保留法 . ........................................................................................................................... 11 C. 调用conv( .............................................................................................................................12 D. 综合对比分析 . ....................................................................................................................... 13 2、故障和问题分析 (14)①分段问题 . .............................................................................................................................. 14 ②运算完整性问题....................................................................................................................14 ③算法硬件实现 (14)一、实验原理1、算法产生背景DFT 是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换频域的采样。
数字信号处理-答案第四章
![数字信号处理-答案第四章](https://img.taocdn.com/s3/m/8c79c38483d049649b66586c.png)
y
l 1
m
( n) ,然后对它求一次 N 点
DFT , 即可计算 X ( z )在单位圆上的 N点抽样 (b)若:N M,可将x ( n)补零 到N点, 即 x ( n) x0 ( n ) 0 则:X (e
j 2 k N
0 n M 1 M n N 1
令 X 1 (k0 , n1 , n0 )
n2 0
x(n , n , n )W
2 1 0 1 ' 1
2
n2 k 0 3
,
k0 0,1,2
X 1' (k0 , n1 , n0 ) X 1 (k0 , n1 , n0 )W6n1k 0 X 2 (k0 , k1 , n0 )
n1 0
2 . 已知X (k ),Y (k )是两个N点实序列x(n), y(n)的DFT值, 今需要从 X (k ),Y (k )求x(n), y (n)值, 为了提高运算效率, 试用一个N点IFFT 运算一次完成。
解 : 依据题意 : x ( n ) X ( k ); y ( n ) Y ( k ) 取序列 Z ( k ) X ( k ) jY ( k ) 对Z ( k )作N点IFFT可得序列 z ( n ). 又根据DFT性质: IDFT [ X(k) jY(k) ] IDFT( [ X( k ) ] jIDFT [Y(k) ] x ( n) jy(n) 由原题可知: x(n),y(n) 都是实序列, 再根据 z(n) x ( n) jy(n) 可得:x(n) Re[ z(n) ] y(n) Im[z(n) ] 综上所述,构造序列 Z(k) X(k) jY(k)可用一次 N点IFFT完成计算x(n),y(n) 值的过程。
叠重叠保留和重叠相加法
![叠重叠保留和重叠相加法](https://img.taocdn.com/s3/m/a4ed1094daef5ef7ba0d3c20.png)
和大家分享下我今天上午刚刚编完的作业。
用重叠保留法和重叠相加法计算快速卷积,下面直接上代码~重叠保留法clear allclcN=8;%分段的长度,也就是做fft的长度h=[1,3,2,1];%系统冲击响应h(n)for i=0:9 %定义x(n)x(i+1)=5-i;endfor i=10:18x(i+1)=i-15;endLenx=length(x);M=length(h);M1=M-1;%重叠部分的长度L=N-M1;%不重叠部分的长度h=fft(h,N);K=floor((Lenx+M1-1)/L)+1;%分的段数p=(K)*L-Lenx;%最后一段结尾补零数x1=[zeros(1,M1),x,zeros(1,p)];%总的大矩阵Y=zeros(K,N);%保存结果矩阵初始化for k=0:K-1xk=fft(x1(k*L+1:k*L+N));Y(k+1,:)=(ifft(xk.*h));endZ=reshape(Y(:,M:N)',1,[])%将保存结果矩阵转成一个行向量重叠相加法clear allclcN=8;%分段的长度,也就是做fft的长度h=[1,3,2,1];%系统冲击响应h(n)for i=0:9 %定义x(n)x(i+1)=5-i;endfor i=10:18x(i+1)=i-15;endLenx=length(x);M=length(h);M1=M-1;%重叠部分的长度L=N-M1;%不重叠部分的长度h=fft(h,N);K=ceil(Lenx/L);%分的段数for i=Lenx:K*L-1%将x(n)补成长度为K*L的序列x(i+1)=0;endY=zeros(K,N);%保存结果矩阵初始化YY=zeros(1,(K-1)*L+N);%最终结果矩阵初始化for k=0:K-1xk=[x(k*L+1:k*L+L),zeros(1,M1)];Y(k+1,:)=(ifft(fft(xk).*h));YY(k*L+1:k*L+N)=YY(k*L+1:k*L+N)+Y(k+1,:) end。
《数字信号处理》实验讲义(信息计算)
![《数字信号处理》实验讲义(信息计算)](https://img.taocdn.com/s3/m/f02d175bad02de80d4d84076.png)
《数字信号处理》实验指导书实验一 常见离散信号的产生一、实验目的1. 加深对离散信号的理解。
2. 掌握典型离散信号的Matlab 产生和显示。
二、实验原理及方法在MATLAB 中,序列是用矩阵向量表示,但它没有包含采样信息,即序列位置信息,为此,要表示一个序列需要建立两个向量;一是时间序列n,或称位置序列,另一个为取值序列x ,表示如下: n=[…,-3,-2,-1,0,1,2,3,…]x=[…,6,3,5,2,1,7,9,…]一般程序都从0 位置起始,则x= [x(0), x(1), x(2),…]对于多维信号需要建立矩阵来表示,矩阵的每个列向量代表一维信号。
数字信号处理中常用的信号有指数信号、正弦信号、余弦信号、方波信号、锯齿波信号等,在MATLAB 语言中分别由exp, sin, cos, square, sawtooth 等函数来实现。
三、实验内容1. 用MATLAB 编制程序,分别产生长度为N(由输入确定)的序列:①单位冲击响应序列:()n δ可用MATLAB 中zeros 函数来实现; ②单位阶跃序列:u(n)可用MATLAB 中ones 函数来实现; ③正弦序列:()sin()x n n ω=; ④指数序列:(),nx n a n =-∞<<+∞⑤复指数序列:用exp 函数实现()0()a jb nx n K e+=,并给出该复指数序列的实部、虚部、幅值和相位的图形。
(其中00.2,0.5,4,40a b K N =-===.)参考流程图:四、实验报告要求1. 写出实验程序,绘出单位阶跃序列、单位阶跃序列、正弦序列、指数序列的图形以及绘 出复指数序列的实部、虚部、幅值和相位的图形。
2. 序列信号的实现方法。
3. 在计算机上实现正弦序列0()sin(2)x n A fn πϕ=+。
实验二 离散信号的运算一、实验目的1. 掌握离散信号的时域特性。
2. 用MATLAB 实现离散信号的各种运算。
《数字信号处理》第三版课后答案
![《数字信号处理》第三版课后答案](https://img.taocdn.com/s3/m/8e8647bc0b1c59eef9c7b48e.png)
《数字信号处理》第三版课后答案D解:(1)令:输入为0()x n n -,输出为'000'0000()()2(1)3(2)()()2(1)3(2)()y n x n n x n n x n n y n n x n n x n n x n n y n =-+--+---=-+--+--=故该系统是时不变系统。
12121212()[()()]()()2((1)(1))3((2)(2))y n T ax n bx n ax n bx n ax n bx n ax n bx n =+=++-+-+-+- 1111[()]()2(1)3(2)T ax n ax n ax n ax n =+-+- 2222[()]()2(1)3(2)T bx n bx n bx n bx n =+-+-1212[()()][()][()]T ax n bx n aT x n bT x n +=+故该系统是线性系统。
(3)这是一个延时器,延时器是一个线性时不变系统,下面予以证明。
令输入为1()x n n -,输出为'10()()y n x n n n =--,因为'110()()()y n n x n n n y n -=--=故延时器是一个时不变系统。
又因为12102012[()()]()()[()][()]T ax n bx n ax n n bx n n aT x n bT x n +=-+-=+ 故延时器是线性系统。
(5)2()()y n x n =令:输入为0()x n n -,输出为'2()()y n x n n =-,因为2'()()()y n n x n n y n -=-=故系统是时不变系统。
又因为21212122212[()()](()()) [()][()]()()T ax n bx n ax n bx n aT x n bT x n ax n bx n +=+≠+=+因此系统是非线性系统。
数字信号处理知识点总结
![数字信号处理知识点总结](https://img.taocdn.com/s3/m/369357ba5a8102d277a22f7b.png)
《数字信号处理》辅导一、离散时间信号和系统的时域分析 (一) 离散时间信号(1)基本概念信号:信号传递信息的函数也是独立变量的函数,这个变量可以是时间、空间位置等。
连续信号:在某个时间区间,除有限间断点外所有瞬时均有确定值。
模拟信号:是连续信号的特例。
时间和幅度均连续。
离散信号:时间上不连续,幅度连续。
常见离散信号——序列。
数字信号:幅度量化,时间和幅度均不连续。
(2)基本序列(课本第7——10页)1)单位脉冲序列 1,0()0,0n n n δ=⎧=⎨≠⎩ 2)单位阶跃序列 1,0()0,0n u n n ≥⎧=⎨≤⎩3)矩形序列 1,01()0,0,N n N R n n n N ≤≤-⎧=⎨<≥⎩ 4)实指数序列 ()n a u n5)正弦序列 0()sin()x n A n ωθ=+ 6)复指数序列 ()j n n x n e e ωσ= (3)周期序列1)定义:对于序列()x n ,若存在正整数N 使()(),x n x n N n =+-∞<<∞则称()x n 为周期序列,记为()x n %,N 为其周期。
注意正弦周期序列周期性的判定(课本第10页)2)周期序列的表示方法: a.主值区间表示法 b.模N 表示法 3)周期延拓设()x n 为N 点非周期序列,以周期序列L 对作()x n 无限次移位相加,即可得到周期序列()x n %,即()()i x n x n iL ∞=-∞=-∑%当L N ≥时,()()()N x n xn R n =% 当L N <时,()()()N x n x n R n ≠%(4)序列的分解序列共轭对称分解定理:对于任意给定的整数M ,任何序列()x n 都可以分解成关于/2c M =共轭对称的序列()e x n 和共轭反对称的序列()o x n 之和,即()()(),e o x n x n x n n =+-∞<<∞并且1()[()()]2e x n x n x M n *=+- 1()[()()]2o x n x n x M n *=--(4)序列的运算 1)基本运算2)线性卷积:将序列()x n 以y 轴为中心做翻转,然后做m 点移位,最后与()x n 对应点相乘求和——翻转、移位、相乘、求和定义式: 1212()()()()()m y n x m x n m x n x n ∞=-∞=-=*∑线性卷积的计算:A 、图解 B 、解析法C 、不进位乘法(必须掌握)3)单位复指数序列求和(必须掌握)/2/2/2/2/2/21/2/2/2/2/2/2(1)/21()()/(2)1()()/(2)sin(/2)sin(/2)j N j N j N j N j N j N j N N j nj j j j j j j n j N e e e e e e e j ee e e e e e e j N e ωωωωωωωωωωωωωωωωωω------------=-----===---=∑如果2/k N ωπ=,那么根据洛比达法则有sin(/2)(0)(0)(()())sin(/2)N N k N N k N ωδδω===或可以结合作业题3.22进行练习(5)序列的功率和能量能量:2|()|n E x n ∞=-∞=∑功率:21lim |()|21NN n NP x n N →∞=-=+∑ (6)相关函数——与随机信号的定义运算相同(二) 离散时间系统1.系统性质 (1)线性性质定义:设系统的输入分别为1()x n 和2()x n ,输出分别为1()y n 和2()y n ,即1122()[()],()[()]y n T x n y n T x n ==统的输对于任意给定的常数a 、b ,下式成立1212()[()()]()()y n T ax n bx n a y n by n =+=+则该系统服从线性叠加原理,为线性系统,否则为非线性系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书学生姓名:专业班级:指导教师:黄朝兵工作单位:信息工程学院题目:基于重叠保留法圆周卷积的实现初始条件:具备数字信号处理的理论知识;具备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为工具得到重叠保留法的源程序,通过对序列的线性卷积计算,进而对重叠保留法进行更深层次的认识。
关键字:重叠保留法序列线性卷积 matlab1 概述对于一个长序列()n x 1和一个短序列()n x 2,长度分别为N ,M ,圆周卷积的长度为L ,在长序列的前面加上1-M 个零,然后对长序列进行分段,使得每段的长度为L 不足的用零补。
且前一分段的后1-M 个抽样值和后一分段的前1-M 个抽样值相同。
这样形成的分段序列为:.()()⎩⎨⎧-≤≤+-+=其他,010,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 kM kN n y n y 1 (1.5)2 理论分析2.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 -=∑-=1102 (2.1.1)证明:相当于将)(~),(~21n x n x 作周期卷积和后,再取主值序列。
将)(k y 周期延拓:)(~)(~~21k X k X k Y =)(则有:[]()()⎥⎦⎤⎢⎣⎡-=-==∑∑-=-=10211021))(()(~)(~)(~)(~N m N N N m m n x m x m n x m x k Y IDFS n y (2.1.2)在主值区间)())((,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)()()(~)( (2.1.3) 同样可以证明:()())()()(1012n R m n x m x n y N N m N ⎥⎦⎤⎢⎣⎡-=∑-= (2.1.4)定义式(1)为序列)(1n x 与)(2n x 的圆周卷积,习惯表示为()()()n n x y 21x ⊙n = (2.1.5) 从以上的证明过程也可以得出圆周卷积与周期卷积之间的关系,即有限长序列圆周卷积结果的周期延拓等于它们周期延拓后的周期卷积。
也就是说,周期卷积的主值序列是各周期序列主值序列的圆周卷积。
线性卷积是求离散系统响应的主要方法之一,许多重要应用都建立在这一理论基础上,如卷积滤波等。
用圆周卷积计算线性卷积的方法归纳如下:将长为N2的序列x(n)延长到L,补L-N2个零,将长为N1的序列h(n)延长到L,补L-N1个零。
如果L ≥N1+N2-1,则圆周卷积与线性卷积相等,此时,可有FFT 计算线性卷积,方法如下:a.计算X(k)=FFT[x(n)]b.求H(k)=FFT[h(n)]c.求Y(k)=H(k)X(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)接近,其处理方法有两种:重叠相加法和重叠保留法。
本文讨论重叠保留法。
2.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 。
2.3重叠保留法为了克服重叠相加法中分段卷积后,仍然需要相加的缺点,人们提出了重叠保留法。
这种方法和重叠相加法稍有不同,即将重叠相加法中补零的部分不是补零,而是保留原来的输入序列值,且保留在各段的前端,这时,如利用DFT 实现h(n)和xi(n)的圆周卷积,则每段卷积结果的前N1-1个点不等于线性卷积值需舍去。
为了清楚地看出这点,研究一下x(n)中一段长为N 的序列xi(n)与h(n)(长为N1)的圆周卷积情况: 10()()()()(())()N i i i N N m y n x n h n x m h n m R n -==⊗=-∑ (2.3.1)由于h(n)的长度为N1,当0≤n ≤N1-2时,h((n-m))N 将在xi(m)的尾部出现有非零值,所以0≤n ≤N1-2这部分yi(n)值中将混入xi(m)尾部与h((n-m))N 的卷积值,从而使yi(n)不同于线性卷积结果,但当n=N1-1~N-1时,则有h((n-m))N =h (n-m ),因此从n=N1-1点开始圆周圈卷积值完全与线性卷积值一样,yi(n)的后面N2点才是正确的卷积值,而每一段卷积运算结果的前N1-1点个值需去掉。
图2.1 重叠保留过程为了不造成输出信号遗漏,对x(n)分段时,需使相邻两段有N1-1个点的重叠(对于第一段,x(n)由于没有前一段保留信号,在其前填补N1-1点个零点)。
为此将xi(n)定义为21(1)01()0i x n iN N n N x n +-+≤≤-⎧=⎨⎩其它每段和h(n)的圆周卷积以yi(n)表示,()()()i i y n x n h n =⊗ ,由FFT 算出,去掉yi(n)的前N1-1点,再把相邻各段输出顺次连接起来就构成了最终的输出序列y(n)。
重叠保留法每一输入段均由N-N1+1=N2个新点和前一段保留下来的N1-1个点所组成。
值得注意的是,对于有限长时间序列x(n)(长度为L=MN2),在结束段(i=M-1)做完后,我们所得到的只是L点的线性卷积,还少了N1-1点,实际上就是h(-n)移出x(n)尾部时的不完全重合点,或者说是最后一段的重叠部分N1-1少做了一次卷积,为此,因再补做这一段N1-1点,在其后填补N2点个零点保证长度仍为N点,一样舍去前取N1-1点,并从N1-1点开始,保留N1-1点。
重叠保留法与重叠相加法的计算量差不多,但省去了重叠相加法最后的相加运算。
一般来说,用FFT作信号滤波,只用于FIR滤波器阶数h(n)大于32的情况下,且取N2=(5~10)N1,这样可接近于最高效的运算。
3 程序设计3.1程序流程要实现基于重叠保留法的圆周卷积,假设有两个长度分别为N,M (M N >)的序列()n x 1,()n x 2,要求做()n x 1和()n x 2L 的圆周卷积。
首先要对长序列序列()n x 1进行分段,分段的长度选圆周卷积的长度L ,形成的分段序列:()()⎩⎨⎧-≤≤+-+=其他,010,11L n M kN n x n x k (3.1.1)然后将()n x 2逐一和各分段()n x k 1进行圆周卷积,得到:()n x x n y k k 12⊙)(= (3.1.2)()()()∑-=-=112L m L LkR m n x m x最后输出序列:()()∑+∞-∞=-+-=k kM kN n y n y 1 (3.1.3)这样即完成了基于重叠保留法的圆周卷积的实现。
同样,我们可以根据FFT 计算线性卷积,方法如下: a.计算Xi(k)=FFT[xi(n)] b.求H(k)=FFT[h(n)]c.求Y(k)=H(k)Xi(k) k=0~L-1d.求y(n)=IFFT[Y(k)] n=0~L-1可见,只要进行二次FFT,一次IFFT 就可完成线性卷积计算。
3.2程序流程图图3-2 重叠保留法圆周卷积运算流程图3.3具体程序设计首先编写基于重叠保留法的圆周卷积的主函数。
这个主函数的功能应当是计算出两个序列的长度Lx、M,将长序列进行分段,然后再将短序列和长序列的各个分段分别进行圆周卷积,将分段卷积的的结果序列的前M-1个值舍去,将各个结果合并到一个序列中去,输出这个新序列,程序功能基本完成。
主函数的编写过程如下:定义主函数:function [Y]=overlpsav(x,h,N)计算两个序列的长度:Lx=length(x);M=length(h);计算FFT运算序列长度:L=M+N-1;x序列前加M-1个0,序列后加N个0:x=[zeros(1,M-1),x,zeros(1,N)];求截取的段数:a=floor((Lx+M-1)/N);对h做快速傅里叶变换:c=fft(h,L);设置for循环,截取x的某一段xk,对xk进行FFT变换,对Y(k)=X(k)*H(k)进行反傅里叶变换,截取前M-1点,保留其余点:for K=0:axk=x(K*N+1:K*N+L);b=fft(xk,L);H=ifft(b.*c,L);Y(K*N+1:K*N+N)=H(M:L);end将所有保留的点相连:Y=Y(1:Lx+M-1);3.4编写完整的程序function [Y]=overlpsav(x,h,N) Lx=length(x); M=length(h);L=M+N-1;x=[zeros(1,M-1),x,zeros(1,N)]; a=floor((Lx+M-1)/N); c=fft(h,L); for K=0:a xk=x(K*N+1:K*N+L); b=fft(xk,L); H=ifft(b.*c,L); Y(K*N+1:K*N+N)=H(M:L); end Y=Y(1:Lx+M-1);4 结果及分析假设有这样的两个序列,序列1为x={1,2,3,4,5,6,7,8,9},序列2为h={3,2}要求这两个序列基于重叠保留法的的圆周卷积。