使用窗口函数、频率采样法、等波纹法设计fir高通滤波,matlab

[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]);

结果


2020-11-14 22-32-15 的屏幕截图.png

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]);
2020-11-14 22-34-21 的屏幕截图.png

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]);
2020-11-14 22-34-56 的屏幕截图.png

5、三种设计方法的比较

2020-11-14 22-35-26 的屏幕截图.png

你可能感兴趣的:(使用窗口函数、频率采样法、等波纹法设计fir高通滤波,matlab)