Matlab实现数字FIR的高通带通低通带阻滤波器的解析.docx
- 文档编号:2357231
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:18
- 大小:18.53KB
Matlab实现数字FIR的高通带通低通带阻滤波器的解析.docx
《Matlab实现数字FIR的高通带通低通带阻滤波器的解析.docx》由会员分享,可在线阅读,更多相关《Matlab实现数字FIR的高通带通低通带阻滤波器的解析.docx(18页珍藏版)》请在冰点文库上搜索。
Matlab实现数字FIR的高通带通低通带阻滤波器的解析
利用汉宁窗设计Ⅰ型数字高通滤波器
clearall;
Wp=0.6*pi;
Ws=0.4*pi;
tr_width=Wp-Ws;%过渡带宽度
N=ceil(6.2*pi/tr_width%滤波器长度
n=0:
1:
N-1;
Wc=(Ws+Wp/2;%理想低通滤波器的截止频率
hd=ideal_hp1(Wc,N;%理想低通滤波器的单位冲激响应w_han=(hanning(N';%汉宁窗
h=hd.*w_han;%截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1];%计算实际滤波器的幅度响应delta_w=2*pi/1000;
Ap=-(min(db(Wp/delta_w+1:
1:
501%实际通带纹波
As=-round(max(db(1:
1:
Ws/delta_w+1%实际阻带纹波
subplot(221
stem(n,hd
title('理想单位脉冲响应hd(n'
subplot(222
stem(n,w_han
title('汉宁窗w(n'
subplot(223
stem(n,h
title('实际单位脉冲响应hd(n'
subplot(224
plot(w/pi,db
title('幅度响应(dB'
axis([0,1,-100,10]
clearall;
Wp=0.6*pi;
Ws=0.4*pi;
tr_width=Wp-Ws;%过渡带宽度
N=ceil(6.2*pi/tr_width%滤波器长度
n=0:
1:
N-1;
Wc=(Ws+Wp/2;%理想低通滤波器的截止频率
hd=ideal_hp1(Wc,N;%理想低通滤波器的单位冲激响应w_han=(hanning(N';%汉宁窗
h=hd.*w_han;%截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1];%计算实际滤波器的幅度响应delta_w=2*pi/1000;
Ap=-(min(db(Wp/delta_w+1:
1:
501%实际通带纹波
As=-round(max(db(1:
1:
Ws/delta_w+1%实际阻带纹波
subplot(221
stem(n,hd
title('理想单位脉冲响应hd(n'
subplot(222
stem(n,w_han
title('汉宁窗w(n'
subplot(223
stem(n,h
title('实际单位脉冲响应hd(n'
subplot(224
plot(w/pi,db
title('幅度响应(dB'
axis([0,1,-100,10]
基于切比雪夫一致逼近法设计FIR数字低通滤波器
clearall;
f=[00.60.71];%给定频率轴分点
A=[1100];%给定在这些频率分点上理想的幅频响应
weigh=[110];%给定在这些频率分点上的加权
b=remez(32,f,A,weigh;%设计出切比雪夫最佳一致逼近滤波器[h,w]=freqz(b,1,256,1;
h=abs(h;
h=20*log10(h;
subplot(211
stem(b,'.';
grid;
title('切比雪夫逼近滤波器的抽样值'
subplot(212
plot(w,h;
grid;
title('滤波器幅频特性(dB'
利用汉宁窗设计Ⅰ型数字带阻滤波器
clearall;
Wpl=0.2*pi;
Wph=0.8*pi;
Wsl=0.4*pi;
Wsh=0.6*pi;
tr_width=min((Wsl-Wpl,(Wph-Wsh;%过渡带宽度
N=ceil(6.2*pi/tr_width%滤波器长度
n=0:
1:
N-1;
Wcl=(Wsl+Wpl/2;%理想低通滤波器的截止频率
Wch=(Wsh+Wph/2;
hd=ideal_bs(Wcl,Wch,N;%理想低通滤波器的单位冲激响应w_hann=(hanning(N';%汉宁窗
h=hd.*w_hann;%截取得到实际的单位脉冲响应
[db,mag,pha,w]=freqz_m2(h,[1];%计算实际滤波器的幅度响应delta_w=2*pi/1000;
Ap=-(min(db(1:
1:
Wpl/delta_w+1%实际通带纹波
As=-round(max(db(Wsl/delta_w+1:
1:
Wsh/delta_w+1%实际阻带纹波
subplot(221
stem(n,hd
title('理想单位脉冲响应hd(n'
subplot(222
stem(n,w_hann
title('汉宁窗w(n'
subplot(223
stem(n,h
title('实际单位脉冲响应hd(n'
subplot(224
plot(w/pi,db
title('幅度响应(dB'
axis([0,1,-100,10]
利用三角窗设计Ⅲ型数字带通滤波器
clearall;
Wpl=0.4*pi;
Wph=0.6*pi;
Wsl=0.2*pi;
Wsh=0.8*pi;
tr_width=min((Wpl-Wsl,(Wsh-Wph;%过渡带宽度
N=ceil(6.1*pi/tr_width%滤波器长度
n=0:
1:
N-1;
Wcl=(Wsl+Wpl/2;%理想低通滤波器的截止频率
Wch=(Wsh+Wph/2;
hd=ideal_bp2(Wcl,Wch,N;%理想低通滤波器的单位冲激响应
w_tri=(triang(N';%三角窗
h=hd.*w_tri;%截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1];%计算实际滤波器的幅度响应
delta_w=2*pi/1000;
Ap=-(min(db(Wpl/delta_w+1:
1:
Wph/delta_w+1%实际通带纹波
As=-round(max(db(Wsh/delta_w+1:
1:
501%实际阻带纹波
subplot(221
stem(n,hd
title('理想单位脉冲响应hd(n'
subplot(222
stem(n,w_tri
title('三角窗w(n'
subplot(223
stem(n,h
title('实际单位脉冲响应hd(n'
subplot(224
plot(w/pi,db
title('幅度响应(dB'
axis([0,1,-100,10]
利用布拉克曼窗设计Ⅱ型数字带通滤波器
clearall;
Wpl=0.4*pi;
Wph=0.6*pi;
Wsl=0.2*pi;
Wsh=0.8*pi;
tr_width=min((Wpl-Wsl,(Wsh-Wph;%过渡带宽度
N=ceil(11*pi/tr_width+1%滤波器长度
n=0:
1:
N-1;
Wcl=(Wsl+Wpl/2;%理想低通滤波器的截止频率
Wch=(Wsh+Wph/2;
hd=ideal_bp1(Wcl,Wch,N;%理想低通滤波器的单位冲激响应
w_bman=(blackman(N';%布拉克曼窗
h=hd.*w_bman;%截取得到实际的单位脉冲响应
[db,mag,pha,w]=freqz_m2(h,[1];%计算实际滤波器的幅度响应delta_w=2*pi/1000;
Ap=-(min(db(Wpl/delta_w+1:
1:
Wph/delta_w+1%实际通带纹波
As=-round(max(db(Wsh/delta_w+1:
1:
501%实际阻带纹波
subplot(221
stem(n,hd
title('理想单位脉冲响应hd(n'
subplot(222
stem(n,w_bman
title('布拉克曼窗w(n'
subplot(223
stem(n,h
title('实际单位脉冲响应hd(n'
subplot(224
plot(w/pi,db
title('幅度响应(dB'
axis([0,1,-100,10]
利用海明窗设计Ⅱ型数字低通滤波器
clearall;
Wp=0.2*pi;
Ws=0.4*pi;
tr_width=Ws-Wp;%过渡带宽度
N=ceil(6.6*pi/tr_width+1%滤波器长度
n=0:
1:
N-1;
Wc=(Ws+Wp/2;%理想低通滤波器的截止频率
hd=ideal_lp1(Wc,N;%理想低通滤波器的单位冲激响应
w_ham=(hamming(N';%海明窗
h=hd.*w_ham;%截取得到实际的单位脉冲响应
[db,mag,pha,w]=freqz_m2(h,[1];%计算实际滤波器的幅度响应
delta_w=2*pi/1000;
Ap=-(min(db(1:
1:
Wp/delta_w+1%实际通带纹波
As=-round(max(db(Ws/delta_w+1:
1:
501%实际阻带纹波
subplot(221
stem(n,hd
title('理想单位脉冲响应hd(n'
subplot(222
stem(n,w_ham
title('海明窗w(n'
subplot(223
stem(n,h
title('实际单位脉冲响应hd(n'
subplot(224
plot(w/pi,db
title('幅度响应(dB'
axis([0,1,-100,10]
%--------------------------------------------------------
function[db,mag,pha,w]=freqz_m2(b,a
%滤波器的幅值响应(相对、绝对、相位响应
%db:
相对幅值响应
%mag:
绝对幅值响应
%pha:
相位响应
%w采样频率;
%b系统函数H(z的分子项(对FIR,b=h
%a系统函数H(z的分母项(对FIR,a=1
[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;%相位响应
利用模拟Butterworth滤波器设计数字低通滤波器
%exa4-8_pulseDFforexample4-8
%usingButterworthanaloglowpassfiltertodesigndigitallowpassfilter%利用模拟Butterworth滤波器设计数字低通滤波器
%脉冲响应不变法
wp=0.2*pi;
ws=0.3*pi;
Rp=1;
As=15;
T=1;
%性能指标
Rip=10^(-Rp/20;
Atn=10^(-As/20;
OmgP=wp*T;
OmgS=ws*T;
[N,OmgC]=buttord(OmgP,OmgS,Rp,As,'s';%选取模拟滤波器的阶数[cs,ds]=butter(N,OmgC,'s';%设计出所需的模拟低通滤波器[b,a]=impinvar(cs,ds,T;%应用脉冲响应不变法进行转换%求得相对、绝对频响及相位、群迟延响应
[db,mag,pha,grd,w]=freqz_m(b,a;
%下面绘出各条曲线
subplot(2,2,1;
plot(w/pi,mag;
title('幅频特性';
xlabel('w(/pi';
ylabel('|H(jw|';
axis([0,1,0,1.1];
set(gca,'XTickMode','manual','XTick',[00.20.30.51];
set(gca,'YTickMode','manual','YTick',[0AtnRip1];
grid
subplot(2,2,2;
plot(w/pi,db;
title('幅频特性(dB';
xlabel('w(/pi';
ylabel('dB';
axis([0,1,-40,5];
set(gca,'XTickMode','manual','XTick',[00.20.30.51];
set(gca,'YTickMode','manual','YTick',[-40-As-Rp0];
grid
subplot(2,2,3;
plot(w/pi,pha/pi;
title('相频特性';
xlabel('w(/pi';
ylabel('pha(/pi';
axis([0,1,-1,1];
set(gca,'XTickMode','manual','XTick',[00.20.30.51];
grid
subplot(2,2,4;
plot(w/pi,grd;
title('群延迟';
xlabel('w(/pi';
ylabel('Sample';
axis([0,1,0,12];
set(gca,'XTickMode','manual','XTick',[00.20.30.51];
grid
function[db,mag,pha,grd,w]=freqz_m(b,a
%滤波器幅值响应(绝对、相对、相位响应及群延迟
%Usage:
[db,mag,pha,grd,w]=freqz_m(b,a%500点对应[0,pi]
%db相对幅值响应;mag绝对幅值响应;pha相位响应;grd群延迟响应
%w采样频率;b系统函数H(z的分子项(对FIR,b=h
%a系统函数H(z的分母项(对FIR,a=1
[H,w]=freqz(b,a,500;%500点的复频响应
mag=abs(H;
db=20*log10((mag+eps/max(mag;
pha=angle(H;
grd=grpdelay(b,a,w;
基于频域抽样法的FIR数字带阻滤波器设计
clearall;
N=41;
T1=0.598;
alpha=(N-1/2;
l=0:
N-1;
wl=(2*pi/N*l;
Hrs=[ones(1,6,T1,zeros(1,7,T1,ones(1,11,T1,zeros(1,7,T1,ones(1,6];%理想振幅采样响应
Hdr=[1,1,0,0,1,1];
wdl=[0,0.3,0.3,0.7,0.7,1];
k1=0:
floor((N-1/2;
k2=floor((N-1/2+1:
N-1;
angH=[pi/2-alpha*(2*pi/N*(k1+0.5,-pi/2+alpha*(2*pi/N*(N-k2-0.5];%相位约束条件
Hdk=Hrs.*exp(j*angH;%构成Hd(k
h1=ifft(Hdk,N;
n=0:
1:
N-1;
h=real(h1.*exp(j*pi*n/N;%实际单位冲激响应
[db,mag,pha,w]=freqz_m2(h,[1];
[Hr,ww,a,L]=hr_type3(h;%实际振幅响应
subplot(221
plot(wl/pi+1/N,Hrs,'.',wdl,Hdr
title('频率样本Hd(k:
N=41'
axis([01-0.11.2]
subplot(222
stem(l,h
title('实际单位脉冲响应h(n'
subplot(223
plot(ww/pi,Hr,wl/pi+1/N,Hrs,'.'
title('实际振幅响应H(w'
axis([01-0.11.2]
subplot(224
plot(w/pi,db
title('幅度响应(dB'
axis([01-8010]
function[db,mag,pha,w]=freqz_m(b,a;
%滤波器的幅值响应(相对、绝对、相位响应
%db:
相对幅值响应
%mag:
绝对幅值响应
%pha:
相位响应
%w采样频率;
%b系统函数H(z的分子项(对FIR,b=h
%a系统函数H(z的分母项(对FIR,a=1
[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;
%pha=unwrap(angle(H;
function[Hr,w,c,L]=hr_type3(h;
%计算所设计的3型滤波器的振幅响应
%Hr=振幅响应
%b=3型滤波器的系数
%L=Hr的阶次
%h=3型滤波器的单位冲击响应
M=length(h;
L=(M-1/2;
c=[2*h(L+1:
-1:
1];
n=[0:
1:
L];
w=[0:
1:
500]'*2*pi/500;
Hr=sin(w*n*c';
基于频域抽样法的FIR数字带通滤波器设计
wsl=0.12*pi;%低阻带边缘
wsh=0.82*pi;%高阻带边缘
wpl=0.32*pi;%低通带边缘
wph=0.62*pi;%高通带边缘
delta=(wpl-wsl;%过度带
M=ceil(2*pi*3/delta;%抽样点数
al=(M-1/2;
wl=(2*pi/M;%抽样间隔
k=0:
M-1;
T1=0.12;T2=0.6;%过渡带样本点
Hrs=[zeros(1,ceil(0.12*pi/wl+1,T2,T1,ones(1,ceil(0.3*pi/wl,T1,T2,zeros(1,ceil(0.3734*pi/wl,T2,T1,ones(1,ceil(0.3*pi/wl,T1,T2,zeros(1,ceil(0.12*pi/wl+1];
wdl=[00.120.320.620.821];
k1=0:
floor((M-1/2;k2=floor((M-1/2+1:
M-1;
angH=[-al*(2*pi/M*k1,al*(2*pi/M*(M-k2];
H=Hrs.*exp(j*angH;
h=real(ifft(H;%傅立叶反变换
figure(1;%冲击响应图
stem(k,h;
title('impulseresponse';
xlabel('n';ylabel('h(n';
grid;
figure(2;%幅频曲线图
Hf=abs(H;w=k*wl/pi;
plot(w,Hf,'*b-'
axis([01-0.11.1];
title('amplituderesponse';
xlabel('frequencyinpiunits';ylabel('Hr(w';
set(gca,'xtickmode','manual','xtick',wdl;
set(gca,'ytickmode','manual','ytick',[00.120.61];grid;
figure(3;
fs=15000;
[c,f3]=freqz(h,1;
f3=f3/pi*fs/2;
plot(f3,20*log10(abs(c;
title('频谱特性';
xlabel('频率/HZ';ylabel('衰减/dB';
grid;
t=(0:
100/fs;
x=sin(2*pi*t*700+sin(2*pi*t*3200+sin(2*pi*t*6200;q=filter(h,1,x;
[a,f1]=freqz(x;
f1=f1/pi*fs/2;
[b,f2]=freqz(q;
f2=f2/pi*fs/2;
figure(4;
subplot(2,1,1;
plot(f1,abs(a;
title('输入波形频谱图';
xlabel('频率';ylabel('幅度'
subplot(2,1,2;
plot(f2,abs(b;
title('输出波形频谱图';
xlabel('频率';ylabel('幅度'
基于汉宁窗的FIR数字高通滤波器设计
functions2
Fs=15000;
t=(0:
100/Fs;
x=sin(2*pi*500*t+sin(2*pi*3000*t
subplot(245;
stem(x;
title('原始信号';
axis([0,100,-2,2];
Ws=7*pi/30;
Wp=13*pi/30;
tr_wid=Wp-Ws;%过渡带宽度
N=ceil(11*pi/tr_wid%滤波器长度
n=0:
1:
N-1;
Wc=(Ws+Wp/2;%理想高通滤波器的截止频率
hd=ideal_hp1(Wc,N;%理想高通滤波器的单位冲激响应w_bla=(blackman(N';%布拉克曼
h=hd.*w_bla;%截取得到实际的单位脉冲响应[db,mag,pha,grd,w]=freqz_m(h,[1];%计算实际滤波器的幅度响应delta_w=2*pi/1000;
As=-round(max(db(1:
1:
Ws/delta_w+1%实际阻带纹波,round是取整函数y=filter(h,1,x
subplot(246
plot(y
title('滤波后的信号';
axis([0,100,-1,1]
subplot(241
stem(n,hd
title('理想单位脉冲响应hd(n'
subplot(242
stem(n,w_bla
title('布拉克满窗w(n'
subplot(243
stem(n,h
title('实际单位脉冲响应hd(n'
subplot(244
plot(w/pi,db
title('幅度响应(dB'
axis([0,1,-100,10]
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;subplot(247;plot(phatitle('相频响应'functionhd=ideal_hp1(Wc,Nalp=(N-1/2;n=0:
1:
N-1;m=n-alp+eps;%eps是一个很小很小的数hd=[sin(pi*m-sin(Wc*m]./(pi*m;用双线性法设计巴特沃斯高通数字滤波器clearall;clc;closeallfs=120;T=1/fs;rp=1;rs=30;Wp=0.35*pi;Ws=0.65*pi;%数字滤波器指标wp=2*tan(Wp/2/T;ws=2*tan(Ws/2/T;%预畸变,将数字滤波器的指标变为模拟滤波器的指标[N,w]=buttord(wp,ws,rp,rs,'s';%求滤波器阶数和3dB截止频率[Z,P,K]=buttap(N;%设计模拟低通滤波器[Md,Nd]=zp2tf(Z,P,K;%将零极点形式转换为传输函数形式[M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 实现 数字 FIR 高通带通低通 带阻滤波器 解析