数字信号处理第二章实验报告
- 格式:docx
- 大小:1.21 MB
- 文档页数:20
数字信号处理实验报告实验二应用快速傅立叶变换对信号进行频谱分析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、利用卷积方法观察分析系统的时域特性。
4、掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。
二、实验原理采样的的过程既是连续信号离散化的过程。
采用单位冲击串进行采样,为使采样信号能不失真的还原为采样前的信号,根据奈奎斯特采样率,采样频率应该大于信号最高频率的2倍。
因为时域的采样既是对时域的离散化处理,时域离散频域会进行周期延拓,为了防止频域频谱混叠,必须满足奈奎斯特采样定律。
线性卷积的过程为:反褶,移位,相乘,相加。
设一个N1点的序列与一个N2的序列进行卷积则得到N1+N2-1点的序列。
时域卷积,对应频域的相乘。
序列的傅里叶变换即DTFT 。
具有的性质有: 线性,移位性,对偶性,等等。
三、实验内容及步骤1)分析采样序列的特性。
产生采样序列()a x n ,A 444.128=,a =,0Ω=。
a 、 取采样频率s f 1kHz =,即T 1ms =。
观察所采样()a x n 的幅频特性()j X e ω和)(t x a 的幅频特性()X j Ω在折叠频率处有无明显差别。
应当注意,实验中所得频谱是用序列的傅立叶变换公式求得的,所以在频率量度上存在关系:T ω=Ω。
b 、改变采样频率,s f 300Hz =,观察()j X eω的变化并做记录。
c 、 进一步降低采样频率,s f 200Hz =,观察频谱混叠是否明显存在,说明原因,并记录()j X e ω的幅频曲线。
上图是采用不同采样频率时所得到的序列及其对应的傅里叶变换,从图中可以看到,当采样频率比较低时,频谱会发生混叠,且频率越低,混叠现象越明显。
增大采样频率可以有效地防止混叠。
2) 离散信号、系统和系统响应分析。
a 、观察信号()b x n 和系统h ()b n 的时域和频域持性;利用线形卷积求信号()b x n 通过系统h ()b n 的响应y(n),比较所求响应y(n)和h ()b n 的时域及频域特性,注意它们之间有无差异,绘图说明,并用所学结论解释所得结果。
数字信号处理报告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 低通滤波器的设计。
实验报告课程名称:数字信号处理实验任课教师:杨鉴实验名称:离散时间系统的时域分析年级、专业:2015级通信工程学号:**********姓名:***日期:2017 年10 月9 日云南大学信息学院一、实验1.通过MATLAB仿真一些简单的离散时间系统,并研究他们的时域特性。
2.掌握卷积在MATLAB的算法并理解滤波的概念。
二、实验内容1. 假定另一个系统为y[n]=x[n]x[n-1],修改程序P2.3,计算这个系统的输出序列y1[n],y2[n]和y[n]。
比较y[n]和yt[n]。
这两个序列是否相等?该系统是线性系统吗?2. 考虑另一个系统:y[n]=nx[n]+x[n-1],修改程序P2.4,以仿真上面的系统并确定该系统是否为时不变系统。
3.修改程序P2.7,计算长度为15的序列h[n]和长度为10的序列x[n]的卷积,重做问题Q2.28。
h[n]和x[n]的样本值你自己给定。
4.修改程序P2.9,将输入序列改变成扫频正弦序列(长度为301、最低频率为0、最高频率为0.5)。
那个滤波器能更好的抑制输入信号x[n]的高频分量?三、主要算法与程序Q2.11:clf;n = 0:40;a = 2;b = -3;f1=0.1;f2=0.4;x11=[0 cos(2*pi*f1*n) 0];x12=[0 0 cos(2*pi*f1*n)];x21=[0 cos(2*pi*f2*n) 0];x22=[0 0 cos(2*pi*f2*n)];x = a*x11 + b*x21;y1 = x11.*x12;y2 = x21.*x22;xd = a*x12+b*x22;y = x.*xd;yt = a*y1 + b*y2;d = y - yt; % Compute the difference output d[n]% Plot the outputs and the difference signalsubplot(3,1,1)stem([0 n 0],y);ylabel('Amplitude');title('Output Due to Weighted Input: a \cdot x_{1}[n] + b \cdot x_{2}[n]');subplot(3,1,2)stem([0 n 0],yt);ylabel('Amplitude');title('Weighted Output: a \cdot y_{1}[n] + b \cdot y_{2}[n]'); subplot(3,1,3)stem([0 n 0],d);xlabel('Time index n');ylabel('Amplitude');title('Difference Signal');Q2.17:clf;n = 0:40; D = 10;a = 3.0;b = -2;x = a*cos(2*pi*0.1*n) + b*cos(2*pi*0.4*n);xd = [zeros(1,D) x];nd=0:length(xd)-1;y=(n.*x)+[0 x(1:40)];yd=(nd.*xd)+[0 xd(1:length(xd)-1)];d = y - yd(1+D:41+D);subplot(3,1,1)stem(n,y);ylabel('振幅');title('输出 y[n]'); grid;subplot(3,1,2)stem(n,yd(1:41));ylabel('振幅');title('由于延时输入 x[n-10]的输出'); grid;subplot(3,1,3)stem(n,d);xlabel('时间序号 n'); ylabel('振幅');title('差值信号');grid;Q2.29:clf;h = [3 2 1 -2 1 0 -4 0 3 1 5 4 0 3 5]; % impulse responsex = [1 -2 3 -4 3 2 1 5 6 1]; % input sequencey = conv(h,x);n = 0:23;subplot(2,1,1);stem(n,y);xlabel('时间序号n');ylabel('振幅');title('用卷积得到的输出'); grid;x1 = [x zeros(1,14)];y1 = filter(h,1,x1);subplot(2,1,2);stem(n,y1);xlabel('时间序号 n'); ylabel('振幅');title('由滤波生成的输出'); grid;Q2.35:f=w/2pi=(2a*n+b)/2pi=[0,0.5],所以b=0,a*n<=0.5*pi,当n=300时,a取pi/600。
数字信号处理课程实验报告实验一 离散时间信号和系统响应一. 实验目的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. 时域中,描述系统特性的方法是差分方程和单位脉冲响应,频域中可用系统函数描述系统特性。
已知输入信号,可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应。
实验二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 。
实验二 用FFT 进行谱分析一.实验目的:1 进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法,所以FFT 的运算结果必然满足DFT 的基本性质)。
熟悉FFT 程序结构及编程方法。
2 熟悉应用FFT 对确定信号进行谱分析方法,熟悉FFT 算法原理和FFT 子程序的应用。
3 学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应有FFT 。
二.实验内容:(1)用matlab 编程产生并画出信号x1(n)、x2(n)、x3(n)、x4(n)、x5(n)。
(2)用matlab 编制FFT 函数对上述信号进行频谱分析,并画出上述信号谱图。
三.实验结果(1)1.%This programm is to generate signal x1(n)=R4(n).k=-6:6;x=[zeros(1,6),ones(1,4),zeros(1,3)];stem(k,x); (信号图如图1) title('图1');2.n=-5:1:10;x=(n+1).*(n>=0 & n<=3)+(8-n).*(n>=4 & n<=7)+0; stem(n,x); title('图2');3.n=-5:10;x=(4-n).*(n>=0 & n<=3)+(n-3).*(n>=4 & n<=7); stem(n,x); title('图3');-6-4-2024600.10.20.30.40.50.60.70.80.91⎪⎩⎪⎨⎧≤≤-≤≤+==n n n n n n x n R n x 其它,074,830,1)()()(241⎪⎩⎪⎨⎧≤≤-≤≤-=n n n n n n x 其它,074,330,4)(3n n x 4cos )(4π=n n x 8sin )(5π=图1-5051000.511.522.533.54-5051000.511.522.533.54图34.n=-10:10; x=cos(pi/4*n); stem(n,x); title('图4');5.n=-10:10;x=sin(pi/8*n); stem(n,x); title('图5');实验结果(2): FFT 算法function y=myditfft(x) % y=myditfft(x)% 本程序对输入序列 x 实现DIT-FFT 基2算法,点数取大于等于x 长度的2的幂次 % x 为给定时间序列% y 为x 的离散傅立叶变换m=nextpow2(x);N=2^m; % 求x 的长度对应的2的最低幂次m if length(x)<N;% 若x 的长度不是2的幂,补零到2的整数幂 x=[x,zeros(1,N-length(x))]; endnxd=bin2dec(fliplr(dec2bin([1:N]-1,m)))+1; % 求1:2^m 数列的倒序 y=x(nxd); % 将x 倒序排列作为y 的初始值 for mm=1:m; % 将DFT 作m 次基2分解,从左到右,对每次分解作DFT 运算 Nmr=2^mm;u=1; % 旋转因子u 初始化为WN^0=1WN=exp(-i*2*pi/Nmr); % 本次分解的基本DFT 因子WN=exp(-i*2*pi/Nmr) for j=1:Nmr/2; % 本次跨越间隔内的各次蝶形运算for k=j:Nmr:N; % 本次蝶形运算的跨越间隔为Nmr=2^mm kp=k+Nmr/2; % 确定蝶形运算的对应单元下标 t=y(kp)*u; % 蝶形运算的乘积项 y(kp)=y(k)-t; % 蝶形运算 y(k)=y(k)+t; % 蝶形运算 endu=u*WN; % 修改旋转因子,多乘一个基本DFT 因子WN end-10-8-6-4-2246810-1-0.8-0.6-0.4-0.200.20.40.60.81图4-10-8-6-4-2246810-1-0.8-0.6-0.4-0.200.20.40.60.81图5end 1.k=-6:6;x=[zeros(1,6),ones(1,4),zeros(1,3)]; y=myditfft(x); k=-6:9; stem(k,y); xlabel('m'); ylabel('X[M]');title('FFT 图');2.n=-5:1:10;x=(n+1).*(n>=0 & n<=3)+(8-n).*(n>=4 & n<=7)+0;y=myditfft(x); stem(n,y); xlabel('n'); ylabel('X[M]'); title('FFT 图'); 3.n=-5:10;x=(4-n).*(n>=0 & n<=3)+(n-3).*(n>=4 & n<=7); y=myditfft(x); stem(n,y); xlabel('n'); ylabel('X[M]'); title('FFT3'); 4.n=-10:10;x=cos(pi/4*n); y=myditfft(x); n=-10:21; stem(n,y); xlabel('n'); ylabel('X[M]'); title('FFT4'); 5.n=-10:10;x=sin(pi/8*n); y=myditfft(x); n=-10:21; stem(n,y); xlabel('n'); ylabel('X[M]'); title('FFT5');-6-4-20246810-4-3-2-101234m X [M ]FFT 图-5510-20-15-10-505101520nX [M ]FFT 图-5510-10-55101520nX M FFT3-10-50510152025-4-3-2-1012345n X [M ]FFT4-10-50510152025-6-4-22468nX [M ]FFT5四.简要回答以下问题:①在N=8时,x2(n)和x3(n)的幅频特性会相同吗?为什么?N=16呢?答:不相同。
塔里木大学计算机基础课程实验报告1、 掌握matlab 的使用方法; 2、 掌握环境变量的配置;3、 能写出一个最简单的matlab 程序,并运行。
二、实验内容1.完成146-150设计实例程序,分析对比五种滤波器的幅度特点、滤波性能。
1)、巴特沃斯滤波器 wp=2*pi*1000; ws=2*pi*5000; Rp=1;As=40;[N,wc]=buttord(wp,ws,Rp,As,'s') [B,A]=butter(N,wc,'s') Freqs(B,A)103104105-200-1000100200Frequency (rad/s)P h a s e (d e g r e e s )10310410510-510Frequency (rad/s)M a g n i t u d e2)、切比雪夫I 、II 型滤波器 clearwp=2*pi*1000;ws=2*pi*5000;Rp=1;As=40;[N1,wp1]=cheb1ord(wp,ws,Rp,As,'s');[B1,A1]=cheby1(N1,Rp,wp1,'s');[N2,ws2]=cheb2ord(wp,ws,Rp,As,'s');[B2,A2]=cheby2(N2,As,ws2,'s');input('切比雪夫I型模拟低通滤波器阶数:')N1input('切比雪夫I型模拟低通滤波器通带边界频率:')wp1input('切比雪夫I型模拟低通滤波器系统函数分子分母多项式系数:') B1A1input('切比雪夫II型模拟低通滤波器阶数:')N2input('切比雪夫II型模拟低通滤波器通带边界频率:')ws2input('切比雪夫II型模拟低通滤波器系统函数分子分母多项式系数:') B2A2freqs(B1,A1)切比雪夫I型模拟低通滤波器阶数:N1 =3切比雪夫I型模拟低通滤波器通带边界频率:wp1 =6.2832e+003切比雪夫I型模拟低通滤波器系统函数分子分母多项式系数:B1 =1.0e+011 *0 0 0 1.2187A1 =1.0e+011 *0.0000 0.0000 0.0005 1.2187切比雪夫II型模拟低通滤波器阶数:N2 =3切比雪夫II型模拟低通滤波器通带边界频率:ws2 =2.3441e+004切比雪夫II型模拟低通滤波器系统函数分子分母多项式系数:B2 =1.0e+011 *0 0.0000 -0.0000 5.1524 A2 =1.0e+011 *0.0000 0.0000 0.0012 5.1524102103104105-200-1000100200Frequency (rad/s)P h a s e (d e g r e e s )10210310410510-410-210Frequency (rad/s)M a g n i t u d e102103104105-200-1000100200Frequency (rad/s)P h a s e (d e g r e e s )10210310410510-410-210Frequency (rad/s)M a g n i t u d e3)、椭圆滤波器 clearwp=2*pi*1000;ws=2*pi*5000;Rp=1;As=40; [N,wpo]=ellipord(wp,ws,Rp,As,'s'); [B,A]=ellip(N,Rp,As,wpo,'s') freqs(B,A)102103104105-200-1000100200Frequency (rad/s)P h a s e (d e g r e e s )10210310410510-410-210Frequency (rad/s)M a g n i t u d e4)、贝塞尔滤波器 clearN=3;wp=2*pi*1000; [B,A]=besself(N,wp) freqs(B,A)102103104105-200-1000100200Frequency (rad/s)P h a s e (d e g r e e s )10210310410510-410-210Frequency (rad/s)M a g n i t u d e分析:2.完成153-158设计实例程序分别分析幅频特性及滤波性能。
数字信号处理实验报告完整版[5篇模版]第一篇:数字信号处理实验报告完整版实验 1利用 T DFT 分析信号频谱一、实验目的1.加深对 DFT 原理的理解。
2.应用 DFT 分析信号的频谱。
3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境计算机、MATLAB 软件环境三、实验基础理论T 1.DFT 与与 T DTFT 的关系有限长序列的离散时间傅里叶变换在频率区间的N 个等间隔分布的点上的 N 个取样值可以由下式表示:212 /0()|()()0 1Nj knjNk NkX e x n e X k k Nπωωπ--====≤≤-∑由上式可知,序列的 N 点 DFT ,实际上就是序列的 DTFT 在 N 个等间隔频率点上样本。
2.利用 T DFT 求求 DTFT方法 1 1:由恢复出的方法如下:由图 2.1 所示流程可知:101()()()Nj j n kn j nNn n kX e x n e X k W eNωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑由上式可以得到:IDFT DTFT第二篇:数字信号处理实验报告JIANGSUUNIVERSITY OF TECHNOLOGY数字信号处理实验报告学院名称:电气信息工程学院专业:班级:姓名:学号:指导老师:张维玺(教授)2013年12月20日实验一离散时间信号的产生一、实验目的数字信号处理系统中的信号都是以离散时间形态存在的,所以对离散时间信号的研究是数字信号的基本所在。
而要研究离散时间信号,首先需要产生出各种离散时间信号。
使用MATLAB软件可以很方便地产生各种常见的离散时间信号,而且它还具有强大绘图功能,便于用户直观地处理输出结果。
通过本实验,学生将学习如何用MATLAB产生一些常见的离散时间信号,实现信号的卷积运算,并通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用离散信号和信号卷积和运算的理解。
数字信号处理实验报告实验一:混叠现象的时域与频域表现实验原理:当采样频率Fs不满足采样定理,会在0.5Fs附近引起频谱混叠,造成频谱分析误差。
实验过程:考虑频率分别为3Hz,7Hz,13Hz 的三个余弦信号,即:g1(t)=cos(6πt), g2(t)=cos(14πt), g3(t)=cos(26πt),当采样频率为10Hz 时,即采样间隔为0.1秒,则产生的序列分别为:g1[n]=cos(0.6πn), g2[n]=cos(1.4πn), g3[n]=cos(2.6πn)对g2[n],g3[n] 稍加变换可得:g2[n]=cos(1.4πn)=cos((2π-0.6π)n)= cos(0.6πn)g3[n]=cos(2.6πn)= cos((2π+0.6π)n)=cos(0.6πn)利用Matlab进行编程:n=1:300;t=(n-1)*1/300;g1=cos(6*pi*t);g2=cos(14*pi*t);g3=cos(26*pi*t);plot(t,g1,t,g2,t,g3);k=1:100;s=k*0.1;q1=cos(6*pi*s);q2=cos(14*pi*s);q3=cos(26*pi*s);hold on; plot(s(1:10),q1(1:10),'bd');figuresubplot(2,2,1);plot(k/10,abs(fft(q1)))subplot(2,2,2);plot(k/10,abs(fft(q2)))subplot(2,2,3);plot(k/10,abs(fft(q3)))通过Matlab软件的图像如图所示:如果将采样频率改为30Hz,则三信号采样后不会发生频率混叠,可运行以下的程序,观察序列的频谱。
程序编程改动如下:k=1:300;q=cos(6*pi*k/30);q1=cos(14*pi*k/30);q2=cos(26*pi*k/30);subplot(2,2,1);plot(k/10,abs(fft(q)))subplot(2,2,2);plot(k/10,abs(fft(q1)))subplot(2,2,3);plot(k/10,abs(fft(q2)))得图像:问题讨论:保证采样后的信号不发生混叠的条件是什么?若信号的最高频率为17Hz,采样频率为30Hz,问是否会发生频率混叠?混叠成频率为多少Hz的信号?编程验证你的想法。
实验二信号的分析与处理综合实验一、实验目的目的:综合运用数字信号处理的理论知识进行信号的采样,重构,频谱分析和滤波器的设计,通过理论推导得出相应结论,再利用Matlab作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。
二、基本要求1.掌握数字信号处理的基本概念、基本理论和基本方法;2.学会MA TLAB的使用,掌握MA TLAB的程序设计方法;3.掌握用MA TLAB设计简单实验验证采样定理的方法;4.掌握在Windows环境下语音信号采集的方法;5.学会用MA TLAB对信号进行频谱分析;6.掌握MA TLAB设计FIR和IIR数字滤波器的方法;三、实验内容1.利用简单正弦信号设计实验验证采样定理:(1)Matlab产生离散信号的方法,作图的方法,以及基本运算操作(2)对连续正弦信号以不同的采样频率作采样(3)对采样前后信号进行傅立叶变换,并画频谱图(4)分析采样前后频谱的有变化,验证采样定理。
掌握画频谱图的方法,深刻理解采样频率,信号频率,采样点数,频率分辨率等概念2.真实语音信号的采样重构:录制一段自己的语音信号,并对录制的信号进行采样;画出采样前后语音信号的时域波形和频谱图;对降采样后的信号进行插值重构,滤波,恢复原信号。
(1)语音信号的采集(2)降采样的实现(改变了信号的采样率)(3)以不同采样率采样后,语音信号的频谱分析(4)采样前后声音的变化(5)对降采样后的信号进行插值重构,滤波,恢复原信号3.带噪声语音信号的频谱分析(1)设计一频率已知的噪声信号,与实验2中原始语音信号相加,构造带噪声信号(2)画出原始语音信号和加噪声后信号,以及它们的频谱图(3)利用频谱图分析噪声信号和原语音信号的不同特性4.对带噪声语音信号滤波去噪:给定滤波器性能指标,采样窗函数法或双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采样的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;(1)分析带噪声信号频谱,找出噪声所在的频率段(2)利用matlab中已有的滤波器滤波(3)根据语音信号特点,自己设计滤波器滤波(4)比较各种滤波器性能(至少四种),选择一种合适的滤波器将噪声信号滤除(5)回放语音信号,比较滤波前后声音的变化四、实验原理参考《数字信号处理》教材《数字信号处理的MATLAB实现》万永革编著五、主要实验仪器及材料微型计算机、Matlab。
实验二离散时间信号时域表示一、实验目的:1、掌握序列的产生方法。
2、熟悉关于序列的简单运算。
3、序列及其运算结果的可视化表示。
二、实验内容和步骤:1、编写sy2_1.m程序文件,生成单位抽样序列和单位阶跃序列(n=-10~20),用图形显示。
2、编写sy2_2.m程序文件,生成一个实数值指数序列(n=0~35,a=1.2,k=0.2),用图形显示。
3、编写sy2_3.m程序文件,生成扫频正弦序列x(n)=cos(π/200*n2)(n=0~100),用图形显示。
4、编写sy2_4.m程序文件以实现下列功能:用rand函数产生随机噪声,在一个已知确定信号上,然后采用三点滑动平均算法y(n)=1/3(x[n-1]+x[n]+x[n+1])实现信号平滑,用图形显示平滑前后的信号。
三、实验数据:M文件sy2_1.m:n=-10:20;f=[zeros(1,10),1,zeros(1,20)];stem(n,f);title('单位抽样序列');xlabel('n');ylabel('f');单位抽样序列nM文件sy2_2.m:n=-10:20;x=[zeros(1,10),1,ones(1,20)]; stem(n,x);title('单位阶跃序列');xlabel('n');ylabel('f');单位阶跃序列nM文件sy2_3.m:n=0:0.2:35;a=1.2;f=a.^n;stem(n,f);title('指数序列');xlabel('n');ylabel('f');指数序列n fM 文件sy2_4.m:n=0:100;f=cos(pi*n.^2/200);stem(n,f);title('扫频正弦序列');xlabel('n');ylabel('f');扫频正弦序列n fM 文件sy2_5.m:n=[1:128];x=0.5-rand(1,128);f=1.5*sin(60*pi*0.001*n);f0=1.5*sin(60*pi*0.001*(n-1));f1=1.5*sin(60*pi*0.001*(n+1));y=x+f;y0=x+f0;y1=x+f1;z=1/3*(y0+y+y1);plot(n,y);title('平滑信号');xlabel('n');ylabel('y');020406080100120140平滑信号n y数据分析:扫频正弦序列没有清晰表现出图形,应将stem(n,f)改为plot(n,f)。
实验报告2012年04月26 日课程名称:数字信号处理实验名称:系统及系统响应班级:学号:姓名:实验二系统及系统响应一、实验目的(1)观察离散系统的频率响应;(2)熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解;(3)利用序列的FT对连续信号、离散信号及系统响应进行频域分析;(4)利用卷积方法观察分析系统的时域特性。
二、实验内容(1)给定一因果系统H(z)= ,求出并绘制H(z)的幅频响应与相频响应;(2)对信号x a(t)=Au(n) 0n50 其中A=444.128,a=50,=50,实现下列实验内容:a、取采样频率fs=10KHZ,观察所得采样x a(n)的幅频特性|X()|和图中的|Xa(j)|在折叠频率附近有无明显差别。
b、改变采样频率fs=1KHZ,观察|X()|的变化,并作记录:进一步降低采样频率,fs=300HZ,观察频谱混叠是否明显存在,说明原因,并记录这时的|X()|曲线。
(3)给定系统的单位抽样响应为h1(n)=R10(n)a、利用线性卷积求信号x1(n)=(n),通过该系统的响应y1(n)。
比较所求响应y1(n)和h1(n)之间有无差别,绘图说明,并用所学理论解释所得结果。
b、利用线性卷积求信号x2(n)=R10(n),通过该系统的响应y2(n),并判断y2(n)图形及其非0值序列长度是否与理论结果一致,改变x2(n)的长度,取N=5,重复该试验。
注意参数变化的影响,说明变化前后的差异,并解释所得结果。
(4)求x(n)=11(n+2)+7(n+1)-(n-1)+4(n-2)+2(n-3)通过系统h(n)=2(n+1)+3(n)-5(n-2)+2(n-3)+(n-4)的响应y(n)。
三、实验程序及解析(1)1、程序clear; close all;b=[1,sqrt(2),1];a=[1,-0.67,0.9];[h,w]=freqz(b,a);am=20*log10(abs(h));% am=20*log10(abs(h))为幅频响应取dBsubplot(2,1,1);%将窗口划分为2*1的小窗口并选择第一个显示plot(w,abs(h));xlabel('w');ylabel('幅频响应');title('系统响应')ph=angle(h);subplot(2,1,2); %选择第二个窗口显示plot(w,ph);xlabel('w');ylabel('相频响应');2、系统响应结果图1 因果系统的H(z)的系统响应3、结果分析分析z域系统的特性主要是由系统的零点和极点的分布得出结论的。
实验报告课程:数字信号处理专业班级:学生姓名:学号:年月日2.1对M=2,运行上述程序,生成输入x[n]=s1[n]+s2[n]的输出信号。
输入x[n]的哪个分量被该离散时间系统抑制?% 程序P2_1% 一个M点滑动平均滤波器的仿真% 产生输入信号n = 0:100;s1 = cos(2*pi*0.05*n); % 一个低频正弦s2 = cos(2*pi*0.47*n); % 一个高频正弦x = s1+s2;% M点滑动平均滤波器的实现M = input('滤波器所需的长度= ');num = ones(1,M);y = filter(num,1,x)/M;clf;subplot(2,2,1);plot(n, s1);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅');title('低频正弦');subplot(2,2,2);plot(n, s2);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅');title('高频正弦');subplot(2,2,3);plot(n, x);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅');title('输入信号');subplot(2,2,4);plot(n, y);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅');title('输出信号');axis;图形显示如下:答:输入部分()n x 的高频成分()n x 2成分被抑制了。
2.3对滤波器长度M 和正弦信号s1[n]和s2[n]的频率取其他值,运行程序P2.1,算出结果。
实验二离散时间傅里叶变换1、 实验原理经由正、逆离散时间傅里叶变换表达的傅里叶表示式是信号分析的一个关键部分,下面是分析方程与综合方程。
由以上公式知,离散时间傅里叶变换是w的周期复值函数,周期是, 并且基周期常选在区间[-, ]上,对离散时间傅里叶变换有两个问题:(1) DTFT的定义对无限长信号是有效的。
(2) DTFT是连续变量的函数。
对于第一个问题,我们不可能使用MATLAB计算无限长信号的DTFT。
有一个值得注意的例外情形,当能从变换定义式推导出解析式并只是计算它时,可以使用MATLAB计算无限长信号的DTFT.第二个问题是频率抽样问题。
Matlab擅长在有线网格点上计算DTFT。
通常选择足够多的频率以使绘出的图平滑,逼近真实的DTFT。
对计算有利的最好选择是在(-π,π)区间上一组均匀的隔开的频率,或者共轭对称变换选择【0,π】,采用上述抽样方法,DTFT式变为在对DTFT进行抽样时,并不要求N=L,尽管通常由DFT进行计算时,如果N=L计算很方便。
二、实验内容1.脉冲信号的DTFTM文件:function [H,W]=dtft(h,N)N=fix(N);L=length(h);h=h(:);if(N<L)error('DTFT:#data samples cannot exceed#freq samples')endW=(2*pi/N)*[0:(N-1)]';mid =ceil(N/2)+1;W(mid:N)=W(mid:N)-2*pi;W=fftshift(W);H=fftshift(fft(h,N));b. 使用DTFT 函数计算 12 点脉冲信号的DTFT。
绘出在区间上[-, ]上对 w 的DTFT。
把实部和虚部分开绘出,但是注意这些图不是很有用。
另绘出 DTFT 的幅度。
选择频率样本的数量是脉冲长度的5到10倍,以使绘出的图看上去平滑。
用不同数量的频率样本做试验。
实验报告课程:数字信号处理专业班级:学生姓名:学号:年月日2.1对M=2,运行上述程序,生成输入x[n]=s1[n]+s2[n]的输出信号。
输入x[n]的哪个分量被该离散时间系统抑制?% 程序P2_1% 一个M点滑动平均滤波器的仿真% 产生输入信号n = 0:100;s1 = cos(2*pi*0.05*n); % 一个低频正弦s2 = cos(2*pi*0.47*n); % 一个高频正弦x = s1+s2;% M点滑动平均滤波器的实现M = input('滤波器所需的长度= ');num = ones(1,M);y = filter(num,1,x)/M;clf;subplot(2,2,1);plot(n, s1);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅');title('低频正弦');subplot(2,2,2);plot(n, s2);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅');title('高频正弦');subplot(2,2,3);plot(n, x);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅');title('输入信号');subplot(2,2,4);plot(n, y);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅');title('输出信号');axis;图形显示如下:答:输入部分()n x 的高频成分()n x 2成分被抑制了。
2.3对滤波器长度M 和正弦信号s1[n]和s2[n]的频率取其他值,运行程序P2.1,算出结果。
n = 0:100;s1=cos(2*pi*0.02*n);s2=cos(2*pi*0.46*n);x = s1+s2;% M 点滑动平均滤波器的实现M = input('滤波器所需的长度 = ');num = ones(1,M);y = filter(num,1,x)/M;clf;figure,subplot(2,2,1);plot(n, s1);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅');title('低频正弦');subplot(2,2,2);plot(n, s2);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅');title('高频正弦');subplot(2,2,3);plot(n, x);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅');title('输入信号');subplot(2,2,4);plot(n, y);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅'); title('输出信号');axis;num =[1,-ones(1,M-1)];y = filter(num,1,x)/M;figure,subplot(2,2,1);plot(n, s1);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅'); title('低频正弦');subplot(2,2,2);plot(n, s2);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅'); title('高频正弦');subplot(2,2,3);plot(n, x);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅'); title('输入信号');subplot(2,2,4);plot(n, y);axis([0, 100, -2, 2]);xlabel('时间序号n'); ylabel('振幅'); title('输出信号');axis;图形显示如下:答:运行结果如下图,可以看出输出信号保留了输入信号x[n]的高频分量,即保留了s2[n]分量,低频部分s1[n]被抑制了。
2.5用不同频率的正弦信号作为输入信号,计算每个输入信号的输出信号。
输出信号是如何受到输入信号频率的影响的?从数学上对你的结论加以证明。
% 程序P2_2% 产生一个正弦输入信号clf;n = 0:200;f=input('Please input the value of f:')x = cos(2*pi*f*n);% 计算输出信号x1 = [x 0 0]; % x1[n] = x[n+1]x2 = [0 x 0]; % x2[n] = x[n]x3 = [0 0 x]; % x3[n] = x[n-1]y = x2.*x2-x1.*x3;y = y(2:202);% 画出输入和输出信号subplot(2,1,1)plot(n, x)xlabel('时间序列n');ylabel('振幅');title('输入信号')subplot(2,1,2)plot(n,y)xlabel('时间信号n');ylabel('振幅');title('输出信号');分别取F=0.05,F=0.47,F=0.5以及F=0,仿真结果如下所示:证明:设输入信号为()()n n x ωcos 2=,则()()()1cos 11+=+n n x ω以及()()()1cos 2-=n n x ω则 ()()()()[][]().sin sin sin sin cos sin sin cos cos cos sin sin cos cos sin sin cos cos cos 222222222223122ωωωωωωωωωωωωωωωωωωω=+=--=+⋅--=-=n n n n n n n n n n n x n x n x n y 答:从图形中可以看出,输入频率越大,输出信号值越小。
最后都逐渐趋于0。
2.7运行程序P2.3,对由加权输入得到的y[n]在与相同权系数下输出y1[n]和y2[n]相加得到的yt[n]进行比较,这两个序列是否相等?该系统是线性系统么?clf;n = 0:40;a = 2;b = -3;x1 = cos(2*pi*0.1*n);x2 = cos(2*pi*0.4*n);x = a*x1 + b*x2;num=[2.2403 2.4908 2.2403];den = [1 -0.4 0.75];ic = [0 0];y1 = filter(num,den,x1,ic);y2 = filter(num,den,x2,ic);y = filter(num,den,x,ic);yt = a*y1 + b*y2;d = y - yt;subplot(3,1,1)stem(n,y);ylabel('振幅');title('加权输入: a \cdot x_{1}[n] + b \cdot x_{2}[n]的输出'); subplot(3,1,2)stem(n,yt);ylabel('这幅');title('加权输出: a \cdot y_{1}[n] + b \cdot y_{2}[n]');subplot(3,1,3)stem(n,d);xlabel('时间序号n');ylabel('振幅');title('差信号');图形显示如下:答:该仿真结果说明这两个序列相等,该系统是线性系统。
2.9当初始条件非零时重做习题Q2.7。
令ic = [10 20];则仿真结论如下所示:答:该仿真结果说明这两个序列不相等,该系统不是线性系统。
2.11假定另一个系统为y[n]=x[n]x[n-1],修改程序P2.3,计算这个系统的输出序列y1[n],y2[n]和y[n]。
比较y[n]和yt[n]。
这两个序列是否相等?该系统是线性系统吗?n=0:40;a=2;b=-3;x11=[0 cos(2*pi*0.1*n) 0];x12=[0 0 cos(2*pi*0.1*n)];x21=[0 cos(2*pi*0.4*n) 0]; x22=[0 0 cos(2*pi*0.4*n)];y1=x11.*x12;y2=x21.*x22;yt=a*y1+b*y2;y=(a*x11+b*x21).*(a*x12+b*x22);d=y-yt;subplot(3,1,1)stem([0 n 0],y);ylabel('振幅');title('加权输入: a \cdot x_{1}[n] + b \cdot x_{2}[n]的输出');subplot(3,1,2)stem([0 n 0],yt);ylabel('这幅');title('加权输出: a \cdot y_{1}[n] + b \cdot y_{2}[n]');subplot(3,1,3)stem([0 n 0],d);xlabel('时间序号n');ylabel('振幅');title('差信号');图形显示如下:答:这两个序列不相等,该系统不是线性系统。
2.13采用三个不同的延时变量D的值重做习题Q2.12。
D=2;D=6;D=12;显示图形如下:答:该系统是时不变系统,满足y[n-D]=yd[n]。
2.15在非零的初始条件下重做习题Q2.12,该系统是时不变系统吗?clf;n = 0:40; D = 10;a = 3.0;b = -2;x = a*cos(2*pi*0.1*n) + b*cos(2*pi*0.4*n);xd = [zeros(1,D) x];num = [2.2403 2.4908 2.2403];den = [1 -0.4 0.75];ic = [5 10];y = filter(num,den,x,ic);yd = filter(num,den,xd,ic);d = y - yd(1+D:41+D);subplot(3,1,1)stem(n,y);ylabel('Õñ·ù');title('Êä³ö y[n]'); grid;subplot(3,1,2)stem(n,yd(1:41));ylabel('Õñ·ù');title('ÓÉÓÚÑÓʱÊäÈë x[n-10]µÄÊä³ö'); grid;subplot(3,1,3)stem(n,d);xlabel('ʱ¼äÐòºÅ n'); ylabel('Õñ·ù');title('²îÖµÐźÅ');grid;图形显示如下:答:该仿真结果说明该系统是时变系统。