实验六、FFT与chirp-z变换
一、实验目的
1、学会运用Matlab表示FFT和chirp-z变换的方法 2、观察并熟悉这些信号的波形和特性
二、实验原理 基-2 FFT算法
1、 时间抽取基-2FFT算法
2、频率抽取基-2FFT算法
3、基-2IFFT算法
三、实验内容
1、已知信号由15HZ幅值0.5的正弦信号和40HZ幅值2的正弦信号组成数据采样频率为100HZ,试分别绘制N=128点DFT的幅频图和N=1024点DFT幅频图。
解、由题意得:信号可写为x?0.5sin(2?f1t)?2sin(2?c2t),
其中f1=15HZ,f2=40HZ
MATLAB程序设计如下:
clf
fs=100; N=128; n=0:N-1; t=n/fs;
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); y=fft(x,N);
mag=abs(y);
f=(0:length(y)-1)'*fs/length(y); subplot(221); plot(f,mag);
xlabel('Frequence(HZ)'); ylabel('Magnitude'); title('N=128') grid
subplot(222);
plot(f(1:N/2),mag(1:N/2)); xlabel('Frequence(HZ)'); ylabel('Magnitude'); title('N=128') grid
fs=100; N=1024; n=0:N-1; t=n/fs;
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); y=fft(x,N); mag=abs(y);
f=(0:length(y)-1)'*fs/length(y); subplot(223) plot(f,mag);
xlabel('Frequence(HZ)'); ylabel('Magnitude'); title('N=1024') grid
subplot(224)
plot(f(1:N/2),mag(1:N/2)); xlabel('Frequence(HZ)'); ylabel('Magnitude'); title('N=1024') grid
实验截图如下:
N=128150150N=128Magnitude50Magnitude050Frequence(HZ)N=1024100100100500002040Frequence(HZ)N=1024608006004002000050Frequence(HZ)100800600400200002040Frequence(HZ)60MagnitudeMagnitude
2、已知带有测量噪声信号x(t)=sin(2πf1t)+sin(2πf2t)+2w(t),其中f1=50Hz,f2=120Hz,ω(t)为均值为零的随机信号,采样频率为1000Hz,数据点数N=1024。试绘制信号的频谱图和无噪声信号的频谱图。
解:用Matlab编程如下:
clf;
fs=1000; N=1024; n=0:N-1; t=n/fs;
f1=50;f2=120;
x=sin(2*pi*f1*t)+sin(2*pi*f2*t); x=x+2*randn(1,length(t)); y=fft(x,N); mag=abs(y);
f=(0:length(y)-1)'*fs/length(y); subplot(211)
plot(f(1:N/2),mag(1:N/2)); xlabel('Frequency(Hz)');