注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

highspeedlogic

FPGA/MATLAB/Simulink

 
 
 

日志

 
 

MATLAB设计的简单滤波器程序源代码 代做  

2017-11-28 02:03:36|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
function mainfun()
Wp=0.2*pi;
Ws=0.4*pi;
tr_width=Ws-Wp;                         %过渡带宽度
N=ceil(6.6*pi/tr_width)+1               %滤波器长度
n=0:1:N-1;
Wc=(Ws+Wp)/2;                           %理想低通滤波器的截至频率          
hd=ideal_lp(Wc,N)';                      %理想低通滤波器的单位冲激响应
w_ham=(hamming(N))                      %海明窗
h=hd.*w_ham;                             %截取得到实际的单位脉冲响应
[db,mag,pha,w]=freqz_m4(h,[1]);          %计算实际滤波器的幅度响应
delta_w=2*pi/1000;
Ap=-(min(db(1:1:Wp/delta_w+1)))          %实际通带纹波
As=-round(max(db(Ws/delta_w+1:1:501)))   %实际阻带纹波
subplot(221)
stem(n,hd)                               %火柴棍图
title('理想单位脉冲响应hd(n)')
subplot(222)
stem(n,w_ham)
title('海明窗w(n)')
subplot(223)
stem(n,h)
title('实际单位脉冲响应h(n)')
subplot(224)
plot(w/pi,db)
title('幅度响应(dB)')
axis([0,1,-100,10])
 
end
%本程序用到的自定义函数
function hd=ideal_lp(Wc,N)
alpha= (N-1)/2;
n=0:1:N-1;
m=n-alpha+eps;
hd=sin (Wc*m)./(pi*m);
end
function[db,mag,pha,w]=freqz_m4(b,a) 
[H,w]=freqz(b,a,1000,'whole');
H=(H(1:1:501));
w=(w(1:1:501));
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
end
  评论这张
 
阅读(40093)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018