matlab滤波器

懒得写了,贴这

function y=bandp(x,f1,f3,fsl,fsh,rp,rs,Fs)
%带通滤波
%使用注意事项:通带或阻带的截止频率与采样率的选取范围是不能超过采样率的一半
%即,f1,f3,fs1,fsh,的值小于 Fs/2
%x:需要带通滤波的序列
% f 1:通带左边界100
% f 3:通带右边界
% fs1:衰减截止左边界
% fsh:衰变截止右边界
%rp:边带区衰减DB数设置
%rs:截止区衰减DB数设置3
%FS:序列x的采样频率
% f1=300;f3=500;%通带截止频率上下限
% fsl=200;fsh=600;%阻带截止频率上下限
% rp=0.1;rs=30;%通带边衰减DB值和阻带边衰减DB值
% Fs=2000;%采样率
%———–200ws1——-300wp1——-500wp3———600wsh
wp1=2*pi*f1/Fs;%通带左边界
wp3=2*pi*f3/Fs;%通带右边界
wsl=2*pi*fsl/Fs;
wsh=2*pi*fsh/Fs;
wp=[wp1 wp3];
ws=[wsl wsh];
%
% 设计切比雪夫滤波器;
% [n,wn]=cheb1ord(ws/pi,wp/pi,rp,rs);
[n,wn]=cheb1ord(wp/pi,ws/pi,rp,rs);
% n
[bz1,az1]=cheby1(n,rp,wp/pi);
%查看设计滤波器的曲线
% [h,w]=freqz(bz1,az1,256,Fs);
% h=20*log10(abs(h));
% figure;plot(w,h);title(‘所设计滤波器的通带曲线’);grid on;
y=filter(bz1,az1,x);
% y2=filter_test02 (bz1,az1,x,n);%test filter_test02
y1=filter_test01 (bz1,az1,x,n);%test filter_test02 y1=filter_test01 (bq,aq,x,ord)——-test—ok
y2=filter_test03 (bz1,az1,x,n);%test filter_test03 band psss 无误差
end

function y=bandp_bw(x,f1,f3,fsl,fsh,rp,rs,Fs)
% wp=2*f1/Fs;
% ws=2*f3/Fs;
wp1=2*pi*f1/Fs;%通带左边界
wp3=2*pi*f3/Fs;%通带右边界
wsl=2*pi*fsl/Fs;
wsh=2*pi*fsh/Fs;
wp=[wp1 wp3];
ws=[wsl wsh];

%butterworth带通容易把波形滤坏
[N,wc]=buttord(wp/pi,ws/pi,rp,rs);%计算率波器的阶数和3dB截止频率

[B,A]=butter(N,wc);%计算滤波器系统函数分子分母多项式
y=filter(B,A,x);%对序列x滤波后得到的序列y
end

function y=bands(x,f1,f3,fsl,fsh,rp,rs,Fs)
%带阻滤波
%使用注意事项:通带或阻带的截止频率与采样率的选取范围是不能超过采样率的一半
%即,f1,f3,fs1,fsh,的值小于 Fs/2
%x:需要带通滤波的序列
% f 1:通带左边界
% f 3:通带右边界
% fs1:衰减截止左边界
% fsh:衰变截止右边界
%rp:边带区衰减DB数设置
%rs:截止区衰减DB数设置
%FS:序列x的采样频率
% f1=300;f3=500;%通带截止频率上下限
% fsl=200;fsh=600;%阻带截止频率上下限
% rp=0.1;rs=30;%通带边衰减DB值和阻带边衰减DB值
% Fs=2000;%采样率
%
wp1=2*pi*f1/Fs;
wp3=2*pi*f3/Fs;
wsl=2*pi*fsl/Fs;
wsh=2*pi*fsh/Fs;
wp=[wp1 wp3];
ws=[wsl wsh];
%
% 设计切比雪夫滤波器;
[n,wn]=cheb1ord(ws/pi,wp/pi,rp,rs);
[bz1,az1]=cheby1(n,rp,wp/pi,’stop’);
%查看设计滤波器的曲线
[h,w]=freqz(bz1,az1,256,Fs);
h=20*log10(abs(h));
%figure;plot(w,h);title(‘所设计滤波器的通带曲线’);grid on;
y=filter(bz1,az1,x);
end

function [filresult]=bpfilter(signal,fs,lowfreq,highfreq)
%leak signal bandpassfilter

% fs=1280; %采样率200KHz,已固定不变
wl=lowfreq*2/fs;
wh=highfreq*2/fs;
b=fir1(256,[wl wh]);%滤波器阶数与 过度带
% freqz(b);
% y1=filter_test01 (b,1,signal,256);
% y2=filter_test02 (b,1,signal,256);

%filresult4=filter_test04 (b,1,signal,256);%FIR transposed realisation band pass
filresult=filter(b,1,signal);
% 测试filter_test01和filter_test02;

% plot(filresult);

function y=high_bw(x,f1,f3,rp,rs,Fs)
% wp=2*f1/Fs;
% ws=2*f3/Fs;
wp=2*pi*f1/Fs;
ws=2*pi*f3/Fs;
[N,wc]=buttord(wp/pi,ws/pi,rp,rs);%计算率波器的阶数和3dB截止频率

[B,A]=butter(N,wc,’high’);%计算滤波器系统函数分子分母多项式
y=filter(B,A,x);%对序列x滤波后得到的序列y
end

function y=lowp(x,f1,f3,rp,rs,Fs)
%低通滤波–切比雪夫I型数字图6:LF频段导出点直接作图滤波器
%使用注意事项:通带或阻带的截止频率的选取范围是不能超过采样率的一半
%即,f1,f3的值都要小于 Fs/2
%x:需要带通滤波的序列
% f 1:通带截止频率
% f 3:阻带截止频率
%rp:边带区衰减DB数设置
%rs:截止区衰减DB数设置
%FS:序列x的采样频率
% rp=0.1;rs=30;%通带边衰减DB值和阻带边衰减DB值
% Fs=2000;%采样率
%
wp=2*pi*f1/Fs;
ws=2*pi*f3/Fs;
% 设计切比雪夫滤波器;
% wp/pi
% ws/pi
[n,wn]=cheb1ord(wp/pi,ws/pi,rp,rs);%wn就是0.1即是rp—
%n
[bz1,az1]=cheby1(n,rp,wp/pi);
% %查看设计滤波器的曲线
% [h,w]=freqz(bz1,az1,256,Fs);%幅值h是一个0~1之间的数,
% h=20*log10(abs(h));%增益响应
% figure;plot(w,h);title(‘所设计滤波器的通带曲线’);grid on;
%

y=filter(bz1,az1,x);%对序列x滤波后得到的序列y

% y=filter_test01 (bz1,az1,x,n);
%test=bz1(1)*x(3)+bz1(2)*x(2)+bz1(3)*x(1)-az1(2)*y(2)-az1(3)*y(1)

end

% %低通滤波器使用例子的代码
% fs=2000;
% t=(1:fs)/fs;
% ff1=100;
% ff2=400;
% x=sin(2*pi*ff1*t)+sin(2*pi*ff2*t);
% figure;
% subplot(211);plot(t,x);
% subplot(212);hua_fft(x,fs,1);
% %低通测试
% % y=filter(bz1,az1,x);
% y=lowp(x,300,350,0.1,20,fs);
% figure;
% subplot(211);plot(t,y);
% subplot(212);hua_fft(y,fs,1);

%%模拟滤波器
%巴特沃斯——滤波器设计
function y=lowp_bw(x,f1,f3,rp,rs,Fs)
% wp=2*f1/Fs;
% ws=2*f3/Fs;
wp=2*pi*f1/Fs;
ws=2*pi*f3/Fs;
[N,wc]=buttord(wp/pi,ws/pi,rp,rs);%计算率波器的阶数和3dB截止频率

[B,A]=butter(N,wc);%计算滤波器系统函数分子分母多项式

y=filter(B,A,x);%对序列x滤波后得到的序列y
end

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值