fir濾波器的最簡單C語言實現

2021-10-23 09:01:57 字數 940 閱讀 9160

c**:

/*

c語言實現fir濾波器-時域暴力卷積方法

y(n) = e(m=0->n-1) x(m)*h(n-m);

p_input : 待濾波資料

p_output : 濾波輸出資料

data_len : 資料長度

p_fir_para : h(t)引數

fir_para_len : h(t)長度

*/void c_fir(float* p_input, float* p_output, uint16_t data_len, float* p_fir_para,uint16_t fir_para_len)

}else if(i >= fir_para_len)}}

}

matlab**:

%濾波引數,這裡只用簡單的平均濾波器,具體的系統函式設計非一日之功

fir_para_len = 10;

fir_para = ones(fir_para_len,1)/fir_para_len;

data_len = 200;

t = linspace(0,pi,data_len);

x = sin(2*pi*t)+0.5*rand(size(t));

figure(1);

plot(t,x)

y = zeros(data_len,1);

for i=1:data_len

if(ifor j=1:i

y(i) = y(i) + fir_para(j)*x(i-j+1);

endelse

for j=1:fir_para_len

y(i) = y(i) + fir_para(j)*x(i-j+1);

endend

endfigure(2)

plot(y)

FIR數字濾波器 C語言實現

matlab設定fir低通濾波器 型別為equiripple minimun order density factor 20 fs 48000 fpass 2000 fstop 3000 截圖如下 matlab生成的檔案 filter coefficients c source generated ...

FIR濾波器的實現

fir濾波器的實現 fir濾波器具有嚴格的線性相位,依據的離散卷積公式 其中n為濾波器階數。fir濾波器的設計的關鍵在於設計出恰當的樣值響應函式h n h n 可以選擇加窗法 等紋波法等方法進行設計。本文是基於等紋波法設計的h n 函式h n 序列資料通過matlab計算得到。1.利用matlab中...

FIR濾波器的設計

matlab可以使用fir1函式設計低通 高通 低通 帶通等具有嚴格線性相位特性的濾波器。fir1函式的幾種語法如下 b fir1 n,wn b fir1 n,wn,ftype b fir1 n,wn,ftype window b fir1 noscale 各個引數的含義 設計濾波器,採用漢明窗,長...