FIR商業數字區塊鏈
① fir數字濾波器設計原理是什麼
原理:在進入FIR濾波器前,首先要將信號通過A/D器件進行模數轉換,把模擬信號轉化為數字信號;為了使信號處理能夠不發生失真,信號的采樣速度必須滿足奈奎斯特定理,一般取信號頻率上限的4-5倍做為采樣頻率;一般可用速度較高的逐次逼進式A/D轉換器,不論採用乘累加方法還是分布式演算法設計FIR濾波器,濾波器輸出的數據都是一串序列,要使它能直觀地反應出來,還需經過數模轉換,因此由FPGA構成的FIR濾波器的輸出須外接D/A模塊。FPGA有著規整的內部邏輯陣列和豐富的連線資源,特別適合於數字信號處理任務,相對於串列運算為主導的通用DSP晶元來說,其並行性和可擴展性更好,利用FPGA乘累加的快速演算法,可以設計出高速的FIR數字濾波器。
拓展:關於FIR濾波器
FIR(Finite Impulse Response)濾波器:有限長單位沖激響應濾波器,又稱為非遞歸型濾波器,是數字信號處理系統中最基本的元件,它可以在保證任意幅頻特性的同時具有嚴格的線性相頻特性,同時其單位抽樣響應是有限長的,因而濾波器是穩定的系統。因此,FIR濾波器在通信、圖像處理、模式識別等領域都有著廣泛的應用。
② DSP實現FIR數字濾波器,用匯編語言如何編寫程序
希望可以幫到你
用線性緩沖區實現FIR濾波器
程序清單:
.title 「FIR1.ASM」
.mmregs
.def start
x .usect 「x」,8
PA0 .set 0
PA1 .set 1
.data
COEF: .word 1*32768/10
.word 2*32768/10
.word -4*32768/10
.word 3*32768/10
.word -4*32768/10
.word 2*32768/10
.word 1*32768/10
.text
start: SSBX FRCT
STM #x+7,AR2
STM #6,AR0
LD #x+1,DP
PORTR PA1,@x+1
FIR1: RPTZ A,#6
MACD *AR2-,COEF,A
STH A,*AR2
PORTW *AR2+,PA0
BD FIR1
PORTR PA1,*AR2+0
.end
用循環緩沖區實現FIR濾波器
程序清單:
.title 「FIR2.ASM」
.mmregs
.def start
.bss y,1
xn .usect 「xn」,7
b0 .usect 「b0」,7
PA0 .set 0
PA1 .set 1
.data
table: .word 1*32768/10
.word 2*32768/10
.word 3*32768/10
.word 4*32768/10
.word 5*32768/10
.word 6*32768/10
.word 7*32768/10
.text
start: SSBX FRCT
STM #b0,AR1
RPT #6
MVPD table,*AR1+
STM #xn+6,AR2
STM #b0+6,AR3
STM #7,BK
STM #-1,AR0
LD #xn,DP
PORTR PA1,@xn
FIR2: RPTZ A,#6
MAC *AR2+0%,*AR3+0%,A
STH A,@y
PORTW @y,PA0
BD FIR2
PORTR PA1,*AR2+0%
.end
鏈接命令文件
FIR2.obj
vectors.obj
-o FIR2.out
-m FIR2.map
-e start
MEMORY
{
PAGE0:
EPROM:org=0E000h,
len=1000h
VECS: org=0FF80h,
len=0080h
PAGE1:
SPRAM:org=0060h,
len=0020h
DARAM:org=0080h,
len=1380h
}
SECTIONS
{
.text:>EPROM PAGE 0
.data:>EPROM PAGE 0
.bss :>SPRAM PAGE 1
xn:align(8){}>DARAM PAGE 1
b0:align(8){}>DARAM PAGE 1
.vections:VECS PAGE 0
}
③ 窗函數法FIR數字帶通濾波器的設計
將模擬頻率轉化為數字頻率,設取樣時間為T(要滿足抽樣定理) Ωp=2π*fp*T Ωs=2π*fs*T 過渡帶寬度△Ω=Ωp-Ωs 阻帶衰減已經超過74db,要選用Kaiser窗了,Kaiser的參數可變,要根據公式確定濾波器的參數一般都選用Ⅰ型線性相位濾波器即濾波器階數M為偶數,程序如下: wp=;ws=;Ap=1;As=100; Rp=1-10.^(-0.05*Ap);Rs=10.^(-0.05*As); f=[fp fs]; a=[0 1]; dev=[Rp Rs]; [M,wc,beta,ftype]=kaiserord(f,a,dev); M=mod(M,2)+M; h=fir1(M,wc,ftype,kaiser(M+1,beta)); omega=linspace(0,pi,512); mag=freqz(h,[1],omega); plot(omega/pi,20*log10(abs(mag))); grid; omega1=linspace(0,wp,512); h1=freqz(h,[1],omega1); omega2=linspace(ws,pi,512); h2=freqz(h,[1],omega2); fprintf('Ap=%.4f\n',-20*log10(min(abs(h1)))); fprintf('As=%.4f\n',-20*log10(max(abs(h2)))); 運行程序可以得到濾波器的通阻帶衰減,畫出頻率響應,若同阻帶衰減不滿足要求還可以使用濾波器的優化,一般使用的等波紋FIR進行優化
④ FIR數字濾波器
天生就是暴力的人。
⑤ 簡述採用窗函數法設計FIR數字濾波器的設計步驟及主要公式。
將模擬頻率轉化為數字頻率,設取樣時間為T(要滿足抽樣定理)
Ωp=2π*fp*T Ωs=2π*fs*T
過渡帶寬度△Ω=Ωp-Ωs
阻帶衰減已經超過74db,要選用Kaiser窗了,Kaiser的參數可變,要根據公式確定濾波器的參數
一般都選用Ⅰ型線性相位濾波器即濾波器階數M為偶數,程序如下:
wp=;ws=;Ap=1;As=100;
Rp=1-10.^(-0.05*Ap);Rs=10.^(-0.05*As);
f=[fp fs];
a=[0 1];
dev=[Rp Rs];
[M,wc,beta,ftype]=kaiserord(f,a,dev);
M=mod(M,2)+M;
h=fir1(M,wc,ftype,kaiser(M+1,beta));
omega=linspace(0,pi,512);
mag=freqz(h,[1],omega);
plot(omega/pi,20*log10(abs(mag)));
grid;
omega1=linspace(0,wp,512);
h1=freqz(h,[1],omega1);
omega2=linspace(ws,pi,512);
h2=freqz(h,[1],omega2);
fprintf('Ap=%.4f\n',-20*log10(min(abs(h1))));
fprintf('As=%.4f\n',-20*log10(max(abs(h2))));
運行程序可以得到濾波器的通阻帶衰減,畫出頻率響應,若同阻帶衰減不滿足要求還可以使用濾波器的優化,一般使用的等波紋FIR進行優化
⑥ 窗函數法FIR低通數字濾波
1.FIR數字濾波器原理
假設理想低通濾波器的截止頻率為ωc=2πfc,且具有線性相位,群延時為a,即頻率響應:
航空重力勘探理論方法及應用
表示成幅度函數和相位函數形式:
航空重力勘探理論方法及應用
則幅度函數:
航空重力勘探理論方法及應用
在通帶范圍|ω| ≤ωc(截止頻率)內Hd(ejω)的幅度為1,相位為-ωα;對應的時間域(或空間域)濾波函數為:
航空重力勘探理論方法及應用
有限脈沖響應FIR(Finite Impulse Response)數字濾波器要求用有限長的單位沖擊響應h(n)來逼近無限長的理想濾波器的單位沖擊響應hd(n),最常用和有效的方法就是用一個有限長(長度為N)的「窗函數」序列w(n)來截取hd(n)的主要成分(陳玉東,2005):
航空重力勘探理論方法及應用
實際上是用有限長的h(n)去逼近hd(n),通過這種方式得到的頻率響應H(ejω)近似於理想頻率響應Hd(ejω)(在頻率域內採用均方差最小准則逼近)。按照線性相位濾波器的約束要求,h(n)必須是偶對稱的,其對稱中心應為它長度的一半:h(n)=h(N-1-n),而且
2.幾種常見窗函數
(1)矩形窗
長度為N的矩形窗函數為:
航空重力勘探理論方法及應用
(2)三角形窗(Bartlett)
長度為N的三角形窗函數為:
航空重力勘探理論方法及應用
(3)漢寧窗(Hanning)
長度為N的漢寧窗函數為:
航空重力勘探理論方法及應用
(4)海明窗(Hamming)
為使得旁瓣更小,可將漢寧窗改進成海明窗,長度為N的海明窗函數為:
航空重力勘探理論方法及應用
(5)布拉克曼窗(Blackman)
為進一步有效抑制旁瓣,可以再加上餘弦的二次諧波分量,得到長度為N的布拉克曼窗函數為:
航空重力勘探理論方法及應用
(6)凱澤窗(Kaiser)
長度為N的凱澤窗函數為:
航空重力勘探理論方法及應用
其中I0(x)為第一類變形零階貝塞爾函數,α=(N-1)/2。β是一個可自由選擇的參數,它可同時調整窗函數譜主瓣寬度與旁瓣幅值;β越大,則窗函數w(n)變化越快、變得越窄,頻譜旁瓣就越小,但主瓣寬度相應增加。一般選擇4<β<9,相當於窗函數頻譜旁瓣幅度與主瓣幅度的比值由3.1%變到0.047%。β=0時相當於矩形窗(陳玉東,2005)。
3.窗函數FIR濾波器
式(7-4-3)至式(7-4-8)窗函數都滿足關於中心偶對稱的線性相位濾波器的約束要求,結合式(7-4-1)至式(7-4-2)可以得到相應窗函數的FIR低通數字濾波器函數(郭志宏,羅鋒,等,2007):
航空重力勘探理論方法及應用
航空重力勘探理論方法及應用
用該濾波器窗口對時間域(或空間域)長度為M的數據序列逐點進行窗口滑動卷積求和計算(實際處理時窗口中點作為輸出計算點,則一邊損失半個濾波窗口數據),就可獲得FIR濾波後的數據(郭志宏,段樹嶺,等,2009):
航空重力勘探理論方法及應用
h(n)為濾波器系數,x(n)、y(n)分別為輸入、輸出數據序列。
4.窗函數FIR濾波試驗
(1)GT-1A型航空重力數據
圖7-4-1至圖7-4-2分別為GT-1A型航空重力系統獲得的一條原始未濾波、100 s和60 s濾波自由空間重力異常測線數據,其中飛機的飛行速度約60m/s,剖面圖橫軸為測線基準點號,基準點間距約30 m。圖7-4-1中GT-1A型系統航空原始未濾波自由空間重力測線數據的高頻干擾非常之嚴重,雜訊幅度在-5 000×10-5m·s-2至5000×10-5m·s-2的大范圍內變化,而幅度通常只有(10-3~10-4)m·s-2的由密度和構造變化等地質因素引起的重力異常信號(圖7-4-2)則完全淹沒在高頻干擾中。圖7-4-2中GT-1A型系統航空100 s、60 s濾波自由空間重力測線數據是採用GT-1A型航空重力系統自帶軟體模塊由圖7-4-1的航空原始未濾波自由空間重力測線數據獲得的濾波數據,濾波後高頻干擾已基本消除,油氣和礦產地球物理勘查所需的重力異常則較好的顯現出來。
圖7-4-1 GT-1A型航空重力系統原始未濾波自由空間重力異常
(2)幾種窗函數FIR濾波試驗
根據式(7-4-1)至式(7-4-10),我們研製了窗函數法FIR數字濾波計算軟體,用各種窗函數FIR濾波器對圖7-4-1的GT-1A航空原始未濾波自由空間重力測線數據分別進行了截止波長為100 s、60 s長度(按v=60m/s的航速計算,截止波長A。分別為6km、3.6km,按fc=v/λc計算的截止頻率分別為0.01 Hz、0.0167 Hz)的低通濾波試驗計算,試驗結果見圖7-4-3至圖7-4-8。為了圖形對比方便,各剖面圖中仍然保留了測線邊部兩端的半個濾波窗口數據,這些數據由於存在邊部效應,因而是不準確的,實際應用時應該去掉。從試驗結果圖可以看到,矩形窗和三角窗FIR濾波後異常整體形狀雖然也與圖7-4-2類似,但其上疊加了高頻擾動,尤其是矩形窗FIR濾波結果,這就是通常所說的「吉布斯」振盪效應(陳玉東,2005)。如果在圖7-4-3至圖7-4-4的基礎上,採用空間域非線性曲率濾波方法(郭志宏,劉浩軍,等,2003),用中國國土資源航空物探遙感中心的「空中探針」系統(劉浩軍,薛典軍,等,2003)中的濾波軟體進一步處理,則可獲得消除擾動後接近圖7-4-2效果的異常數據。從漢寧窗、海明窗、布拉克曼窗以及凱澤窗FIR濾波試驗結果看到,通過選擇合適的窗口長度、截至波長等濾波參數,基本都獲得了令人滿意的效果。
圖7-4-2 GT-1A型航空重力系統100s、60s濾波自由空間重力異常
圖7-4-3 矩形窗FIR低通濾波截止波長100s、60s航空自由空間重力異常
表7-4-1為圖7-4-3至圖7-4-8所示的各種窗函數FIR低通濾波截止波長100 s、60 s長度航空自由空間重力異常與圖7-4-2所示的GT-1A型航空重力系統100 s、60 s濾波自由空間重力異常(作為標准)的比較,通過兩者之差值的統計結果來衡量吻合程度。從統計表中可以看到,除了矩形窗、三角窗外,其他幾種窗函數FIR低通濾波結果的差異值都在±1×10-5m·s-2以內,均方差值則多數為0.3×10-5m·s-2左右,可見吻合程度還是比較好的。
圖7-4-4 三角窗FIR低通濾波截止波長100s、60s航空自由空間重力異常
5.結論
1)通過選擇合適的窗形、窗口長度、濾波參數,窗函數法FIR低通數字濾波器可以在航空重力數據的濾波處理中發揮應有的作用。
圖7-4-5 漢寧窗FIR低通濾波截止波長100s、60s航空自由空間重力異常
圖7-4-6 海明窗FIR低通濾波截止波長100s、60s航空自由空間重力異常
圖7-4-7 布拉克曼窗FIR低通濾波截止波長100s、60s航空自由空間重力異常
圖7-4-8 凱澤窗(β=6)FIR低通濾波截止波長100s、60s航空自由空間重力異常
2)為了獲得與GT-1A型航空重力系統100 s、60 s低通濾波(60m/s航速)對應的自由空間重力測線數據,所選擇漢寧、海明、布拉克曼、凱澤窗的長度通常為400點(2 Hz采樣率),FIR低通濾波對應的截止頻率分別為0.01 Hz、0.0167 Hz。
3)窗函數法不但可以設計FIR低通濾波器,還可設計FIR高通、帶通、帶阻濾波器等。通常一個高通濾波器相當於一個全通濾波器減去一個低通濾波器;一個帶通濾波器相當於兩個低通濾波器相減;而一個帶阻濾波器相當於一個低通濾波器加上一個高通濾波器。
表7-4-1 窗函數FIR濾波試驗結果與GT-1A系統濾波結果的差值統計
4)除了窗函數法FIR低通濾波器,其他諸如等波紋法FIR低通濾波器、無限脈沖響應IIR低通濾波、Kalman濾波等方法(周堅鑫,劉浩軍,等,2001;陳玉東,2005)均可用於航空重力數據的低通數字濾波處理中。
⑦ 數字信號處理中fir和iir有什麼區別啊。。。。
一、構成不同
1、fir:一種替代濾波器是無需反饋的有限支撐(finite support)濾波器,稱為有限脈沖響應(finiteimpulse response,FIR)濾波器。
2、iir:採用遞歸型結構,即結構上帶有反饋環路。IIR濾波器運算結構通常由延時、乘以系數和相加等基本運算組成,可以組合成直接型、正准型、級聯型、並聯型四種結構形式,都具有反饋迴路。
二、單位響應不同
1、fir:FIR濾波器的單位脈沖響應是有限長的,網路中沒有反饋迴路。
2、iir:IIR濾波器的單位脈沖響應為無限長,網路中有反饋迴路。
三、幅頻特性不同
1、fir:FIR數字濾波器的幅頻特性精度較之於IIR數字濾波器低,但是線性相位,就是不同頻率分量的信號經過fir濾波器後他們的時間差不變。
2、iir:IIR數字濾波器幅頻特性精度很高,不是線性相位的,可以應用於對相位信息不敏感的音頻信號上。
⑧ 用窗函數法設計FIR數字濾波器
function hd=ideal_lp(wc,M);
%Ideal Lowpass filter computation
%------------------------------------
%[hd]=ideal_lp(wc,M)
% hd=ideal impulse response between 0 to M-1
% wc=cutoff frequency in radians
% M=length of the ideal filter
%
2-1用窗函數法設計一個線性相位FIR低通濾波器,並滿足性能指標:通帶邊界頻率
Wp=0.5*pi,阻帶邊界頻率Ws=0.66*pi,阻帶衰減不小於40dB,通帶波紋不大於3dB。選擇漢寧窗。
代碼:
wp =0.5*pi;
ws=0.66*pi;
wdelta =ws-wp;
N= ceil(8*pi/wdelta)
if rem(N,2)==0
N=N+1;
end
Nw =N;
wc =(wp+ws)/2;
n =0: N-1;
alpha =(N-1)/2;
m =n-alpha+0.00001;
hd =sin(wc*m)./(pi*m);
win =(hanning(Nw))';
h=hd.*win;
b=h;
freqz(b,1,512)
運行結果:
圖5線性相位低通濾波器幅頻-相頻特性
2-4用海明窗設計一個FIR濾波器,其中Wp=0.2*pi,Ws=0.3*pi,通帶衰減不大於0.25dB,阻帶衰減不小於50dB。
代碼:
wp=0.2*pi;
ws=0.3*pi;
tr_width=ws-wp;
M=ceil(6.6*pi/tr_width)+1;
n=[0:M-1];
wc=(ws+wp)/2;%ideal LPF cutoff frequency
hd = ideal_lp(wc,M);
w_ham=(hamming(M))';
h=hd.*w_ham;% .*
[db,mag,pha,grd,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-(min(db(1:1:wp/delta_w+1:1:501))) %Min stopband attenuation
%Plots
subplot(2,2,1);
stem(n,hd);
title('Ideal Impulse Response')
axis([0 M-1 -0.1 0.3]);
xlabel('n');ylabel('hd(n)');
%%%%%%
subplot(2,2,2);
stem(n,w_ham);
title('Hamming Window')
axis([0 M-1 0 1.1]);
xlabel('n');ylabel('w(n)');
%%%%%%
subplot(2,2,3);
stem(n,h);
title('Actual Impulse Response')
axis([0 M-1 -0.1 0.3]);
xlabel('n');ylabel('h(n)');
%%%%%%
運行結果:
圖6低通FIR濾波器
alpha=(M-1)/2;
n=[0:1:(M-1)];
m=n-alpha+eps;
hd=sin(wc*m)./(pi*m);
點擊file中的new中M-file,新建上面的函數,保存後就可以運行了