2017年西电电院数字信号处理上机实验报告三
- 格式:doc
- 大小:105.50 KB
- 文档页数:5
实验二 用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呢?答:不相同。
西安电子科技大学数字信号处理(DSP)课程实验报告实验名称 VISUAL DSP++的使用入门电子工程学院 1402071 班同作者崔健孟智超杨伟祺实验日期 2017 年 5 月 16 日实验一:VISUAL DSP++的使用入门一、实验目的:熟悉VISUAL DSP++的开发环境二、实验内容:练习一:启动Visual DSP++,建立一个用C源代码的工程(Project),同时用调试器来评估用C语言所编写代码的性能;练习二:创立一个新的工程,修改源码来调用一个汇编(asm)程序,重新编译工程,用调试器来评估用汇编语言所写程序的性能;练习三:利用调试器的绘图(plot)功能来图形显示一个卷积算法中的多个数据的波形;练习四:利用调试器的性能统计功能(Statistical profile)来检查练习三中卷积算法的效率。
利用所收集到的性能统计数据就能看出算法中最耗时的地方。
三、实验步骤及实验结果:练习一:1)新建工程进入 Visual DSP++,显示Visual DSP++的集成开发和调试环境窗口,选择菜单File 中Open 打开文件:…\unit_1\dot_product_c \dotprodc.dpj。
2)编译 dotprodc工程在菜单 Project中选择 Build Project来对工程进行编译。
在本例子中,编译器会检测到一个未定义的错误,显示为:“.\dotprod_main.c”,line 115:error #20:identifier“itn”is undefined itn i;将该错误改正后,保存并重新编译,没有错误出现,编译成功。
3)运行VsualDSP++调试器在编译完成后,环境将自动进入调试状态,对于初次进入debugger,将显示对象选择对话框,在其中指定对象和处理器信息。
4)运行dotprod.c从 Debug菜单中选择 Run项,程序将被执行,其输出结果在 Output window中显示。
数字信号处理实验报告引言数字信号处理(Digital Signal Processing,DSP)是一门研究数字信号的获取、分析、处理和控制的学科。
在现代科技发展中,数字信号处理在通信、图像处理、音频处理等领域起着重要的作用。
本次实验旨在通过实际操作,深入了解数字信号处理的基本原理和实践技巧。
实验一:离散时间信号的生成与显示在实验开始之前,我们首先需要了解信号的生成与显示方法。
通过数字信号处理器(Digital Signal Processor,DSP)可以轻松生成和显示各种类型的离散时间信号。
实验设置如下:1. 设置采样频率为8kHz。
2. 生成一个正弦信号:频率为1kHz,振幅为1。
3. 生成一个方波信号:频率为1kHz,振幅为1。
4. 将生成的信号通过DAC(Digital-to-Analog Converter)输出到示波器上进行显示。
实验结果如下图所示:(插入示波器显示的正弦信号和方波信号的图片)实验分析:通过示波器的显示结果可以看出,正弦信号在时域上呈现周期性的波形,而方波信号则具有稳定的上下跳变。
这体现了正弦信号和方波信号在时域上的不同特征。
实验二:信号的采样和重构在数字信号处理中,信号的采样是将连续时间信号转化为离散时间信号的过程,信号的重构则是将离散时间信号还原为连续时间信号的过程。
在实际应用中,信号的采样和重构对信号处理的准确性至关重要。
实验设置如下:1. 生成一个正弦信号:频率为1kHz,振幅为1。
2. 设置采样频率为8kHz。
3. 对正弦信号进行采样,得到离散时间信号。
4. 对离散时间信号进行重构,得到连续时间信号。
5. 将重构的信号通过DAC输出到示波器上进行显示。
实验结果如下图所示:(插入示波器显示的连续时间信号和重构信号的图片)实验分析:通过示波器的显示结果可以看出,重构的信号与原信号非常接近,并且能够还原出原信号的形状和特征。
这说明信号的采样和重构方法对于信号处理的准确性有着重要影响。
DSP上机实验报告(1)分析采样序列的特性先取采样频率fs=1 kHz, 然后改变采样频率fs=300 Hz,观察频谱的变化,再取fs=200 Hz,观察频谱混叠是否明显存在,并观察频谱曲线的变化。
Matlab原程序如下:close all;clear all;clc;A=50;a=50*sqrt(2)*pi;m=50*sqrt(2)*pi;fs1=1000;fs2=300;fs3=200;T1=1/fs1;T2=1/fs2;T3=1/fs3;N=100;n=[0:N-1];x1=A*exp(-a*n*T1).*sin(m*n*T1);x2=A*exp(-a*n*T2).*sin(m*n*T2);x3=A*exp(-a*n*T3).*sin(m*n*T3);w=linspace(-pi,pi,10000);X1=x1*exp(-j*n'*w);X2=x2*exp(-j*n'*w);X3=x3*exp(-j*n'*w);figure(1)subplot(1,3,1)plot(w/pi,abs(X1));xlabel('\omega/¦Ð');ylabel('|H(e^j^\omega)|') ;subplot(1,3,2)plot(w/pi,abs(X2));xlabel('\omega/¦Ð');ylabel('|H(e^j^\omega)|') ;subplot(1,3,3)plot(w/pi,abs(X3));xlabel('\omega/¦Ð');ylabel('|H(e^j^\omega)|')实验仿真图形如下:(2) 时域离散信号、系统和系统响应分析。
题目要求:a. 观察信号xb(n)和系统hb(n)的时域和频域特性;利用线性卷积求信号xb(n)通过系统hb(n)的响应y(n),比较所求响应y(n)和h b(n)的时域及频域特性,注意它们之间有无差别,绘图说明,并用所学理论解释所得结果。
数字信号处理大作业院系:电子工程学院学号:02115043姓名:邱道森实验一:信号、系统及系统响应一、实验目的(1) 熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解。
(2) 熟悉时域离散系统的时域特性。
(3) 利用卷积方法观察分析系统的时域特性。
(4) 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。
二、实验原理采样是连续信号数字处理的第一个关键环节。
对连续信号()a x t 进行理想采样的过程可用(1.1)式表示:()()()ˆa a xt x t p t =⋅ 其中()t xa ˆ为()a x t 的理想采样,()p t 为周期冲激脉冲,即 ()()n p t t nT δ∞=-∞=-∑()t xa ˆ的傅里叶变换()j a X Ω为 ()()s 1ˆj j j a a m X ΩX ΩkΩT ∞=-∞=-∑进行傅里叶变换,()()()j ˆj e d Ωt a a n X Ωx t t nT t δ∞∞--∞=-∞⎡⎤=-⎢⎥⎣⎦∑⎰ ()()j e d Ωtan x t t nT t δ∞∞--∞=-∞=-∑⎰()j e ΩnTan x nT ∞-=-∞=∑式中的()a x nT 就是采样后得到的序列()x n , 即()()a x n x nT =()x n 的傅里叶变换为()()j j e enn X x n ωω∞-=-∞=∑比较可知()()j ˆj e aΩTX ΩX ωω==为了在数字计算机上观察分析各种序列的频域特性,通常对()j e X ω在[]0,2π上进行M 点采样来观察分析。
对长度为N 的有限长序列()x n ,有()()1j j 0eekk N nn X x n ωω--==∑其中2π,0,1,,1k k k M Mω==⋅⋅⋅-一个时域离散线性时不变系统的输入/输出关系为()()()()()m y n x n h n x m h n m ∞=-∞=*=-∑上述卷积运算也可以转到频域实现()()()j j j e e e Y X H ωωω= (1.9)三、实验内容及步骤(1) 认真复习采样理论、 离散信号与系统、 线性卷积、 序列的傅里叶变换及性质等有关内容, 阅读本实验原理与方法。
本科实验报告实验名称:数字信号处理上机实验作业1:用DFT 分析周期序列的频谱任务:设周期序列()cos(0.48)cos(0.52)xn n n ππ=+ 截取 N 点长得到 ()()()N x n x n R n = (1)N=10,做10点DFT ,得到 X1(k);(2)N=10,做100点补零DFT ,得到 X2(k); (3)N=100,做100点DFT ,得到 X3(k)。
要求:针对以上三种情况,分别输出|X1(k)|、|X2(k)|、|X3(k)|的图形,并进行比较、分析和讨论。
程序:clear all ; n=0:1000;xn=cos(pi*0.48*n)+cos(pi*0.52*n); Xk1=fft(xn(1:10),10); X1=abs(Xk1); subplot(3,1,1); stem(X1,'.'); xlabel('k'); ylabel('|X1(k)|'); title('N=10,10点DFT'); Xk2=fft(xn(1:10),100); X2=abs(Xk2); subplot(3,1,2); stem(X2,'.'); xlabel('k'); ylabel('|X2(k)|');title('N=10,100点补零DFT'); Xk3=fft(xn(1:100),100); X3=abs(Xk3); subplot(3,1,3); stem(X3,'.'); xlabel('k'); ylabel('|X3(k)|'); title('N=100,100点DFT');运行结果:k|X 1(k )|N=10,10点DFTk|X 2(k )|N=10,100点补零DFTk|X 3(k )|N=100,100点DFT分析:从幅度谱中我们可以明显看出,X1(k)的相邻谱线间隔大,栅栏效应明显,频率分辨率低。
实验五、IIR数字滤波器设计及其网络结构班级:学号:姓名:成绩:1实验目的(1)熟悉数字滤波的基本概念、数字滤波器的主要技术指标及其物理意义;(2)掌握巴特沃斯和切比雪夫模拟低通滤波器的设计方法和IIR数字低通滤波器的脉冲响应不变设计法、双线性变换法设计方法。
(3)了解模拟和数字滤波器的频率变换、IIR数字滤波器的直接(优化)设计方法;2 实验内容(1)设计计算机程序,根据滤波器的主要技术指标设计IIR数字巴特沃斯和切比雪夫低通、高通、带通和带阻滤波器;(2)绘制滤波器的幅频特性和相频特性曲线,验证滤波器的设计结果是否达到设计指标要求;(3)画出数字滤波器的直接型、级联型、并联型网络结构信号流图。
3实验步骤(1)设计相应的八种滤波器的MATLAB程序;(2)画出幅频相频特性曲线;(3)画出信号流图。
4程序设计%% 巴特沃斯低通wp=0.2;ws=0.35;rp=1;rs=10;[N,wc]=buttord(wp,ws,rp,rs);[B,A]=butter(N,wc);w=0:0.001:pi;[H,w]=freqz(B,A,w);H1=20*log10(abs(H))subplot(2,1,1)plot(w/pi,H1),grid on;xlabel('\omega/\pi'),ylabel('|H(e^i^\omega)|')subplot(2,1,2)plot(w/pi,angle(H)/pi);xlabel('\omega/\pi'),ylabel('\phi(\omega)/\pi')%% 巴特沃斯高通wp=0.8;ws=0.6;rp=1;rs=10;[N,wc]=buttord(wp,ws,rp,rs);[B,A]=butter(N,wc,'high');w=0:0.001:pi;[H,w]=freqz(B,A,w);H1=20*log10(abs(H));subplot(2,1,1)plot(w/pi,H1),grid on;xlabel('\omega/\pi'),ylabel('|H(e^i^\omega)|')subplot(2,1,2)plot(w/pi,angle(H)/pi);xlabel('\omega/\pi'),ylabel('\phi(\omega)/\pi') %% 巴特沃斯带通wpl=0.4;wpu=0.6;wsl=0.2;wsu=0.8wp=[wpl,wpu];ws=[wsl,wsu];rp=1;rs=20;[N,wc]=buttord(wp,ws,rp,rs);[B,A]=butter(N,wc);w=0:0.001:pi;[H,w]=freqz(B,A,w);H1=20*log10(abs(H));subplot(2,1,1)plot(w/pi,H1),grid on;xlabel('\omega/\pi'),ylabel('|H(e^i^\omega)|') subplot(2,1,2)plot(w/pi,angle(H)/pi);xlabel('\omega/\pi'),ylabel('\phi(\omega)/\pi') %% 巴特沃斯带阻wpl=0.2;wpu=0.8;wsl=0.4;wsu=0.6wp=[wpl,wpu];ws=[wsl,wsu];rp=1;rs=20;[N,wc]=buttord(wp,ws,rp,rs);[B,A]=butter(N,wc,'stop');w=0:0.001:pi;[H,w]=freqz(B,A,w);H1=20*log10(abs(H));subplot(2,1,1)plot(w/pi,H1),grid on;xlabel('\omega/\pi'),ylabel('|H(e^i^\omega)|')subplot(2,1,2)plot(w/pi,angle(H)/pi);xlabel('\omega/\pi'),ylabel('\phi(\omega)/\pi') %% 切比雪夫低通wp=0.2;ws=0.5;rp=1;rs=40;[N,wpo]=cheb1ord(wp,ws,rp,rs);[B,A]=cheby1(N,rp,wpo);w=0:0.001:pi;[H,w]=freqz(B,A,w);H1=20*log10(abs(H));subplot(2,1,1)plot(w/pi,H1),grid on;xlabel('\omega/\pi'),ylabel('|H(e^i^\omega)|')subplot(2,1,2)plot(w/pi,angle(H)/pi);xlabel('\omega/\pi'),ylabel('\phi(\omega)/\pi')%% 切比雪夫高通wp=0.7;ws=0.5;rp=1;rs=40;[N,wpo]=cheb1ord(wp,ws,rp,rs);[B,A]=cheby1(N,rp,wpo,'high');w=0:0.001:pi;[H,w]=freqz(B,A,w);H1=20*log10(abs(H));subplot(2,1,1)plot(w/pi,H1),grid on;xlabel('\omega/\pi'),ylabel('|H(e^i^\omega)|')subplot(2,1,2)plot(w/pi,angle(H)/pi);xlabel('\omega/\pi'),ylabel('\phi(\omega)/\pi')%% 切比雪夫带通wpl=0.4;wpu=0.6;wsl=0.2;wsu=0.8wp=[wpl,wpu];ws=[wsl,wsu];rp=1;rs=20;[N,wpo]=cheb1ord(wp,ws,rp,rs);[B,A]=cheby1(N,rp,wpo);w=0:0.001:pi;[H,w]=freqz(B,A,w);H1=20*log10(abs(H));subplot(2,1,1)plot(w/pi,H1),grid on;xlabel('\omega/\pi'),ylabel('|H(e^i^\omega)|')subplot(2,1,2)plot(w/pi,angle(H)/pi);xlabel('\omega/\pi'),ylabel('\phi(\omega)/\pi')%% 切比雪夫带阻wpl=0.2;wpu=0.8;wsl=0.4;wsu=0.6wp=[wpl,wpu];ws=[wsl,wsu];rp=1;rs=20;[N,wpo]=cheb1ord(wp,ws,rp,rs);[B,A]=cheby1(N,rp,wpo,'stop');w=0:0.001:pi;[H,w]=freqz(B,A,w);H1=20*log10(abs(H));subplot(2,1,1)plot(w/pi,H1),grid on;xlabel('\omega/\pi'),ylabel('|H(e^i^\omega)|')subplot(2,1,2)plot(w/pi,angle(H)/pi);xlabel('\omega/\pi'),ylabel('\phi(\omega)/\pi')5实验结果及分析(1)巴特沃斯低通W=0.5πi时,H=-0.75dB,w=0.35π时,H=-10dB,满足要求。
上机频谱分析过程及结果图 上机实验三:IIR 低通数字滤波器的设计姓名:赵晓磊 学号:赵晓磊 班级:02311301 科目:数字信号处理B一、实验目的1、熟悉冲激响应不变法、双线性变换法设计IIR 数字滤波器的方法。
2、观察对实际正弦组合信号的滤波作用。
二、实验内容及要求1、分别编制采用冲激响应不变法、双线性变换法设计巴特沃思、切贝雪夫I 型,切贝雪夫II 型低通IIR 数字滤波器的程序。
要求的指标如下:通带内幅度特性在低于πω3.0=的频率衰减在1dB 内,阻带在πω6.0=到π之间的频率上衰减至少为20dB 。
抽样频率为2KHz ,求出滤波器的单位取样响应,幅频和相频响应,绘出它们的图,并比较滤波性能。
(1)巴特沃斯,双线性变换法Ideal And Designed Lowpass Filter Magnitude Responsefrequency in Hz|H [e x p (j w )]|frequency in pi units|H [ex p (j w )]|Designed Lowpass Filter Phase Response in radians frequency in pi unitsa r g (H [e x p (j w )](2)巴特沃斯,冲激响应不变法(3)切贝雪夫I 型,双线性变换法(4)切贝雪夫Ⅱ型,双线性变换法综合以上实验结果,可以看出,使用不同的模拟滤波器数字化方法时,滤波器的性能可能产生如下差异:使用冲击响应不变法时,使得数字滤波器的冲激响应完全模仿模拟滤波器的冲激响应,也就是时域逼急良好,而且模拟频率和数字频率之间呈线性关系;但频率响应有混叠效应。
frequency in Hz|H [e x p (j w )]|Designed Lowpass Filter Magnitude Response in dBfrequency in pi units|H [e x p (j w )]|frequency in pi unitsa r g (H [e x p (j w )]Ideal And Designed Lowpass Filter Magnitude Responsefrequency in Hz|H [e x p (j w )]|frequency in pi units|H [e xp (j w )]|frequency in pi unitsa r g (H [e x p (j w )]Ideal And Designed Lowpass Filter Magnitude Responsefrequency in Hz|H [e x p (j w )]|frequency in pi units|H [ex p (j w )]|Designed Lowpass Filter Phase Response in radiansfrequency in pi unitsa r g (H [e x p (j w )]使用双线性变换法时,克服了多值映射的关系,避免了频率响应的混叠现象;在零频率附近,频率关系接近于线性关系,高频处有较大的非线性失真。
数字信号处理课程设计报告实验三目录1. 实验三概述 (2)1.1 实验目的 (2)1.2 实验要求 (3)1.3 实验内容 (4)2. 实验原理 (5)2.1 数字信号处理的简介 (6)2.2 数字滤波器的类型 (6)2.3 FIR和IIR滤波器的区别 (7)3. 实验软件与硬件环境 (9)3.1 软件环境 (10)3.2 硬件环境 (12)3.3 实验设备介绍 (13)4. 实验步骤 (14)4.2 设计数字滤波器 (15)4.3 滤波器实现与调试 (16)4.4 实验数据分析 (17)5. 实验设计 (18)5.1 数字滤波器的设计方法 (19)5.2 滤波器参数的选择 (20)5.3 滤波器实现代码实现 (21)6. 实验结果 (22)6.1 滤波前后的信号对比 (24)6.2 滤波效果分析 (25)6.3 滤波器性能指标评价 (26)7. 实验讨论 (27)7.1 实验中发现的问题 (29)7.2 解决问题的方法与思考 (29)8. 实验心得 (32)8.1 数字信号处理的理解加深 (33)8.2 编程能力的提升 (34)8.3 对实验中遇到的挑战的看法 (35)1. 实验三概述本实验课题为“数字滤波器设计与分析”,旨在使学生深入理解数字滤波器的原理及设计方法,并掌握使用仿真工具进行实际滤波器设计与性能分析的能力。
实验通过MATLAB平台,分别实现低通、高通及带通滤波器的设计与模拟,并进行频率响应分析、时域响应分析以及信号处理效果的评价。
不同类型的数字滤波器设计方法原理介绍,包括IIR和FIR滤波器。
不同设计方法的优缺点分析,并结合实际应用场景选择合适的滤波器类型。
使用MATLAB自带函数和滤波器设计工具包进行滤波器设计,以及根据不同指标对滤波器参数进行调整。
通过完成本实验,学生将能掌握数字滤波器的理论知识和应用技能,并对其优缺点及应用场景有更深入的理解。
1.1 实验目的加载、分析和可视化语音信号:学生需学会使用高级软件工具加载语音信号数据,并运用绘图工具展示信号的时域波形及频谱图。
数字信号处理实验报告二与三实验二用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)。
x(n)?R(n)14?n?1,0?n?3? x2(n)??8?n,4?n?7 ?0,其它n??4?n,0?n?3 ? x(n)?n?3,4?n?7?3?,其它n?0(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');4.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 endend 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]');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');X[M]mnXMnFFT4X[M]nX[M]n四.简要回答以下问题:①在N=8时,x2(n)和x3(n)的幅频特性会相同吗?为什么?N=16呢?答:不相同。
实验三、信号的频域与Z域分析
班级:学号:姓名:成绩:
1实验目的
(1)理解序列离散傅里叶变换(DTFT)的定义,熟悉序列DTFT的计算及其主要性质;
(2)掌握Z变换的计算和主要性质,熟悉Z变换的收敛域及其与序列特性的关系,以及Z变换与DTFT的关系;
(3)掌握时域离散线性时不变系统的频域分析方法,深刻理解系统的频率响应。
了解系统的稳态响应和暂态响应、相位延迟和群延迟等概念;
(4)掌握时域离散线性时不变系统的z域分析方法,深刻理解离散系统的系统函数及其零极点分布,熟悉零极点分布与系统的因果性和稳定性关系、零极点分布对系统频率特性的影响、差分方程的Z变换解法等;
2 实验内容
(1)设计计算机程序,产生序列并计算序列的DTFT,绘制其幅频特性和相频特性曲线;
(2)根据系统的单位脉冲响应和差分方程,计算系统的频率响应,绘制系统频率响应的幅频特性和相频特性曲线;
(3)根据系统的单位脉冲响应和差分方程,计算系统的系统函数、零极点分布;改变系统的零极点分布,观察系统频率响应的变化。
3实验步骤
(1)设计有限长序列Rn;计算序列的DTFT,绘制幅频特性和相频特性曲线
(2)改变系统的系统函数的零点分布,绘制系统改变前和改变后的频率响应的幅频特性和相频特性曲线
4 程序设计
x=[1,1,1,1];nx=[0:3];%x(n)=R(n)
w=linspace(-2.8*pi,2.8*pi,100000);%取100000个点
X=x*exp(-j*nx'*w);%DTFT
figure(1);
subplot(3,2,1),plot(w/pi,abs(X));xlabel('\omega/\pi');ylabel('|X(e^j^\omega)|') subplot(3,2,2),plot(w/pi,angle(X));xlabel('\omega/\pi');ylabel('\phi(\omega)/\pi') %差分方程求解
a=[1,-0.4];b=[1];
[H,w]=freqz(b,a,'whole');
subplot(3,2,3),plot(w/pi,abs(H));xlabel('\omega/\pi');ylabel('|X(e^j^\omega)|') subplot(3,2,4),plot(w/pi,angle(H));xlabel('\omega/\pi');ylabel('\phi(\omega)/\pi') %零极点分布
a=[1,-1.6,0.9425];%分母
b1=[1,-0.3];b2=[1,-0.8];%分子
[F,w]=freqz(b1,a,'whole');
figure(2);
subplot(2,2,1),zplane(b1,a);%零极点分布图
subplot(2,2,3),plot(w/pi,abs(F));xlabel('\omega/\pi');ylabel('|X(e^j^\omega)|') subplot(2,2,4),plot(w/pi,angle(F));xlabel('\omega/\pi');ylabel('\phi(\omega)/\pi') figure(3);%改变零极点分布,观察频率响应变化
[F,w]=freqz(b2,a,'whole');
subplot(2,2,1),zplane(b2,a);
subplot(2,2,3),plot(w/pi,abs(F));xlabel('\omega/\pi');ylabel('|X(e^j^\omega)|') subplot(2,2,4),plot(w/pi,angle(F));xlabel('\omega/\pi');ylabel('\phi(\omega)/\pi')
5实验结果及分析零点改变前系统频率响应:
零点改变后系统频率响应:
分析:通过图像可以明显看出改变系统的零点可以改变谷深和谷底位置,改变极点可以改变峰值的位置和峰的尖锐程度
6总结
通过本次实验深刻理解离散信号与系统的时域性质和分析方法,熟练掌握利用MATLAB 工具时域分析离散信号和系统的方法。
7参考资料
史林,赵树杰. 数字信号处理. 北京:科学出版社,2007。