资源描述:
《数字信号处理实验二用FFT作谱分析.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、西安郵電學院数字信号处理课内实验报告书系部名称:计算机系学生姓名:常成娟专业名称:电子信息科学与技术班级:0603学号:04062095时间:2008-11-23实验二:用FFT作谱分析一、实验目的:(1)进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。(2)熟悉FFT算法原理和FFT子程序的应用。(3)学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。二、实验步骤:(1)复习DFT的定义、性质和用DFT作谱分析的有关内容。(2
2、)复习FFT算法原理与编程思想,并对照DIT—FFT运算流图和程序框图,读懂本实验提供的FFT子程序。(3)编制信号产生子程序,产生以下典型信号供谱分析用:=R4(n)=cos(pi/4*n)=sin(pi/8*n)=cos(pi*8*t)+sin(pi*16*t)+cos(20*pi*t)应当注意,如果给出的是连续信号xa(t),则首先要根据其最高频率确定采样速率fs以及由频率选择采样点数N,然后对其进行软件采样(即计算x(n)=xa(nT),0<=n<=N-1),产生对应序列x(n)。对信号x6(t),频率分辨率的选择要以能分辨开其中的三个频率对应的谱线为准则。对
3、周期序列,最好截取周期的整数倍进行分析,否则有可能产生较大的分析误差。请实验者根据DFT的隐含周期性思考这个问题。(4)编写主程序。下图给出了主程序框图,供参考。本实验提供FFT子程序和通用绘图子程序。开始读入长度N调用信号产生子程序产生试验信号调用FFT子程序(函数)计算信号的DTF调用绘图子程序(函数)绘制{X(k)}曲线调用绘图子程序(函数)绘制时间序列波形图结束三、上机实验内容(1)对2中所给出的信号逐个进行谱分析。下面给出针对各信号的FFT变换区间N以及对连续信号的采样频率fs。,,,,,:N=8,16:fs=64(hz),N=16,32,64实验结果:1.
4、=R4(n)原程序:n=[0:7];x=[11110000]f1=fft(x,8)f2=fft(x,16)subplot(2,2,1)stem(n,x);axis([0802])xlabel('n')ylabel('x1(n)')title('x1的波形')subplot(2,2,4)k=[0:15]stem(k,abs(f2));axis([01605])xlabel('k')ylabel('
5、x1(k)
6、')title('x1(n)的8点fft')subplot(2,2,3)k=[0:7]stem(k,abs(f1));axis([01005])xlabel('k
7、')ylabel('
8、x1(k)
9、')title('x1(n)的8点fft')得到的波形图如下:2.原程序:n=[0:7];x=[12344321]f1=fft(x,8)f2=fft(x,16)subplot(2,2,1)stem(n,x);axis([0804])xlabel('n')ylabel('x2(n)')title('x2的波形')subplot(2,2,4)k=[0:15]stem(k,abs(f2));axis([016020])xlabel('k')ylabel('
10、x2(k)
11、')title('x2(n)的8点fft')subplot(2,2,3)
12、k=[0:7]stem(k,abs(f1));axis([010020])xlabel('k')ylabel('
13、x2(k)
14、')title('x2(n)的8点fft')波形图:3.原程序:n=[0:7];x=[43211234]f1=fft(x,8)f2=fft(x,16)subplot(2,2,1)stem(n,x);axis([0804])xlabel('n')ylabel('x3(n)')title('x3的波形')subplot(2,2,4)k=[0:15]stem(k,abs(f2));axis([016020])xlabel('k')ylabel('
15、x
16、3(k)
17、')title('x3(n)的8点fft')subplot(2,2,3)k=[0:7]stem(k,abs(f1));axis([08020])xlabel('k')ylabel('
18、x3(k)
19、')title('x3(n)的8点fft')4.=cos(pi/4*n)原程序:n=[0:7];x=cos(0.25*pi*n)f1=fft(x,8)subplot(2,2,1)stem(n,x);axis([08-44])xlabel('n')ylabel('x4(n)')title('x4的波形')n=[0:15]x=cos(0.25*pi*n