数字信号处理实验二用FFT作谱分析报告.docx
《数字信号处理实验二用FFT作谱分析报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验二用FFT作谱分析报告.docx(16页珍藏版)》请在冰豆网上搜索。
数字信号处理实验二用FFT作谱分析报告
西安郵電學院
数字信号处理课实验
报告书
系部名称
:
计算机系
学生
:
常成娟
专业名称
:
电子信息科学与技术
班级
:
0603
学号
:
04062095
时间
:
2008-11-23
实验二:
用FFT作谱分析
一、实验目的:
(1)进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。
(2)熟悉FFT算法原理和FFT子程序的应用。
(3)学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
二、实验步骤:
(1)复习DFT的定义、性质和用DFT作谱分析的有关容。
(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),频率分辨率的选择要以能分辨开其中的三个频率对应的谱线为准则。
对周期序列,最好截取周期的整数倍进行分析,否则有可能产生较大的分析误差。
请实验者根据DFT的隐含周期性思考这个问题。
(4)编写主程序。
下图给出了主程序框图,供参考。
本实验提供FFT子程序和通用绘图子程序。
三、上机实验容
(1)对2中所给出的信号逐个进行谱分析。
下面给出针对各信号的FFT变换区间N以及对连续信号的采样频率fs。
,,,,:
N=8,16
:
fs=64(hz),N=16,32,64
实验结果:
1.=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('|x1(k)|')
title('x1(n)的8点fft')
subplot(2,2,3)
k=[0:
7]
stem(k,abs(f1));
axis([01005])
xlabel('k')
ylabel('|x1(k)|')
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('|x2(k)|')
title('x2(n)的8点fft')
subplot(2,2,3)
k=[0:
7]
stem(k,abs(f1));
axis([010020])
xlabel('k')
ylabel('|x2(k)|')
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('|x3(k)|')
title('x3(n)的8点fft')
subplot(2,2,3)
k=[0:
7]
stem(k,abs(f1));
axis([08020])
xlabel('k')
ylabel('|x3(k)|')
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)
f2=fft(x,16)
subplot(2,2,2)
stem(n,x);
axis([016-44])
xlabel('n')
ylabel('x4(n)')
title('x4的波形')
subplot(2,2,4)
k=[0:
15]
stem(k,abs(f2));
axis([016020])
xlabel('k')
ylabel('|x4(k)|')
title('x4(n)的16点fft')
subplot(2,2,3)
k=[0:
7]
stem(k,abs(f1));
axis([08020])
xlabel('k')
ylabel('|x4(k)|')
title('x4(n)的8点fft')
波形图:
5.=sin(pi/8*n)
原程序:
n=[0:
7];
x=sin((pi*n)/8)
f1=fft(x,8)
subplot(2,2,1)
stem(n,x);
axis([08-44])
xlabel('n')
ylabel('x5(n)')
title('x5的波形')
n=[0:
15]
x=sin(0.125*pi*n)
f2=fft(x,16)
subplot(2,2,2)
stem(n,x);
axis([016-44])
xlabel('n')
ylabel('x5(n)')
title('x5的波形')
subplot(2,2,4)
k=[0:
15]
stem(k,abs(f2));
axis([016020])
xlabel('k')
ylabel('|x5(k)|')
title('x5(n)的16点fft')
subplot(2,2,3)
k=[0:
7]
stem(k,abs(f1));
axis([08020])
xlabel('k')
ylabel('|x5(k)|')
title('x5(n)的8点fft')
波形图:
6.=cos(pi*8*t)+sin(pi*16*t)+cos(20*pi*t)
原程序:
Ts=1/64;
n=0:
15;
Xa=cos(8*n*Ts*pi)+cos(16*n*Ts*pi)+cos(20*n*Ts*pi);
f1=fft(Xa,16);
subplot(3,2,1);
stem(n,Xa);
axis([015-23]);
xlabel('n');
ylabel('X6(n)');
title('X6(n)N=16');%显示x6(n)N=16
k=0:
15
subplot(3,2,2);
stem(k,abs(f1));
axis([016015]);
xlabel('k');
ylabel('|X6(k)|');
title('X6(n)N=16的16点FFT');%显示X6(n)的16点FFT
n=0:
31;
Xb=cos(8*n*Ts*pi)+cos(16*n*Ts*pi)+cos(20*n*Ts*pi);
f2=fft(Xb,32);
subplot(3,2,3);
stem(n,Xb);
axis([032-23]);
xlabel('n');
ylabel('X6(n)');
title('X6(n)N=32');%显示x6(n)N=32
subplot(3,2,4);
stem(abs(f2));
axis([032020]);
xlabel('k');
ylabel('|X6(k)|');
title('X6(n)N=32的32点FFT');%显示X6(n)的32点FFT
n=0:
63;
Xc=cos(8*n*Ts*pi)+cos(16*n*Ts*pi)+cos(20*n*Ts*pi);
f3=fft(Xc,64);
subplot(3,2,5);
stem(n,Xc);
axis([064-23]);
xlabel('n');
ylabel('X6(n)');
title('X6(n)N=64');%显示x6(n)N=64
subplot(3,2,6);
stem(abs(f3));
axis([064040]);
xlabel('k');
ylabel('|X6(k)|');
title('X6(n)N=64的64点FFT');%显示X6(n)的64点FFT
波形图:
(2)令,用FFT计算8点和16点离散傅立叶变换,,并根据DFT的对称性,由求出和并与
(1)中所得结果比较。
提示(取N=16时,,)
实验结果:
n=[0:
7];
x=cos(0.25*pi*n)+sin(0.125*pi*n)
f1=fft(x,8)
subplot(2,2,1)
stem(n,x);
axis([08-44])
xlabel('n')
ylabel('x7(n)')
title('x7的波形')
n=[0:
15]
x=cos(0.25*pi*n)+sin(0.125*pi*n)
f2=fft(x,16)
subplot(2,2,2)
stem(n,x);
axis([016-44])
xlabel('n')
ylabel('x7(n)')
title('x7的波形')
subplot(2,2,4)
k=[0:
15]
stem(k,abs(f2));
axis([016020])
xlabel('k')
ylabel('|x7(k)|')
title('x7(n)的16点fft')
subplot(2,2,3)
k=[0:
7]
stem(k,abs(f1));
axis([08020])
xlabel('k')
ylabel('|x7(k)|')
title('x7(n)的8点fft')
波形图:
n=[0:
15];
x=cos(0.25*pi*n)+sin(0.125*pi*n)
f1=fft(x,16)
Re=(f1+conj(f1))/2
Im=(f1-conj(f1))/2
subplot(2,2,1)
stem(n,abs(Re));
axis([016020])
xla