1
应用 MATLAB 对信号进行频谱分析及滤波
设计目的
要求学生会用 MATLAB 语言进行编程,绘出所求波形,并且运用 FFT 求对连
续信号进行分析。
一、设计要求
1、用 Matlab 产生正弦波,矩形波,并显示各自的时域波形图;
2、进行 FFT 变换,显示各自频谱图,其中采样率、频率、数据长度自选,
要求注明;
3、绘制三种信号的均方根图谱;
4、用 IFFT 回复信号,并显示恢复的正弦信号时域波形图。
二、系统原理
用 FFT 对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行频
谱分析的信号是模拟信号和时域离散信号。频谱分辨率直接和 FFT 的变换区间 N
有关,因为 FFT 能够实现频率分辨率是 2π/N。
x(n)是一个长度为 M 的有限长序列,则 x(n)的 N 点离散傅立叶变换为:
X(k)=DFT[x(n)]=
kn
N
W
N
n
nx
�
�
�
1
0
)(
,k=0,1,...,N-1
N
j
e
N
W
�
2
�
�
逆变换:x(n) =IDFT[X(k)]=
kn
N
WkX
N
n
N
�
�
�
�
1
0
)(
1
,k=0,1,...,N-1
但 FFT 是一种比 DFT 更加快速的一种算法,提高了 DFT 的运算速率,为数字
信号处理技术应用于各种信号处理创造了条件,大大提高了数字信号处理技术的
发展。本实验就是采用 FFT,IFFT 对信号进行谱分析。
三、程序设计
fs=input('please input the fs:');%设定采样频率
N=input('please input the N:');%设定数据长度
t=0:0.001:1;
f=100;%设定正弦信号频率