"数字信号处理实验报告-FFT算法的MATLAB实现" 本实验报告主要讲述了数字信号处理中的FFT算法的MATLAB实现,涵盖了离散傅立叶变换的理论、FFT算法的基本原理、MATLAB编程工具的应用等方面的知识点。 一、实验目的 通过本实验的学习,掌握离散傅立叶变换的理论,特别是FFT的基本算法,以及其在数字信号处理中的应用。 二、实验内容 实验内容包括三个部分: 1. 题一:利用MATLAB计算有限序列x(n)=cos(n*pi/6)的DFT,并画出图形。 2. 题二:对污染信号进行傅立叶变换,以检查所包含的频率分量。 3. 题三:调用原始语音信号mtlb,对其进行FFT变换后去掉幅值小于1的FFT变换值,最后重构语音信号。 三、实验原理 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(y<1)=0; subplot(2,2,3)plot([1:N],y); title('去掉幅值小于1的FFT变换值'); subplot(2,2,4)plot([1:N],ifft(y)); title('重构语音信号'); 六、实验心得: 通过这次实验,掌握了离散傅立叶变换的理论,特别是FFT的基本算法,以及其在数字信号处理中的应用。并且知道可以用离散傅里叶变换进行信号的分离和重构。通过这次实验,让我真正的了解了通过离散傅里叶变换可以消除噪声对信号的干扰,可以重构语音信号。 知识点: 1. 离散傅立叶变换(DFT) 2. 快速傅立叶变换(FFT) 3.MATLAB编程工具 4. 数字信号处理 5. 信号分离 6. 信号重构 7. 噪声消除 8. 频率分量分析
- 壮z2023-11-19资源是宝藏资源,实用也是真的实用,感谢大佬分享~
- 粉丝: 97
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助