利用Matlab filterDesigner 工具生成FIR濾波器函式,並呼叫實現低通濾波
本文使用的開發環境為:Win10 Matlab2018a 版本。
-
在matlab命令視窗輸入:filterDesigner命令,即可開啟filterDesigner設計工具。
-
按照下圖調整FIR低通濾波器的引數:
我們設計的是取樣頻率100Hz,截止頻率10Hz的8階FIR低通數字濾波器。
-
生成matlab函式程式碼:File—Generate MATLAB Code—Filter Design Function
我在這裡將生成的m檔案儲存為fir_8.m。
-
在matlab中開啟fir_8.m是這個樣子的:
程式碼如下:
function Hd = fir_8
%FIR_8 Returns a discrete-time filter object.
% MATLAB Code
% Generated by MATLAB(R) 9.4 and DSP System Toolbox 9.6.
% Generated on: 09-Apr-2019 11:22:46
% FIR Window Lowpass filter designed using the FIR1 function.
% All frequency values are in Hz.
Fs = 100; % Sampling Frequency
N = 7; % Order
Fc = 10; % Cutoff Frequency
flag = 'scale'; % Sampling Flag
% Create the window vector for the design algorithm.
win = hamming(N+1);
% Calculate the coefficients using the FIR1 function.
b = fir1(N, Fc/(Fs/2), 'low', win, flag);
Hd = dfilt.dffir(b);
% [EOF]
-
接下來我們要設計一個帶噪聲的訊號函式,然後通過這個濾波器,來測試濾波效果:
在matlab中新建一個指令碼,儲存為signal.m,與fir_8.m儲存在同一資料夾中。
程式碼如下:
x = 0:0.01:4;%定義400個取樣點
y = 0.1*sin(pi*x) +0.1*sin(2*pi*49*x);%設計含有高頻訊號與低頻訊號的輸入訊號
figure(1);
plot(x,y);%畫出輸入訊號圖形
title('輸入訊號');
Hd = fir_8;%引入濾波器,Hd包含了fir_8濾波器的各項引數
d = filter(Hd,y);%通過filter函式將訊號y送入引數為Hd的濾波器,輸出訊號d
figure(2);
plot(x,d);%畫出通過濾波器的訊號d的波形
title('輸出訊號');
figure(3);
plot(x,y,'r');%畫出輸入訊號圖形
hold on;%保持畫出的輸入訊號圖形
plot(x,d,'b');%畫出輸出訊號波形
title('輸入/輸出訊號');
legend('輸出訊號','輸入訊號');
-
執行signal.m(在matlab命令列視窗輸入signal即可)
PS: 本文主要參考惠飛《FPGA嵌入式系統開發與例項》第5.4.3節
相關文章
- matlab 濾波器中用到的函式Matlab函式
- 音訊降噪-fir濾波器音訊
- 判斷低通濾波器的相位變化
- 數字濾波器和模擬濾波器(一)
- Kalman濾波器的原理與實現
- 點雲濾波器與過濾器過濾器
- OpenCV計算機視覺學習(10)——影像變換(傅立葉變換,高通濾波,低通濾波)OpenCV計算機視覺
- [Python影象處理] 四.影象平滑之均值濾波、方框濾波、高斯濾波及中值濾波Python
- OpenCV計算機視覺學習(4)——影像平滑處理(均值濾波,高斯濾波,中值濾波,雙邊濾波)OpenCV計算機視覺
- Gabor濾波器學習
- 【OpenCV】鄰域濾波:方框、高斯、中值、雙邊濾波OpenCV
- 卡爾曼濾波
- OpencV_Python影象濾波函式小結OpenCVPython函式
- 卡爾曼濾波器(Kalman Filters)Filter
- MATLAB訊號處理——數字濾波器的設計Matlab
- OpenCV 線性濾波OpenCV
- 卡爾曼濾波器預測原理
- 濾波演算法——十大濾波演算法程式大全演算法
- 手把手教系列之移動平均濾波器實現
- C語言實現多級濾波—乾貨C語言
- 卷積濾波器如何提取影象特徵卷積特徵
- 卡爾曼濾波器學習筆記筆記
- 測試卡爾曼濾波器(Kalman Filter)Filter
- 引導濾波GuidedFilterGUIIDEFilter
- GLSL學習_高斯濾波
- 影象卷積與濾波卷積
- 空域濾波演算法演算法
- MATLAB時間序列資料重建與平滑:HANTS濾波Matlab
- 關於fNIRS帶通濾波頻段選擇
- 濾波演算法總結演算法
- 頻率域濾波基本操作
- 滑動視窗濾波器原理分析及詳細程式碼講解實現
- 卡爾曼濾波學習資料
- 卡爾曼濾波的原理說明
- 【OpenCV學習】影象卷積濾波OpenCV卷積
- 1.影像濾波與影像融合
- 語音訊號預處理——數字濾波器音訊
- 詳解卡爾曼濾波(Kalman Filter)原理Filter