fft频谱分析算法及程序-数字信号处理课程设计报告FFT计算频谱<一>需求分析设计题目及要求: 1、已知无限长序列 ,要求:(1)截取序列长度M=10点,用FFT计算其频谱;(2)截取序列长度M=20点,用FFT计算其频谱;要求观察频谱泄漏情况。 2、若信号由20Hz,220 Hz和750Hz三个正弦频率成分构成,试用FFT计算其频谱。设计滤波器进行滤波,要求保留220Hz频率成分。3、已知已调信号 ,其中调制信号 ,载波为 。使用FFT分析该已调信号的频谱并对它进行解调,以恢复原调制信号。(提示:需要了解调制解调的概念和过程,自己查阅资料)<二>原理分析 题目一:序列的前10点和20点用FFT计算频谱即可,相比之下,10点的频谱的泄漏情况会比20点的频谱的泄漏情况严重。题目二:设信号的函数表达式为y=0.25sin(4πt)+0.5sin(440πt)+ sin(1500πt),由于序列是无限长的,故要先截取一个周期,题目三:<三>程序设计:题目一原程序如下:10点FFTn=0:9x=0.8.^nu=ones(1,10)X=x.*uy=fft(X,10)stem(n,y)图形如下: 20点FFTn=0:19x=0.8.^nu=ones(1,20)X=x.*uy=fft(X,20)stem(n,y) 第二题:T=0.0005n=0:199a1=20a2=220 a3=750f1=0.25*sin(2*pi*a1*n*T)+0.5*sin(2*pi*a2*n*T)+1*sin(2*pi*a3*n*T)y=fft(f1,200)325
fft频谱分析算法及程序|课程设计
过滤以后:T=0.0005n=0:199a1=20a2=220 a3=750f1=0.25*sin(2*pi*a1*n*T)+0.5*sin(2*pi*a2*n*T)+1*sin(2*pi*a3*n*T)y=fft(f1,200)stem(n,abs(y))k=[zeros(1,20),ones(1,20),zeros(1,100),ones(1,50),zeros(1,10)]y1=y.*kstem(n,abs(y1))
第三题:t=0:1.9:100;x=cos(pi*t);y=cos(9*pi*t);y1=x.*y;subplot(3,1,1),plot(t,y1)y2=fft(y1,100);n=0:99;subplot(3,1,2),stem(n,y2)y3=y1.*x;subplot(3,1,3),plot(t,y3)
fp=0.5;wp=2*pi*fp;fs=2;ws=2*pi*fs;rp=10;rs=50;[N,Wn]=buttord(wp,ws,rp,rs,'s');[b,a]=butter(N,Wn,'s');w=0:500;Hs=20*log10(abs(freqs(b,a,w)));plot(w/(2*pi),Hs)gridxlabel('Frequency in Hz')ylabel('Gain in DB')
<四>课程设计总结