数字信号处理实验指导书4
- 格式:doc
- 大小:41.00 KB
- 文档页数:3
《数字信号处理》
实验指导书
唐山学院信息与控制工程实验教学中心
DSP实验室
2008年9月
实验四 FFT 算法的应用
一.实验目的
1.加深对离散信号的DFT 的理解及其FFT 算法的运用。
2. 掌握在Matlab 中FFT 函数及其实现方法。
二.实验内容
(1)对连续的单一频率周期信号按采样频率m s f f 8=采样,截取长度N 分别选N =20和
N =16,观察其DFT 结果的幅度谱。
(2)2N 点实数序列
⎪⎭
⎪⎬⎫⎪⎩⎪⎨⎧-=+=n N n n N n N n x 其它,012,...,2,1,0),192cos(21)72cos()(ππ N=64。
用一个64点的复数FFT 程序,一次算出N n x DFT k X 2)]([)(=,并绘出)(k X 。
(3)已知某序列)(n x 在单位圆上的N=64等分样点的Z 变换为
63,...,2,1,0,8.011)()(/2=-==-k e k X z X N k j k π
用N 点IFFT 程序计算)]([)(k X IDFT n x =,绘出和)(n x 。
三.程序设计
1. 用以下代码实现实验(1)
k=8;
n1=[0:1:19];
xa1=sin(2*pi*n1/k);
subplot(2,2,1)
plot(n1,xa1)
xlabel('t/T');ylabel('x(n)');
xk1=fft(xa1);xk1=abs(xk1);
subplot(2,2,2)
stem(n1,xk1)
xlabel('k');ylabel('X(k)');
n2=[0:1:15];
xa2=sin(2*pi*n2/k);
subplot(2,2,3)
plot(n2,xa2)
xlabel('t/T');ylabel('x(n)');
xk2=fft(xa2);xk2=abs(xk2);
subplot(2,2,4)
stem(n2,xk2)
xlabel('k');ylabel('X(k)');
2. 用以下代码实现实验(2)
N=64;
n=0:2*N-1;
x=cos(2*pi*7*n/N)+1/2*cos(2*pi*19*n/N);
X=fft(x,128);
k=n;
stem(k,abs(X))
grid
xlabel('k');ylabel('|X[k]|');
3. 用以下代码实现实验(3)
N=64;
k=0:N-1;
X=1./(1-0.8*exp(-j*2*pi*k/N));
x=ifft(X,64);
n=k;
stem(n,abs(x))
grid
xlabel('n');ylabel('x[n]');
四.实验报告要求
1. 记录其DFT结果的幅度谱。
分析幅度谱误差产生的原因。
2. 记录FFT运行结果,自行编写N点FFT运行程序。
3. 利用MA TLAB编程完成计算,绘出相应图形。
并与理论计算相比较,说明实验结果的原因。