数字信号处理实验二
- 格式:doc
- 大小:134.95 KB
- 文档页数:11
数字信号处理实验报告实验二应用快速傅立叶变换对信号进行频谱分析2011年12月7日一、实验目的1、通过本实验,进一步加深对DFT 算法原理合基本性质的理解,熟悉FFT 算法 原理和FFT 子程序的应用。
2、掌握应用FFT 对信号进行频谱分析的方法。
3、通过本实验进一步掌握频域采样定理。
4、了解应用FFT 进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT 。
二、实验原理与方法1、一个连续时间信号)(t x a 的频谱可以用它的傅立叶变换表示()()j t a a X j x t e dt +∞-Ω-∞Ω=⎰2、对信号进行理想采样,得到采样序列()()a x n x nT =3、以T 为采样周期,对)(n x 进行Z 变换()()n X z x n z +∞--∞=∑4、当ωj ez =时,得到序列傅立叶变换SFT()()j j n X e x n e ωω+∞--∞=∑5、ω为数字角频率sT F ωΩ=Ω=6、已经知道:12()[()]j a m X e X j T T Tωωπ+∞-∞=-∑ ( 2-6 )7、序列的频谱是原模拟信号的周期延拓,即可以通过分析序列的频谱,得到相应连续信号的频谱。
(信号为有限带宽,采样满足Nyquist 定理)8、无线长序列可以用有限长序列来逼近,对于有限长序列可以使用离散傅立叶变换(DFT )。
可以很好的反映序列的频域特性,且易于快速算法在计算机上实现。
当序列()x n 的长度为N 时,它的离散傅里叶变换为:1()[()]()N knN n X k DFT x n x n W-===∑ 其中2jNN W eπ-=,它的反变换定义为:101()[()]()N knN k x n IDFT X k X k W N --===∑比较Z 变换式 ( 2-3 ) 和DFT 式 ( 2-7 ),令kN z W -=则1()()[()]|kNN nkN N Z W X z x n W DFT x n ---====∑ 因此有()()|kNz W X k X z -==k N W -是Z 平面单位圆上幅角为2kNπω=的点,也即是将单位圆N 等分后的第k 点。
实验二 时域采样与频域采样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 得到该频谱采样?答:将长序列分段分段计算,这种分段处理方法有重叠相加法和重叠保留法两种。
实验二信号的采样与重建一,实验目的(1)通过观察采样信号的混叠现象,进一步理解奈奎斯特采样频率的意义。
(2)通过实验,了解数字信号采样转换过程中的频率特征。
(3)对实际的音频文件作内插和抽取操作,体会低通滤波器在内插和抽取中的作用。
二,实验内容(1)采样混叠,对一个模拟信号Va(t)进行等间采样,采样频率为200HZ,得到离散时间信号V(n).Va(t)由频率为30Hz,150Hz,170Hz,250Hz,330Hz的5个正弦信号的加权和构成。
Va(t)=6cos(60pi*t)+3sin(300pi*t)+2cos(340pi*t)+4cos(500pi*t )+10sin(660pi*t)观察采样后信号的混叠效应。
程序:clear,close all,t=0:0.1:20;Ts=1/2;n=0:Ts:20;V=8*cos(0.3*pi*t)+5*cos(0.5*pi*t+0.6435)-10*sin(0.7*pi*t);Vn=8*cos(0.3*pi*n)+5*cos(0.5*pi*n+0.6435)-10*sin(0.7*pi*n);subplot(221)plot(t,V),grid on,subplot(222)stem(n,Vn,'.'),gridon,05101520-40-200204005101520-40-2002040(2)输入信号X(n)为归一化频率f1=0.043,f2=0.31的两个正弦信号相加而成,N=100,按因子M=2作抽取:(1)不适用低通滤波器;(2)使用低通滤波器。
分别显示输入输出序列在时域和频域中的特性。
程序:clear;N=100; M=2;f1=0.043; f2=0.31; n=0:N-1;x=sin(2*pi*f1*n)+sin(2*pi*f2*n); y1=x(1:2:100);y2=decimate(x,M,'fir'); figure(1);stem(n,x(1:N));title('input sequence'); xlabel('n');ylabel('fudu'); figure(2); n=0:N/2-1; stem(n,y1);title('output sequence without LP'); xlabel('n');ylabel('fudu'); figure(3); m=0:N/M-1;stem(m,y2(1:N/M));title('output sequence with LP'); xlabel('n');ylabel('fudu'); figure(4);[h,w]=freqz(x);plot(w(1:512),abs(h(1:512)));title('frequency spectrum of the input sequence'); xlabel('w');ylabel('fudu'); figure(5);[h,w]=freqz(y1);plot(w(1:512),abs(h(1:512)));title('frequency spectrum of the output sequence without LP'); xlabel('w');ylabel('fudu'); figure(6);[h,w]=freqz(y2);plot(w(1:512),abs(h(1:512)));title('frequency spectrum of the output sequence without LP'); xlabel('w');ylabel('fudu');0102030405060708090100-2-1.5-1-0.500.511.52input sequencenf u d u05101520253035404550-2-1.5-1-0.500.511.52output sequence without LPnf u d u05101520253035404550-1.5-1-0.50.511.5output sequence with LPnf u d u0.511.522.533.505101520253035404550frequency spectrum of the input sequencewf u d u00.51 1.52 2.53 3.551015202530frequency spectrum of the output sequence without LPwf u d u00.51 1.52 2.53 3.5510152025frequency spectrum of the output sequence without LPwf u d u(3)输入信号X(n)为归一化频率f1=0.043,f2=0.31的两个正弦信号相加而成,长度N=50,内插因子为2.(1)不适用低通滤波器;(2)使用低通滤波器。
实验二离散时间信号时域表示一、实验类型:验证性实验二、实验目的1)掌握序列的产生方法;2)熟悉关于序列的简单运算;3)序列及其运算结果的可视化表示。
三、实验内容和步骤1)编写sy2_1.m程序文件,生成单位抽样序列和单位阶跃序列(n=-10~20),用图形显示。
2)编写sy2_2.m程序文件,生成一个实数值的指数序列(n=0~35,a=1.2),用图形显示。
3)编写sy2_3.m程序文件,生成扫频正弦序列X(n)=cos(pi*n2/200)(n=0~100),用图形显示。
4)编写sy2_4,m程序文件以实现下列功能:用rand函数随机产生噪声,加在一个已知的确定信号上,然后采用三点滑动平均算法y(n)=1/3(x[n-1]+x[n]+x[n+1])实现信号的平滑,用图形显示平滑后的信号。
四、实验结果及分析1)单位阶跃 sy2_1.mn=-10:20;y=[zeros(1,10),1,ones(1,20)];stem(n,y);2) 单位抽样sy2_1_1.mn=-10:20;y=[zeros(1,10),1,zeros(1,20)]; stem(n,y);3) 扫频正弦序列sy2_3.mn=0:1:100;f=cos(pi*n.^2/200);stem(n,f);4)指数序列sy2_2.mn=0:35;a=1.2;y=a.^n;stem(n,y);5)sy2_4.mN=128n=1:N;x=0.5-rand(1,N);stem(n,x);y=1.5*sin(60*pi*n*0.001); z=x+y;plot(n,z);-2-1.5-1-0.50.511.52五、问题思考:Legend 命令的作用是什么?解:添加AXES 里每条线的标识。
实验三:用FFT对信号作频谱分析10.3.1实验指导1.实验目的学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT。
2.实验原理用FFT对信号作频谱分析是学习数字信号处理的重要内容。
经常需要进行谱分析的信号是模拟信号和时域离散信号。
对信号进行谱分析的重要问题是频谱分辨率D和分析误差。
频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2 /N,因此要求2 /N D。
可以根据此式选择FFT的变换区间N。
误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。
周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。
如果不知道信号周期,可以尽量选择信号的观察时间长一些。
对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。
如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
3•实验步骤及内容(1)对以下序列进行谱分析。
X1 (n) RHn)n 1, 0 n 3X2 (n) 8 n, 4 n 70 ,其它n4 n, 0 n 3X3( n) n 3, 4 n 70, 其它n选择FFT的变换区间N为8和16两种情况进行频谱分析。
分别打印其幅频特性曲线。
并进行对比、分析和讨论。
(2)对以下周期序列进行谱分析。
x4(n) cos—n44x5(n) cos( n/4) cos( n/8)选择FFT的变换区间N为8和16两种情况分别对以上序列进行频谱分析。
分别打印其幅频特性曲线。
并进行对比、分析和讨论。
(3)对模拟周期信号进行谱分析x6(t) cos8 t cos16 t cos20 t选择采样频率F s 64Hz ,变换区间N=16,32,64 三种情况进行谱分析。
实验二IIR数字滤波器设计及软件实现1.实验目的(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法;(2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
(3)掌握IIR数字滤波器的MATLAB实现方法。
(3)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。
2.实验原理设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。
基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。
MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。
第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。
本实验要求读者调用如上函数直接设计IIR数字滤波器。
本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。
3. 实验内容及步骤(1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图1所示。
由图可见,三路信号时域混叠无法在时域分离。
但频域是分离的,所以可以通过滤波的方法在频域分离,这就是本实验的目的。
图1 三路调幅信号st 的时域波形和幅频特性曲线(2)要求将st 中三路调幅信号分离,通过观察st 的幅频特性曲线,分别确定可以分离st 中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。
要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为60dB 。
实验二DFT 和FFT一.实验内容1.认真复习周期序列DFS、有限长序列DFT 的概念、旋转因子的定义、以及DFS 和DFT的性质等有关内容;复习基2-FFT 的基本算法,混合基-FFT 的基本算法、Chirp-Z 变换的算法等快速傅立叶变换的方法。
2.掌握有限长序列的循环移位、循环卷积的方法,对序列共轭对称性的含义和相关内容加深理解和掌握,掌握利用DFT 分析序列的频谱特性的基本方法。
3.掌握FFT 算法的基本原理和方法、Chirp-Z 变换的基本原理和方法,掌握利用FFT 分析序列的频谱特性的方法。
4.熟悉利用MATLAB 进行序列的DFT、FFT 的分析方法。
二.实验内容a. 设周期序列x~(n)={ …,0,1,2,3,0,1,2,3,0,1,2,3,….},求该序列的离散傅立叶级数X(k) = DFS[x~(n)],并画出DFS 的幅度特性。
在matlab中新建函数dfs:function [Xk]=dfs(xn,N)n=0:1:N-1;k=0:1:N-1;Wn=exp(-j*2*pi/N);nk=n'*k;Wnk=Wn.^nk;Xk=xn*Wnk;在matlab中输入以下代码:xn=[0,1,2,3];k=0:1:3;N=4;Xk=dfs(xn,N);y=abs(Xk);stem(k,y);title('周期序列的离散傅立叶级数');生成图像如下:由定义可知,对于周期序列,根据离散傅里叶级数公式即可求出,实验中显示了一个周期的傅里叶级数。
b. 设周期方波序列为x(n)=⎩⎨⎧+≤≤++≤≤)1-1)N (m n (01)-L mN n 1(mN L mN (m=0,,....2,1±±)其中N 为基波周期,L/N 是占空比。
(1) 用L 和N 求| X (k) |的表达式;(2) 当L 和N 分别为:L=5,N=20;L=5,N=40;L=5,N=60 以及L=7,N=60 时画出DFS 的幅度谱;(3) 对以上结果进行讨论,总结其特点和规律。
数字信号处理课程实验报告实验一 离散时间信号和系统响应一. 实验目的1. 熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解2. 掌握时域离散系统的时域特性3. 利用卷积方法观察分析系统的时域特性4. 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号及系统响应进行频域分析二、实验原理1. 采样是连续信号数字化处理的第一个关键环节。
对采样过程的研究不仅可以了解采样前后信号时域和频域特性的变化以及信号信息不丢失的条件,而且可以加深对离散傅里叶变换、Z 变换和序列傅里叶变换之间关系式的理解。
对连续信号()a x t 以T 为采样间隔进行时域等间隔理想采样,形成采样信号: 式中()p t 为周期冲激脉冲,()a x t 为()a x t 的理想采样。
()a x t 的傅里叶变换为()a X j Ω:上式表明将连续信号()a x t 采样后其频谱将变为周期的,周期为Ωs=2π/T 。
也即采样信号的频谱()a X j Ω是原连续信号xa(t)的频谱Xa(jΩ)在频率轴上以Ωs 为周期,周期延拓而成的。
因此,若对连续信号()a x t 进行采样,要保证采样频率fs ≥2fm ,fm 为信号的最高频率,才可能由采样信号无失真地恢复出原模拟信号ˆ()()()a a xt x t p t =1()()*()21()n a a a s X j X j P j X j jn T π∞=-∞Ω=ΩΩ=Ω-Ω∑()()n P t t nT δ∞=-∞=-∑计算机实现时,利用计算机计算上式并不方便,因此我们利用采样序列的傅里叶变换来实现,即而()()j j n n X e x n e ωω∞-=-∞=∑为采样序列的傅里叶变换2. 时域中,描述系统特性的方法是差分方程和单位脉冲响应,频域中可用系统函数描述系统特性。
已知输入信号,可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应。
实验二 快速傅里叶变换(FFT)及其应用一、思考题(1) 实验中的信号序列()c x n 和()d x n 在单位圆上的z 变换频谱()()c j j d X e X e ωω和会相同吗?如果不同,说出哪一个低频分量更多一些,为什么?答:设j Z r e ω=⨯ ()()n n G z g n z ∞-=-∞=⨯∑因为为单位圆,故r=1.因为()()j j n n G e g n e ωω∞-=-∞=⨯∑,故3723456704()(8)23432j j n j n j j j j j j j c n n X e nen e e e e e e e e ωωωωωωωωωω---------===+-=++++++∑∑7235670()(4)43223j j n j j j j j j d n X e n ee e e e e e ωωωωωωωω-------==-=+++---∑比较可知频谱不相同,()c X n 的低频分量多。
(2) 对一个有限长序列进行DFT 等价于将该序列周期延拓后进行DFS 展开,因为DFS 也只是取其中一个周期来运算,所以FFT 在一定条件下也可以用以分析周期信号序列。
如果实正弦信号()sin(2),0.1x n fn f π== 用16点FFT 来做DFS 运算,得到的频谱是信号本身的真实谱吗?为什么?答:针对原来未经采样的连续时间信号来说,FFT 做出来的永远不会是信号本身的真实频谱,只能够是无限接近。
FFT 频谱泄露问题是一定会存在的,因为毕竟采样率再高,也不能完全达到原来的连续时间信号准确。
原题的采样率是1/10,就是将2*pi 分成10份,即每个正弦波周期进行10次采样,这样的采样率很低,而最后你只截取16个点来做分析,泄露一般会挺严重,看到的频谱,应该是一个上头尖,下面慢慢变宽的尖锥形,而纯正的正弦波的理想频谱应该是在某频点只有一个尖峰。
二. 实验原理:(1)混叠:采样序列的频谱是被采样信号频谱的周期延拓,当采样频率不满足奈奎斯特采样定理的时候,就会发生混叠,使得刺痒后的序列信号的频谱不能真实的反映原采样信号的频谱。