资源简介

用matlab m文件实现巴特沃斯滤波器,内附有详细的代码说明,和参数修改位置,根据个人需要可以随意设置参数

资源截图

代码片段和文件信息

%% 入门 例子
y2=mvnrnd(011000 );%% 高斯白噪声
x=0.01:0.01:10;
y1=10*sin(pi*x);
y=y1‘+y2              %%含有噪声的信号
plot(xy)
[ba]=butter(60.06); %%[b a]=butter(nw0)b为滤波函数的分子系数,a为分母系数,n为滤波器阶次,w0为相对(归一化)截止频率(cutoff frequency)
                      %%实际截止频率fs除以f采样频率*2,单位为pi*rad/sample,类比角速度w
% y0=filter(bay);     %%y0为滤波后的结果,一般滤波
y0=filtfilt(bay);     %% 零相位滤波

figure(2)
plot(xy0‘r‘xy)

%% 巴特沃斯滤波器,给定截止频率和阶数
%% signal
x=0.01:0.01:100;
y1=10*sin(0.2*pi*x);
y2=sin(2*pi*x);
y=y1+y2;
plot(xy)
%% filter
[ba]=butter(50.006);% 0.3Hz为截止频率,w0为0.01(0.5Hz)作为截止频率时,效果更好,截止频率越靠近信号频率,
                       % 是以牺牲相位为代价的。
y0=filter(bay);
figure(1);
plot(xy0)
%% over


%% 巴特沃斯滤波器设计阶数和截止频率,不知道用几阶,只知道大致频率。待解决衰减速度
%% signal
x=0.01:0.01:100;
y1=10*sin(0.2*pi*x);
y2=sin(2*pi*x);
y=y1+y2;
plot(xy)
%% filter
wp=2*0.3/100;
ws=2*0.5/100;%计算方法同w0通带为0.3Hz,阻带为0.5Hz
rp=3;
rs=6;%最大通带衰减为3db最小阻带衰减为6db
[nw0]=buttord(wpwsrprs);%a计算滤波器的阶数和截止频率
[ba]=butter(nw0)
y0=filter(bay);
plot(xy0)
%%  over
 














 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1295  2017-03-09 22:02  巴特沃斯滤波器\filter_pra.m

     文件      12626  2017-03-07 17:52  巴特沃斯滤波器\untitled.slx.autosave

     目录          0  2018-01-08 01:59  巴特沃斯滤波器

----------- ---------  ---------- -----  ----

                13921                    3


评论

共有 条评论