0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于CW32的仪表精度测量实现(一):相关滤波原理

CW32生态社区 来源:CW32生态社区 作者:CW32生态社区 2024-08-30 18:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、滤波的概念

滤波是指通过某种方法将信号中的某些频率成分增强或抑制,达到去除噪声、改善信号质量、分离信号等目的的过程。滤波器是实现滤波功能的关键组件,它可以改变信号的频谱特性,对不同频率区域的信号进行处理。

二、常见的滤波算法

1.小波变换滤波

原理:小波变换通过将信号分解成不同尺度的子信号,可以提取出信号中的局部特征。在滤波中,小波变换可以用来去除信号中的噪声或者对信号进行平滑处理。

下面是该算法的波形图:

wKgaombRpJ2AFuxaAAAtxATgsSA93.webp

使用场景:

(1)图像去噪:小波变换可以有效地去除图像中的噪声,尤其是在多尺度分解中,可以针对不同频率的噪声进行过滤。

(2)特征提取:小波变换能够揭示图像或信号中的局部特征,因此在特征提取方面非常有用,比如在图像识别和分类中。

(3)边缘检测:小波变换在边缘检测方面表现出色,因为它能够捕捉到图像中的尖锐变化。

(4)信号去噪:在信号处理中,小波变换可以用于去除信号中的噪声,尤其是在非平稳信号中。

2.移动平均滤波

原理:首先确定一个包含一定数量样本点的窗口,这个窗口在信号上滑动。在每一个位置,计算窗口内所有样本点的平均值。将计算得到的平均值作为滤波后的输出。将窗口沿信号滑动一定步长,重复上述步骤。

我们有一个离散时间信号 x[n],并且我们使用长度为 M 的窗口进行移动平均滤波,那么滤波后的信号 y[n] 可以通过以下公式计算:则计算公式为:

y[n]=1/M∑k=n−M+1nx[k]

例如:一个包含噪声的信号序列x=[1,4,3,6,6,5,10,9,7,12].

我们可以使用移动平均滤波来平滑信号并减小噪声的影响。假设我们选择一个窗口大小为3,即每次计算三个样本的平均值。

第一个输出样本为:y[0]=(1/3)∗(1+4+3)=2.666

第二个输出样本为:y[1]=(1/3)∗(4+3+6)=4.33

以此类推,我们可以继续计算后续输出样本。

下面是使用这个算法生成的一个波形图

wKgZombRpJ6AQVQVAAA0gkTE4dM44.webp

使用场景:

(1)在金融领域等需要对数据进行趋势分析的场景中,移动平均滤波可以平滑价格波动,帮助分析数据的长期趋势,预测未来走势。

(2)在实时数据处理或传感器数据处理中,移动平均滤波可以利用先前时刻的数据进行滤波处理,对新的数据进行平均,有助于消除数据中的噪声或异常值。

(3)移动平均滤波对周期性噪声和高频噪声的滤波效果比较好,可以很好地降低信号或数据中的高频成分,同时保留信号的基本特征。

3.中值滤波

原理:中值滤波会选取数字图像或数字序列中像素点及其周围临近像素点(一共有奇数个像素点)的像素值,将这些像素值排序,然后将位于中间位置的像素值作为当前像素点的像素值,让周围的像素值接近真实值,从而消除孤立的噪声点。例如,针对下图中第4行第3列的像素点,计算它的中值滤波值。

wKgaombRpJ6APy-sAAAcklCDRLQ90.webp

将其邻域设置为3×3大小,对其3×3邻域内像素点的像素值进行排序(升序降序均可),按升序排序后得到序列值为:[16,35,46,52,52,62,64,83,85],在该序列中,处于中心位置(也叫中心点或中值点)的值是“52”,因此用该值替换原来的像素值 64,作为当前点的新像素值,新的像素图如下所示。

wKgZombRpJ6Ad9cQAAAd5OPkyuE89.webp

下面是使用这个算法对随机噪声滤波后生成的一个波形图:

wKgaombRpJ-AfJe-AAAtgO9_b_Y74.webp

使用场景:

(1)孤立噪声点平滑:中值滤波能有效去除图像或信号中的孤立噪声点,而不会对整体图像或信号的平滑区域造成影响。

(2)椒盐噪声去除:中值滤波对椒盐噪声(salt-and-pepper noise)具有很好的滤除效果,这种噪声表现为图像中随机分布的白色和黑色像素点。

(3)实时视频处理:由于中值滤波算法的计算复杂度相对较低,它可以用于实时视频流的噪声去除。

4.算术平均滤波

原理:算术平均滤波是图像处理中的一个常用技术,主要用于降低图像中的随机噪声。算术平均滤波器的基本思想是用像素点邻域内的平均灰度值来代替该像素点的灰度值。

算术平均滤波的计算公式如下:

f'(x, y) = 1/(mn) * ΣΣf(x+k, y+l)

其中,f'(x, y)是滤波后像素点(x, y)的灰度值,f(x+k, y+l)是原像素点(x, y)领域内的灰度值,ΣΣ表示对领域内所有像素点求和,m和n是滤波窗口的大小。

下面是使用这个算法对随机噪声滤波后生成的一个波形图:

wKgZombRpJ-AYLdsAAAnpFAxdtQ18.webp

算术平均滤波适用于一些简单的图像或信号处理场景,例如去除较为均匀且较弱的噪声。

5.卡尔曼滤波

原理

(1)预测步骤(预测状态):通过系统的动态模型,根据已知的系统状态和控制量,预测系统的下一个状态以及状态的协方差。这一步骤得到的是对系统未来状态的预测。

(2)测量更新步骤(更新状态):利用传感器测量数据,根据预测的状态和测量数据的协方差,通过卡尔曼增益计算得到关于系统状态的修正估计。卡尔曼增益会根据预测和测量的不确定性来调整估计值,以平衡两者之间的权重。

下面是使用这个算法对随机噪声滤波后生成的一个波形图:

wKgaombRpJ-ATr8wAAAyvKeBzU826.webp

使用场景:卡尔曼滤波广泛应用于估计动态系统的状态,例如航天器导航、飞行器控制、传感器数据融合等领域。它具有高效、准确、稳定等优点,能够处理系统模型不确定性、传感器误差等问题,提高状态估计的精度和鲁棒性。

6.均值滤波

原理:连续采样N个数据,去掉一个最大值和一个最小值然后计算N-2个数据的算术平均值N值的选取

下面是使用这个算法对随机噪声滤波后生成的一个波形图:

wKgZombRpKCATZIMAAAr7qSrLVs69.webp

使用场景:
(1)工业自动化:在工业自动化和控制系统中,均值滤波用于从传感器数据中去除噪声,提高系统的稳定性和可靠性。

(2)信号平滑:当信号受到高频干扰或随机噪声时,中值平均滤波法可以将突然的干扰降低,使信号变得更加平滑。

(3)环境监测:在环境监测中,均值滤波可以用于处理大气、水质等监测数据,去除测量误差和随机波动。

(4)数字图像处理:在数字图像处理中,中值平均滤波法常用于去除图像中的噪声,例如在数字摄影中去除低光照条件下的图像噪声。

7.快速傅里叶变换(FFT)滤波

原理:FFT滤波将时域信号通过FFT算法转换到频域,得到信号在频域上的频谱信息。在频域上对信号进行滤波处理,可以采用各种滤波器,如低通滤波器、高通滤波器、带通滤波器等,以抑制或增强特定频率成分。对经过滤波处理的频域信号进行逆FFT,将信号恢复回时域。

我使用python生成了一个频率为50 Hz的正弦波信号,并添加了高斯噪声。然后,使用numpy.fft.fft函数计算信号的FFT,并使用numpy.fft.fftfreq生成对应的频率向量。接下来,设计了一个简单的低通滤波器,只允许截止频率以下的频率成分通过。应用滤波器后,使用numpy.fft.ifft计算逆FFT,得到滤波后的信号。

下面是滤波的效果图:

wKgaombRpKCAXJj4AABJStY_mTg48.webp

使用场景:

(1)频域滤波:FFT允许将时域信号转换到频域,然后可以轻松地应用各种滤波器,如低通、高通、带通和带阻滤波器。

(2)信号分析:FFT常用于分析信号的频率成分,识别信号中的周期性成分或检测特定频率的信号。

(3)图像处理:在图像处理中,FFT可以用于频域滤波,如锐化、模糊、边缘检测等。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 滤波
    +关注

    关注

    10

    文章

    699

    浏览量

    57824
  • 精度测量
    +关注

    关注

    0

    文章

    8

    浏览量

    8383
  • CW32
    +关注

    关注

    1

    文章

    281

    浏览量

    1677
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    可以使用CW32的ChirpIOT来实现芯片固件升级吗

    可以使用CW32的ChirpIOT来实现芯片固件升级吗?这种升级每包有限制吗?般是多少,可以实现组网内的所有设备同时这种升级吗?
    发表于 12-05 06:51

    使用CW32 MCU来实现UART串口通信与GPIO控制

    最近在项目中使用CW32 MCU,完成了个简单的UART串口通信和GPIO控制的功能。CW32 MCU的资源相对丰富,特别适合些低成本、低功耗的嵌入式应用。这里分享
    发表于 12-04 08:17

    基于芯源CW32 MCU的LED闪烁示例及代码分析

    最近我在项目中使用了芯源的CW32 MCU,这是款非常适合物联网和低功耗应用的微控制器。在初步学习和使用中,我做了个简单的LED闪烁实验,通过这篇帖子给大家分享下代码及
    发表于 12-04 06:52

    CW32实现VBAT功能案例的参考代码

    CW32 实现VBAT功能案例参考代码: int32_t main(void) { RCC_Configuration(); // 时钟配置 GPIO_Configuration
    发表于 12-04 06:06

    CW32 MCU温度监测应用

    最近,我在项目中使用CW32 MCU,来实现个简单的温度监测系统。CW32的灵活性和性能让我在这个应用中得心应手。以下是我的实现过程和代码
    发表于 12-03 08:03

    基于芯源CW32 MCU智能家居照明控制系统设计与实现

    ,增强智能家居体验。 多房间灯光控制:通过扩展多个CW32 MCU节点,系统可以实现对不同房间的灯光独立控制,每个节点通过统的Wi-Fi网络接收指令。 情景模式:用户可以设置多种情景模式(如电影模式
    发表于 12-03 06:06

    cw32 systick怎么用?

    cw32 systick怎么用
    发表于 12-01 08:10

    CW32定时器及中断介绍

    可以由硬件自 动执行触发信号的滤波操作,还能令触发事件产生中断和 DMA 请求。 低功耗定时器:CW32L083 内部集成 1 个 16 位低功耗定时器(LPTIM),可以以很低的功耗实现定时或对外
    发表于 12-01 07:08

    如何在CW32 MCU上优化I2C通信

    在嵌入式系统中,CW32 MCU的I2C接口通常用于与各种外设(如EEPROM、传感器等)进行数据通信。为了实现高效、稳定的I2C通信,必须考虑频率调节和数据完整性的问题。本文将聚焦于如何在CW32
    发表于 11-27 06:25

    使用J-Flash来编程CW32 MCU

    (可选): 编程完成后,J-Flash提供了验证选项,用于检查闪存内容是否与原始固件文件致。 执行验证步骤以确保编程成功且没有数据损坏。 9.断开连接: 编程和验证完成后,你可以断开CW32 MCU
    发表于 11-25 07:00

    CW32在MOSFET切换时频繁重启,怎么解决?

    CW32在MOSFET切换时频繁重启,后来发现是开关电源反馈环路震荡导致VDD有100mV纹波,这种情况加大滤波电容有效吗?
    发表于 11-20 06:22

    CW32 MCU用什么IDE开发?

    推荐使用IAR Embedded Workbench for ARM、Keil μVision for ARM等IDE开发CW32 MCU应用,其中新版本IAR EWARM直接支持CW32 MCU,Keil MDK-ARM则需要安装CW
    发表于 11-12 07:52

    CW32 MCU有哪些系列?

    目前CW32 MCU有通用高性能MCU、安全低功耗MCU、无线射频MCU等3个系列。其中射频MCU集成了无线收发器,主要包括CW32R031(2.4GHz BLE-Lite)系列和CW32W031(Sub-1G)系列。
    发表于 11-12 07:34

    CW32 MCU用什么仿真器开发?

    理论上各主流IDE枚举的、支持ARM Cortex内核的所有硬件仿真器,比如:J-LINK,ULINK,DAP,ST-Link等,都可以仿真、下载CW32 MCU的应用代码。如果想实现量产或者离线下载应用代码,则必须配套支持CW32
    发表于 11-12 06:01

    武汉芯源半导体CW32L010在两轮车仪表的应用介绍

    介绍的两轮车仪表方案是无锡梓轩电子基于武汉芯源半导体 CW32L010F8P6开发,适用于小规格电动车仪表方案,实现车辆速度、累计里程、单次里程、模式状态、故障状态显示等功能。 电动车
    发表于 05-13 14:06