二分类数据集 Ubuntu 国外镜像 图像处理 USB串口通信 自动化部署 reactjs mtu原理 rss mui LimeJS excel太长的文字隐藏 java反射方法 js回调函数写法 mysql组合索引 python开发安卓应用 python注释 python基础教程 python零基础教程 java获取当前线程 java多线程教程 java数组排序 php连接mssql 路由器辐射大吗 联发科p70 wscript collect 源计划艾克 微信砍价软件 梦想世界科举答案 omg小北 冰冠堡垒单刷路线 苹果手机怎么微信双开 华为mate8和p9哪个好 mysql数据库恢复 vbs代码表白 vue动态路由 dbgview ps旋转图层 origin怎么画图
当前位置: 首页 > 学习教程  > 编程语言

巴特沃斯数字低通滤波器

2020/10/8 19:54:24 文章标签:

matlab实现信号滤波有很多种方法,本文采用filter函数,先由butter函数生成数字滤波器分子、分母多项式,然后将这些参数传给filter函数,便可实现滤波的功能。 知识点如下: 1、[b,a] butter(N,wc); 其中,b…

matlab实现信号滤波有很多种方法,本文采用filter函数,先由butter函数生成数字滤波器分子、分母多项式,然后将这些参数传给filter函数,便可实现滤波的功能。

知识点如下:

1、[b,a] = butter(N,wc);

其中,b和a分别为滤波器分子、分母多项式,N为滤波器阶数,wc为3dB截止频率,巴特沃斯低通滤波器的特点为:整个频带内单调下降,且非常光滑,并且阶数越高,阻带内下降的越陡峭、越干脆。无论阶数多高,都在经过(wc,3dB)一点。

2、y = filter(b,a,x);

y为滤波后的信号,x为输入信号,b和a分别为分子、分母多项式,由butter函数获得。

3、滤波器的阶数和3dB截止频率可以通过函数butterd()获取,当然,如果没有那么多要求,直接设定也可以。

[N,wc] = butterd(wp,ws,Rp,Rs);

N为阶数,wc为3dB截止频率,wp和ws位通带截止频率和阻带截止频率,Rp和Rs为通带最大衰减和阻带最小衰减,这些参数挺讲究的,新手容易被搞懵逼,多看看课本。

4、本例程,生成的信号为两个正弦信号之和,频率分被为1KHz和3KHz,采样频率为10KHz,巴特沃斯低通滤波器8阶、3dB截止带宽2000Hz。

%%--------------------------------
%%巴特沃斯低通滤波对信号进行滤波
%%2020,10.07 12:35
%%-------------------------------
close all;clc;clear all;
Fs = 10000;%采样频率为10Khz
dt = 1/Fs;%采样时间间隔
L = 1000;%采样点数
t = (0:L-1)*dt;%生成时间向量
wc = 2000;%3dB截止频率

y = cos(2*pi*1000*t)+cos(2*pi*3000*t);%1000Hz和3000Hz
plot(t(1:100),y(1:100));
title('y=cos(2*pi*1000*t)+cos(2*pi*3000*t)');
figure;
Fy = fft(y)/L;
stem((0:L/2-1)*10,abs(Fy(1:L/2)));
title('y的频谱图')
[b a] = butter(8,wc*2/Fs);%3db截止频率为wc,最高频率为采样频率的一般,此时需要将0-wc/2映射到0-1上
y_lowpass = filter(b,a,y);%滤波
figure;
plot(t(1:100),y_lowpass(1:100));%绘制滤波后的信号波形
title('滤波后信号曲线');
Fy_low = fft(y_lowpass)/L;
stem((0:L/2-1)*(Fs/L),abs(Fy_low(1:L/2)));%Fs/L为频谱分辨度
title('滤波后频谱图');
[H W] = freqz(b,a);%获取数字低通滤波器的幅频特性曲线
figure;
plot(W*wc,abs(H));
xlabel('频率/Hz');ylabel('|H(jw)|');title('低通滤波器幅频特性曲线');

 


本文链接: http://www.dtmao.cc/news_show_250179.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?