浅谈自适应滤波器---(自适应陷波器)
来源:互联网 发布:虚拟机上ubuntu屏幕小 编辑:程序博客网 时间:2024/05/16 11:00
原文地址:http://blog.csdn.net/hj199404182515/article/details/71527011
陷波器顾名思义就是对特定频率的信号有着很强的衰减的滤波器,也即阻带带宽极窄的带阻滤波器。在传统的数字陷波器设计中,为了能使某一频率信号得到足够大的衰减,通常的做法就是把阶数选的足够高来达到很大的衰减;但同时计算量也变得更大了。而且设计的过程复杂,不利于动态的调整。为了解决上述存在的问题自适应陷波器孕育而生。博主在一次心电信号(ECG)工频干扰滤除的项目中就使用了自适应陷波器,其效果要远远好于传统的陷波器,它能在信干比-100dB的时候依然能够很好的将有用的信号提取出来。
当我们知道原始信号里的干扰信号频率是多少时(例如最常见的50Hz工频干扰),这时我们只需要知道这个干扰信号的相位和幅度,然后就可以完全的“再现”这个干扰信号,然后我们就可以直接的从原始信号中将其减去,从而就得到了我们想要的信号成分。这一过程实际上就是自适应陷波器的基本工作原理。关于自适应实现算法的具体原理可以参考博主之前写过的博客文章《浅谈自适应滤波器》,下面给出的是今天要介绍的自适应陷波器的结构图:
其中x(k)是带有特定频率干扰的信号,也即输入的原始信号,可见它是从自适应滤波器的期望信号端输入的;而sin(2π f0/fs k)和cos(2π f0/fs k),是我们已知的频率为f0的干扰信号(其中fs是采样率),将它们分别乘以W1和W2进行适当的线性组合,就可以使其输出y(k)接近实际的干扰,最后输出的误差e(k)就是我们感兴趣的信号。如何进行W1和W2的选择这其实是自适应算法需要完成的工作,具体来说就是采用某种准则来构建一个关于误差e(k)的函数,通过是误差e(k)最小化来求得W1和W2,最常用的准则就是使误差的均方和最小。这也是本次博主要和大家分享的具体的自适应陷波器。
Matlab仿真
首先给出的是基于LMS的瞬时梯度估计算法的仿真代码:
运行一下得到如下的结果:
可以看到在信干比-100dB的情况下,有用的信号得到了不错的恢复。
接下来给出的是基于RLS的仿真代码:
运行一下得到如下的仿真结果:
可以看到仿真的结果相比于LMS的要好一些。
实际项目运用情况简介
心电信号(ECG 10mV以下)以及脑电信号(EEG 100uV以下)都是非常微弱的信号,其频带在0.1Hz到80Hz之间,在采集的过程中周围的各种50Hz工频干扰及其倍频三倍频等干扰会通过大地,空气等介质传播到人体上,进而被采集进来形成干扰。其强度一般是远大于心电信号的,所以要进行后一步详细的分析,干扰必须要被滤除掉。这时利用自适应陷波器是最为有效的方法。
当然这时用的自适应陷波器和之前介绍的又有所区别,主要区别是现在要去除的干扰频率有三个,所以需要对上述的滤波器进行改进,一种方法是采用串行的方式滤除,即首先滤除50Hz的干扰,然后滤除100Hz的,最后滤除150Hz的。另一种是采用并行的方式同时滤除这三种干扰,下面我给出的是这种方式的结构图:
下面给出的是采集的一段心电信号处理的结果:
可以看到原始信号中的50Hz干扰非常强,如果做频谱分析的话会发现还有100Hz和150Hz的干扰因此我设计的是滤除50Hz、100Hz和150Hz的自适应陷波器,这时出来的结果已经是把50Hz、100Hz和150Hz的干扰滤除干净了但是波形视乎还是不够平滑,这主要是大于100Hz的噪声引起的,因此自适应陷波后还要将其通过一个截止频率为80Hz的LPF,也就是低通滤波器,这时的输出就相当平滑了,但是还有一个值比较大的近乎直流的浮动的电压,这个电压主要是人体的静电引起的,因此还需要估计一下这个浮动的电压,然后将其减掉从而最终得到了干净的心电信号。
之前学习自适应一直是做的仿真,这次终于把它运用到了实际的项目中,效果非常显著,更有说服力了。如果大家有什么疑问的可以联系我,我们一起探讨。
- 浅谈自适应滤波器---(自适应陷波器)
- 浅谈自适应滤波器---(自适应陷波器)
- 自适应陷波器
- 浅谈自适应滤波器
- 浅谈自适应滤波器---(快速RLS算法)
- 自适应滤波器
- 自适应滤波器(Adaptive Filter)
- 自适应滤波器(Adaptive Filter)
- 自适应滤波器(Adaptive Filter)
- 自适应滤波器(Adaptive Filter)
- 图像的复原与重建(3):图像去噪(中值、均值、谐波均值、自适应、带通、带阻、陷波滤波器)
- 自适应中值滤波器
- 块自适应滤波器
- 各种自适应滤波器总结
- 自适应滤波器学习笔记
- 自适应滤波器学习
- MDF自适应滤波器实现AEC
- 最小均方自适应滤波器
- IC AND IC_CF
- PHP面试总结-1
- android binder proxy
- Qt之文件操作QFile于QFileInfo
- 实现memcpy函数
- 浅谈自适应滤波器---(自适应陷波器)
- Linux系统编程——特殊进程之孤儿进程
- python--字符串格式化(format)(一)
- pyalgotrade教程5--多标的策略
- Softmax classifier
- Redis-cli命令最新总结
- Web前端-HeadFirst-CH7-CSS入门
- CentOS7x64 yum下安装MySQL5.7安装
- 报表优化-------根据IP地址对比起始IP和结束IP找到相应的地域(判断两个IP地址)