| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-03-19 
				
				年龄: 39 
				
					帖子: 2
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			哪位大侠能提供小弟关于FIR低通滤波器的完整程序 不胜感激 
		
		
		
		
		
		
		
	PS: 使用的是哈明窗 和 凯泽窗 !!!!!!  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2007-05-27 
				
				
				
					帖子: 18
				 
				
				
				声望力: 19 ![]()  | 
	
	
	
		
		
			
			 
			
			仅供参考哈: 
		
		
		
		
		
		
		
	fsample=50000; %采样频率 fc=10000; %截止频率 wc=2*fc/fsample; window=hamming(11); b=fir1(10,wc,window); freqz(b);  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-03-19 
				
				年龄: 39 
				
					帖子: 2
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#4 | 
| 
			
			 普通会员 
			
			
			
			注册日期: 2008-02-26 
				
				年龄: 41 
				
					帖子: 71
				 
				
				
				声望力: 24 ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 
			
			%有四种窗口类型供选择 
		
		
		
		
		
		
		
	b=1; close all; i=0; while(b); temp=menu('选择窗函数长度N','N=10','N=15','N=20','N=25','N=30','N=33','N=35','N=40','N=45','N=50','N=55','N=60','N=64'); menu1=[10,15,20,25,30,33,35,40,45,50,55,60,64]; N=menu1(temp); temp=menu('选择逼近理想低通滤波器截止频率Wc','Wc=pi/4','Wc=pi/2','Wc=3*pi/4','Wc=pi','Wc=0.5','Wc=1.0','Wc=1.5','Wc=2.0','Wc=2.5','Wc=3.0'); menu2=[pi/4,pi/2,3*pi/4,pi,0.5,1,1.5,2,2.5,3]; w=menu2(temp); n=[0  N-1)];hd=ideal(w,N); %得到理想低通滤波器 k=menu('请选择窗口类型:','boxcar','hamming','hanning','blackman'); if k==1 B=boxcar(N); string=['Boxcar','N=',num2str(N)]; else if k==2 B=hamming(N); string=['Hamming','N=',num2str(N)]; else if k==3 B=hanning(N); string=['Hanning','N=',num2str(N)]; else if k==4 B=blackman(N); string=['Blackman','N=',num2str(N)]; end end end end h=hd.*(B)'; %得到FIR数字滤波器 [H,m]=freqz(h,[1],1024,'whole'); %求其频率响应 mag=abs(H); %得到幅值 db=20*log10((mag+eps)/max(mag)); pha=angle(H); %得到相位 i=i+1; figure(i) subplot(2,2,1); n=0:N-1; stem(n,h,'.'); axis([0,N-1,-0.1,0.3]); hold on; n=0:N-1; x=zeros(N); plot(n,x,'-'); xlabel('n'); ylabel('h(n)'); title('实际低通滤波器的h(n)'); text((0.3*N),0.27,string); hold off; subplot(2,2,2); plot(m/pi,db); axis([0,1,-100,0]); xlabel('w/pi'); ylabel('dB'); title('衰减特性(dB)'); grid; subplot(2,2,3); plot(m,pha); hold on; n=0:7; x=zeros(8); plot(n,x,'-'); title('相频特性'); xlabel('频率(rad)'); ylabel('相位(rad)'); axis([0,3.15,-4,4]); subplot(2,2,4); plot(m,mag); title('频率特性'); xlabel('频率W(rad)'); ylabel('幅值'); axis([0,3.15,0,1.5]); text(0.9,1.2,string); b=menu('Do You want To Continue ?','Yes','No'); if b==2 b=0; end end temp=menu('Close All Figure ?','Yes','No'); if temp==1 close all end  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
![]()  | 
	
	
| 主题工具 | |
| 显示模式 | |
		
  | 
	
		 | 
			 
			相似的主题
		 | 
	||||
| 主题 | 主题作者 | 版面 | 回复 | 最后发表 | 
| [求助]以知方程组,求解(好难,求助) | 大哥救命啊 | MATLAB论坛 | 0 | 2008-04-18 20:37 | 
| matlab编写板卡驱动 | emirlee | MATLAB论坛 | 2 | 2008-04-18 09:16 | 
| 【求助】如何产生随机解 | zhailiangjun | MATLAB论坛 | 2 | 2008-03-07 16:12 | 
| 【求助】一个简单的作图问题 | hinac | MATLAB论坛 | 3 | 2007-07-10 11:22 | 
| 【求助】如何在一个FRAMEL里面显示图象(根据frame的大小) | sabby | MATLAB论坛 | 0 | 2007-07-09 17:32 |