数字信号处理实验八
数字信号处理实验报告

《数字信号处理》实验报告学院:信息科学与工程学院专业班级:通信1303姓名学号:实验一 常见离散时间信号的产生和频谱分析一、 实验目的(1) 熟悉MATLAB 应用环境,常用窗口的功能和使用方法;(2) 加深对常用离散时间信号的理解;(3) 掌握简单的绘图命令;(4) 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号进行频域分析。
二、 实验原理(1) 常用离散时间信号a )单位抽样序列⎩⎨⎧=01)(n δ00≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ0≠=n k n b )单位阶跃序列⎩⎨⎧=01)(n u 00<≥n n c )矩形序列 ⎩⎨⎧=01)(n R N 其他10-≤≤N nd )正弦序列)sin()(ϕ+=wn A n xe )实指数序列f )复指数序列()()jw n x n e σ+=(2)离散傅里叶变换:设连续正弦信号()x t 为0()sin()x t A t φ=Ω+这一信号的频率为0f ,角频率为002f πΩ=,信号的周期为00012T f π==Ω。
如果对此连续周期信号()x t 进行抽样,其抽样时间间隔为T ,抽样后信号以()x n 表示,则有0()()sin()t nT x n x t A nT φ===Ω+,如果令w 为数字频率,满足000012s sf w T f f π=Ω=Ω=,其中s f 是抽样重复频率,简称抽样频率。
为了在数字计算机上观察分析各种序列的频域特性,通常对)(jw e X 在[]π2,0上进行M 点采样来观察分析。
对长度为N 的有限长序列x(n), 有∑-=-=10)()(N n n jw jw k k e n x e X其中 1,,1,02-==M k k Mw k ,π 通常M 应取得大一些,以便观察谱的细节变化。
取模|)(|k jw e X 可绘出幅频特性曲线。
数字信号实验报告材料 (全)

数字信号处理实验报告实验一:用 FFT 做谱分析 一、 实验目的1、进一步加深 DFT 算法原理和基本性质的理解。
2、熟悉 FFT 算法原理和 FFT 子程序的应用。
3、学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用 FFT 。
二、实验原理用FFT 对信号作频谱分析是学习数字信号处理的重要内容。
经常需要进行谱分析的信号是模拟信号和时域离散信号。
对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。
频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是2π/N ≤D 。
可以根据此时选择FFT 的变换区间N 。
误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时离散谱的包络才能逼近于连续谱,因此N 要适当选择大一些。
周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。
如果不知道信号周期,可以尽量选择信号的观察时间长一些。
对模拟信号的频谱时,首先要按照采样定理将其变成时域离散信号。
如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
三、实验内容和步骤对以下典型信号进行谱分析:⎪⎩⎪⎨⎧≤≤-≤≤-=⎪⎩⎪⎨⎧≤≤-≤≤+==其它nn n n n n x 其它nn n n n n x n R n x ,074,330,4)(,074,830,1)()()(32414()cos4x n n π=5()cos(/4)cos(/8)x n n n ππ=+6()cos8cos16cos20x t t t t πππ=++对于以上信号,x1(n)~x5(n) 选择FFT 的变换区间N 为8和16 两种情况进行频谱分析。
分别打印其幅频特性曲线。
并进行对比、分析和讨论;;x6(t)为模拟周期信号,选择 采样频率Hz F s 64=,变换区间N=16,32,64 三种情况进行谱分析。
数字信号处理实验

数字信号处理实验实验一信号、系统及系统响应1、实验目的认真复习采样理论、离散信号与系统、线性卷积、序列的z 变换及性质等有关内容;掌握离散时间序列的产生与基本运算,理解离散时间系统的时域特性与差分方程的求解方法,掌握离散信号的绘图方法;熟悉序列的z 变换及性质,理解理想采样前后信号频谱的变化。
2、实验内容a. 产生长度为500 的在[0,1]之间均匀分布的随机序列,产生长度为500 的均值为0 单位方差的高斯分布序列。
b. 线性时不变系统单位脉冲响应为h(n)=(0.9)nu(n),当系统输入为x(n)=R10(n)时,求系统的零状态响应,并绘制波形图。
c. 描述系统的差分方程为:y(n)-y(n-1)+0.9y(n-2)=x(n),其中x(n)为激励,y(n)为响应。
计算并绘制n=20,30,40,50,60,70,80,90,100 时的系统单位脉冲响应h(n);计算并绘制n=20,30,40,50,60,70,80,90,100 时的系统单位阶跃响应s(n);由h(n)表征的这个系统是稳定系统吗?d. 序列x(n)=(0.8)nu(n),求DTFT[x(n)],并画出它幅度、相位,实部、虚部的波形图。
观察它是否具有周期性?e. 线性时不变系统的差分方程为y(n)=0.7y(n-1)+x(n),求系统的频率响应H(ejω),如果系统输入为x(n)=cos(0.05πn)u(n),求系统的稳态响应并绘图。
f. 设连续时间信号x(t)=e-1000|t|,计算并绘制它的傅立叶变换;如果用采样频率为每秒5000 样本对x(t)进行采样得到x1(n),计算并绘制X1(ejω),用x1(n)重建连续信号x(t),并对结果进行讨论;如果用采样频率为每秒1000 样本对x(t)进行采样得到x2(n),计算并绘制X2(ejω),用x2(n)重建连续信号x(t),并对结果进行讨论。
加深对采样定理的理解。
g. 设X1(z)=z+2+3z-1,X2(z)=2z2+4z+3+5z-1,用卷积方法计算X1(z)X2(z)。
数字信号处理实验报告

数字信号处理报告IIR数字滤波器上海理工大学教师:苏湛组员:王世豪徐骞刘新2016.1.4一、实验简介Butterworth 和Chebyshev 低通滤波器方法:1) 根据性能参数,先设计一个模拟滤波器,按照一定的算法转换为满足预定指标的数字滤波器。
利用模拟原型滤波器的逼近算法和特性。
2)计算机辅助设计,从统计概念出发,对所要提取的有用信号从时域进行估计,在统计指标最优的意义下,使得估计值最优逼近有用信号,减弱或消除噪声。
1)Butterworth 低通滤波器 1 幅频特性:21|()|1()a NcH j Ω=Ω+Ω,其中N 为滤波器的阶数,c Ω为通带截止频率。
在Ω=0处,有最大值|(0)|1a H =;2)在通带截止频率c Ω=Ω处,不同阶次的幅频量值都相同,即为|()|0.707|(0)|a a H j H Ω=;3)阶数N 增加时,通带幅频特性变平,阻带衰减更快,逐渐趋近于理想滤波器的幅频特性。
幅频特性通常用衰减函数1020log |()/(0)|a a H j H α=-Ω描述。
分贝(dB ) 2 极点一共有2N 个,并且以圆点为对称中心成对的出现。
21()22k j N k c s eππ-+=Ω k=1,2,…,N系统函数:122()()()()N a c N KH s K s s s s s s ==Ω--- …3 通带衰减函数p α、阻带衰减函数s α 和系统幅频特性20log |()|a H j -Ω的关系:10p 20log |()|a p H j α-Ω≤Ω≤Ω p Ω为通带截止频率 10s 20log |()|a s H j α-Ω≥Ω≥Ω s Ω为阻带截止频率4 阶数N 0.10.11010log [(101)/(101)]2log (/)p s p s N αα----≥ΩΩ5 通带截止频率c Ω 0.10.11/21/2(101)(101)ps psc NNαα--ΩΩΩ==--确定了滤波器的阶数N 和通带截止频率c Ω,就可以求出系统的极点,从而求出系统函数()a H s ,这样就完成了Butterworth 低通滤波器的设计。
数字信号处理实验(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.实验原理与方法在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
数字信号处理实验指导吴镇扬

实验一快速Fourier变换(FFT)及其应用一、实验目的1.在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉FFT子程序。
2.熟悉应用FFT对典型信号进行频谱分析的方法。
3. 了解应用FFT进行信号频谱分析过程中可能出现的问题以便在实际中正确应用FFT。
4.熟悉应用FFT实现两个序列的线性卷积的方法。
5.初步了解用周期图法作随机信号谱分析的方法。
返回页首二、实验原理与方法在各种信号序列中,有限长序列信号处理占有很重要地位,对有限长序列,我们可以使用离散Fouier变换(DFT)。
这一变换不但可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N时,它的DFT定义为:反变换为:有限长序列的DFT是其Z变换在单位圆上的等距采样,或者说是序列Fourier 变换的等距采样,因此可以用于序列的谱分析。
FFT并不是与DFT不同的另一种变换,而是为了减少DFT运算次数的一种快速算法。
它是对变换式进行一次次分解,使其成为若干小点数的组合,从而减少运算量。
常用的FFT是以2为基数的,其长度。
它的效率高,程序简单,使用非常方便,当要变换的序列长度不等于2的整数次方时,为了使用以2为基数的FFT,可以用末位补零的方法,使其长度延长至2的整数次方。
(一)、在运用DFT进行频谱分析的过程中可能产生三种误差:(1)混叠序列的频谱时被采样信号的周期延拓,当采样速率不满足Nyquist定理时,就会发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原信号的频谱。
避免混叠现象的唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须对频谱的性质有所了解,在一般情况下,为了保证高于折叠频率的分量不会出现,在采样前,先用低通模拟滤波器对信号进行滤波。
(2)泄漏实际中我们往往用截短的序列来近似很长的甚至是无限长的序列,这样可以使用较短的DFT来对信号进行频谱分析,这种截短等价于给原信号序列乘以一个矩形窗函数,也相当于在频域将信号的频谱和矩形窗函数的频谱卷积,所得的频谱是原序列频谱的扩展。
《数字信号处理》实验指导书(完整)

《数字信号处理》实验指导书通信教研室安阳工学院二零零九年三月第1章 系统响应及系统稳定性1.1 实验目的● 学会运用MATLAB 求解离散时间系统的零状态响应;● 学会运用MATLAB 求解离散时间系统的单位取样响应;● 学会运用MATLAB 求解离散时间系统的卷积和。
1.2 实验原理及实例分析1.2.1 离散时间系统的响应离散时间LTI 系统可用线性常系数差分方程来描述,即∑∑==-=-Mj jN i i j n x b i n y a 00)()( (1-1) 其中,i a (0=i ,1,…,N )和j b (0=j ,1,…,M )为实常数。
MATLAB 中函数filter 可对式(13-1)的差分方程在指定时间范围内的输入序列所产生的响应进行求解。
函数filter 的语句格式为y=filter(b,a,x)其中,x 为输入的离散序列;y 为输出的离散序列;y 的长度与x 的长度一样;b 与a 分别为差分方程右端与左端的系数向量。
【实例1-1】 已知某LTI 系统的差分方程为)1(2)()2(2)1(4)(3-+=-+--n x n x n y n y n y试用MATLAB 命令绘出当激励信号为)()2/1()(n u n x n=时,该系统的零状态响应。
解:MATLAB 源程序为>>a=[3 -4 2];>>b=[1 2];>>n=0:30;>>x=(1/2).^n;>>y=filter(b,a,x);>>stem(n,y,'fill'),grid on>>xlabel('n'),title('系统响应y(n)')程序运行结果如图1-1所示。
1.2.2 离散时间系统的单位取样响应系统的单位取样响应定义为系统在)(n 激励下系统的零状态响应,用)(n h 表示。
数字信号处理实验教案

数字信号处理实验教案信息工程学院—通信工程教研室数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。
上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼同学们的独立解决问题的能力。
本讲义在第三版的基础上编写了五个实验,前2个实验属基础性的验证性实验,第3、4、5个实验属基本应用综合性实验。
实验一离散时间信号的MA TLAB实现实验二线性卷积与循环卷积的原理及应用实验三频率采样定理实验四离散系统的因果性和稳定性及频率响应特性实验五基于MATLAB的快速傅里叶变换根据教学进度,理论课结束后进行相关实验。
实验一时域离散信号的产生一实验目的(1)了解常用的时域离散信号及其特点。
(2)掌握MA TLAB产生常用时域离散信号的方法。
二实验内容(1)编写程序,产生下列离散序列:A。
f(n)=δ(n)(—3〈n<4)B.f(n)=e(0。
1+j1。
6π)n (0〈n<16)(2)一个连续的周期性三角波信号频率为50Hz,信号幅度在0~+2V之间,在窗口上显示2个周期信号波形,对信号的一个周期进行16点采样来获取离散信号。
试显示原连续信号和采样获得的离散信号波形.(3)一个连续的周期性方波信号频率为200Hz,信号幅度在-1~+1V之间,在窗口上显示2个周期信号波形,用Fs=4kHz的频率对连续信号进行采样,试显示原连续信号和采样获得的离散信号波形.三实验步骤(1) 在matlab命令窗口中逐行输入下列语句>> n1=—3;n2=4;n0=0; %在起点n1、终点n2的范围内,于n0处产生冲激>> n=n1:n2;%生成离散信号的时间序列>> x=[n==n0];%生成离散信号x(n)〉> stem(n,x,'filled’); %绘制杆状图,且圆心处用实心圆表示〉> title(’单位脉冲序列');〉〉xlabel('时间(n)');ylabel('幅度x(n)’);在上述语句输入完成之后,敲击回车键,弹出图形窗口,显示出如下图形,即已经满足题干所述条件,产生了f(n)=δ(n),(—3<n<4)的离散序列(2)在matlab命令窗口中逐行输入下列语句>> n1=16;a=0.1;w=1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理实验报告 实验八 音频频谱分析设计与实现
班 级:20100821 学 号:2010061312 姓 名:王晓浩 实验八 音频频谱分析仪设计与实现 一、实验原理 MATLAB是一个数据信息和处理功能十分强大的工程实用软件,其数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令。本实验要求基于声卡与MATLAB实现音频信号频谱分析仪的设计原理与实现,功能包括: (1)信号的输入,从声卡输入、从WAV文件输入、从标准信号发生器输入; (2)信号的波形分析,包括幅值、频率、周期、相位的估计,以及统计量峰值、均值、均方值和方差的计算; (3)信号频谱分析,频率、周期的估计,图形显示幅值谱、相位谱、实频谱、虚频谱和功率谱的曲线。 1、频率(周期)检测 对周期信号来说,可以用时域波形分析来确定信号的周期,也就是计算相邻的两个信号波峰的时间差或过零点的时间差。这里采用过零点(ti)的时间差T(周期)。频率即为f=1/T,由于能够求得多个T值(ti有多个),故采用它们的平均值作为周期的估计值。 2、幅值检测 在一个周期内,求出信号的最大值ymax与最小值ymin的差的一半,即A=(ymax-ymin)/2,除以第一个以外的A值的平均作为幅值的估计值。 3、相位检测 采用过零法,即通过判断与同频零相位信号过零点时刻,计算其时间差,然后换成相应的相位差。Fi=2pi(1-ti/T),同样,以fi的平均值作为相位的估计值。 4、数字信号统计量估计 (1)峰值P的估计 在样本数据x中找出最大值与最小值,其差值为双峰值,双峰值的一半即为峰值。
)]min(y-)0.5[max(yPii (2)均值估计 NiiyNyE0
1
)(
式中,N为样本容量,下同。 (3)均方值估计
NiiyNyE02
1
)(2
(4)方差估计 NiiyEyNyD02))((1)(
5、频谱分析原理 是与分析只能反映信号的幅值随时间的变化情况,除单位频率分量的简单波形外,很难明确提示信号的频率组成和个频率分量的大小,而频谱分析能很好的解决此问题。 (1)DFT与FFT 对于给定的时域信号y,可以通过Foutier变换得到频域信息Y。Y可按下式计算 ttftyjtftyfYNNii])2sin()2cos([)(1010
式中,N为样本容量,t=1/Fs为采样间隔。 采样信号的频谱是一个连续的频谱,不可能计算出所有的点的值,故采用离散傅立叶变换(DFT),即
1,...,2,1,0,)(10/2NkeytkYNtNkij
i
式中,f=Fs/N。但上式的计算效率很低,因为有大量的指数(等价于三角函数)运算,故实际中多采用快速傅立叶变换(FFT)。其原理是将重复的三角函数计算的中间结果保存起来,以减少重复三角函数计算带来的时间浪费。由于三角函数计算的重复量相当大,故FFT能极大地提高运算效率。 (2)频率、周期的估计 对于Y(kf),如果当kf=f时,Y(kf)取最大值,则f为频率的估计量,由于采样间隔的误差,f也存在误差,其误差最大值为f/2。 周期T=1/f。 从原理上可以看出,如果在标准信号中混有噪声,用上述方法仍能够精确地估计出原标准信号的频率和周期。 (3)频谱图 为了直观的表示信号的频率特性,工程上常常将傅立叶变换的结果用于图形的方式表示,即频谱图。 以频谱f为横坐标,|Y(f)|为纵坐标,可以得到幅值谱; 以频谱f为横坐标,argY(f)为纵坐标,可以得到相位谱; 以频谱f为横坐标,ReY(f)为纵坐标,可以得到实频谱; 以频谱f为横坐标,ImY(f)为纵坐标,可以得到虚频谱; 根据采样定理,只有频率不超过Fs/2的信号才能被正确采集,即傅立叶变换的结果中频率大于Fs/2的部分是不正确的部分,故不在频谱图中显示。即横坐标f属于[0,Fs/2]。 二、实验内容 请参考书中所给的界面和代码,查阅相关资料,构建交互界面,设计一个音频频谱分析仪,实现相应的功能。 三、实验程序及结果 (1)分析仪界面: 输入界面: (2)声卡输入方式相关程序及结果: function soundcard_Callback(hObject, eventdata, handles) set(findobj('Tag','recordtime'),'enable','on'); h=findobj('Tag','filename'); set(h,'enable','off'); h=findobj('Tag','freq'); set(h,'enable','off'); h=findobj('Tag','amp'); set(h,'enable','off'); h=findobj('Tag','phase'); set(h,'enable','off'); set(handles.channel,'enable','off'); set(handles.fileopen,'enable','off'); set(handles.gensig,'enable','off'); set(handles.wavetype,'enable','off'); set(handles.add,'enable','off'); set(handles.startrecord,'enable','on'); function startrecord_Callback(hObject, eventdata, handles) Fs=str2double(get(findobj('Tag','samplerate'),'String')); handles.y=wavrecord(str2double(get(findobj('Tag','recordtime'),'String'))*Fs, Fs,'int16'); handles.inputtype=1; guidata(hObject,handles); plot(handles.time,handles.y); title('WAVE'); ysize=size(handles.y) set(handles.samplenum,'String',num2str(ysize(1))); 滚动条程序: function scale_Callback(hObject, eventdata, handles) val=get(hObject,'value'); val=10^(val*5+1); x=get(handles.xmove,'Value')*str2double(get(handles.samplenum,'String')); axis(handles.time,[x val+x min(handles.y) max(handles.y)]); function scale_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end function xmove_Callback(hObject, eventdata, handles) val=get(handles.scale,'value'); val=10^(val*5+1); x=get(hObject,'Value')*str2double(get(handles.samplenum,'String')); axis(handles.time,[x val+x min(handles.y) max(handles.y)]); function xmove_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end function scale2_Callback(hObject, eventdata, handles) val=get(hObject,'value'); val=10^(val*5+1); xlim(handles.plot1,[0 val]); xlim(handles.plot2,[0 val]); xlim(handles.plot3,[0 val]); xlim(handles.plot4,[0 val]); function scale2_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end (3)WAV文件输入方式相关程序及结果: function WAVfile_Callback(hObject, eventdata, handles) h=findobj('Tag','filename'); set(h,'enable','on'); h=findobj('Tag','freq'); set(h,'enable','off'); h=findobj('Tag','amp');