matlab中fir滤波器的低通,高通,带通,带阻的程序谁有啊,求大神,可以轻易插入图片的程序

如题所述

第1个回答  2012-04-26
%基于MATLAB的FIR低通滤波器程序
%要求用切比雪夫一致逼近法设计
%技术指标如下:
%通带边缘频率 Wp=0.6pi
%阻带边缘频率 Ws=0.7pi
%采样频率:Fs=80KHz
%经计算得相应数字滤波器的指标:
%通带截止频率:fp=0.6*Fs/2
%通带波纹:rp=0.01(单位dB)
%阻带截止频率:fs=0.7*Fs/2
%阻带衰减:rs=0.1
clear;
Fs=80;
fp=0.6*Fs/2;
rp=0.01;
fs=0.7*Fs/2;
rs=0.1;
f= [fp fs];
A=[1 0];
dev=[rp rs];
[n,f0,m0,W]=remezord(f,A,dev,Fs);
b=remez(n,f0,m0,W);
[h,W]=freqz(b,1,256,1);
h=abs(h);
h=20*log10(h);
plot(w,h);grid;
xlabel('频率(归一化)');
ylabel('幅度(dB)');

%带通滤波器设计
fs=200;%注意采样率应该大于最大频率的2倍多,注意刚好两倍效果也不好
t = (0:500)/ fs ;
sl = sin(2*pi*15*t) ;
s2 = sin(2*pi*55*t) ;
s3 = sin(2*pi*75*t) ;
s =sin(2*pi*15*t) + sin(2*pi*55*t ) +sin(2*pi*75*t) ;
% axes('position', [0.1 0.43 0.5 .23] )
subplot(411),plot(t,s) ;
% axis( [0 1 -4 4] )
xlabel ('time/ Second', 'fontsize' ,8)
ylabel ('time wave','fontsize',8)
%set(gca ,'fontsize',8)
%generate a 38 _ order FIR bandpass filter ,
%band width is 30Hz- 60Hz
%设计的带通滤波器
b =fir1(38,[0.30 0.60]) ;%改变滤波器阶数38
[h,f] =freqz(b,1,512) ;
% axes('position' , [0.1 0.76 0.5 .23] )
subplot(412),plot( f*100/pi ,20*log10(abs(h)))
% axis( [0 100 -100 0] )
xlabel ('frequency/ Hz','fontsize',8)
ylabel('magresponse/Db', 'fontsize',8)
% set(gca,'fontsize',8) % select s2 sig n al f r oms
sf =filter(b,1,s) ;%滤波后的信号
% axes('position' , [0.1 0.1 0.5 .23] )
subplot(413),plot(t, sf)
% axis( [0.2 1 -0.1 0.1] )
xlabel ('time/Second','fontsize',8)
ylabel ('time wave' , 'fontsize' ,8)
% set (gca ,'fontsize',8)

subplot(414),plot(t, s2)
xlabel('原始信号时间')
% axis( [0 5 -2 2] )
%滤波前后的幅值
siglength=length(s);
halflength=floor(siglength/2);
f=fs*(0:halflength)/siglength;
aq=fft(s,siglength);
pq=aq.*conj(aq)/siglength;
figure

% halflength=floor(length(t)/2);
% f=fs*(0:halflength)/length(t);
% subplot(211),plot(f,pq(1:halflength+1));
subplot(211),plot(f,pq(1:halflength+1));
title('滤波前的功率谱')
ah=fft(sf,siglength);
ph=ah.*conj(ah)/siglength;
subplot(212),plot(f,ph(1:halflength+1));
title('滤波后的功率谱')

【呵呵给分吧】

用MATLAB设计低通,带通,高通和带阻FIR数字滤波器 急!!!
(2)带通滤波器的技术指标:H(ejw=0,0<w<0.4pi; H(ejw)=1;0.4pi<w<0.6pi;H(ejw)=0,0.6<w<pi; (3)高通滤波器的技术指标:H(ejw)=0,0<w<0.7pi; H(ejw)=1,0.7pi<w<pi. (4)带阻滤波器的技术指标:H(ejw)=1,0<w<0.3pi; H(ejw)=0;0.3pi<w<0.7pi;H(ejw)=1,0.7<w<pi; 展开 ...

高通、低通、带通、带阻四种滤波器在MATLAB中仿真
title '低通滤波后的波形图';axis([0 M -1 1])Y = fft(yk, N);subplot(414)plot(2*pi*(0:N\/2-1)\/N\/pi, 2*abs(Y(1:N\/2))\/N,'g');title '低通滤波后的频谱曲线';===注:与高通滤波不同之处在于h的取值 课程设计(2)高通滤波 clear;clear clf;对连续时间信号进行采样 f1=...

用matlab设计滤波器
这个信号的频率分量分别为30、150和600Hz,因此可分别设计一个低通、带通和高通的滤波器来提取。以FIR滤波器为例,程序如下:clear;fs=2000;t=(1:1000)\/fs;x=10*cos(2*pi*30*t)+cos(2*pi*150*t)+5*cos(2*pi*600*t);L=length(x);N=2^(nextpow2(L));Hw=fft(x,N);figure(1)...

MATLAB中FIR滤波器如何设计
这样的话,设计一个FIR滤波器,主要是由阻带最小衰减来确定窗形状,再根据过渡带宽的要求来确定窗宽N。有一个窗函数基本参数表,可以对照着选。然后用MATLAB中fir1函数来设计,其语法格式为:b=fir1(N,wn,'ftype',window)。需简单计算N,wn 例题:设计一个低通数字滤波器,给定抽样频率为fs=5000Hz...

matlab中firl如何使用
wn是单个值时,为低通\/高通滤波器,ftype可以为low\/high;当wn为有两个元素的向量[w1 w2 ],w1 < w2 , 为带通\/带阻滤波器,ftype可以为bandpass\/stop; 如果Wn有两个以上元素[w1 w2 …… wn],w1< w2 <…… <wn,ftype可以为'DC-0' | 'DC-1'。ftype为'DC-0'代表第一个带(0~w1...

基于matlab 的fir滤波器程序
那就假设几个吧:采样频率:fs=80khz 经计算得相应数字滤波器的指标:通带截止频率:fp=0.6*fs\/2 通带波纹:rp=0.01(假设的,单位db,下同);阻带截止频率:fs=0.7*fs\/2 阻带衰减:rs=0.1(假设的,同上)程序如下,给出了幅频特性曲线。clear;fs=80;fp=0.6*fs\/2;rp=0.01;fs=0....

Matlab生成fir滤波器抽头系数
首先,打开Matlab,启动滤波器设计工具fdatool。在工具界面,选择所需的滤波类型(如低通或高通),并在fir设计方法中选择窗函数作为设计手段。在窗函数部分,选择一个适合的窗口类型,例如汉明窗。接下来,决定滤波器的阶数,尽管默认最小,但可能需要根据需求调整以优化滤波效果,但注意阶数越高,计算量和...

基于fdatool的滤波器设计(低通、带通、高通)
在MATLAB的fdatool工具中,设计低通、带通和高通滤波器变得直观易行。接下来,我们将详细探讨利用fdatool进行滤波器设计的方法,包括导出至工作区、ASCII文件和MAT-File三种方式,并提供相应的调用代码示例。一、fdatool滤波器设计 利用fdatool进行滤波器设计,首先选择工具,可以生成用于FIR或IIR滤波器的系数矩阵...

matlab fir滤波器
是由阻带衰减确定的 不妨设 阻带衰减为 50dB 那么要达到这个指标,通过查表,可以知道-必须是hamming window(54.5dB) 或 blackman window(75.3dB)下面是加窗的低通FIR滤波器 clear clc;wc=0.25*pi;wdelta=wc-2*wc\/3; %设定过渡带宽度 M=ceil(3.32*pi\/wdelta) ; %窗口长度 这...

用MATLAB针对含有5Hz、15Hz 和30Hz 的混合正弦波信号,设计FIR低通、带...
设计FIR带通滤波器 fc1=10; fc2=20; fs=100;[n,Wn,beta,ftype]=kaiserord([7 13 17 23],[0 1 0], [0.01 0.01 0.01],100)window=kaiser(n+1,beta); %使用kaiser窗函数 b=fir1(n, Wn,window); %使用标准频率响应的加窗设计函数fir1 freqz(b,1,512);t=(0:100)...

相似回答