[toc]
窗口函数、频率采样法、等波纹法设计fir高通滤波,matlab编程
1、设计指标
通带截止频率wp=pi/2,阻带截至频率ws=pi/4,ap=1db,as=40db
2、窗口函数法
为了达到设计指标、窗口函数使用了汉明窗
具体设计的原理不多说、这里直接贴代码和运行结果
%窗口函数设计fir高通滤波器
N0=ceil(6.2*pi/Bt);
N=N0+mod(N0+1,2);
wc=(wp+ws)/2/pi;
hn=fir1(N-1,wc,'high',hanning(N));
n=0:N-1;
fh=fft(hn,1024);f1=20*log10(abs(fh));
wk=0:1023;wk=2*wk/1024;
subplot(3,3,1);
stem(n,hn,'.');title('汉宁窗设计的h(n)');
grid;
xlabel('n');ylabel('h(n)');
subplot(3,3,2);
plot(wk,f1);title('汉宁窗设计的损耗函数');grid;
xlabel('\omega/\pi');ylabel('幅度(dB)');axis([0,1,-90,10]);
subplot(3,3,3);
plot(wk,abs(fh));title('汉宁窗设计的幅频特性');grid;
xlabel('\omega/\pi');ylabel('幅度');axis([0,1,-0.1,1.1]);
结果
3、频率采样法设计fir高通滤波器
clear all;
N=19;%采样点
wp=0.5*pi;%通带截止频率
T1=0.4;
T2=0.7;
N1=fix(wp/(2*pi/N));%阻带上采样点
N2=N-2*N1;%通带上采样点
A=[zeros(1,N1),ones(1,N2),zeros(1,N1)];
theta=-pi*[0:N-1]*(N-1)/N;%线性相位约束条件
H=A.*exp(j*theta);%频率采样
h=real(ifft(H));%傅里叶逆变换
v=1:N; figure(1);
%subplot(411)
%plot(v,A,'*');
%title('频率采样'); ylabel('H(k)');
%axis([0,fix(N*1.1),-0.1,1.1]);
subplot(334)
stem(v ,h);title("采样法hn");ylabel('h(n)'); axis([0,fix(N*1.1),min(h)*1.1,max(h)*1.1]); grid;
subplot(335)
M=5000; nx=[1:N];
w=linspace(0,pi,M);%0~π范围等间隔
X=h*exp(-j*nx'*w);%求取频率响应 figure(2);
plot(w./pi,20*log10(abs(X)));grid;
xlabel('\omega/\pi');
ylabel('幅度(dB)');
title('频率幅度衰减');
axis([0,1,-90,10]);
subplot(336)
plot(w./pi,abs(X));grid;
xlabel('\omega/\pi');
ylabel('|Hd(w)|');
title('频率采样法幅度响应');
axis([0,1,-0.1,1.3]);
4、等波纹逼近法设计fir高通滤波器
%等波纹逼近法设计
clc;
clear;
f=[0.25,0.5];
m=[0,1];
rp=1;
rs=40;
dat1=(10^(rp/20)-1)/(10^(rp/20)+1);
dat2=10^(-rs/20);
rip=[dat2,dat1];
[M,fo,mo,w]=remezord(f,m,rip);
M=M+1;
hn=remez(M,fo,mo,w);
subplot(3,3,7);
stem(hn);title('等波纹法hn')
Hk=fft(hn,1024);
wk=0:1023;wk=2*wk/1024;
subplot(3,3,8);
plot(wk,20*log10(abs(Hk)));title('等波纹法设计的损耗函数');grid;
xlabel('\omega/\pi');ylabel('幅度(dB)');axis([0,1,-90,10]);
subplot(3,3,9);
plot(wk,abs(Hk));title('等波纹法设计的幅频特性');grid;
xlabel('\omega/\pi');ylabel('幅度');axis([0,1,0.1,1.1]);