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

📄 fir.m

📁 Matlab设计FIR,IIR
💻 M
字号:
close all,clear all,clc;

N=(40-7.95)/2.286/(0.15*pi);
N=round(N)+1                          %N取奇数
omega=[0.15*pi,0.3*pi,0.5*pi,0.65*pi];
wc1=(omega(1)+omega(2))/2;            %理想带通的截止频率
wc2=(omega(3)+omega(4))/2;
a=(N-1)/2;                            %满足线性相位的条件

for n=0:100                           %此处我只画出理想带通滤波器101个点的单位样值
    if n==a                           %响应,当然还可以取其它值
        hd(n+1)=(wc2-wc1)/pi;
    else
    hd(n+1)=(sin((n-a)*wc2)-sin((n-a)*wc1))/pi/(n-a);  %由频率特性求单位样值相应的公式
    end
end
n=0:100;
stem(n,hd);

ns=40;
b=0.5842*(ns-21)^0.4+0.07886*(ns-21)
for m=0:N-1
    b1=b*sqrt(1-(1-2*m/(N-1))^2);
    wk(m+1)=besl(b1)/besl(b);       %调用besl函数,求得kaiser窗函数
end
m=0:N-1;
figure;
stem(m,wk);                         %画出窗函数

for n=0:N-1
    h(n+1)=hd(n+1)*wk(n+1);         %加窗后的带通滤波器的单位样值响应
end
figure;
stem(m,h);


k=2*pi/(pi/40)+1;
H=zeros(1,k);                       %对数字带通滤波器频率特性初始化
q=0;
for w=-pi:pi/40:pi
    q=q+1;
    for n2=0:N-1
        H(q)=H(q)+h(n2+1)*exp(-j*w*n2);%计算数字滤波器的幅频特性
    end
end
figure,hold on,grid on;
H=20*log10(abs(H));                    %转换为对数幅频特性
w=-pi:pi/40:pi;
w=w/pi;
plot(w,H);
    

⌨️ 快捷键说明

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