一. 實(shí)驗(yàn)?zāi)康?/strong>
????????1.掌握模擬濾波器的設(shè)計(jì)方法,以及脈沖響應(yīng)不變法和雙線性變換法設(shè)計(jì)IIR數(shù)字濾波 器的方法,針對(duì)實(shí)際信號(hào)能設(shè)計(jì)相應(yīng)的 IIR 數(shù)字濾波器,并按要求進(jìn)行濾波。
????????2.掌握用窗函數(shù)法設(shè)計(jì)FIR數(shù)字濾波器的方法,并通過(guò)實(shí)驗(yàn)了解各種窗函數(shù)對(duì)濾波特性的影響;針對(duì)已知多頻率正弦信號(hào)的頻譜或?qū)嶋H信號(hào),能設(shè)計(jì)相應(yīng)的FIR濾波器按要求進(jìn)行濾波。
二. 實(shí)驗(yàn)原理
1.基于模擬濾波器的IIR的數(shù)字濾波器設(shè)計(jì)(雙線性變換法):
??? a.確定抽樣頻率T。雙線性變換法中參數(shù)T的選擇和最終設(shè)計(jì)出的數(shù)字濾波器無(wú)關(guān),因此可以取實(shí)際關(guān)系中的值,有時(shí)為了設(shè)計(jì)簡(jiǎn)單,常取T=2;
??? b.按照 進(jìn)行非線性預(yù)畸變矯正,將數(shù)字濾波器的通帶截止頻率
和阻帶截止頻率ωst
轉(zhuǎn)換成模擬濾波器的通帶截止頻率
和阻帶截止頻率
;
??? c.按照模擬濾波器的技術(shù)指標(biāo) 設(shè)計(jì)模擬濾波器
;
??? d.將模擬濾波器 從s平面轉(zhuǎn)換到z平面,得到數(shù)字低通濾波器的系統(tǒng)函數(shù)
。
2.FIR數(shù)字濾波器的設(shè)計(jì)(窗函數(shù)設(shè)計(jì)法):
??? a.依據(jù)理想的頻率響應(yīng)函數(shù) 來(lái)求解單位抽樣響應(yīng)
為
??? b.依據(jù)阻帶最小衰減要求,結(jié)合書(shū)中的表格,選擇窗函數(shù)類型;依據(jù)過(guò)渡帶寬的要求確定窗的長(zhǎng)度N;
??? c.加窗處理,得到設(shè)計(jì)結(jié)果為
?
??? MATLAB中提供了利用函數(shù)fir1實(shí)現(xiàn)窗函數(shù)設(shè)計(jì)FIR數(shù)字濾波器的通用應(yīng)用格式,即
??? 其中, 為FIR濾波器的階數(shù),對(duì)于高通、帶阻濾波器
取偶數(shù)。
為濾波器截止頻率,取值范圍0~1。對(duì)于帶通、帶阻濾波器,
,且
。
為濾波器類型。缺省時(shí)為低通或帶通濾波器,為’high’時(shí)是高通濾波器,為’stop’時(shí)是帶阻濾波器。
為窗函數(shù),列向量,其長(zhǎng)度為
;缺省時(shí),自動(dòng)取hamming窗。輸出參數(shù)B為FIR濾波器系數(shù)向量,長(zhǎng)度為n+1。
三. 實(shí)驗(yàn)內(nèi)容
(1) 用雙線性變換法設(shè)計(jì)一個(gè)巴特沃斯低通IIR數(shù)字濾波器。設(shè)計(jì)指標(biāo)參數(shù)為:在通帶內(nèi)頻率低于0.2π 時(shí),最大衰減小于1dB;在阻帶內(nèi)[0.3π,π]頻率區(qū)間上,最小衰減大于15dB。其中采樣間隔為0.02π 。
??? (2) 用步驟(1)所設(shè)計(jì)的濾波器對(duì)實(shí)際心電圖信號(hào)采樣序列進(jìn)行仿真濾波處理,觀察總結(jié)濾波作用與效果,心電圖信號(hào)為
??? xn={-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-26,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}
??? (3)已知信號(hào) ,其中a 為42,b 為1。采用窗函數(shù)法設(shè)計(jì)低通、帶通、高通濾波器分別提取信號(hào)
,
,
,設(shè)計(jì)帶阻濾波器提取信號(hào)
,并對(duì)濾波效果進(jìn)行分析。
四. 實(shí)驗(yàn)步驟
????????①用雙線性變換法設(shè)計(jì)一個(gè)巴特沃斯低通IIR數(shù)字濾波器。設(shè)計(jì)指標(biāo)參數(shù)為:在通帶內(nèi)頻率低于0.2π 時(shí),最大衰減小于1dB;在阻帶內(nèi)[0.3π,π] 頻率區(qū)間上,最小衰減大于15dB。其中采樣間隔為0.02π 。
? ? ? ? ②用步驟①所設(shè)計(jì)的濾波器對(duì)實(shí)際心電圖信號(hào)采樣序列進(jìn)行仿真濾波處理,觀察總結(jié)濾波作用與效果,心電圖信號(hào)為
??? xn={-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-26,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}
實(shí)驗(yàn)代碼:
clc,clear;
%用雙線性變換法設(shè)計(jì)一個(gè)巴特沃斯低通IIR數(shù)字濾波器
wp=0.2*pi;ws=0.3*pi; %數(shù)字濾波器截止頻率
Ap=1;As=15; %衰減設(shè)置
T=0.02*pi;fs=1/T; %抽樣間隔與抽樣頻率
Wp=(2/T)*tan(wp/2);Ws=(2/T)*tan(ws/2); %轉(zhuǎn)換為模擬濾波器截止頻率
[N,Wc]=buttord(Wp,Ws,Ap,As,'s'); %計(jì)算階數(shù)和截止頻率
[z,p,k]=buttap(N); %歸一化原型濾波器設(shè)計(jì)
B=k*real(poly(z)); %分子多項(xiàng)式系數(shù)
A=real(poly(p)); %分母多項(xiàng)式系數(shù)
[Bs,As]=lp2lp(B,A,Wc); %去歸一化得到模擬低通濾波器
[Bz,Az]=bilinear(Bs,As,fs); %數(shù)字低通濾波器系數(shù)
[Hz,w]=freqz(Bz,Az); %數(shù)字低通濾波器的頻率響應(yīng)
dbHz=20*log10(abs(Hz)/max(abs(Hz))); %化為分貝值
subplot(1,3,1);plot(w/pi,abs(Hz));grid on;
set(gca,'xtick',[0 0.2 0.3 1]);set(gca,'xticklabel',[0 0.2 0.3 1]);
set(gca,'ytick',[0 0.178 0.891 1]);set(gca,'yticklabel',[0 0.178 0.891 1]);
xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|');
subplot(1,3,2);plot(w/pi,angle(Hz));grid on;
set(gca,'xtick',[0 0.2 0.3 1]);set(gca,'xticklabel',[0 0.2 0.3 1]);
xlabel('\omega/\pi');ylabel('相位');
subplot(1,3,3);plot(w/pi,dbHz);grid on;
axis([0,1,-80,5]);
set(gca,'xtick',[0 0.2 0.3 1]);set(gca,'xticklabel',[0 0.2 0.3 1]);
set(gca,'ytick',[-80 -15 -1 0]);set(gca,'yticklabel',[-80 -15 -1 0]);
xlabel('\omega/\pi');ylabel('幅度(bB)');
% 對(duì)心電圖數(shù)字信號(hào)進(jìn)行濾波
x=[-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];
y=filter(Bz,Az,x); %濾波函數(shù)進(jìn)行濾波
subplot(2,1,1);plot(x),axis([0 60 -100 40]),title('原始信號(hào)');
subplot(2,1,2);plot(y),axis([0 60 -100 40]),title('濾波后信號(hào)');
仿真結(jié)果:
???? 由圖可知設(shè)計(jì)出的數(shù)字低通濾波器阻帶滿足指標(biāo)要求,通帶指標(biāo)有富余,沒(méi)有頻譜混疊。但數(shù)字濾波器和模擬濾波器的幅頻響應(yīng)曲線形狀有很大區(qū)別,這是頻率非線性畸變引起的。
?
????????將離散的心電圖轉(zhuǎn)變?yōu)檫B續(xù)信號(hào)進(jìn)行觀察,從圖中可以清晰的看出:原始信號(hào)的波形波動(dòng)較大,存在或多或少的“突起”,但是經(jīng)過(guò)低通濾波器后,過(guò)濾掉了阻帶不滿足要求的信號(hào),濾波后的信號(hào)看起來(lái)更為的平滑,可見(jiàn)達(dá)到了濾除無(wú)效部分的效果。
????????③已知信號(hào): ,其中a 為42,b 為1。采用窗函數(shù)法設(shè)計(jì)低通、帶通、高通濾波器分別提取信號(hào)
,
,
,設(shè)計(jì)帶阻濾波器提取信號(hào)
,并對(duì)濾波效果進(jìn)行分析。
?低通濾波器實(shí)驗(yàn)代碼:
clc,clear;
% 用漢明窗設(shè)計(jì)FIR低通濾波器
wc=0.35; %歸一化6dB截止頻率,相當(dāng)于除以pi
alpha=20;
N=2*alpha+1; %FIR濾波器長(zhǎng)度
hn=fir1(N-1,wc,'low',hamming(N)); %用漢明窗設(shè)計(jì)低通濾波器
omega=linspace(0,pi,512); %頻率抽樣512個(gè)點(diǎn)
mag=20*log10(abs(freqz(hn,1,omega))); %計(jì)算幅度頻率響應(yīng)的頻率響應(yīng)
subplot(321);stem((0:N-1),hn,'.');grid on;
xlabel('n');ylabel('h(n)');title('單位抽樣響應(yīng)');
subplot(322);plot(omega/pi,mag);grid on;
axis([0 1 -80 10]);
set(gca,'xtick',[0 0.5 1]);set(gca,'xticklabel',[0 0.5 1]);
set(gca,'ytick',[-80 -53 -6 0]);set(gca,'yticklabel',[-80 -53 -6 0]);
xlabel('\omega/\pi');ylabel('dB');title('幅度頻率響應(yīng)');
% 采用該FIR低通濾波器對(duì)已知信號(hào)進(jìn)行信號(hào)提取
a=42;b=1;
fs=20000; %采樣頻率
f1=a*b*50;f2=a*b*100;f3=a*b*150; %待濾波余弦信號(hào)頻率
t=(0:400)/fs; %定義時(shí)間步長(zhǎng)
s=cos(2*f1*pi*t)+cos(2*f2*pi*t)+cos(2*f3*pi*t);
sf=filter(hn,1,s); %使用filter函數(shù)對(duì)信號(hào)進(jìn)行濾波
subplot(323);plot(t,s); %濾波前的信號(hào)圖像
axis([0 0.005 -1.5 3.5]);
xlabel('時(shí)間/秒');ylabel('幅度');title('信號(hào)濾波前時(shí)域圖');
Fs=fft(s,512);AFs=abs(Fs);f=fs/512*(0:255);
subplot(324);plot(f,AFs(1:256)); %濾波前的信號(hào)頻譜圖
xlabel('頻率/赫茲');ylabel('幅度');title('信號(hào)濾波前頻域圖');
subplot(325);plot(t,sf); %濾波后的信號(hào)圖像
axis([0 0.005 -1.1 1.1]);
xlabel('時(shí)間/秒');ylabel('幅度');title('信號(hào)濾波后時(shí)域圖');
Fsf=fft(sf,512); %濾波后的信號(hào)頻譜圖
AFsf=abs(Fsf); %信號(hào)頻譜圖的幅值
subplot(326);plot(f,AFsf(1:256)); %濾波后的信號(hào)頻譜圖
xlabel('頻率/赫茲');ylabel('幅度');title('信號(hào)濾波后頻域圖');
仿真結(jié)果:
?帶通濾波器實(shí)驗(yàn)代碼:
clc,clear;
% 用漢明窗設(shè)計(jì)FIR帶通濾波器
wc1=0.35;wc2=0.5; %歸一化6dB截止頻率,相當(dāng)于除以pi
alpha=20;
N=2*alpha+1; %FIR濾波器長(zhǎng)度
hn=fir1(N-1,[wc1 wc2],'bandpass',hamming(N)); %用漢明窗設(shè)計(jì)帶通濾波器
omega=linspace(0,pi,512); %頻率抽樣512個(gè)點(diǎn)
mag=20*log10(abs(freqz(hn,1,omega))); %計(jì)算幅度頻率響應(yīng)的頻率響應(yīng)
subplot(321);stem((0:N-1),hn,'.');grid on;
xlabel('n');ylabel('h(n)');title('單位抽樣響應(yīng)');
subplot(322);plot(omega/pi,mag);grid on;
axis([0 1 -80 10]);
set(gca,'xtick',[0 0.5 1]);set(gca,'xticklabel',[0 0.5 1]);
set(gca,'ytick',[-80 -53 -6 0]);set(gca,'yticklabel',[-80 -53 -6 0]);
xlabel('\omega/\pi');ylabel('dB');title('幅度頻率響應(yīng)');
% 采用該FIR帶通濾波器對(duì)已知信號(hào)進(jìn)行信號(hào)提取
a=42;b=1;
fs=20000; %采樣頻率
f1=a*b*50;f2=a*b*100;f3=a*b*150; %待濾波余弦信號(hào)頻率
t=(0:400)/fs; %定義時(shí)間步長(zhǎng)
s=cos(2*f1*pi*t)+cos(2*f2*pi*t)+cos(2*f3*pi*t);
sf=filter(hn,1,s); %使用filter函數(shù)對(duì)信號(hào)進(jìn)行濾波
subplot(323);plot(t,s); %濾波前的信號(hào)圖像
axis([0 0.005 -1.5 3.5]);
xlabel('時(shí)間/秒');ylabel('幅度');title('信號(hào)濾波前時(shí)域圖');
Fs=fft(s,512);AFs=abs(Fs);f=fs/512*(0:255);
subplot(324);plot(f,AFs(1:256)); %濾波前的信號(hào)頻譜圖
xlabel('頻率/赫茲');ylabel('幅度');title('信號(hào)濾波前頻域圖');
subplot(325);plot(t,sf); %濾波后的信號(hào)圖像
axis([0 0.005 -1.1 1.1]);
xlabel('時(shí)間/秒');ylabel('幅度');title('信號(hào)濾波后時(shí)域圖');
Fsf=fft(sf,512); %濾波后的信號(hào)頻譜圖
AFsf=abs(Fsf); %信號(hào)頻譜圖的幅值
subplot(326);plot(f,AFsf(1:256)); %濾波后的信號(hào)頻譜圖
xlabel('頻率/赫茲');ylabel('幅度');title('信號(hào)濾波后頻域圖');
仿真結(jié)果:
?高通濾波器實(shí)驗(yàn)代碼:
clc,clear;
% 用漢明窗設(shè)計(jì)FIR高通濾波器
wc=0.5; %歸一化6dB截止頻率,相當(dāng)于除以pi
alpha=20;
N=2*alpha+1; %FIR濾波器長(zhǎng)度
hn=fir1(N-1,wc,'high',hamming(N)); %用漢明窗設(shè)計(jì)高通濾波器
omega=linspace(0,pi,512); %頻率抽樣512個(gè)點(diǎn)
mag=20*log10(abs(freqz(hn,1,omega))); %計(jì)算幅度頻率響應(yīng)的頻率響應(yīng)
subplot(321);stem((0:N-1),hn,'.');grid on;
xlabel('n');ylabel('h(n)');title('單位抽樣響應(yīng)');
subplot(322);plot(omega/pi,mag);grid on;
axis([0 1 -80 10]);
set(gca,'xtick',[0 0.5 1]);set(gca,'xticklabel',[0 0.5 1]);
set(gca,'ytick',[-80 -53 -6 0]);set(gca,'yticklabel',[-80 -53 -6 0]);
xlabel('\omega/\pi');ylabel('dB');title('幅度頻率響應(yīng)');
% 采用該FIR高通濾波器對(duì)已知信號(hào)進(jìn)行信號(hào)提取
a=42;b=1;
fs=20000; %采樣頻率
f1=a*b*50;f2=a*b*100;f3=a*b*150; %待濾波余弦信號(hào)頻率
t=(0:400)/fs; %定義時(shí)間步長(zhǎng)
s=cos(2*f1*pi*t)+cos(2*f2*pi*t)+cos(2*f3*pi*t);
sf=filter(hn,1,s); %使用filter函數(shù)對(duì)信號(hào)進(jìn)行濾波
subplot(323);plot(t,s); %濾波前的信號(hào)圖像
axis([0 0.005 -1.5 3.5]);
xlabel('時(shí)間/秒');ylabel('幅度');title('信號(hào)濾波前時(shí)域圖');
Fs=fft(s,512);AFs=abs(Fs);f=fs/512*(0:255);
subplot(324);plot(f,AFs(1:256)); %濾波前的信號(hào)頻譜圖
xlabel('頻率/赫茲');ylabel('幅度');title('信號(hào)濾波前頻域圖');
subplot(325);plot(t,sf); %濾波后的信號(hào)圖像
axis([0 0.005 -1.1 1.5]);
xlabel('時(shí)間/秒');ylabel('幅度');title('信號(hào)濾波后時(shí)域圖');
Fsf=fft(sf,512); %濾波后的信號(hào)頻譜圖
AFsf=abs(Fsf); %信號(hào)頻譜圖的幅值
subplot(326);plot(f,AFsf(1:256)); %濾波后的信號(hào)頻譜圖
xlabel('頻率/赫茲');ylabel('幅度');title('信號(hào)濾波后頻域圖');
仿真結(jié)果:
?帶阻濾波器實(shí)驗(yàn)代碼:
clc,clear;
% 用漢明窗設(shè)計(jì)FIR帶阻濾波器
wc1=0.3;wc2=0.55; %歸一化6dB截止頻率,相當(dāng)于除以pi
alpha=20;
N=2*alpha+1; %FIR濾波器長(zhǎng)度
hn=fir1(N-1,[wc1 wc2],'stop',hamming(N)); %用漢明窗設(shè)計(jì)帶阻濾波器
omega=linspace(0,pi,512); %頻率抽樣512個(gè)點(diǎn)
mag=20*log10(abs(freqz(hn,1,omega))); %計(jì)算幅度頻率響應(yīng)的頻率響應(yīng)
subplot(321);stem((0:N-1),hn,'.');grid on;
xlabel('n');ylabel('h(n)');title('單位抽樣響應(yīng)');
subplot(322);plot(omega/pi,mag);grid on;
axis([0 1 -80 10]);
set(gca,'xtick',[0 0.5 1]);set(gca,'xticklabel',[0 0.5 1]);
set(gca,'ytick',[-80 -53 -6 0]);set(gca,'yticklabel',[-80 -53 -6 0]);
xlabel('\omega/\pi');ylabel('dB');title('幅度頻率響應(yīng)');
% 采用該FIR帶阻濾波器對(duì)已知信號(hào)進(jìn)行信號(hào)提取
a=42;b=1;
fs=20000; %采樣頻率
f1=a*b*50;f2=a*b*100;f3=a*b*150; %待濾波余弦信號(hào)頻率
t=(0:400)/fs; %定義時(shí)間步長(zhǎng)
s=cos(2*f1*pi*t)+cos(2*f2*pi*t)+cos(2*f3*pi*t);
sf=filter(hn,1,s); %使用filter函數(shù)對(duì)信號(hào)進(jìn)行濾波
subplot(323);plot(t,s); %濾波前的信號(hào)圖像
axis([0 0.005 -1.5 3.5]);
xlabel('時(shí)間/秒');ylabel('幅度');title('信號(hào)濾波前時(shí)域圖');
Fs=fft(s,512);AFs=abs(Fs);f=fs/512*(0:255);
subplot(324);plot(f,AFs(1:256)); %濾波前的信號(hào)頻譜圖
xlabel('頻率/赫茲');ylabel('幅度');title('信號(hào)濾波前頻域圖');
subplot(325);plot(t,sf); %濾波后的信號(hào)圖像
axis([0 0.005 -2 2.2]);
xlabel('時(shí)間/秒');ylabel('幅度');title('信號(hào)濾波后時(shí)域圖');
Fsf=fft(sf,512); %濾波后的信號(hào)頻譜圖
AFsf=abs(Fsf); %信號(hào)頻譜圖的幅值
subplot(326);plot(f,AFsf(1:256)); %濾波后的信號(hào)頻譜圖
xlabel('頻率/赫茲');ylabel('幅度');title('信號(hào)濾波后頻域圖');
仿真結(jié)果:
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-772915.html
?????????總結(jié):使用窗函數(shù)是為了消除無(wú)限序列的截短而引起的吉布效應(yīng)。加窗后,使頻響產(chǎn)生一過(guò)渡帶,其寬度正好等于窗的頻響的主瓣寬度。出現(xiàn)肩峰時(shí),肩峰兩側(cè)形成起伏振蕩,其振蕩幅度取決于旁瓣的相對(duì)幅度。???????文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-772915.html
到了這里,關(guān)于數(shù)字信號(hào)處理實(shí)驗(yàn):數(shù)字濾波器的設(shè)計(jì)與應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!