基於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代碼

      代碼見https://download.csdn.net/download/flypassion/10627808

5、備注

       1、濾波器出數有一定延遲,這在具體調制解調過程中需要注意

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM