⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fir_window.m

📁 窗函数法设计有限冲激响应(FIR)滤波器
💻 M
字号:
%%%用汉宁窗,哈明窗,布莱克曼窗设计低通FIR滤波,性能指标:fs=10KHz,fpass=2KHz,,fstop=2.5KHz,Ap=0.1dB
%%%


close all;
clear;

%参数设定
fs=50;%采样频率
fpass=1.2;fstop=1.21;Ap=0.1;As=80;
%fs=10;fpass=3;fstop=4;Ap=0.001;As=80;
%end

%输入
R=1/fs;
t=0:R:8;
x=2+sin(2*pi*1.8*t)+0.5*sin(2*pi*7*t)+(1*Heaviside(t-2)-1*Heaviside(t-2.1))+(-1*Heaviside(t-3)+1*Heaviside(t-3.2));
%subplot(4,1,3);
plot(t,x);
hold on;
%计算参数L

wp=2*pi*fpass;
ws=2*pi*fstop;
beta_p=(10^(Ap/20)-1)/(10^(Ap/20)+1);
beta_s=10^(-As/20);
L=1+(-20*log10((beta_s*beta_p)^(1/2))-13)/(14.6*(fstop-fpass))*fs/10;%估算阶次
L=ceil(L);
if(mod(L,2)==0)%保证L为奇数
    L=L+1;
end
%end

%产生窗
L=85;%可自己设置,也可以计算
window=hamming(L);
%window=hanning(L);
%window=blackman(L);
%subplot(4,1,1);
[h_w,omega_w]=freqz(window,1,512);
%plot(omega_w/(pi),20*(log10(abs(h_w))));
%end

%产生滤波器系数
%fs1=0.5;
f=[0 fpass/(fs/2) fstop/(fs/2) 1];%归一化频率
m=[1 1 0 0];
fn=(fpass+fstop)/2;%截止频率
%b=fir1((L-1),fn/(fs),'low',window);
b=fir2((L-1),f,m,window);
%subplot(4,1,2);
[h,omega]=freqz(b,1,512);
%freqz(b,1,512);
%plot(f*(fs/2),m,omega/pi*(fs/2),abs(h));
%plot(omega/pi,abs(h));





%计算输出


%Y=fftfilt(b,x,256);
Y=filter(b,1,x);
%F=Y*exp(-j*t*w')*R;
%F=real(F);
%t_size1=size(t);
%t_size=t_size1(2);
%y1=zeros(1,t_size);
%for t1=L:t_size
    %y1(t1)=fir_go(x,t1,b,L);
    %end


%subplot(4,1,4);
plot(t,Y,'red');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -