FIR滤波器设计源码程序 - matlab通信信号 - 谷速源码
下载频道> 资源分类> matlab源码> 通信信号> FIR滤波器设计源码程序

标题:FIR滤波器设计源码程序
分享到:

所属分类: 通信信号 资源类型: 文件大小: 6.75 KB 上传时间: 2016-01-27 19:22:12 下载次数: 12 资源积分:1分 提 供 者: 马云 FIR滤波器设计源码程序
内容:
FIR滤波器设计源码程序,程序员在编程的过程中可以参考学习使用,希望对IT程序员有用,此源码程序简单易懂、方便阅读,有很好的学习价值!
%【设计分析】首先利用remezord 函数估算滤波器
%的可能阶数n ,然后利用remez 函数来实现该滤波
%器。最后判断所得的滤波器指标是否满足阻带衰减
%的要求。若是,则获解;若否,则需提高滤波器的阶
%数n 直到其技术指标满足设计要求为止。
%程序源代码如下:
 
clear; 
clc;
 
%function FIRDF_design
 
Wp = 0.4*pi; %input ('请输入通带截止频率:') ;
Ws = 0.6*pi; %input ('请输入阻带截止频率:') ;
delta1 = 0.01; %input ('请输入通带容许偏差:') ;
delta2 = 0.001; %input ('请输入阻带容许偏差:') ;
 
Ap = 20 * log10 (2/ (1 - delta1) - 1)
%设计要求的通带最大衰减(db)
As = - 20 * log10 (delta2/ (delta1 + 1) )
%设计要求的阻带最小衰减(db)
delta_w = 2 * pi/ 1000 ;
Wsi =Ws/delta_w + 1; Wpi =Wp/delta_w;
f = [Wp/pi ,Ws/pi ]; m = [ 1 ,0 ]; dev = [ delta1 ,delta2 ] ;
[ n ,fo ,ao ,weights ] = remezord (f ,m ,dev) 
h = remez(n ,fo ,ao ,weights) ;
[ H ,w] =freqz (h ,1 ,1000,'whole') ;
 
H = (H(1 :1 :501) )'; w = (w(1 :1 :501) )'; mag = abs (H) ;
db = 20 * log10 ( (mag + eps) / max(mag) ) ;
Asd = - max(db (Wsi :1 :501) )
while Asd < As   %判断阻带衰减指标是否满足设计要求,以完成对n 的调整。
    n = n + 1 ;
    h = remez (n ,fo ,ao ,weights) ;
    [ H ,w] =freqz (h ,1 ,1000,'whole') ;
    H = ( H(1 :1 :501) )'; w = ( w(1 :1 :501) )'; mag = abs (H) ;
    db = 20 * log10 ( (mag + eps) / max(mag) ) ;
    Asd = - max(db (Wsi :1 :501) ) ;
end
 
M = n;
h = remez (M,fo ,ao ,weights) ;
[ H ,w] =freqz (h ,1 ,1000,'whole') ;
H = (H(1 :1 :501) )'; w = (w(1 :1 :501) )'; mag = abs (H) ;
db = 20 * log10 ( (mag + eps) / max(mag) ) ;
Apd = - (min (db (1 :1 :Wp/ delta_w + 1) ) )
%实际得到的最大通带衰减
Asd = - round(max(db (Wsi :1 :501) ) )
%实际得到的最小阻带衰减
 
figure ; %画图
subplot (2, 1, 1) ;
stem( 0:1:M , h) ;
title( '实际的脉冲响应', 'fontsize', 8)
axis ( [0, M, -0.1, 0.5 ]) ;
xlabel ('n','fontsize',8);  
ylabel ('h(n) ','fontsize',8)
set( gca, 'XTickMode', 'manual', 'XTick', [ 0 M])
set( gca, 'YTickMode', 'manual', 'YTick', ( -0.1:0.1:0.5 )) 
 
subplot (2 ,1 ,2) ; 
plot (w/pi ,db)
title ('以分贝形式表示的幅度响应','fontsize',8) ;
axis ( [0 ,1 , -100 ,10 ]) ;
Xlabel( 'frequency( * pi) ', 'fontsize',8) ;
Ylabel( 'db', 'fontsize',8) ;
set (gca ,'XTickMode','manual','XTick', [ 0 ,0.4 ,0.6 ,1 ])
set (gca ,'YTickMode','manual','YTick', [ -60 0 ])
set (gca ,'YTickLabelMode','manual','YTickLabel',{'60', '0'}) 
grid

文件列表(点击上边下载按钮,如果是垃圾文件请在下面评价差评或者投诉):

FIR滤波器设计源码程序/
FIR滤波器设计源码程序/FIRDF_design.m
FIR滤波器设计源码程序/untitled.png

关键词: 滤波器 源码 程序

Top_arrow
回到顶部
联系方式| 版权声明| 招聘信息| 广告服务| 银行汇款| 法律顾问| 兼职技术| 付款方式| 关于我们|
网站客服网站客服 程序员兼职招聘 程序员兼职招聘
沪ICP备19040327号-3
公安备案号:沪公网安备 31011802003874号
库纳格流体控制系统(上海)有限公司 版权所有
Copyright © 1999-2014, GUSUCODE.COM, All Rights Reserved