2015-06-20 128 views
1

如果我要通過以下代碼在數字採樣陣列上實現低通濾波器,其中original是原始數據陣列,並且new是已過濾數據的陣列,而c在一定恆定:具有特定截止的低通和高通濾波器

new[0] = original[0]; 
for(int i=1; i<original.length; i++){ 
    new[i] = new[i-1] + c * (original[i] - new[i-1]); 
} 

或者與所述第三線的高通濾波器替換爲:

new[i] = c * (new[i-1] + original[i] - original[i-1]); 

什麼是c並且每個的截止頻率之間的關係?

回答

0

兩個濾波器都是單極無限脈衝響應(IIR) filters

IIR濾波器在連續時域中具有類似物(例如簡單的LC和RC電路)。分析通常以所需的傳遞函數H(ω)開始 - 使用z-tranform轉換爲離散時間。稍微重新排列會產生一個方程式,您可以爲您的濾波器係數求解。 [H(ω)在截止頻率下爲-3dB]。

這種材料通常在電子工程學士學位的第一和第二年授課,所以會有大量的在線免費課件。你需要隨附的純數學課程。許多實際的過濾器設計都是分析不可溶的(或者至少是困難的)。一個常用的方法是數值求解。 MATLAB是衆多工具的首選。 NI LabView也有一個濾波器設計器。兩者都不便宜。

單極濾波器很容易解決。 this可能會有所幫助。如果您想設計更復雜或更高階的過濾器,還有各種聯機filter solvers

+1

我認爲這種事情的一個很好的學習點是Julius Smiths的過濾器設計在線書籍。自由和美麗的書面。 https://ccrma.stanford.edu/~jos/filters/他特別重視這一點。 – PicnicTripper