衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

經典濾波器的設計說明

FPGA之家 ? 來源:FPGA之家 ? 2024-11-15 12:38 ? 次閱讀

摘要

經典濾波器的濾波思路是從頻率域上將噪聲濾掉,關鍵是設計相應的濾波器傳遞函數H(s)、H(z),分別對應著模擬濾波器和數字濾波器的實現。模擬濾波器主要是通過電感(L)、電容(C)、電阻(R)和運放(OPA)等元器件搭建傳遞函數為H(s)或者近似為H(s)的硬件電路來實現,比如RC濾波電路和有源濾波器等。數字濾波器(DF)從實現的結構上或者是單位脈沖響h(n)上可以分為無限長脈沖響應(IIR)和有限長脈沖響應(FIR)濾波器。兩者在結構上的區別是:IIR有反饋回路,即當前輸出y(n)中包含以前輸出y(n-k)(k>0);FIR則沒有反饋回路,當前輸出y(n)中只包含輸入x(n)和以前的輸入x(n-k)(k>0)。正是有了反饋回路,導致了IIR單位脈沖響應h(n)的無限長。

FIR濾波器

設計流程如下圖所示(以窗函數法為例,其它方法不涉及)

4e92e04c-907a-11ef-a511-92fbcf53809c.jpg

IIR濾波器

設計流程如下圖所示(以巴特沃斯低通濾波器采用雙線性變換法為例)

4eadc8c6-907a-11ef-a511-92fbcf53809c.jpg

數字濾波器的實現

由上面分析,數字濾波器的兩種形式在得到的最后表達式上都可以歸一化為N階線性常系數差分方程的一般形式:

y(n)=∑Mk=0akx(n?k)?∑Nr=1bry(n?r)


這樣一個系統的實現可以分別從硬件和軟件上實現:硬件上只需要包括移位寄存器、乘法器和加法器就可以;軟件上實現就較為簡單了,直接高級語言描述。

兩種經典數字濾波器的比較

如下圖所示:

4ec79404-907a-11ef-a511-92fbcf53809c.png

基于Matlab的實驗

用窗函數法設計FIR數字濾波器

設計一線性相位低通FIR數字濾波器,通帶截止頻率wp=0.2π,通帶最大衰減0.25dB,阻帶起始頻率ws=0.3π,阻帶最小衰減50dB。請給出N和所選窗函數,求出h(n),并繪制相應的幅頻特性(dB)曲線,根據該圖給出實際的阻帶衰減,繪制窗函數的時域頻域特性曲線。

實驗過程分析:
阻帶最小衰減為50dB,對于各種窗函數的基本參數,不能用矩形窗和漢寧窗函數,因為它們的阻帶最小衰減不能滿足設計的要求,因此可以選用漢明和布萊克曼窗進行FIR數字濾波器的設計。為了對比漢寧窗不能滿足設計要求,同樣做出漢寧窗設計的FIR數字濾波器
根據通帶截止頻率和阻帶起始頻率得到過渡帶的帶寬,漢明窗對應的數字濾波器的過渡帶寬為8π÷N,推出用漢明窗設計時的數字濾波器的至少N=80,為了取用類型I,即偶對稱、N為奇數,取用N=81;對于用布萊克曼窗對應的數字濾波器的過渡帶寬為12π÷N,推出N=120,取N=121。漢寧窗與漢明窗的N值計算相同。
首先給出漢明窗的FIR實驗結果:

4eec2a80-907a-11ef-a511-92fbcf53809c.jpg

察漢明窗設計的FIR濾波器的幅頻特性曲線,在通帶內,最大衰減小于0.25db,在阻帶內,最小衰減大于50db,滿足了設計要求。
然后給出布萊克曼窗的FIR實驗結果:

4f0b57c0-907a-11ef-a511-92fbcf53809c.png


觀察布萊克曼窗設計的FIR濾波器的幅頻特性曲線,在通帶內,最大衰減小于0.25db,在阻帶內,最小衰減大于50db,滿足了設計要求。
最后給出漢寧窗的FIR實驗結果作為對比:

4f3627a2-907a-11ef-a511-92fbcf53809c.png


觀察漢寧窗設計的FIR濾波器的幅頻特性曲線,在通帶內,最大衰減小于0.25db,但在阻帶內最小衰減小于了50db,所以不滿足設計要求。

一般地,隨著N值增大,過渡帶愈加陡峭,衰減更快。旁瓣越多對應的通帶起伏越大。為了獲得更加平穩的通帶和更加陡峭的過渡帶,雖然不能兼得,一般處理時是通過增加主瓣寬度來換取對旁瓣的抑制。

用雙線性變換法設計IIR數字濾波器

用雙線性變換法設計一個IIR巴特沃斯低通數字濾波器。設計指標參數為:在通帶內頻率低于0.2π時,最大衰減小于1dB;在阻帶內[0.3π,π]頻率區間上,最小衰減大于15dB。用所設計的濾波器對實際心電圖信號采樣序列進行仿真濾波處理,并分別繪出濾波前后的心電圖信號波形圖。觀察總結濾波作用與效果。

實驗結果:

4f5cc92a-907a-11ef-a511-92fbcf53809c.jpg

4f6d72a2-907a-11ef-a511-92fbcf53809c.jpg

4f88a996-907a-11ef-a511-92fbcf53809c.jpg

實驗結果分析:
由幅頻特性曲線可以看出設計的IIR濾波器滿足要求,同時經過心電信號的測試,能夠達到濾除高頻噪聲的目的。
本實驗中,經IIR設計的濾波器傳遞函數H(z)為:

4f9b93ee-907a-11ef-a511-92fbcf53809c.png


計算得到一般的線性系統表達式:

y(n)=0.0007378x(n)+0.004427x(n?1)+0.01107x(n?2)+0.01476x(n?3)+0.01107x(n?4)+0.004427x(n?5)+0.0007378x(n?6)+3.184y(n?1)?4.622y(n?2)+3.779y(n?3)?1.814y(n?4)+0.48y(n?5)?0.05445y(n?6)

一般設計濾波器就是為了得到上面的表達式,有了這樣的表達式之后就可以很方便的通過硬件或者軟件實現濾波器了。

Matlab代碼

FIR濾波器

理想低通濾波器的構建:

function hd= ideal_lp( wc,N )
%hd=點0到N-1之間的理想脈沖響應
% wc=截止頻率(弧度)
%N=濾波器的長度
tao=(N-1)/2;
n=[0:(N-1)];
%+eps轉換成浮點數
m=n-tao+eps;
hd=sin(wc*m)./(pi*m);
end

布萊克曼窗FIR濾波器:

%阻帶最小衰減為50DB,所以可以選擇漢明窗
wp=0.2*pi;ws=0.3*pi;
deltaw=ws-wp;%過渡帶寬
N0=12*pi/deltaw;
%N0=ceil(6.6*pi/deltaw);
N=N0+mod(N0+1,2);%為實現FIR類型I偶對稱濾波器,確保N為奇數。
windows=(blackman(N))';
wc=(ws+wp)/2;
hd=ideal_lp(wc,N);
b=hd.*windows;
[H,w]=freqz(b,1);
n=0:N-1;
dw=2*pi/100;
dbH=20*log10((abs(H)+eps)/max(abs(H)));%化為分貝值
%Rp=-(min(db(1:wp/dw+1)))%檢驗通帶波動
%As=-round(max(db(ws/dw+1:501)))%檢驗最小阻帶衰減
%作圖
subplot(221)
stem(n,hd);
axis([0,N,1.1*min(hd),1.1*max(hd)]);title('理想脈沖響應');
xlabel('n');
ylabel('hd(n)');
subplot(222);
stem(n,windows);
axis([0,N,0,1.1]);
title('布萊克曼窗函數特性');
xlabel('n');
ylabel('wd(n)');
subplot(223),stem(n,b);
axis([0,N,1.1*min(b),1.1*max(b)]);title('實際脈沖響應');
xlabel('n');
ylabel('h(n)');
subplot(224);
plot(w/pi,dbH);
title('幅度頻率響應');
axis([0,1,-200,10]);
xlabel('頻率(單位:pi)');
ylabel('H(e^{jomega})');
set(gca,'XTickMode','manual','XTick',[0,wp/pi,ws/pi,1]);
set(gca,'YTickMode','manual','YTick',[-200,-50,-0.25,0]);
grid

漢明窗FIR濾波器:

%阻帶最小衰減為50DB,所以可以選擇漢明窗
wp=0.2*pi;ws=0.3*pi;
deltaw=ws-wp;%過渡帶寬
N0=8*pi/deltaw;
%N0=ceil(6.6*pi/deltaw);
N=N0+mod(N0+1,2);%為實現FIR類型I偶對稱濾波器,確保N為奇數。
windows=(hamming(N))';
%windows=ones(1,N);
wc=(ws+wp)/2;
hd=ideal_lp(wc,N);
b=hd.*windows;
[H,w]=freqz(b,1);
n=0:N-1;
dw=2*pi/100;
dbH=20*log10((abs(H)+eps)/max(abs(H)));%化為分貝值
%Rp=-(min(db(1:wp/dw+1)))%檢驗通帶波動
%As=-round(max(db(ws/dw+1:501)))%檢驗最小阻帶衰減
%作圖
figure(1)
%subplot(221)
stem(n,hd);
axis([0,N,1.1*min(hd),1.1*max(hd)]);title('理想脈沖響應');
xlabel('n');
ylabel('hd(n)');
figure(2)
%subplot(222);
stem(n,windows);
axis([0,N,0,1.1]);
title('漢明窗函數特性');
xlabel('n');
ylabel('wd(n)');
figure(3)
%subplot(223),
stem(n,b);
axis([0,N,1.1*min(b),1.1*max(b)]);title('實際脈沖響應');
xlabel('n');
ylabel('h(n)');
figure(4)
%subplot(224);
plot(w/pi,dbH);
title('幅度頻率響應');
axis([0,1,-80,10]);
xlabel('頻率(單位:pi)');
ylabel('H(e^{jomega})');
set(gca,'XTickMode','manual','XTick',[0,wp/pi,ws/pi,1]);
set(gca,'YTickMode','manual','YTick',[-80,-50,-0.25,0]);
grid

漢寧窗FIR濾波器:

%阻帶最小衰減為50DB,所以可以選擇漢明窗
wp=0.2*pi;ws=0.3*pi;
deltaw=ws-wp;%過渡帶寬
N0=8*pi/deltaw;
%N0=ceil(6.6*pi/deltaw);
N=N0+mod(N0+1,2);%為實現FIR類型I偶對稱濾波器,確保N為奇數。
windows=(hanning(N))';
wc=(ws+wp)/2;
%計算得到理想低通濾波器,已經移位(N-1)/2
hd=ideal_lp(wc,N);
%加窗施加在hn上
b=hd.*windows;
%
[H,w]=freqz(b,1);

n=0:N-1;
dw=2*pi/100;
dbH=20*log10((abs(H)+eps)/max(abs(H)));%化為分貝值
%Rp=-(min(db(1:wp/dw+1)))%檢驗通帶波動
%As=-round(max(db(ws/dw+1:501)))%檢驗最小阻帶衰減
%作圖
subplot(221)
stem(n,hd);
axis([0,N,1.1*min(hd),1.1*max(hd)]);title('理想脈沖響應');
xlabel('n');
ylabel('hd(n)');
subplot(222);
stem(n,windows);
axis([0,N,0,1.1]);
title('漢寧窗函數特性');
xlabel('n');
ylabel('wd(n)');
subplot(223),stem(n,b);
axis([0,N,1.1*min(b),1.1*max(b)]);title('實際脈沖響應');
xlabel('n');
ylabel('h(n)');
subplot(224);
plot(w/pi,dbH);
title('幅度頻率響應');
axis([0,1,-100,10]);
xlabel('頻率(單位:pi)');
ylabel('H(e^{jomega})');
set(gca,'XTickMode','manual','XTick',[0,wp/pi,ws/pi,1]);
set(gca,'YTickMode','manual','YTick',[-100,-50,-0.25,0]);
grid

IIR數字濾波器

IIR濾波器設計:

%雙線性變換前預畸
Fs=500;
wp=(100/Fs)*2*pi;
ws=(200/Fs)*2*pi;
Rp=2;
Rs=15;
wp2=2*Fs*tan(wp/2);
ws2=2*Fs*tan(ws/2);
%選擇濾波器的最小階數
[N,wn]=buttord(wp2,ws2,Rp,Rs,'s');%注意此處輸入的是畸變后的指標,輸出N為符合要求的模擬濾波器的最小階數,wn為3dB帶寬
%創建butterworth模擬濾波器
[Z,P,K]=buttap(N);
%把濾波器零極點模型轉化為傳遞函數模型
[Bap,Aap]=zp2tf(Z,P,K);
%把模擬濾波器原型轉換為截止頻率為wn的模擬低通濾波器
[b,a]=lp2lp(Bap,Aap,wn);
%用雙線性法實現模擬濾波器到數字濾波器的轉換
[bz,az]=bilinear(b,a,Fs);
%繪制頻率響應曲線
[H,W]=freqz(bz,az);
subplot(2,1,1);
plot(W/pi,abs(H));
grid;
xlabel('頻率w/pi');
ylabel('幅度絕對值');
subplot(2,1,2);
plot(W/pi,20*log10((abs(H)+eps)/max(abs(H))));
grid;
xlabel('頻率w/pi');
ylabel('幅度dB');

心電信號濾波:

%數字濾波器指標:
wc=0.2*pi;ws=0.3*pi;Rp=1;As=15;
ripple=10^(-Rp/20);Attn=10^(-As/20);
%轉換成為模擬指標:
Fs=1;T=1/Fs;
Omgp=(2/T)*tan(wc/2);
Omgs=(2/T)*tan(ws/2);
%模擬原型濾波器計算:
[n,Omgc]=buttord(Omgp,Omgs,Rp,As,'s');%計算階數和截止頻率
[z0,p0,k0]=buttap(n);
ba=k0*real(poly(z0));
aa=real(poly(p0));
[ba1,aa1]=lp2lp(ba,aa,Omgc);
%雙線性變換法計算數字濾波器系數
[bd,ad]=bilinear(ba1,aa1,Fs);%雙線性變換法求數字濾波器系數b,a
tf(bd,ad,1)
[sos,g]=tf2sos(bd,ad)%由直接型轉變成級聯型
%求數字系統的頻率特性:
[H,w]=freqz(bd,ad);
dbH=20*log10((abs(H)+eps)/max(abs(H)));%化為分貝值
subplot(2,1,1);
plot(w/pi,abs(H));
% 加上對應取值軸來驗證是否滿足設計要求
set(gca,'XTickMode','Manual','XTick',[0,0.2,0.3,pi])
set(gca,'YTickMode','Manual','YTick',[0,Attn,ripple,1])
ylabel('|H|');
xlabel('數字頻率(*pi)')
title('幅度響應');
axis([0,1/2,0,1.1]);
grid on
subplot(212);
plot(w/pi,dbH);
xlabel('數字頻率(*pi)');
ylabel('幅度的分貝值DB');
% 加上對應取值軸來驗證是否滿足設計要求
set(gca,'XTickMode','Manual','XTick',[0,0.2,0.3,pi])
set(gca,'YTickMode','Manual','YTick',[-50,-As,-Rp,0])
axis([0,1/2,-50,0.1]);
grid on

%心電信號:
xn=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,...
    0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,...
    6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0]
figure;
subplot(211);
stem(xn);
title('原始心電信號')
yn=filter(bd,ad,xn);

subplot(212);
stem(yn);
title('經過低通濾波后的心電信號')

figure;
subplot(211);
stem(abs(fft(xn)));
title('原始心電信號的fft頻譜')
yn=filter(bd,ad,xn);
subplot(212);
stem(abs(fft(yn)));

title('經過低通濾波后的心電信號的fft頻譜');

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 濾波器
    +關注

    關注

    161

    文章

    7860

    瀏覽量

    178926
  • fir濾波器
    +關注

    關注

    1

    文章

    95

    瀏覽量

    19093
  • IIR濾波器
    +關注

    關注

    0

    文章

    33

    瀏覽量

    11565

原文標題:經典濾波器設計

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Vivado經典案例:使用Simulink設計FIR濾波器

    FIR(Finite Impulse Response)濾波器:有限長單位沖激響應濾波器,又稱為非遞歸型濾波器,是數字信號處理系統中最基本的元件,它可以在保證任意幅頻特性的同時具有嚴格的線性相頻特性,同時其單位抽樣響應是有限長的
    的頭像 發表于 03-25 09:18 ?2261次閱讀
    Vivado<b class='flag-5'>經典</b>案例:使用Simulink設計FIR<b class='flag-5'>濾波器</b>

    頻率濾波器怎么分類?

    頻率濾波器大概分為帶通、帶阻、高通、低通。特性不同的模擬濾波器經典濾波器有Butterworth 和 Chebyshev 。其中,Butterworth
    發表于 09-19 09:00

    濾波器的參數

    濾波器的概述,濾波器的種類,濾波器的原理介紹,濾波器的主要參數說明.
    發表于 08-03 10:56 ?97次下載
    <b class='flag-5'>濾波器</b>的參數

    經典的很-模擬濾波器設計

    經典濾波器設計,介紹了設計模擬低通,高通,帶通濾波器的方法。簡單實用,參考性強
    發表于 07-12 18:32 ?26次下載

    濾波器有幾種?四種濾波器之間對比詳解

    如今的濾波器已經廣泛的滲透到來日常的生活中。那么最常用的四種濾波器是那種呢?它主要分為哪四類?就目前來說,最經典的數字濾波器有巴特沃斯濾波器
    發表于 11-13 14:42 ?13.6w次閱讀
    <b class='flag-5'>濾波器</b>有幾種?四種<b class='flag-5'>濾波器</b>之間對比詳解

    光伏并網逆變器LCL濾波器的設計資料說明

    本文檔的主要內容詳細介紹的是光伏并網逆變器LCL濾波器的設計資料說明包括了:一、LCL濾波器的作用,二、LCL濾波器原理,三、CL滅波設計
    發表于 07-02 08:00 ?41次下載
    光伏并網逆變器LCL<b class='flag-5'>濾波器</b>的設計資料<b class='flag-5'>說明</b>

    階躍阻抗諧振的結構原理和實現微帶帶通濾波器設計說明

    近年來,隨著移動通信系統、雷達系統以及超寬帶通信系統的發展,小型化、寬阻帶性能的濾波器在實際應用中受到了廣泛關注。傳統的并聯分支線低通濾波器和半波長平行耦合線濾波器的寄生通帶都位于中心頻率的2倍處
    發表于 09-22 10:45 ?8次下載
    階躍阻抗諧振<b class='flag-5'>器</b>的結構原理和實現微帶帶通<b class='flag-5'>濾波器</b>的<b class='flag-5'>設計說明</b>

    LC濾波器的設計和應用資料說明

    濾波器類型的選擇可根據濾波器設計的帶寬等指標和具體的應用場合來選擇。相對帶寬在20%以下的為窄帶濾波器,應選用窄帶濾波器的設計方法來設計;相對帶寬在40%以上的為寬帶
    發表于 09-18 10:45 ?6次下載
    LC<b class='flag-5'>濾波器</b>的設計和應用資料<b class='flag-5'>說明</b>

    全通濾波器原理說明

    全通濾波器(包括一階全通濾波器和二階全通濾波器)只需要一個運算放大器。全通濾波器是一系列小型指南中描述的多種分立式電路之一。
    發表于 03-22 17:40 ?71次下載
    全通<b class='flag-5'>濾波器</b>原理<b class='flag-5'>說明</b>

    濾波器原理及應用

    濾波器原理及應用說明
    發表于 06-08 10:57 ?60次下載

    有源濾波器設計說明

    介紹了有源濾波器的結構和工作原理,并對一階低通、高通、帶通和二階低通、高通、帶通以及雙T型帶阻濾波電路進行了比較詳細的分析,并用 EDA 仿真軟件 Multisim10 進行電路仿真。
    發表于 05-24 17:12 ?1次下載

    濾波器的概念和結構

    今天我們為大家分享這本經典濾波器設計圖書——《無線通信中的微波諧振濾波器》。
    的頭像 發表于 11-29 14:37 ?1758次閱讀

    任意重采樣濾波器設計應用說明

    電子發燒友網站提供《任意重采樣濾波器設計應用說明.pdf》資料免費下載
    發表于 09-14 14:31 ?0次下載
    任意重采樣<b class='flag-5'>濾波器</b>設計應用<b class='flag-5'>說明</b>

    微帶濾波器設計說明(ADS)

    電子發燒友網站提供《微帶濾波器設計說明(ADS).pdf》資料免費下載
    發表于 11-18 14:53 ?11次下載
    微帶<b class='flag-5'>濾波器</b><b class='flag-5'>設計說明</b>(ADS)

    有源低通濾波器設計應用說明

    電子發燒友網站提供《有源低通濾波器設計應用說明.pdf》資料免費下載
    發表于 09-09 11:07 ?4次下載
    有源低通<b class='flag-5'>濾波器</b>設計應用<b class='flag-5'>說明</b>
    专业的百家乐官网玩家| 华盛顿百家乐官网的玩法技巧和规则| 原平市| 大发888更名网址6222| 七胜百家乐娱乐| 欢乐谷百家乐官网的玩法技巧和规则| 百家乐官网三路秘诀| 大发888真人游戏平台| 百家乐博赌城| 顶尖百家乐开户| 首席百家乐官网的玩法技巧和规则| 澳门百家乐官网的赢钱不倒翁| 专栏| 网络真人赌博| 百家乐翻天| 百家乐的巧门| 优博百家乐yobo88| A8百家乐游戏| 云鼎百家乐官网代理| 贵族百家乐官网的玩法技巧和规则 | 新奥博百家乐娱乐城| 真让百家乐游戏开户| 免费百家乐官网游戏下| 百家乐官网庄家怎样赚钱| 赌场百家乐官网投注公式| 澳门百家乐官网必杀技| 大安市| 赌球平台| 皇冠网全讯通| 万豪国际| ican博彩通| 澳门顶级赌场国际| 大发888下载网站| 威尼斯人娱乐代理| 利来百家乐的玩法技巧和规则| 百家乐连锁| 至尊百家乐赌场娱乐网规则| 澳门百家乐单注下注| 百家乐侧牌器| 线上百家乐的玩法技巧和规则| 缅甸百家乐赌场娱乐网规则|