基於MATLAB的filter的使用,低通、帶通和高通濾波器設計
阿新 • • 發佈:2019-02-05
1、目的
學習MATLAB的filter函式的使用,通過設計低通、帶通和高通濾波器對其進行模擬
2、用到的主要函式和工具
MATLAB、FDATOOL、filter、fft
3、設計
- 訊號的產生
%% Parameter Interface Frequence0 = 60; %單位:Hz Frequence1 = 130; %單位:Hz Frequence2 = 1e3; %單位:Hz SampleFre = 4e3; %單位:Hz SampleLen = SampleFre; %取樣點數 %% Main %-------------------產生三路訊號 t = 0:1/SampleLen:1/SampleFre*(SampleLen-1); SignalData0 = sin(2*pi*Frequence0*t); SignalData1 = sin(2*pi*Frequence1*t); SignalData2 = sin(2*pi*Frequence2*t); SignalData3 = SignalData0+SignalData1+SignalData2; figure;hold on plot(t(1:150),SignalData0(1:150),'b') plot(t(1:150),SignalData1(1:150),'r') plot(t(1:150),SignalData2(1:150),'k') hold off figure;plot(t(1:150),SignalData3(1:150)) title('三路訊號求和')
- 三路訊號的時域波形
三路訊號時域波形 三路訊號求和時域波形
- 三路求和訊號頻譜分析
FFT_Data = fft(SignalData3);
2.低通濾波器設計
- 基於fdatool的低通濾波器的設計
在MATLAB命令列執行fdatool命令,彈出濾波器設計互動視窗,根據自己的需求設計符合自己要求的濾波器,這是我設計的低通濾波器見下圖
需要注意的是通過設計Fpass和Fstop確定了濾波器的頻寬,同時引數設計的越接近理論濾波器的效能,濾波器的階數越多,計算量越大,所以需要優化濾波器這兩個引數,在保證效能的同時確保階數越小(計算量越小)
- 濾波
LPF_Data = filter(LPF_Coe.LPF_60M,1,SignalData3);
濾波後的時域和頻譜波形
3.帶通和高通操作步驟大體一致就不詳細說明
4、M程式碼
5、備註
1、濾波器出數有一定延遲,這在具體調製解調過程中需要注意