实验五 FIR 滤波器的设计.docx
- 文档编号:18014825
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:49
- 大小:451.94KB
实验五 FIR 滤波器的设计.docx
《实验五 FIR 滤波器的设计.docx》由会员分享,可在线阅读,更多相关《实验五 FIR 滤波器的设计.docx(49页珍藏版)》请在冰点文库上搜索。
实验五FIR滤波器的设计
HUNANUNIVERSITY
数字信号
课程实验报告
专业班级:
通信工程一班
完成日期:
2014\06\01
实验五FIR滤波器的设计
1、实验目的
认真复习FIR数字滤波器的基本概念,线性相位FIR滤波器的条件和特点、幅度函数
特点、零点位置的基本特点与性质;窗函数设计法的基本概念与方法,各种窗函数的性能和
设计步骤,线性相位FIR低通、高通、带通和带阻滤波器的设计方法,频率采样设计法的基本概念和线性相位的实现方法。
掌握几种线性相位的特点,熟悉和掌握矩形窗、三角形窗、汉宁窗、海明窗、布莱克曼
窗、凯塞窗设计IIR数字滤波器的方法,熟悉和掌握频率抽样设计法的线性相位的设计方法,
并对各种线性相位的频率抽样法的设计给出调整和改进。
熟悉利用MATLAB进行各类FIR数字滤波器的设计方法。
2、实验内容
a.设线性相位FIR滤波器单位抽样响应分别为
h(n)={-4,1,-1,-2,5,6,5,-2,-1,1,-4}
↑
h(n)={-4,1,-1,-2,5,6,6,5,-2,-1,1,-4}
↑
h(n)={-4,1,-1,-2,5,0,-5,2,1,-1,4}
↑
h(n){-4,1,-1,-2,5,6,-6,-5,2,1,-1,4}
↑
分别求出滤波器的幅度频率响应H(ω),系统函数H(z)以及零极点分布,并绘制相应的
波形和分布图。
1、
代码:
function[H,w,a,L]=H_Type1(h);%求幅度频率响应
M=length(h);
L=floor((M-1)/2);
a=[h(L+1)2*h(L:
-1:
1)];
n=[0:
1:
L];
w=[0:
1:
500]'*pi/500;
H=cos(w*n)*a';
主函数
clc;
symsz;
%偶对称单位冲激响应h(n),N为奇数
h1=[-4,1,-1,-2,5,6,5,-2,-1,1,-4];
N1=length(h1);
n1=[0:
1:
N1-1];
[H1,w1,a1,L1]=H_Type1(h1);
subplot(221);
stem(h1);title('h1(n)');
subplot(222);
plot(H1);title('幅度函数H1(w)');
subplot(223);
zplane(h1);title('零极点');
HZ1=h1./(z.^n1)%系统函数H(z)
结果:
HZ1=
[-4,1/z,-1/z^2,-2/z^3,5/z^4,6/z^5,5/z^6,-2/z^7,-1/z^8,1/z^9,-4/z^10]
2、
代码:
function[H,w,b,L]=H_Type2(h);%求幅度频率响应
M=length(h);
L=floor(M/2);
b=2*h(L:
-1:
1);
n=[1:
1:
L];
w=[0:
1:
500]'*pi/500;
H=cos(w*(n-1/2))*b';
主函数
%偶对称单位冲激响应h(n),N为偶数
figure;
h2=[-4,1,-1,-2,5,6,6,5,-2,-1,1,-4];
N2=length(h2);
n2=[0:
1:
N2-1];
[H2,w2,a2,L2]=H_Type2(h2);
subplot(221);
stem(h2);title('h2(n)');
subplot(222);
plot(H2);title('幅度函数H2(w)');
subplot(223);
zplane(h2);title('零极点');
HZ2=h2./(z.^n2)%系统函数H(z)
结果:
HZ2=
[-4,1/z,-1/z^2,-2/z^3,5/z^4,6/z^5,6/z^6,5/z^7,-2/z^8,-1/z^9,1/z^10,-4/z^11]
3、
代码:
function[H,w,c,L]=H_Type3(h);%求幅度频率响应
M=length(h);
L=floor((M-1)/2);
c=2*h(L:
-1:
1);
n=[1:
1:
L];
w=[0:
1:
500]'*pi/500;
H=sin(w*n)*c';
主函数:
%奇对称单位冲激响应h(n),N为奇数
figure;
h3=[-4,1,-1,-2,5,0,-5,2,1,-1,4];
N3=length(h3);
n3=[0:
1:
N3-1];
[H3,w3,a3,L3]=H_Type3(h3);
subplot(221);
stem(h3);title('h3(n)');
subplot(222);
plot(H3);title('幅度函数H3(w)');
subplot(223);
zplane(h3);title('零极点');
HZ3=h3./(z.^n3)%系统函数H(z)
结果:
HZ3=
[-4,1/z,-1/z^2,-2/z^3,5/z^4,0,-5/z^6,2/z^7,1/z^8,-1/z^9,4/z^10]
4、
代码:
function[H,w,d,L]=H_Type4(h);%求幅度频率响应
M=length(h);
L=floor(M/2);
d=2*h(L:
-1:
1);
n=[1:
1:
L];
w=[0:
1:
500]'*pi/500;
H=sin(w*(n-1/2))*d';
主函数:
%奇对称单位冲激响应h(n),N为偶数
figure;
h4=[-4,1,-1,-2,5,6,-6,-5,2,1,-1,4];
N4=length(h4);
n4=[0:
1:
N4-1];
[H4,w4,a4,L4]=H_Type4(h4);
subplot(221);
stem(h4);title('h4(n)');
subplot(222);
plot(H4);title('幅度函数H4(w)');
subplot(223);
zplane(h4);title('零极点');
HZ4=h4./(z.^n4)%系统函数H(z)
结果:
HZ4=
[-4,1/z,-1/z^2,-2/z^3,5/z^4,6/z^5,-6/z^6,-5/z^7,2/z^8,1/z^9,-1/z^10,4/z^11]
b.设计FIR数字低通滤波器,技术指标为:
ωp=0.2π,ωst=0.3π,δ1=0.25dB,δ2=50dB。
(1)通过技术指标,选择一种窗函数进行设计;
(2)求滤波器的单位抽样响应、频率响应,并绘制波形。
(3)选择凯塞窗函数设计该滤波器,并绘制相应的波形图。
代码:
function[db,mag,pha,grd,w]=freqz_m(b,a)
[H,w]=freqz(b,a,1000,'whole');
H=(H(1:
1:
501));
w=(w(1:
1:
501));
mag=abs(H);
db=20*log10(mag+eps/max(mag));
pha=angle(H);
grd=grpdelay(b,a,w);
functionhd=ideal_lp(wc,N)
alpha=(N-1)/2;
n=[0:
1:
(N-1)];
n=n-alpha;
fc=wc/pi
hd=fc*sinc(fc*n)
主函数:
%低通滤波器
clc;
wp=0.2*pi;
ws=0.3*pi;
as=50;
tr_width=ws-wp;
N=ceil((as-7.95)/(2.286*tr_width)+1);
n=[0:
1:
N-1];
beta=0.102*(as-8.7)
wc=(ws+wp)/2;
hd=ideal_lp(wc,N);%理想低通滤波器冲激响应
window=(kaiser(N,beta))';%凯泽窗
h=hd.*window;%实际设计低通滤波器冲激响应
[db,mag,pha,grd,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-(min(db(1:
1:
wp/delta_w+1)))
As=-round(max(db(ws/delta_w+1:
1:
501)))
subplot(221)
stem(n,hd);title('理想滤波器单位抽样响应');
axis([0,N-1,-0.1,0.3]);
xlabel('n');ylabel('hd(n)');
subplot(222)
stem(n,window);title('kaiserWindow')
axis([0N-101.1]);xlabel('n');ylabel('w(n)');
subplot(223);
stem(n,h);title('所设计的滤波器脉冲响应');
axis([0N-1-0.10.3]);xlabel('n');ylabel('h(n)')
subplot(224);
plot(w/pi,db);
title('频率响应');grid
axis([01-10010]);xlabel('w/pi');ylabel('H(w)');
holdon;
plot([0,0.4],[-50,-50],'r');
text(0.3,-45,num2str(as));
结果
c.设计FIR数字带通滤波器,技术指标为:
下阻带边缘:
ωst1=0.2π,δs1=60dB,下通带边缘:
ωp1=0.35π,δp1=1dB;
上通带边缘:
ωp2=0.65π,δp1=1dB,上阻带边缘:
ωst2=0.8π,δs2=60dB;
(1)通过技术指标,选择一种窗函数进行设计;
(2)求滤波器的单位抽样响应、频率响应,并绘制波形。
代码:
clc;
%用布莱克曼窗设计带通滤波器
wp1=0.35*pi;
ws1=0.2*pi;
wp2=0.65*pi;
ws2=0.8*pi;
As=60;
tr_width=min((wp1-ws1),(wp2-ws2));
N=ceil(11*pi/tr_width)+1;
N=-N;
n=[0:
1:
N-1];
wc1=(ws1+wp1)/2;
wc2=(ws2+wp2)/2;
hd=ideal_lp(wc2,N)-ideal_lp(wc1,N);%理想带通滤波器冲激响应
window=(blackman(N))';%布莱克曼窗
h=hd.*window;%实际设计带通滤波器冲激响应
[db,mag,pha,grd,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-min(db(wp1/delta_w+1:
1:
wp2/delta_w));
As=-round(max(db(ws2/delta_w+1:
1:
501)));
subplot(221);
stem(n,hd);title('理想带通滤波器冲激响应');
axis([0N-1-0.40.5]);xlabel('n');ylabel('hd(n)');
subplot(222);
stem(n,window);title('BlackmanWindow');
axis([-10N+901.1]);xlabel('n');ylabel('w(n)');
subplot(223)
stem(n,h);title('实际设计带通滤波器冲激响应')
axis([0N-1-0.40.5]);xlabel('n');ylabel('h(n)')
subplot(224);
plot(w/pi,db);title('滤波器频谱响应');
grid
axis([01-15010]);
xlabel('frequencein\piunit');ylabel('decibels');
holdon;
plot([0,0.3],[-74,-74],'r');
text(0.2,-70,num2str(As));
结果:
d.设计FIR数字带通滤波器,技术指标为:
下阻带边缘:
ωst1=0.2π,δs1=60dB,下通带边缘:
ωp1=0.4π,δp1=1dB;
上通带边缘:
ωp2=0.6π,δp1=1dB,上阻带边缘:
ωst2=0.8π,δs2=60dB;
(1)通过技术指标,选择一种窗函数进行设计;
(2)求滤波器的单位抽样响应、频率响应,并绘制波形。
代码:
clc;
%用布莱克曼窗设计带通滤波器
wp1=0.4*pi;
ws1=0.2*pi;
wp2=0.6*pi;
ws2=0.8*pi;
As=60;
tr_width=min((wp1-ws1),(wp2-ws2));
N=ceil(11*pi/tr_width)+1;
N=-N;
n=[0:
1:
N-1];
wc1=(ws1+wp1)/2;
wc2=(ws2+wp2)/2;
hd=ideal_lp(wc2,N)-ideal_lp(wc1,N)%理想带通滤波器冲激响应
window=(blackman(N))';%布莱克曼窗
h=hd.*window;%实际设计带通滤波器冲激响应
[db,mag,pha,grd,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-min(db(wp1/delta_w+1:
1:
wp2/delta_w));
As=-round(max(db(ws2/delta_w+1:
1:
501)));
subplot(221);
stem(n,hd);title('理想带通滤波器冲激响应')
axis([0N-1-0.40.5]);xlabel('n');ylabel('hd(n)')
subplot(222);
stem(n,window);title('BlackmanWindow');
axis([-10N+901.1]);xlabel('n');ylabel('w(n)');
subplot(223)
stem(n,h);title('实际设计带通滤波器冲激响应')
axis([0N-1-0.40.5]);xlabel('n');ylabel('h(n)')
subplot(224)
plot(w/pi,db);title('滤波器频谱响应');
grid
axis([01-15010]);
xlabel('frequencein\piunit');ylabel('decibels');
holdon;
plot([0,0.3],[-74,-74],'r');
text(0.2,-70,num2str(As));
结果:
e.设计FIR数字带通滤波器,技术指标为:
下阻带边缘:
ωst1=0.2π,δs1=20dB,下通带边缘:
ωp1=0.4π,δp1=1dB;
上通带边缘:
ωp2=0.6π,δp1=1dB,上阻带边缘:
ωst2=0.8π,δs2=20dB;
(1)通过技术指标,选择一种窗函数进行设计;
(2)求滤波器的单位抽样响应、频率响应,并绘制波形。
代码:
clc;
%用矩形窗设计带通滤波器
wp1=0.4*pi;
ws1=0.2*pi;
wp2=0.6*pi;
ws2=0.8*pi;
As=20;
tr_width=min((wp1-ws1),(wp2-ws2));
N=ceil(11*pi/tr_width)+1;
N=-N;
n=[0:
1:
N-1];
wc1=(ws1+wp1)/2;
wc2=(ws2+wp2)/2;
hd=ideal_lp(wc2,N)-ideal_lp(wc1,N)%理想带通滤波器冲激响应
window=(boxcar(N))';%矩形窗
h=hd.*window;%实际设计带通滤波器冲激响应
[db,mag,pha,grd,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-min(db(wp1/delta_w+1:
1:
wp2/delta_w));
As=-round(max(db(ws2/delta_w+1:
1:
501)));
subplot(221);
stem(n,hd);title('理想通带滤波器冲激响应')
axis([0N-1-0.40.5]);xlabel('n');ylabel('hd(n)')
subplot(222);
stem(n,window);title('RectangleWindow');
axis([-10N+901.1]);xlabel('n');ylabel('w(n)');
subplot(223)
stem(n,h);title('实际设计通带滤波器冲激响应')
axis([0N-1-0.40.5]);xlabel('n');ylabel('h(n)')
subplot(224)
plot(w/pi,db);title('滤波器频谱响应');
grid
axis([01-15010]);
xlabel('w/pi');ylabel('幅度');
holdon;
plot([0,0.3],[-21,-21],'r');
text(0.2,-21,num2str(As));
结果:
f.设计FIR数字高通滤波器,技术指标为:
通带截止频率为ωp=15π/27,阻带截止频率
为ωst=11π/27,通带最大衰减为δ1=2.5dB,阻带最小衰减为δ2=55dB。
(1)通过技术指标,选择一种窗函数进行设计;
(2)求滤波器的单位抽样响应、频率响应,并绘制波形。
代码:
clc;
%用布莱克曼窗设计高通滤波器
wp=15/27*pi;
ws=11/27*pi;
As=55;
tr_width=wp-ws;
N=ceil(11*pi/tr_width)+1;
n=[0:
1:
N-1];
wc=(ws+wp)/2;
hd=ideal_lp(pi,N)-ideal_lp(wc,N)%理想高通滤波器冲激响应
window=(blackman(N))';%布莱克曼窗
h=hd.*window;%实际设计高通滤波器冲激响应
[db,mag,pha,grd,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-min(db(1:
1:
wp/delta_w+1));
As=-round(max(db(ws/delta_w+1:
1:
501)));
subplot(221);
stem(n,hd);title('理想高通滤波器冲激响应')
axis([0N-1-0.40.5]);xlabel('n');ylabel('hd(n)')
subplot(222);
stem(n,window);title('blackmanWindow');
axis([-10N+901.1]);xlabel('n');ylabel('w(n)');
subplot(223)
stem(n,h);title('实际设计高通滤波器冲激响应')
axis([0N-1-0.40.5]);xlabel('n');ylabel('h(n)')
subplot(224)
plot(w/pi,db);title('滤波器频谱响应');
grid
axis([01-15010]);
xlabel('w/pi');ylabel('幅度');
结果:
g.设计FIR数字高通滤波器,技术指标为:
通带截止频率为ωp=0.6π,阻带截止频率为
ωst=0.4π,通带最大衰减为δ1=0.25dB,阻带最小衰减为δ2=40dB。
(1)通过技术指标,选择一种窗函数进行设计;
(2)求滤波器的单位抽样响应、频率响应,并绘制波形。
代码:
clc;
%用海明窗设计带通滤波器
wp=0.6*pi;
ws=0.4*pi;
As=40;
tr_width=wp-ws;
N=ceil(11*pi/tr_width)+1;
n=[0:
1:
N-1];
wc=(ws+wp)/2;
hd=ideal_lp(pi,N)-ideal_lp(wc,N)%理想高通滤波器冲激响应
window=(hamming(N))';%海明窗
h=hd.*window;%实际设计高通滤波器冲激响应
[db,mag,pha,grd,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-min(db(1:
1:
wp/delta_w+1));
As=-round(max(db(ws/delta_w+1:
1:
501)));
subplot(221);
stem(n,hd);title('理想高通滤波器冲激响应')
axis([0N-1-0.40.5]);xlabel('n');ylabel('hd(n)')
subplot(222);
stem(n,window);title('hammingWindow');
axis([-10N+901.1]);xlabel('n');ylabel('w(n)');
subplot(223)
stem(n,h);title('实际设计高通滤波器冲激响应')
axis([0N-1-0.40.5]);xlabel('n');ylabel('h(n)')
subplot(224)
plot(w/pi,db);title('滤波器频谱响应');
grid
axis([01-15010]);
xlabel('w/pi');ylabel('幅度');
结果:
h.滤波器的技术指标为:
通带截止频率为ωp=0.6π,阻带截止频率为ωst=0.4π,通带最
大衰减为δ1=0.25dB,阻带最小衰减为δ2=40dB。
(1)通过技术指标,选择一种窗函数设计一个具有π/2相移的FIR高通滤波器;
(2)求滤波器的单位抽样响应、频率响应,并绘制波形。
代码:
functionhd=ideal_pi(wc,N)%有pi/2相移的滤波器冲激响应
alpha=(N-1)/2;
n=[0:
1:
(N-1)];
n=n-alpha;
fc=wc/pi
hd=fc*sinc(fc*(n-1/2));
function[db,mag,pha,w]=freqz_m2(b,a)
[H,w]=freqz(b,a,1000,'whole');
H=(H(1:
1:
501));
w=(w(1:
1:
501));
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
主函数:
%设计高通滤波器
clc;
Wp=0.6*pi;
Ws=0.4*pi;
tr_width=Wp-Ws;
M=ceil(6.2*pi/tr_width)+1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验五 FIR 滤波器的设计 实验 滤波器 设计