【Matlab学习日记】② 常用滤波以及噪声分析方法(上)

文摘   科技   2024-10-13 19:44   山东  

关注+星标公众,不错过精彩内容


作者 | 量子君

微信公众号 | 极客工作室

【Matlab学习日记】专栏介绍

在这个专栏中,你可以找到大量与Matlab有关的知识和技能,包括基础语法、常用函数、绘图、数据分析和建模等方面的内容。此外,该专栏还包括一些与Matlab应用相关的内容,如simulink、图像处理、信号处理、机器学习等。

本章目录

  • 前言
  • 一、Sinmulink代码生成教程

    • 1.1、根据需求建立系统框图

    • 1.2、代码生成

      • 1.2.1 solver页面的设置

      • 1.2.2 Hardware Implenmatation页面的设置

      • 1.2.3 启动编译

  • 二、Sinmulink代码生成进阶教程

    • 2.1 代码生成工具

    • 2.2 代码生成基础操作

    • 2.3 函数的封装

    • 2.4 生成代码的设置

  • 三、Simulink代码生成应用教程

    • 3.1 控制器基础介绍

    • 3.2 例子介绍

    • 3.3 Simulink模型的修改

  • 总结



 前言

本文介绍常见的滤波算法的基础入门知识点。并以实际项目为出发点讲解常用滤波和数据中噪声分析方法。

一、使用滤波的目的

我们在采集数据时,我们希望得到的数据光滑,看起来舒服,就像下图:噪声少、信噪比高、质量好的数据;

然而,我们采集到的实际数据很有可能是这样:噪声多、信噪比低、质量差的数据;

虽然我们不知道评判数据好坏的标准,但从直观感觉上,上面这组是要好于下面这组的。这两组数据之间就需要设计一组甚至多组滤波器来处理。所以,使用滤波器的目的就是把质量差的数据处理成质量好的数据--也叫做去噪或者去污染。


二、常见的几种噪声和表现形式

2.1 几种常见的噪声及表现形式

从上一节中,我们了解到,滤波的目的是剔除数据中的噪声,那么得到一组数据,是否就可以马上利用滤波进行去噪呢?答案是:不!
噪声种类多种多样,每种噪声需要特定的滤波进行剔除分离,所以在搭建滤波器之前,先要对系统的噪声系统进行分析。滤波器构建,噪声分析先行。
常见的噪声可以从频率特性和噪声作用方式两个方面来理解:

1. 频率特性: 

  • 低频噪声:通常是指频率较低的噪声,可能源于电源干扰、机械振动等,常见于50 Hz以下的频段。   

  • 高频噪声:指频率较高的噪声,可能包括电子元件自振、射频干扰等,通常在kHz甚至MHz以上范围内。 

2. 作用方式:   

  • 加性噪声:是指这类噪声直接加在信号上,不随信号的内容而变化。加性噪声的一个典型例子是高斯白噪声,它是一种均匀影响整个频谱的噪声。加性噪声又分为随机噪声和基线噪声。其中,基线噪声又分为定常噪声和时变噪声。

  • 系数噪声:通常与信号的幅度或相位相关,可能会随着信号幅度改变,通常出现在倍乘或相干检测等过程中。其中,系数噪声也分为定常噪声和时变噪声。

    

在实际应用中,低频和高频噪声可以都是加性噪声的一种特例,因为它们都是独立于信号本身叠加在其上的。此外,低频噪声和高频噪声还可以对系统的不同部分造成不同类型的干扰,因此常需要不同的滤波手段来处理。而系数噪声则更复杂,因为它涉及信号的变化特性,并且可能需要通过先进的估计算法来校正其对信号的影响。
综上:采集数据 = 系数噪声 * 真实数据 + 加性噪声 + 其他噪声 。


2.2 低频噪声表现形式

原始数据:

低频噪声:

被低频噪声污染:


2.3 高频噪声表现形式

原始数据:

高频噪声:

被高频噪声污染:


2.4 加性噪声表现形式

原始数据:

线性噪声:

被线性噪声污染:

多项式噪声:

被多项式噪声污染:

随机噪声:

被随机噪声污染:


2.5 系数噪声表现形式

原始数据:

被定常系数噪声K污染:

被时变系数噪声K(t)污染:


三、噪声分析及各种噪声的滤波选择

3.1 噪声分析方法

在对系统的噪声进行分析时,我们只会采集到带有噪声的数据,而不知道无噪声的数据是什么样的。要对系统在多个状态下的数据分别进行分析。

比较常用的状态:

  1. 静息状态:理论上,数值变化不大,可以基于此做基线噪声和随机噪声的分析;

  2. 稳定工作状态:系统输出的数值频率变化不大,可以基于此做频率噪声分析。


  • 静息状态噪声分析流程:

解决方法:

  1. 根据拟合函数修正基线;

  2. 时域滤波去随机噪声。


  • 稳定状态噪声分析流程:

解决方法:

低通频域滤波、高通频域滤波、带通频域滤波、带阻频域滤波。


3.2 噪声表现形式分析

信号处理分析示例(以加速度数据为例):

原始数据:

放大后的细节:

先从数据的表现形式上,分析可能存在的噪声。通过上面对噪声的认识,显然随机噪声和高频噪声可能性比较大,低频噪声和基线噪声可能性比较小。

3.3 构建滤波的流程

目的:解算加速度
数据:加速度数据
特征:频率特征

可能存在的噪声:高频噪声、随机噪声

可能用的滤波:
  • 阻带截止频率为4Hz的低通滤波、

  • 滑动平均或Kalman等时域滤波


  • 构建滤波的流程:


3.4 实际数据滤波分析

低通滤波处理前后对比,处理前:

低通滤波处理后:

滑动平均处理:

卡尔曼滤波也能达到类似的效果:


总结

本文介绍常见的滤波算法的基础入门知识点。并以实际项目为出发点讲解常用滤波和数据中噪声分析方法。






若觉得文章对你有帮助,随手点『好看』、转发分享,也是对我的支持
关注我的微信公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。
点击“阅读原文”查看更多分享

极客工作室
一个专注于嵌入式系统、智能硬件、AIoT的极客自媒体
 最新文章