文档详情

数字信号处理实验报告-FFT算法的MATLAB实现.doc

发布:2018-12-07约1.32千字共4页下载文档
文本预览下载声明
数字信号处理 实验报告 实验二:FFT算法的MATLAB实现 一、实验目的 通过本实验的学习,掌握离散傅立叶变换的理论,特别是FFT的基本算法以及其在在数字信号处理中的应用。 二、实验内容 题一:若x(n)=cos(n*pi/6)是一个N=12的有限序列,利用MATLAB计算它的DFT并画出图形。 题二:一被噪声污染的信号,很难看出它所包含的频率分量,如一个由50Hz和120Hz正弦信号构成的信号,受均值随机噪声的干扰,数据采样率为1000Hz,对这污染信号进行傅立叶变换,以检查所包含的频率分量 题三:调用原始语音信号mtlb,对其进行FFT变换后去掉幅值小于1的FFT变换值,最后重构语音信号。 (要求有四幅语音信号的频谱图在同一图形窗口以便比较:分别是1、原始语音信号;2、FFT变换;3去掉幅值小于1的FFT变换值;4、重构语音信号) 三、实验原理 1、有限长序列x(n)的DFT的概念和公式: 2、基2的FFT算法 四、实验条件 (1)微机 (2)MATLAB编程工具 五、用matlab程序实现: 实验一: clc; N=12; n=0:N-1; k=0:N-1; xn=cos(n*pi/6); W=exp(-j*2*pi/N); kn=n*k Xk=xn*(W.^kn) stem(n,Xk); xlabel(k); ylabel(Xk); 实验二 clc; fs=1000; N=1024; n=0:N-1; t=n/fs; x=sin(2*pi*50*t)+sin(2*pi*120*t)+rand(1,N); y=fft(x,N); mag=abs(y); f=n*fs/N; subplot(1,2,1),plot(f,mag); xlabel(频率/Hz); ylabel(振幅);title(N=1024); subplot(1,2,2),plot(f(1:N/2),mag(1:N/2)); xlabel(频率/Hz); ylabel(振幅);title(N=1024); 实验三: clc; load mtlb N=1500; subplot(2,2,1) plot([1:N],mtlb(1:N)); title(原始语音信号); y=fft(mtlb(1:N)); subplot(2,2,2) plot([1:N],y); title(原始语音信号FFT变换); y(y1)=0; subplot(2,2,3) plot([1:N],y); title(去掉幅值小于1的FFT变换值); subplot(2,2,4) plot([1:N],ifft(y)); title(重构语音信号); 六、实验心得: (1)通过这次实验,掌握离散傅立叶变换的理论,特别是FFT的基本算法以及其在在数字信号处理中的应用。并且知道可以用离散傅里叶变换进行信号的分离和重构 (2)通过这次实验,让我真正的了解了通过离散傅里叶变换可以消除噪声对信号的干扰,可以重构语音信号。 1
显示全部
相似文档