回覆列表
  • 1 # 我是大公聚

    這個我剛好做過一個濾波器,事實上對時域訊號做FFT,擷取一定點數再做逆FFT相當於理想濾波。設計濾波器程式碼如下:f1=100;f2=200;%待濾波正弦訊號頻率fs=2000;%取樣頻率m=(0.3*f1)/(fs/2);%定義過度頻寬M=round(8/m);%定義窗函式的長度N=M-1;%定義濾波器的階數b=fir1(N,f2/fs);%使用fir1函式設計濾波器%輸入的引數分別是濾波器的階數和截止頻率figure(1)[h,f]=freqz(b,1,512);%濾波器的幅頻特性圖%[H,W]=freqz(B,A,N)當N是一個整數時函式返回N點的頻率向量和幅頻響應向量plot(f*fs/(2*pi),20*log10(abs(h)))%引數分別是頻率與幅值xlabel("頻率/赫茲");ylabel("增益/分貝");title("濾波器的增益響應");figure(2)subplot(211)t=0:1/fs:0.5;%定義時間範圍和步長s=sin(2*pi*f1*t)+sin(2*pi*f2*t);%濾波前訊號plot(t,s);%濾波前的訊號影象xlabel("時間/秒");ylabel("幅度");title("訊號濾波前時域圖");subplot(212)Fs=fft(s,512);%將訊號變換到頻域AFs=abs(Fs);%訊號頻域圖的幅值f=(0:255)*fs/512;%頻率取樣plot(f,AFs(1:256));%濾波前的訊號頻域圖xlabel("頻率/赫茲");ylabel("幅度");title("訊號濾波前頻域圖");figure(3)sf=filter(b,1,s);%使用filter函式對訊號進行濾波%引數分別為濾波器系統函式的分子和分母多項式係數向量和待濾波訊號輸入subplot(211)plot(t,sf)%濾波後的訊號影象xlabel("時間/秒");ylabel("幅度");title("訊號濾波後時域圖");axis([0.2 0.5 -2 2]);%限定影象座標範圍subplot(212)Fsf=fft(sf,512);%濾波後的訊號頻域圖AFsf=abs(Fsf);%訊號頻域圖的幅值f=(0:255)*fs/512;%頻率取樣plot(f,AFsf(1:256))%濾波後的訊號頻域圖xlabel("頻率/赫茲");ylabel("幅度");title("訊號濾波後頻域圖");

  • 中秋節和大豐收的關聯?
  • 貓為什麼身體震動發出嗚嗚聲?