1. 程式人生 > >基於MATLAB的filter的使用,低通、帶通和高通濾波器設計

基於MATLAB的filter的使用,低通、帶通和高通濾波器設計

1、目的

學習MATLAB的filter函式的使用,通過設計低通、帶通和高通濾波器對其進行模擬

2、用到的主要函式和工具

MATLAB、FDATOOL、filter、fft

3、設計

  1. 訊號的產生
%% 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、濾波器出數有一定延遲,這在具體調製解調過程中需要注意