blackman.m

来自「利用窗函数法实现FIR滤波器的设计」· M 代码 · 共 36 行

M
36
字号
%Blackman窗FIR滤波器
%阻带衰减50dB
wp=0.1*pi;ws=0.8*pi; %滤波器边界频率
wdelta=ws-wp;  %过渡带宽
N=ceil(12*pi/wdelta); 
Nw=N;
wc=(wp+ws)/2;  %截止频率在通带和阻带边界频率的中点
n=0:N-1;
alpha=(N-1)/2;  %滤波器的相位延迟
s=n-alpha; 
hd=sin(wc*s)./(pi*s);  %理想滤波器脉冲响应
win=blackman(Nw);   %采用布莱克曼窗
h=hd.*win';   %在时间域乘积对应于频率域的卷积
figure(1);
[H,f]=freqz(h,1,512,50); %采用50Hz的采样频率绘出该滤波器的幅频和相频响应
subplot(2,1,1);
plot(f,20*log10(abs(H)));
xlabel('频率/Hz');ylabel('振幅/dB');
grid on;
subplot(2,1,2);
plot(f,180/pi*unwrap(angle(H)));
xlabel('频率/Hz');ylabel('相位/^o');
grid on;

f1=5;f2=25;    
t=0:0.02:3;    %采样间隔和检测信号的时间序列
x=sin(2*pi*f1*t)+cos(2*pi*f2*t);  %输入信号
y=filter(h,1,x);  %滤波器的输出
figure(2);
subplot(2,1,1);
plot(t,x);
title('输入信号');   %输入信号
subplot(2,1,2);
plot(t,y);    %输出信号
grid on;
xlabel('时间/s'),title('输出信号');

⌨️ 快捷键说明

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