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('低通滤波器幅频特性曲线');

巴特沃斯数字低通滤波器相关推荐

  1. 巴特沃斯滤波器应用场合_巴特沃斯数字低通滤波器设计及应用

    龙源期刊网 http://www.qikan.com.cn 巴特沃斯数字低通滤波器设计及应用 作者:汪其锐 王桂华 王永军 来源:<山东工业技术> 2016 年第 24 期 摘 要:现实生 ...

  2. 巴特沃斯数字低通滤波器的设计

    题目要求: 设计工作在采样频率80kHz的巴特沃斯数字低通滤波器,通带边界频率4kHz,通带最大衰减值0.5dB,阻带边界频率为20kHz,阻带最小衰减45dB.编程实现滤波器设计,并显示系统函数H( ...

  3. 设计一个三阶巴特沃斯滤波器_设采样频率 ,用脉冲响应不变法设计一个三阶巴特沃斯数字低通滤波器。截止频率为 。并画出该滤波器的结构...

    匿名用户 1级 2011-01-05 回答 1-2基于Butterworth模拟滤波器原型,使用双线性状换设计数字滤波器:各参数值为:通带截止频率Omega=0.2*pi,阻带截止频率Omega=0. ...

  4. 四旋翼惯导融合之观测传感器滞后问题汇总与巴特沃斯低通滤波器设计(气压计MS5611、GPS模块M8N、超声波、PX4FLOW等)

    前文讲到APM的三阶互补方案,之前附的图是从学长博客里面抠的,感觉还不是很详细,于是自己就画了下,顺便重新理一下思路. 上图中下标为O的表示原始量(Origion),C表示矫正后的量(Correcti ...

  5. MATLAB:巴特沃斯低通滤波器过滤信号

    MATLAB:巴特沃斯低通滤波器过滤信号 实验内容产生两个不同频率的正弦信号,设计合适的滤波器,输出其中的一个信号,滤除另外的一个信号. 代码: %生成两个不同频率的信号 clc; T=2;%时域长度 ...

  6. MATLAB下实现巴特沃斯低通滤波器并对图像滤波

    clear; I1=imread('Fig3.35(a).jpg'); n4=2;w4=80;%ER阶巴特沃斯(Butterworth)低通滤波器,截止频率为80 f=im2double(I1); g ...

  7. matlab中提供滤波器的种类有,求MATLAB巴特沃思低通滤波器程序

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:求MATLAB巴特沃思低通滤波器程序.回答:击响应不变法函数 [bz,az]=impinvar(b,a,Fs) [bz,az]=im ...

  8. matlab求双线性变换法,[Matlab]双线性变换法设计数字低通滤波器

    测试代码: %%****bin_lp.m*******************%% %% 使用双线性变换法设计低通滤波器 %% 2018年6月13日 14:27:37 %% author:Alimy ...

  9. 数字信号处理|Matlab设计巴特沃斯低通滤波器(冲激响应不变法和双线性变换法)

    一.前言 1. 设计流程 2.系统频率响应 2.1频响图 系统函数 H 是一个复数,其图谱分为:幅度谱.相位谱 幅度谱 x轴:模拟频率f(数字频率w转化来)[单位:赫兹Hz] y轴:|H1|幅度[一般 ...

最新文章

  1. 【Redfin SDE intern】跪经
  2. mysql 5.7 api 中文_mysql5.7怎么解决中文
  3. 【HDU - 1285】确定比赛名次 (拓扑排序)
  4. php wdatepicker,WdatePicker时间控件的使用
  5. TTYL的完整形式是什么?
  6. Linux备份全攻略
  7. oracle+get+json,jQuery+ajax中getJSON() 用法实例
  8. 还在为运维烦恼?体验云上运维服务,提意见赢好礼!【华为云分享】
  9. lambda List实现某列去重的解决方案采用扩展方法
  10. github fork别人项目后如何同步更新原项目
  11. 安装百度库,C调用Python出错,卸载、再重装消失
  12. 基于SSM实现新闻发布系统
  13. win10修复计算机摁什么,win10修复引导的方法教程
  14. java中的0x00代表什么
  15. Stratified Sampling(分层采样)
  16. 程序员如何巧用Excel提高工作效率
  17. 在Excel中怎么筛选唯一值或删除重复值以及对其应用条件格式
  18. Oracle中Clob类型处理解析
  19. Theta*: 连续环境下平滑的任意角度的路径规划
  20. Android网络电话软件Sipdroid试用

热门文章

  1. 畅通工程之最低成本建设问题 (30分)
  2. PointNet代码分析
  3. 计算机二级java真题 百度云,计算机二级Java试题及答案
  4. 利用scrapyd管理scrapy的多个爬虫
  5. 社群运营方案怎么写?
  6. IDEA+Java+JSP+Mysql+Tomcat实现Web学校教材管理系统
  7. 使用spleeter分离音频文件中的伴奏和人声
  8. java实现排他平方数
  9. 目标检测数据集-Pascal VOC 数据集介绍
  10. 《OSPF和IS-IS详解》一1.4 互联网的诞生