DSP实验报告重叠保留法和重叠相加法(精)
实验七 重叠相加法和重叠保留法的编程计算
1 实验原理
1) 重叠相加法:
x0 (n)
x1(n)0N 1 Nhomakorabea2N 1
y0(n) x0(n)h(n)
0
N 1 N M 2
y1(n) x1(n) h(n)
xK (n)
KN 1
n
0
N 1 N M 2
长序列 x(n) 0 n Nl 1 分段
K 1
x(n) xi (m) 0 m N 1 ,0 n KN 1 i0
当i 0 :
0
x0
(m)
x(n)
0 m M 1 M m L 1,0 n N 1
(3)对每一小段计算: Xi (k) DFT[xi (m)] 0 k L 1 M N 2
重叠保留法计算步骤:
(4)计算各段卷积: yi (n) IDFT [ X i (k ) H (k )]
(2)每次顺序取x(n) 的长度为 N 的一小段,然后补零到长度为 L ,即
K 1
x(n) xi (m)
i0
其中:
xi
( m)
x(n) 0 N
iN n (i 1)N 1,0 m L 1 M N
2
m
N
1
(3)对每一小段计算: X i (k) DFT[xi (m)] 0 k L 1 M N 1
计算线性卷积:
K 1
K 1
y(n) x(n) h(n) [xi (m) h(m)] yi (m)
i0
i0
0 m L 1 N M 2
重叠相加法计算步骤:
(1) 计算 H (k ) DFT [hl (n)]
0 k L 1 M N 1
其中:
hl
(n)
h(n) 0
数字信号处理实验报告(实验二)
实验二 时域采样与频域采样1. 实验目的:(1) 掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使采样后的信号不丢失信息。
(2) 掌握频率域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作用。
(3) 会用MATLAB 语言进行时域抽样与信号重建的方法,以及频域抽样与恢复时程序的编写方法。
2. 实验原理:了解时域采样定理的要点,理解理想采样信号)(ˆt xa 和模拟信号)(t x a 之间的关系,了解频域采样定理的要点,掌握这两个采样理论的结论:“时域采样频谱周期延拓,频域采样时域信号周期延拓”。
3. 实验内容:(1)时域采样理论的验证。
给定模拟信号,)()sin()(0t u t Ae t x t a Ω=-α式中A=444.128,α=502π,0Ω=502πrad/s(2)用DFT(FFT)求该模拟信号的幅频特性,选取三种采样频率,以验证时域采样理论。
(3)编写实验程序,计算)(1n x 、)(2n x 和)(3n x 的幅度特性,并绘图显示。
观察分析频谱混叠失真。
(4)频域采样理论的验证。
给定信号如下:⎪⎩⎪⎨⎧≤≤-≤≤+=其它02614271301)(n n n n n x(5)编写程序分别对频谱函数()FT[()]j X e x n ω=在区间]2,0[π上等间隔采样32和16点,得到)()(1632k X k X 和,再分别对)()(1632k X k X 和进行32点和16点IFFT ,得到)()(1632n x n x 和。
(6)分别画出()j X e ω、)()(1632k X k X 和的幅度谱,并绘图显示x(n)、)()(1632n x n x 和的波形,进行对比和分析,验证总结频域采样理论。
4. 思考题:如果序列x(n)的长度为M ,希望得到其频谱()j X e ω在]2,0[π上的N 点等间隔采样,当N<M 时, 如何用一次最少点数的DFT 得到该频谱采样?答:将长序列分段分段计算,这种分段处理方法有重叠相加法和重叠保留法两种。
数字信号处理题库(附答案)
A. B. C. D.
9.序列 则 的收敛域为( D )。
A. B. C. D.
10.关于序列 的 ,下列说法正确的是( C )。
A.非周期连续函数 B.非周期离散函数
C.周期连续函数,周期为 D.周期离散函数,周期为
11.以下序列中( D )的周期为5。
A. B.
A.微分方程 B.差分方程 C.系统函数 D.信号流图
51.下面的几种网络结构中,( A )不是IIR滤波器的基本网络结构。
A.频率采样型 B.用的延迟单元较少
C.适用于实现低阶系统 D.参数 、 对滤波器性能的控制作用直接
52.( D )不是直接型结构实现IIR数字滤波器的优点。
A.简单直观 B.用的延迟单元较少
A.单位函数响应奇对称,N为奇数 B.单位函数响应偶对称,N为奇数
C.单位函数响应奇对称,N为偶数 D.单位函数响应偶对称,N为偶数
以上为FIR数字滤波器设计部分的习题
49.在不考虑( A ),同一种数字滤波器的不同结构是等效的。
A.拓扑结构 B.量化效应 C.粗心大意 D.经济效益
50.研究数字滤波器实现的方法用( A )最为直接。
43.窗函数的主瓣宽度越小,用其设计的线性相位FIR滤波器的( A )。
A.过渡带越窄 B.过渡带越宽
C.过渡带内外波动越大 D.过渡带内外波动越小
44.用频率采样法设计线性相位FIR滤波器,线性相位FIR滤波器在采样点上的幅频特性与理想滤波器在采样点上的幅频特性的关系( A )。
A .相等 B.不相等 C.大于 D.小于
60.频率采样型结构适用于( B )滤波器的情况。
A.宽带的情况 B.窄带 C.各种 D.特殊
重叠相加法 重叠保留法点数与序列的关系
重叠相加法重叠保留法点数与序列的关系重叠相加法和重叠保留法是在数值计算中常用的两种方法,用于计算序列或信号的运算结果。
1. 重叠相加法(Overlap-Add Method):
重叠相加法主要用于将长序列分解为多个较短的子序列进行处理。
具体步骤如下:
a. 将长序列划分为多个重叠的子序列,通常称为帧(Frame),帧之间有一定的重叠区域。
b. 对每个帧进行一定的处理(例如滤波、变换等)得到相应的子序列结果。
c. 将所有子序列结果进行重叠相加,得到最终的运算结果。
重叠相加法的优点是可以处理长序列,同时在处理过程中可以利用较短的子序列进行计算,从而减少计算量。
但是在相加过程中会引入重叠部分的累加误差,需要注意处理。
2. 重叠保留法(Overlap-Save Method):
重叠保留法也是将长序列分解为多个较短的子序列进行处理的方法,与重叠相加法不同的是,重叠保留法中的子序列是没有重叠的。
具体步骤如下:
a. 将长序列划分为多个不重叠的子序列,通常称为块(Block)。
b. 对每个块进行一定的处理得到相应的子序列结果。
c. 在处理过程中保留每个块的部分结果,将所有块的结果进
行拼接得到最终的运算结果。
重叠保留法的优点是可以避免重叠相加带来的累加误差,但是需要注意保留和拼接过程中的精度控制。
总结:
重叠相加法和重叠保留法都是在处理长序列时常用的方法。
它们通过将长序列分解为多个较短的子序列进行处理,从而减少计算量。
重叠相加法引入了重叠部分的累加误差,而重叠保留法通过不重叠的方式避免了此类误差。
具体选择使用哪种方法取决于应用场景和计算需求。
东南大学dsp实验手写部分
实验三5、由实验所得的图形知,当L>N1+N2-1时,循环卷积不会发生混叠现象,所以在这个条件下,循环卷积是线性卷积的主值,线性卷积可由循环卷积得到。
用循环卷积计算线性卷积通常也称为快速卷积。
6、实验证明重叠保留法可以用DFT 做圆周卷积来表示线性卷积,以减少存储单元和处理时间的延误。
7、一共可以有16种结果,循环相关是线性相关的一个主值区间,取值的起点不同,其序列即不同,但是一个主值区间包含的信息量是相同的,包含的频率成分都是相同的。
8、不同。
反三角波的低频分量更多一些。
不是,因为截短长度N=16不是正弦周期信号的整数倍,由于时域中的非周期截短会产生频谱泄露。
实验四(4)bz1 =[-0.0000 0.0057 -0.0122 0.0025 0.0089 -0.0049 0] az1 =[1.0000 -4.8056 10.2376 -12.2625 8.7012 -3.4719 0.6145]因此脉冲响应不变法的系统函数为:6543215432116145.04719.37012.82625.122376.108056.410049.00089.00250.00122.00057.0)(H -----------+-+-+--++-=z z z z z z z z z z z z bz2 =[0.0014 -0.0000 -0.0042 -0.0000 0.0042 -0.0000 -0.0014]az2 =[1.0000 -4.8071 10.2473 -12.2838 8.7245 -3.4849 0.6176]因此双线性变换法的系统函数为:65432164226176.04849.37245.82838.122473.108071.410014.00042.00042.00014.0)(H ---------+-+-+--+-=z z z z z z z z z z由上图可以看出:由上图可以看出,用脉冲响应不变法由于滤波器的混叠作用在过度带和阻带都衰减的较双线性变换法慢。
DSP-A指导书正文
实验1 矩阵、序列的运算与显示一、实验目的掌握用MA TLAB 表示离散时间信号,以及它们的运算和显示。
二、实验内容与要求1. 用MA TLAB 产生并画出下列序列的样本。
a .()()()1010()1[221],025m x n m n m n m n δδ==+----≤≤∑b .()()()()()()22()[56]10200.5[410]nx n n u n u n n u n u n δ=+--++---c .()3()0.9cos(0.2/3),020nx n n n ππ=+≤≤d .()24()10cos(0.0008),0100x n n w n n π=+≤≤,式中()w n 是在【-1,1】之间均匀分布的随机序列,你如何表征这个序列?e .(){}5...,1,2,3,2,1,2,3,2, (x)n ↑= 为周期的,画出5个周期。
三、实验所用部分函数如下1.单位冲激序列(信号)生成函数impseq [x,n] = impseq(n0,n1,n2)2.阶跃序列(信号)生成函数stepseq [x,n] = stepseq(n0,n1,n2)3.序列(信号)相加函数sigadd [y,n] = sigadd(x1,n1,x2,n2)以上为MATLAB 没有,需外加入的函数(将相应函数拷贝到自己当前目录下) 4. 正(余)弦生成函数sin 、cosy = sin(x) ,y = cos(x) (注意:x 以弧度为单位) 5. 随机序列生成函数rand ,用法如:Y = rand (n) 生成n ×n 阶的均匀分布随机阵; Y = rand (m, n) 生成m ×n 阶的随机阵;rand 返回在[0,1]区间上的一个随机数;将上面的rand 写成randn 则可以生成均值为0、方差为1的正态分布的随机变量。
6.全1矩阵生成函数ones (m, n) :生成m×n阶全1矩阵7.全0矩阵生成函数zeros (m, n) :生成m×n阶全0矩阵8.离散序列绘图函数stemstem (y) 以1、2、3…为横坐标, y为纵坐标画杆形图;stem(x, y) 以x为横坐标, y为纵坐标画杆形图(x与y数据个数必须一致);stem (…,’fill’)选项’fill’指定杆顶为实心,若无此选项则默认空心。
dsp实验报告总结【精品】
我不应把我的作品全归功于自己的智慧,还应归功于我以外向我提供素材的成千成万的事情和人物!——采于网,整于己,用于民2021年5月12日dsp实验报告总结篇一:dsp课程设计实验报告总结DSP课程设计总结(XX-XX学年第2学期)题目:专业班级:电子1103 学生姓名:万蒙学号:指导教师:设计成绩:XX 年6 月目录一设计目的----------------------------------------------------------------------3 二系统分析----------------------------------------------------------------------3 三硬件设计3.1 硬件总体结构-----------------------------------------------------------3 3.2 DSP模块设计-----------------------------------------------------------4 3.3 电源模块设计----------------------------------------------------------4 3.4 时钟模块设计----------------------------------------------------------5 3.5 存储器模块设计--------------------------------------------------------6 3.6 复位模块设计----------------------------------------------------------6 3.7 JTAG模块设计--------------------------------------------------------7 四软件设计4.1 软件总体流程-----------------------------------------------------74.2 核心模块及实现代码---------------------------------------8五课程设计总结-----------------------------------------------------14一、设计目的设计一个功能完备,能够独立运行的精简DSP硬件系统,并设计简单的DSP控制程序。
DSP实验报告王婷
DSP应用课程设计《实验报告》语音噪声滤波学院:电子信息工程学院姓名:王婷姓名:缪小川小组成员:班级:通信0706 学号:07211117 班级:通信0706 学号:07211128评语:指导教师签字:日期:2010-1-20 一、..................................................... 设计任务书.. (3)二、..................................................... 设计原理 4三、..................................................... 设计方案说明 (8)四、程序设计、调试与结果分析 (14)五、.......................................... 设计与调试的体会24六、.................................................. 参考文献25一.设计任务书设计题目:语音噪声滤波题目背景介绍随着信息技术的发展,信号处理正向着数字化、软件化方向发展。
数字信号处理的主要研究对象是语音信号和图像信号,语音信号的研究可以从时域和频域两个方面来进行。
其中时域的分析处理有两种方法:一种是进行语音信号分析,这属于线性处理的范畴,主要是通过信号的加减、时移、倍乘、卷积、求相关函数等来实现;另一种是生成和变换成各种调制信号,这属于非线性的范畴,主要是对信号平均累加器的动态范围进行压缩扩张,用门限方法对噪声的抑制。
对频域分析处理,即对信号的频率特性在频谱中加以分析研究,这拓展了信号分析的范围,是对不确定信号分析的主要方法。
在实际应用中,信号的时域频分析经常同时进行。
由于环境的原因,我们采集到语音信号经常含有不同程度的噪声,因此要对语音信号中的噪声滤除。
DSP利用直接存储器访问方式DM采集数据时不打扰CPU因此CP可以对语音信号进行实时地滤波。
重叠相加法和重叠保留法的原理与实现
重叠相加法与重叠保存法的原理实现侯凯(吉林大学 通信工程学院 吉林 长春 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)卷积,然后再将这些卷积结果相加起来就可得到输出序列,这样,每一段的卷积都可用上面讨论的快速卷积来计算。
《数字信号处理》实验报告
《数字信号处理》实验报告年级:2011级班级:信通4班姓名:朱明贵学号:111100443老师:李娟福州大学2013 年11 月实验一快速傅里叶变换(FFT)及其应用一、实验目的1.在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB中的有关函数。
2.熟悉应用FFT对典型信号进行频谱分析的方法。
3.了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。
4.熟悉应用FFT实现两个序列的线性卷积和相关的方法。
二、实验类型演示型三、实验仪器装有MATLAB语言的计算机四、实验原理在各种信号序列中,有限长序列信号处理占有很重要地位,对有限长序列,我们可以使用离散Fouier变换(DFT)。
这一变换不但可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N时,它的DFT定义为:反变换为:有限长序列的DFT是其Z变换在单位圆上的等距采样,或者说是序列Fourier变换的等距采样,因此可以用于序列的谱分析。
FFT并不是与DFT不同的另一种变换,而是为了减少DFT运算次数的一种快速算法。
它是对变换式进行一次次分解,使其成为若干小点数的组合,从而减少运算量。
常用的FFT 是以2为基数的,其长度。
它的效率高,程序简单,使用非常方便,当要变换的序列长度不等于2的整数次方时,为了使用以2为基数的FFT,可以用末位补零的方法,使其长度延长至2的整数次方。
(一)在运用DFT进行频谱分析的过程中可能的产生三种误差1.混叠序列的频谱是被采样信号频谱的周期延拓,当采样速率不满足Nyquist定理时,就会发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原信号的频谱。
避免混叠现象的唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须对频谱的性质有所了解,在一般情况下,为了保证高于折叠频率的分量不会出现,在采样前,先用低通模拟滤波器对信号进行滤波。
重叠相加法与重叠保留法原理
重叠相加法通过将多个重叠的图像或数据序列叠加在一起,可以获得更完整或更丰富的信息。这种方法常用于拼接图像和合并数据集。
重叠保留法则是一种保留重叠部分并处理其他部分的方法。它常用于图像拼接和数据处理中,可以保留重要细节和避免重复计算。
结论与展望
CATALOGUE
06
重叠相加法
01
该方法通过将重叠部分相加来计算重叠面积,适用于不同重叠程度和形状的图形重叠问题。在重叠面积较小的情况下,该方法能够得到较为精确的结果。
随着信号处理技术的发展,对重叠相加法和重叠保留法的研究有助于提高信号处理的效果和精度,进一步推动相关领域的技术进步。
深入理解这两种算法的原理和特点,有助于在实际应用中选择合适的算法,提高信号处理的效果和效率。
重叠相加法原理
CATALOGUE
02
重叠相加法是一种将多个重叠部分进行相加的方法,用于解决重叠或交叉的问题。
详细描述
重叠相加法适用于需要计算重叠部分总和的场景,而重叠保留法适用于需要保留最大值的场景。
总结词
重叠相加法适用于那些需要将重叠部分累加的场景,例如计算重叠部分的面积、体积等。而重叠保留法适用于那些需要保留最大值的场景,例如在图像处理中,重叠保留法可以用于保留最大的像素值,以突出显示图像中的重要区域。
跨学科合作
加强与其他学科领域的合作与交流,借鉴相关学科的理论和方法,推动重叠相加法和重叠保留法的进一步发展。
标准化与规范化
制定重叠相加法和重叠保留法的标准操作流程和规范,促进其在不同领域中的普及和应用。同时,加强与其他国家和地区的交流与合作,推动相关方法的国际标准化进程。
应用拓展
将重叠相加法和重叠保留法应用于更多领域,如地理信息系统、图像处理、生物信息学等。探索其在不同领域中的实际应用价值,为相关领域的研究提供新的思路和方法。
MATLAB实验六(精品)
第二节 逐点比较法逐点比较法的基本原理是,在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具沿着坐标轴向减小偏差的方向进给,且只有一个方向的进给。
也就是说,逐点比较法每一步均要比较加工点瞬时坐标与规定零件轮廓之间的距离,依此决定下一步的走向,如果加工点走到轮廓外面去了,则下一步要朝着轮廓内部走;如果加工点处在轮廓的内部, 则下一步要向轮廓外面走,以缩小偏差,周而复始,直至全部结束,从而获得一个非常接近于数控加工程序规定轮廓的刀具中心轨迹。
逐点比较法既可实现直线插补,也可实现圆弧插补。
其特点是运算简单直观,插补过程的最大误差不超过一个脉冲当量,输出脉冲均匀,而且输出脉冲速度变化小,调节方便,但不易实现两坐标以上的联动插补。
因此,在两坐标数控机床中应用较为普遍。
一般来讲,逐点比较法插补过程每一步都要经过如图3-1所示的四个工作节拍:(1)偏差判别 判别刀具当前位置相对于给定轮廓的偏差情况,即通过偏差值符号确定加工点处在理想轮廓的哪一侧,并以此决定刀具进给方向。
(2)坐标进给 根据偏差判别结果,控制相应坐标轴进给一步,使加工点向理想轮廓靠拢,从而减小其间的偏差。
(3)偏差计算 刀具进给一步后,针对新的加工点计算出能反映其偏离理想轮廓的新偏差,为下一步偏差判别提供依据。
(4)终点判别 每进给一步后都要判别刀具是否达到被加工零件轮廓的终点,若到达了则结束插补,否则继续重复上述四个节拍的工作,直至终点为止。
一、逐点比较法I 象限直线插补(一)基本原理设第一象限直线OE ,起点为坐标原点O(0,0),终点为E (X e ,Y e ),另有一个动点为N (X i ,Y i ),如图3-2所示。
其中,各个坐标值均是以脉冲当量为单位的整数,以便于后面的推导与讲解,并且在脉冲增量式插补算法中都是这样约定的。
ee i i X Y X Y = (3-1a ) 即 X e Y i —X i Y e =0 (3-1b ) 当动点N 处于直线OE 的下方N ′处时,直线N O '的斜率小于直线OE 的斜率,从而有ii X Y <e e X Y (3-2a )即 X e Y i —X i Y e <0 (3-2b ) 当动点N 处于直线OE 的上方N ″处时,直线N O ''的斜率大于直线OE 的斜率,从而有ee i i X Y X Y > (3-3a ) 即 X e Y i —X i Y e >0 (3-3b ) 由上述关系可以看出,表达式(X e Y i —X i Y e )的符号就能反映出动点N 相对直线OE 的偏离情况,为此取偏差函数F 为F =X e Y i —X i Y e (3-4)根据上述过程可以概括出如下关系:当F =0时,动点N (X i ,Y i )正好处在直线OE 上;当F >0时,动点N (X i ,Y i )落在直线OE 上方区域;当F <0时,动点N (X i ,Y i )落在直线OE 下方区域。
数字信号处理实验报告_完整版
实验1 利用DFT 分析信号频谱一、实验目的1.加深对DFT 原理的理解。
2.应用DFT 分析信号的频谱。
3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境 计算机、MATLAB 软件环境 三、实验基础理论1.DFT 与DTFT 的关系有限长序列x (n )(0≤n ≤N −1)的离散时间傅里叶变换X (e jω)在频率区间(0≤ω≤2π)的N 个等间隔分布的点kω=2πk /N (0≤k ≤N −1)上的N 个取样值可以由下式表示:212/0()|()()01N jkn j Nk N k X e x n eX k k N πωωπ--====≤≤-∑由上式可知,序列x (n )的N 点DFT X k ,实际上就是x (n )序列的DTFT 在N 个等间隔频率点kω=2πk /N (0≤k ≤N −1)上样本X k 。
2.利用DFT 求DTFT方法1:由恢复出的方法如下:由图2.1所示流程可知:101()()()N j j nkn j nN n n k X e x n eX k W e N ωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑ 由上式可以得到:IDFTDTFTX (ejω)12()()()Nj k kX e X k Nωπφω==-∑ 其中为内插函数12sin(/2)()sin(/2)N j N x eN ωωφω--= 方法2:实际在MATLAB 计算中,上述插值运算不见得是最好的办法。
由于DFT 是DTFT 的取样值,其相邻两个频率样本点的间距为2π/N ,所以如果我们增加数据的长度N ,使得到的DFT 谱线就更加精细,其包络就越接近DTFT 的结果,这样就可以利用DFT 计算DTFT 。
如果没有更多的数据,可以通过补零来增加数据长度。
3.利用DFT 分析连续信号的频谱采用计算机分析连续时间信号的频谱,第一步就是把连续信号离散化,这里需要进行两个操作:一是采样,二是截断。
DSP实验报告重叠保留法和重叠相加法(精)
北京邮电大学实学班姓学日验报告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 是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换频域的采样。
数字信号处理实验(1-7)原始实验内容文档(含代码)
实验要求1.每个实验进行之前须充分预习准备,实验完成后一周内提交实验报告;2.填写实验报告时,分为实验题目、实验目的、实验内容、实验结果、实验小结五项;3.实验报告要求:实验题目、实验目的、实验内容、实验结果四项都可打印;但每次实验的实验内容中的重要代码(或关键函数)后面要用手工解释其作用。
实验小结必须手写!(针对以前同学书写实验报告时候抄写代码太费时间的现象,本期实验报告进行以上改革)。
实验一信号、系统及系统响应实验目的:1. 掌握使用MATLAB进行函数、子程序、文件编辑等基本操作;2. 编写一些数字信号处理中常用序列的3. 掌握函数调用的方法。
实验内容:1.在数字信号处理的基本理论和MATLAB信号处理工具箱函数的基础上,可以自己编写一些子程序以便调用。
(1)单位抽样序列δ(n-n0)的生成函数impseq.m(2)单位阶跃序列u(n-n0)的生成函数stepseq.m(3)两个信号相加的生成函数sigadd.m(4)两个信号相乘的生成函数sigmult.m(5)序列移位y(n)=x(n-n0)的生成函数sigshift.m(6)序列翻褶y(n)=x(-n)生成函数sigfold.m(7)奇偶综合函数evenodd.m(8)求卷积和2.产生系列序列,并绘出离散图。
(1) x1(n)=3δ(n-2)-δ(n+4) -5≤n≤5(2) x3(n)=cos(0.04πn)+0.2w(n) 0≤n≤50其中:w(n)是均值为0,方差为1 的白噪声序列。
3.设线性移不变系统的抽样响应h(n)=(0.9)^n*u(n),输入序列x(n)=u(n)-u(n-10),求系统的输出y(n).实验二 系统响应及系统稳定性1.实验目的(1)掌握 求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。
2.实验原理与方法在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
DSP实验报告 南邮
上机实验内容:数组的加、减、乘、除和乘方运算。
输入A=[1 2 3 4],B=[3 4 5 6],求C=A+B;D=A-B;E=A.*B;F=A./B;G=A.^B;并用Stem语句画出A、B、C、D、E、F、G。
(A)clear;A=[1 2 3 4];stem(A);A:1 1.52 2.53 3.54(B)B=[3,4,5,6];stem(B);B:1 1.52 2.53 3.54(C)A=[1 2 3 4];B=[3,4,5,6];C=A+BC =4 6 8 10A=[1 2 3 4];B=[3,4,5,6];C=A+BC(1)ans =4>>>> A=[1 2 3 4];B=[3,4,5,6];C=A+B;C(1:3)ans =4 6 8>>>> A=[1 2 3 4];%stem(A);B=[3,4,5,6];%stem(B);C=A+B;%C(1);%C(1:3);C(0)??? Subscript indices must either be real positive integers or logicals.>>A=[1 2 3 4];B=[3,4,5,6];C=A+B;stem(C);1 1.52 2.53 3.54A=[1 2 3 4];B=[3,4,5,6];C=A+B;n=0:1:3;n;stem(n,C);00.51 1.52 2.53C =4 6 8 10>>(D)A=[1 2 3 4];B=[3,4,5,6];D=A-B;stem(D);D:D =-2 -2 -2 -2>>(E)A=[1 2 3 4];B=[3,4,5,6];C=A+B;E=A.*B;stem(E);E:1 1.52 2.53 3.54>>E=A.*BE =3 8 15 24(F)A=[1 2 3 4];B=[3,4,5,6];F=A./B;stem(F);F:1 1.52 2.53 3.54 >> F=A./BF =0.3333 0.5000 0.6000 0.6667(G)A=[1 2 3 4];B=[3,4,5,6];G=A.^B;stem(G);>> G=A.^BG =1 16 243 4096(2) 用MATLAB 实现下列序列:()()a 0.8015nx n n =≤≤①clear;n=0:1:15;x1=0.8.^n;n=0:1:15;n;stem(n,x1);051015()()()0.23015j nb x n e n +=≤≤②n=0:1:15;a=(0.2+3*j)*n;x2=exp(a);n=0:1:15;n;figure;stem(n,x2);51015()()()()3cos 0.1250.22sin 0.250.1015c x n n n n ππππ=+++≤≤③n=0:1:15;x3=3*cos(0.125*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi); figure; stem(n,x3);051015d) 将(c)中的x(n)扩展为以16为周期的函数 ()()1616x n x n =+ , 绘出四个周期。
DSP实验报告完美版
DSP实验报告班级:学号:姓名:指导教师:实验一、二 DSP芯片的开发工具及应用实验1.实验目的(1)熟悉CCS集成开发环境,掌握工程的生成方法;(2)熟悉SEED-DTK DAD实验环境;(3)掌握CCS集成开发环境的调试方法。
2.实验设备DSP实验箱,计算机,CCS软件。
3.实验内容及步骤(1) CCS软件的安装;(2)了解SEED-DTK5416实验环境;(3)打开CCS集成开发环境,进入CCS的操作环境;(4)新建一个工程文件○1在c:\ti\myprojects中建立文件夹volume1(如果CCS安装在其他d:\ti ,则在d:\ti\myprojects中);○2将c:\ti\tutorial\target\volume1拷贝到c:\ti\myprojects\ volume1;○3从在CCS 中的Project 菜单,选择 New;○4在Project Name域中,键入volume1;○5在Location区域中,浏览步骤1所建立的工作文件夹;○6在Project Type 域中,选择Executable(.out);○7在Target域中,选择CCS配置的目标,并单击完成。
(5)向工程中添加文件○1从Project/Add Files to Project,选择 volume.c,单击 Open(或右击Project View图标,选择Add Files to Project );○2选择Project/Add Files to Project,在Files of type对话框中,选择Asm Source Files (*.a*, *.s*)。
选择vectors.asm 和 load.asm, 单击Open;○3选择 Project/Add Files to Project,在Files of type 对话框中选择 Linker Command File (*.cmd),选择volume.cmd,单击Open。
DSP实验报告(完美版)
DSP实验报告班级:11050641学号:姓名:指导教师:实验一、二 DSP芯片的开发工具及应用实验1.实验目的(1)熟悉CCS集成开发环境,掌握工程的生成方法;(2)熟悉SEED-DTK DAD实验环境;(3)掌握CCS集成开发环境的调试方法。
2.实验设备DSP实验箱,计算机,CCS软件。
3.实验内容及步骤(1)CCS软件的安装;(2)了解SEED-DTK5416实验环境;(3)打开CCS集成开发环境,进入CCS的操作环境;(4)新建一个工程文件○1在c:\ti\myprojects中建立文件夹volume1(如果CCS安装在其他d:\ti ,则在d:\ti\myprojects中);○2将c:\ti\tutorial\target\volume1拷贝到c:\ti\myprojects\ volume1;○3从在CCS 中的Project 菜单,选择 New;○4在Project Name域中,键入volume1;○5在Location区域中,浏览步骤1所建立的工作文件夹;○6在Project Type 域中,选择Executable(.out);○7在Target域中,选择CCS配置的目标,并单击完成。
(5)向工程中添加文件○1从Project/Add Files to Project,选择 volume.c,单击Open(或右击Project View图标,选择Add Files to Project );○2选择Project/Add Files to Project,在Files of type对话框中,选择Asm Source Files (*.a*, *.s*)。
选择vectors.asm 和 load.asm, 单击Open;○3选择 Project/Add Files to Project,在Files of type 对话框中选择 Linker Command File (*.cmd),选择volume.cmd,单击Open。
DSP数字信号处理实验报告(精品)
FFT 频谱分析一、 实验目的a) 进一步加深DFT 算法原理和基本性质的理解b) 熟悉FFT 算法原理和FFT 程序的应用c) 学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确的应用FFT二、 实验原理a) 离散傅里叶变换(DFT ):离散傅里叶变换在作为有限长序列的傅里叶变换表示法在理论上相当重要;由于存在着计算离散傅里叶变换的快速算法(FFT ),从而离散傅里叶变换在各种数字信号处理的算法中起到了核心的作用。
其对应的离散傅里叶变换对为:X (K )=DFT [x (n )]=∑x (n )W N nk 0≤k ≤N −1N−1n=0x (n )=IDFT [X (K )]=1N ∑x (n )W N nk 0≤n ≤N −1N−1n=0需要注意:有限长序列的离散傅里叶变换及周期序列的离散傅里叶级数之间的关系是:它们仅仅是n 、k 的取值不同,DFT 只取主值区间。
X(n)、X(k)是一个有限长序列的离散傅里叶变换对,已知其中一个序列,就可以唯一确定另一个序列,这是因为x(n)、X(k)都是长为N 的序列,都有N 个独立值,所以信息量相同。
b) DFT 计算量:长度为N 的DFT 的计算量是N 个复数乘法和N-1个复数加法(4N 个实数乘法和4N-2个复数加法)c) FFT 的计算量:长度为N 的FFT 的计算量是 N 2log 2N 个复数乘法和N log 2N 个复数加法。
三、 实验步骤a) 复习DFT 的定义、性质和用DFT 做谱分析的有关内容b) 复习FFT 算法原理与编程思想,熟悉DIT-FFT 运算流图c) 编制信号产生程序,产生典型信号尽心谱分析。
d) 进行以下几个信号的谱分析i.x 1(n)=R 4(n ) ii. x 2(n)={n +1 ,0≤n ≤38−n ,4≤n ≤70 ,其他niii. x 3(n)= {4−n ,0≤n ≤3n −3 ,4≤n ≤70 ,其他niv. x 4(n )=cos π4n ,0≤n ≤19v.x 5(n )=sin π8n ,0≤n ≤19 vi.x 6(n )= cos 8πt +cos 16πt +cos 20πt vii.令x 7(n )=x 4(n )+x 5(n) N=8,16 viii. 令x 8(n )=x 4(n )+jx 5(n) N=8,16针对上述信号进行逐一的谱分析,下面给出针对各个信号的FFT 点数N 及对连续信号x 6(n )的采样频率f s ,供实验时参考 :x 1(n ),x 2(n ),x 3(n ),x 4(n ),x 5(n ) N=8,16x 6(n ) f s =64Hz ,N =16,32,64四、 实验内容a)对x1(n)=R4(n)进行谱分析1.编辑代码x1=[1 1 1 1];y11 = fft(x1,8);y12 = fft(x1,16);subplot(2,2,1);stem(0:3,x1);title('函数X1的图像');subplot(2,2,2);stem(0:7,abs(y11));title('N=8的DFT');subplot(2,2,4);stem(0:15,abs(y12));title('N=16的DFT');2.谱分析图片b) 对x 2(n)={n +1 ,0≤n ≤38−n ,4≤n ≤70 ,其他n进行谱分析i. 编辑代码x2 = [1 2 3 4 4 3 2 1];y11 = fft(x2,8);y12 = fft(x2,16);subplot(2,2,1);stem(0:7,x2);title('函数X2的图像');subplot(2,2,2);stem(0:7,abs(y11));title('N=8的DFT');subplot(2,2,4);stem(0:15,abs(y12));c)对x3(n)={4−n ,0≤n≤3n−3 ,4≤n≤70 ,其他n进行谱分析i.谱分析程序x3 = [4 3 2 1 1 2 3 4];y11 = fft(x2,8);y12 = fft(x2,16);subplot(2,2,1);stem(0:7,x2);title('函数X2的图像');subplot(2,2,2);stem(0:7,abs(y11));title('N=8的DFT');subplot(2,2,4);stem(0:15,abs(y12));n ,0≤n≤19进行谱分析d)对x4(n)=cosπ4i.谱分析程序n = 0:1:19;x2 = cos(0.25*pi*n);y11 = fft(x2,32);y12 = fft(x2,64);subplot(2,2,1);stem(0:19,x2);title('函数X4的图像');subplot(2,2,2);stem(0:31,abs(y11));title('N=32的DFT');subplot(2,2,4);stem(0:63,abs(y12));title('N=64的DFT');ii.谱分析图片n ,0≤n≤19进行谱分析e)对x5(n)=sinπ8i.谱分析程序n = 0:1:19;x2 = sin(0.125*pi*n);y11 = fft(x2,32);y12 = fft(x2,64);subplot(2,2,1);stem(0:19,x2);title('函数X5的图像');subplot(2,2,2);stem(0:31,abs(y11));title('N=32的DFT');subplot(2,2,4);stem(0:63,abs(y12));title('N=64的DFT');ii.谱分析图片f)对x6(n)=cos8πt+cos16πt+cos20πt进行谱分析i.谱分析程序n = 0:1:15;x1 = cos(8*pi*n/64)+cos(16*pi*n/64)+cos(20*pi*n/64);n = 0:1:31;x2 = cos(8*pi*n/64)+cos(16*pi*n/64)+cos(20*pi*n/64); n = 0:1:63;x3 = cos(8*pi*n/64)+cos(16*pi*n/64)+cos(20*pi*n/64);y1 = fft(x1,16);y2 = fft(x2,32);y3 = fft(x3,64);subplot(3,2,1);stem(0:15,x1);title('函数X6 N=16 的图像');subplot(3,2,2);stem(0:15,abs(y1));title('N=16的DFT');subplot(3,2,3);stem(0:31,x2);title('函数X6 N=32 的图像');subplot(3,2,4);stem(0:31,abs(y2));title('N=32的DFT');subplot(3,2,5);stem(0:63,x3);title('函数X6 N=64 的图像');subplot(3,2,6);stem(0:63,abs(y3));title('N=64的DFT');ii.谱分析图片g)对x7(n)=x4(n)+x5(n)进行谱分析i.谱分析程序n = 0:1:19;x2 = j*sin(0.125*pi*n) + cos(0.25*pi*n);y11 = fft(x2,8);y12 = fft(x2,16);subplot(2,2,1);stem(0:19,x2);title('函数X=X4 + X5 的图像');subplot(2,2,2);stem(0:7,abs(y11));title('N=8的DFT');subplot(2,2,4);stem(0:15,abs(y12));title('N=16的DFT');ii.谱分析图片h)对x8(n)=x4(n)+jx5(n)进行谱分析i.谱分析程序n = 0:1:19;x2 = j*sin(0.125*pi*n) + cos(0.25*pi*n);y11 = fft(x2,8);y12 = fft(x2,16);subplot(2,2,1);stem(0:19,x2);title('函数X=X4 + X5 的图像');subplot(2,2,2);stem(0:7,abs(y11));title('N=8的DFT');subplot(2,2,4);stem(0:15,abs(y12));title('N=16的DFT');ii.谱分析图片五、实验分析六、实验结论通过这次利用FFT对信号进行频谱分析的实验,更加深刻的理解了DFT算法的理解和性质的理解;同时也更为熟悉了FFT算法的原理和应用;学会使用FFT 对离散信号和连续信号进行频谱分析,了解了可能出现的分析误差和原因。
DSP实验报告
实验报告利用DSP实现实时滤波姓名:班级:学号:一、实验任务1、实验背景在信号与信息处理中,提取有用信息就要对信号进行滤波。
利用DSP可以实时地对信号进行数字滤波。
本设计要求利用DSP的DMA方式进行信号采集和信号输出,同时对外部输入的信号进行数字滤波。
自适应滤波不仅能够选择信号,而且能够控制信号的特性。
自适应滤波器具有跟踪信号和噪声变化的能力,它的系数能够被一种自适应算法所修改。
利用DSP可以实时地对信号进行自适应滤波。
DSP利用直接存储器访问方式DMA采集数据时不打扰CPU,因此CPU可以对信号进行实时地滤波。
本设计要求利用DSP的DMA方式进行信号采集和信号输出,同时对外部输入的信号进行数字滤波。
2、实验要求1.建立信号处理系统的概念,学会使用DSP处理器;2.了解DSP处理系统的关键器件的使用方法;3.掌握DSP课程设计的基本方法,巩固信号处理的基本理论4.掌握查阅有关资料和使用器件手册的基本方法,学会阅读原版英文资料;5.掌握DSP集成开发环境的使用和调试方法;6.掌握DSP片外资源和片上资源访问的基本方法,如存储器、McBSP、DMA、A/D 和D/A转换器等。
二、设计内容1、基本部分:(1)对DMA进行初始化;(2)对A/D、D/A进行初始化;(3)编写DMA中断服务程序,实现信号的实时滤波;(4)利用CCS信号分析工具分析信号的频谱成分,确定滤波器的参数,利用MATLAB设计数字滤波器,提取滤波器参数;(5)设计数字滤波算法,或调用DSPLIB中的滤波函数,实现对信号的滤波。
(6)比较加不同窗和阶数时滤波器的滤波效果;(7)测试所设计滤波器的幅频特性和相频特性,并与MATLIB下的设计结果进行比较。
2、拓展部分:(1)滤波后信号实时输出的同时,将数据存放在数据文件中;(2)利用自适应滤波实现语音信号回波对消。
三、设计方案、算法原理说明1、设计方案流图如下:主程序简要说明:模拟音频进过codec电路(codec已设置好初值),转化为数据流,存放于缓冲区中,用于对数据处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京邮电大学实学班姓学日验报告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 是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换频域的采样。
在形式上,变换两端(时域和频域上)的序列是有限长的。
DFT 具备明确且合理的物理含义,适合应用于数字系统,同时可以方便地由计算机进行运算。
对于线性非移变离散系统,可由线性卷积表示时域输入输出关系,即y (n x (n *h (n通常采用循环卷积降低运算量,但实际中往往无法满足对信号处理的实时性要求。
因此,产生了重叠相加法和重叠保留法两种典型的算法,用以快速计算线性卷积,成为了DFT 的一个重要应用。
2、算法基本思想1)重叠相加法重叠相加法是将待过滤的信号分割成长为N 的若干段,如图1所示,每一段都可以和有限时宽单位取样响应作卷积,再将过滤后的各段重叠相加。
具体算法实现原理如图2所示,建立缓存序列,每次输入N 点序列,通过计算x(n和h(n 的循环卷积实现线性卷积运算,将缓存的M -1点序列和卷积结果相加,并输出前N 点作为计算结果,同时缓存后M -1点,如此循环,直至所有分段计算完毕,则输出序列y(n为最终计算结果。
2)重叠保留法重叠保留法相当于将x l(n和h(n作循环卷积,然后找出循环卷积中相当于线性卷积的部分。
在这种情况下,将序列y(n分为长为N 的若干段(如图3所示,每个输入段和前一段有M -1个重叠点。
此时只需要将发生重叠的前M -1个点舍去,保留重叠的部分并输出,则可获得序列y(n,算法如图4所示。
二、流程图设计1、重叠相加法2、重叠保留法三、MATLAB 源代码1、重叠相加源码2、重叠保留源码四、实验结果与分析对两种算法采用同一序列进行测试分析。
设x(n =(n+1 , 0≤n≤9; ℎ(n =*−2,0,+2+ 。
计算y (n =x (n ∗h(n 。
①调用conv(计算首先利用Matlab 对两序列直接运算,得出正确结果。
代码为:x=*1:1:10+,h=*-2,0,+2+,conv(x,h结果为: * -2 -4 -4 -4 -4 -4 -4 -4 -4 -4 18 20 +②测试重叠相加算法代码为:overlap_add(x,h,6结果为:* -2.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000-4.0000 -4.0000 18.0000 20.0000 +③测试重叠保留算法代码为:overlap_save(x,h,4结果为:* -2.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000-4.0000 -4.0000 18.0000 20.0000 +由此可见,两种算法运行正常,计算正确。
更多的测试也正确。
算法正确。
五、讨论与总结1、算法效率分析:A. 重叠相加法由上表和图1可以看出,随着数据规模增大,运算耗时呈线性增长,因而算法的时间复杂度为O(n,其中n 为数据规模。
因而重叠相加算法具有可行性和实用性。
再从算法的空间复杂度来看,由于分配的缓存空间只由分段长度确定,不随数据规模的变化而变化,因而空间复杂度为O(1。
综合考察,重叠相加法具有较好的时间和空间复杂度。
当数据量达到千万量级时,运算延时最少大约为2.328s ,可运用于对信号的实时处理。
MATLAB 实验报告 B.重叠保留法分段长度序列长度 10 100 1000 10000 100000 1000000 10000000 4 0.000512 0.001014 0.009297 0.05674 0.558865 5.221879 52.2464 10 0.000225 0.000514 0.002402 0.023194 0.216818 2.144089 22.02215 100 0.001249 0.000272 0.000787 0.006122 0.039175 0.357428 3.593282 1000 0.000881 0.000836 0.000687 0.003941 0.026044 0.236277 2.335725 10000 0.008454 0.008802 0.011107 0.011083 0.042643 0.327539 3.251762 图2.重叠保留法耗时与数据规模关系图 60 50 40 运算耗时 (s 30 20 10 0 -1.5 -10 序列长度 Millions 0.5 2.5 4.5 6.5 8.5 10.5 从上至下,依次为:N=4,10,100,10000,1000 由上表和图 2 可以看出,同重叠相加法类似,随着数据规模的增大,运算耗时呈线性增长,算法的时间复杂度为 O(n,其中 n 为数据规模.同样由于分配的缓存空间只由分段长度确定,空间复杂度为 O(1.综合考察,重叠保留法也具有较好的时间和空间复杂度.当数据量达到千万量级时,运算延时最少大约为 2.335s,可运用于对信号的实时处理. 第 11 页MATLAB 实验报告 C.调用 conv( 序列长度运算耗时 (s 10 100 1000 10000 100000 1000000 1000000 0.000113 0.000081 0.000117 0.000275 0.002492 0.032155 0.32588 图3.调用conv(函数耗时与数据规模关系图 0.35 0.3 0.25 运算耗时 (s 0.2 0.15 0.1 0.05 0 -1.5 -0.05 序列长度 Millions 0.5 2.5 4.5 6.5 8.5 10.5 由上表和图 3 可以看出,调用系统自带的线性卷积运算函数 conv(计算线性卷积,运算时间和序列长度也有线性关系.时间复杂度为 O(n.但此时的信号处理延时很小,当数据达到千万量级时,延时仅为 0.325s,实时性非常好! 第 12 页MATLAB 实验报告 D.综合对比分析分段长度 4 平均耗时(s 重叠相加重叠保留调用 conv( 10 100 1000 10000 9.52527 8.299243 0.05163 3.983497 3.4870560.05163 0.624769 0.571188 0.05163 0.376769 0.372056 0.05163 0.531758 0.523056 0.05163 图4.三种方法在不同分段长度下的耗时图 9.52527 10 3.983497 8.299243 运行耗时(对数坐标 (s 3.487056 1 0.001 0.01 0.624769 0.1 0.571188 0.376769 1 Thousands 0.531758 10 0.372056 0.1 0.05163 0.05163 0.05163 0.05163 0.5230560.05163 0.01 分段长度(对数坐标重叠相加重叠保留调用conv( 重叠保留法和重叠相加法运行效率与分段长度相关性较强.分段数和卷积运算的序列长度为非线性关系,且当分段长度维持在大约 1000 点左右时,获得最高的平均运行效率.内置函数conv(运行效率与分段数无关.重叠相加和重叠保留两者效率几乎一致. 在实际应用中,重叠保留和重叠相加主要用于实施信号处理,因而输入序列是连续输入, 在保证实时性的要求下,输入序列的分段不能太长.设想实际情况如下:设语音信号采样率为8KHz,相当于每秒输入 8000 点序列,由重叠相加法处理(重叠保留法类似.如若分段为 1000 点,考虑实际系统中为实时输出(Matlab 算法模拟里面是将所有序列保存之后再输出 ,因而每分段处理延时 0.00406/8s,又接收 1000 点延时为 1/8s,故处理总延时为 0.1255075s.此时接收延时起主要作用,影响实时性.减小接收延时则需要减小分段点数,同时使得处理延时增加.接收延时和处理延时两者是不可调和的矛盾.实际处理时,可根据实时性要求,折中选择分段点数,既满足实时性要求,又降低系统开销. 第13 页MATLAB 实验报告 2,故障和问题分析①分段问题初始时没有考虑到分段长度的限制,导致用户输入分段小于系统冲击响应 h(n的长度时运算出错.后增加一个判断语句,当出现前述情况时,自动提升分段点数,问题解决. ②运算完整性问题在写好代码之后的测试中,出现了一个十分奇怪的现象,即:当输入点数为 1000, 10000 或者更大时卷积运算最后 M-1 个结果为 0.反复测试发现,不仅 1000 和 10000,只要是分段数 N 的倍数的输入点数都存在同样问题,而其他非倍数的输入,运算与 conv( 函数运算结果完全一致.通过设置断点,逐句调试,最终发现问题的症结,当输入序列为 N 的倍数时,最后的一段卷积实际上没有做.因而将循环次数增加 1,将最后一次保留的M-1 个点补全 N 个 0,做最后一次分段卷积.修改后,测试结果正确. ③算法硬件实现第一,重叠保留和重叠相加算法在硬件实现时将算法中的临时变量都化为缓存,所以考虑缓存的大小限制,不能将输入序列分段过长,否则所需的缓存将加大,成本加大. 第二,接收延时和处理延时两者存在矛盾,减少分段长度,可减少接收延时但会增加处理延时,同理,增大分段长度,可减少处理延时,但将增加接收延时.具体实现时需要综合考虑两者的作用,去最优化值. 第三,算法实际实现时,可实时输出处理过的分段序列,与直接线性卷积相比,实时性大大增强,需要的计算单元特别是系统缓存明显减少.因而实用性很强. 第四,分段卷积能灵活计算长输入序列对 IIR 滤波器的响应,且延时较小,因而很常用.从硬件实现角度讲,重叠保留和重叠相加法效率几乎一致. 第五,测试算法性能时采用较短的 h(n序列,主要考虑到分段卷积应用在单位冲击响应较短的 IIR 滤波器. <报告结束> 第 14 页。