C FIR濾波器(含低通 高通 帶通 帶阻)

2021-10-01 14:10:47 字數 2554 閱讀 6080

最近需要用到fir濾波器,在網上也看了不少資料,發現乙個稍微能用的(主要**也是直接copy的,但是在使用過程中發現,三角窗的實現好像不對,而且只實現了低通的,根據該文章內容,我自己重寫了乙個,包括三角窗函式的實現,新增了高通、帶通、帶阻的實現。環境visual studio2015,c#。

1、如下圖(最下面的曲線),使用網友的三角函式實現不對;

2、據此更改了相關**;

public class bartlett

public double getwin()

if (n > ((n - 1) / 2))

}return wd;}}

3、下圖為blackman和三角函式的h(n);

4、下圖為hanning和hamming窗的h(n);

5、由於看到的資料只提供了低通的實現方式,根據《數字訊號處理理論、演算法與實現(第三版)》實現了對應的高通、帶通、帶阻的實現;

6、高通

public double gethigh()

else

}return hd;

}

7、帶通

public double getdaitong(double wl, double wh)

else

}return hd;

}

8、帶阻,這裡設計時,對於求n=alpha時的hd[n]值不是很確定,上圖中用紅筆注釋的地方(為下面**實現的內容)。

public double getdaizu(double wl, double wh)

else

}return hd;

}

9、測試:(測試**均使用的hanning窗,測試低通、高通、帶通與帶阻功能)

9.1、原始訊號引數為:fs=1000,取樣點數:2048,原始資料報含兩個頻率點資料5hz和20hz。matlab**:

f1=5;f2=20;f3=15;

t=0:0.001:2.049;

y=2*cos(2*pi*f1*t)+2*sin(2*pi*f2*t);

plot(t,y);

fid=fopen('test1.txt','wt');

fprintf(fid,'%d,',y);

fclose(fid);

9.2、原始訊號及頻譜,

9.3、低通濾波,wp=0.02 * math.pi,ws=0.03 * math.pi(分別對應wp=10hz,ws=15hz)

注:由於給入的頻率為歸一化後的,需要計算((fs/2)*wp=fp,截止頻率為fc【wc為歸一化頻率】);相位延遲:(1/fs)*(n-1)/2;濾波器階數:n-1(n為窗長度)【這裡不確定,網上查到有這個說法,有大神知道的話可以**一下】。

9.4、高通濾波,引數與低通一致,

9.5、帶通濾波,帶通頻率設定為【0.03 * math.pi, 0.05 * math.pi】(即為15hz~25hz,通帶)

9.6、帶阻濾波,帶通頻率設定為【0.03 * math.pi, 0.05 * math.pi】(即為15hz~25hz,阻帶)

10、總結:

1)基本能實現濾波功能,但是有很多引數以及演算法需要再研究優化,僅提供一種思路;(未涉及到fir的4種形式)

2)從效果來看,高通與帶阻濾波後會出現很多高頻的干擾(頻段),而低通與帶通沒有,圖中能看出,還需要進一步研究;

3)本文採用的是時域卷積的處理方式,其實也可以用差分方程來做,自己賴還沒弄,處理完後都有資料點增多以及相移(線性)的問題,需要想辦法優化;

4)整個測試**

更新:5)在使用時發現,高通濾波時若訊號含有直流分量,則濾波結束後可能會引入低頻雜訊,將直流分量濾除後再進行濾波效果就會好很多;

低通,高通,帶通,帶阻濾波器的定義

1 低通 low pass filter 是容許低於截止頻率的訊號通過,但高於截止頻率的訊號不能通過的電子濾波裝置。2 高通 是一種讓某一頻率以上的訊號分量通過,而對該頻率以下的訊號分量大大抑制的電容 電感與電阻等器件的組合裝置。其特性在時域及頻域中可分別用衝激響應及頻率響應描述。3 帶通 是指能通...

FIR濾波器,低通 高通 帶通 帶阻VC實現

通常來說,一種理想濾波器的頻率響應是很容易理解的,如圖所示。圖1 濾波器頻響 以低通為例,濾波器頻率響應函式為 所謂濾波器處理的過程,簡單來說,可以用公式 來表示,由卷積的性質可以知道,該公式的另一種形式為 其中x n 為要處理的資料序列,h n 為逼近濾波器的時域響應 其中,hd n 為對應不同型...

空間低通高通濾波 濾波器和中值濾波

即使資料含有nan值,也可以直接處理 法一 空間中值高通低通濾波 空間濾波lon6 x lat6 高通 lon filt 6 lat filt 6 濾波的經緯度 mm lon lon filt 4 mm lat lat filt 4 mid sla ngrid1 nan size mid ngrid...