数字信号处理用FFT作谱分析 2.docx
《数字信号处理用FFT作谱分析 2.docx》由会员分享,可在线阅读,更多相关《数字信号处理用FFT作谱分析 2.docx(12页珍藏版)》请在冰豆网上搜索。
数字信号处理用FFT作谱分析2
实验二用FFT作谱分析操作:
报告:
一、实验目的
(1)进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。
(2)熟悉FFT算法原理和FFT子程序的应用。
(3)学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
二、实验原理与方法
(1)复习DFT的定义、性质和用DFT作谱分析的有关内容。
(2)复习FFT算法原理与编程思想,并对照DIT-FFT运算流图和程序框图,读懂本实验提供的FFT子程序。
(3)编制信号产生子程序,产生以下典型信号供谱分析用:
(4)编写主程序。
部分程序如下:
while(b)
ifb==6
N=input('请选择FFT变换区间长度N:
16or32or64:
\n','s');
N=str2num(N);
fs=64;
n=0:
N-1;
x=cos(8*pi*n/fs)+cos(16*pi*n/fs)+cos(20*pi*n/fs);
else
N=input('请选择FFT变换区间长度N:
8or16:
\n','s');
N=str2num(N);
ifb==1
x=[11110000];
elseifb==2
x=[12344321];
elseifb==3
x=[43211234];
elseifb==4
n=0:
N-1;
x=cos(0.25*pi*n);
elseifb==5
n=0:
N-1;
x=sin((pi*n)/8);
elseifb==7
n=0:
N-1;
x=cos(n*pi/4)+sin(n*pi/8);
elseifb==8
n=0:
N-1;
x=cos(n*pi/4)+j*sin(n*pi/8);
三、实验步骤
(1)对2中所给出的信号逐个进行谱分析。
下面给出针对各信号的FFT变换区间N以及对连续信号x6(t)的采样频率Fs,供实验时参考。
x1(n),x2(n),x3(n),x4(n),x5(n):
N=8,16
x6(t):
Fs=64Hz,N=16,32,64
(2)令x(n)=x4(n)+x5(n),用FFT计算8点和16点离散傅里叶变换。
X(k)=DFT[x(n)]
(3)令x(n)=x4(n)+jx5(n),重复
(2)。
四、实验结果
X1(n):
N=8
N=16
x2(n):
N=8
N=16
X3(n):
N=8
N=16
X4(n):
N=8
N=16
X5(n):
N=8
N=16
X6(n)
N=16
N=32
N=64
X7=X4+X5
N=8
N=16
X8=x4+jx5
N=8
N=16
四、思考题
(1)在N=8时,x2(n)和x3(n)的幅频特性会相同吗?
为什么?
N=16呢?
相同。
当N=16时不同。
(2)如果周期信号的周期预先不知道,如何用FFT进行谱分析?
可以先截取M点进行DFT,再将截取长度扩大1倍截取,比较结果,如果二者的差别满足分析误差要求,则可以近似表示该信号的频谱,如果不满足误差要求就继续将截取长度加倍,重复比较,直到结果满足要求。