【技术大神】Fal滤波器在采样控制中的应用与实现
在嵌入式应用领域,一般控制过程都要进行数模转换与信号采集,但因为现实世界中的各种干扰(模数转换器的采样噪声,设备启停造成的电源波动等),都会在采样回来的真实信号上叠加各种噪声。如何有效的滤除这些噪声,尽可能准确的还原真实信号,是每位嵌入式系统设计人员应该重视的问题。
Fal函数实际上是对控制工程界的一个经验知识“大误差、小增益;小误差,大增益”的数字拟合。常用的控制方法有模糊控制、智能控制、变增益PID等,本质上都是基于这种经验知识建立起来的。Fal函数具有的快速收敛特性,使其成为很实用的非线性反馈结构,其工作原理从非线性反馈效应的角度阐述了这种结构的鲁棒性和适应性。
应用Fal函数的滤波器结构如下图所示,可以表示为:
图1:Fal函数滤波器
图2:Fal函数滤波器公式
其中,变量e即输入误差,变量α在0~1之间取值,α越小,跟踪效果越快,但滤波效果会变差。变量δ为Fal函数滤波器的滤波因子,增大可使滤波效果变好,但同时也增加了跟踪的延迟。鉴于此,需要根据实际应用场景在滤波效果和跟踪速度两者之间做一个折衷考虑。一般可取5T≤δ≤10T,其中T为采样周期。k是调节响应速度的比例系数,k越大,跟踪越快,但滤波效果会变差。
从Fal函数滤波器可以看出,其每个采样周期的主要计算量仅为一次指数运算,对平台的运算能力要求很低因此可以很方便的移植到各类嵌入式平台中,对采集数据进一步优化的效果。
在AGV用磁导航传感器的项目开发过程中,需要多路检测超低强度的磁场,不可避免的要解决多个独立传感器芯片的制造差异,并根据测量磁场的强度,动态调节OPA,使多路信号中心一致,变化线性。方便后续数据处理。所以选用了内置PGA,高精度DAC,ADC的EFM32巨蜥系列MCU。
图3:Giant Gecko系列EFM32GG230F1024芯片框图
从Giant Gecko芯片框图中可以看到,其不仅有常见的各种数字外设,更有极其丰富的模拟信号接口,其内置了可调节增益PGA、模拟比较器、DAC和ADC,并且ADC支持其具有专利的反射总线,可高效地将采集数据快速传递到指定内存中。利用这些模拟外设,并根据磁场传感器的特殊情况,设计了如下图所示的信号处理流程。
图4:一路磁阻传感器采用集成PGA,DAC,ADC的EFM32的处理流程
通过ADC采集后的信号,通常会叠加很多因为电源,器件,基准等引入的噪声,这些噪声的幅度很大,且呈现高斯分布,如果不对其进行处理,任由其跟随信号进入到后续处理中,将严重影响后续处理的准确性,对传感器的性能造成很大影响。
图5:ADC采集后的叠加了很多噪声的信号
利用本文中提供的Fal滤波算法,经过对上述一段实际信号的处理,可以得到近乎完美的圆滑曲线。将此信号再进行处理判断,可以得到准确的结果。
图6:经过函数滤波器处理后的采集信号
在使用EFM32开发中实现函数滤波器。首先实现Fal函数,根据函数定义,可以知道滤波器工作时,误差值e作为是作为函数的变量输入的,其余α,δ,均为滤波器的设定参数,不会轻易更改。所以为了提高嵌入式系统中函数的调用性能,将误差e作为唯一的入参变量。按照公式,可以得到如下Fal函数的C语言实现。
EFM32采用的Cortex M3内核具备高效运算能力。虽然直接使用了标准C语言math库中的指数运算函数pow(base,exponent)。但在强大的MCU处理下,每次运行该函数只需要不到1us就可以完成运算,对系统的负担很小。这里我还想啰嗦下,在项目工程中,如果处理性能不是瓶颈,就尽量用标准函数,规范代码来实现函数功能,这样既能保证研发周期,又能提高源码的可移植性与可读性。
有了Fal函数,我们只要按照ADC的采样频率。周期性的对其进行调用,即可得到滤波后的信号输出。当然,如果效果不理想,还要根据实际信号上叠加噪声的特点,对函数中的α、δ进行微调。来达到最优效果。下面是滤波器的C语言实现。
嵌入式系统中,会经常跟模拟采样,信号滤波打交道,不可避免的需要进行滤波处理以消除干扰噪声。Fal函数滤波器作为一种非线性滤波器,可以很好的实现对叠加了噪声的信号的重新提取,为后面的逻辑运算提供了强有力的支撑。
另,文章中出现的代码,我已应用在实际项目中,且取得了十分理想的效果。
望大家讨论,有问题我会进行解答,欢迎轻拍砖!
作者:用尚科技 周正
看到这里您是否又有项目灵感需实现,点击下面开发软件帮你忙。
- |
- +1 赞 0
- 收藏
- 评论 4
本网站所有内容禁止转载,否则追究法律责任!
评论
全部评论(4)
-
闲云 Lv7. 资深专家 2019-07-25学习了
-
Le Lv6. 高级专家 2018-12-14参考下
-
希望的风 Lv8. 研究员 2018-08-24学习
-
aegean Lv5. 技术专家 2017-11-11有深度,介绍的非常好!
相关推荐
世界上最节能的微控制器EFM32之十大低功耗奥秘
Silicon Labs EFM32 32 位微控制器系列是世界上最为节能的微控制器,特别适用于低功耗和能源敏感型应用,包括能源、水表和燃气表、楼宇自动化、警报及安防和便携式医疗/健身器材。本文着重强调10个Silicon Labs32位MCU功耗低的因素。
SILICON LABS 32-bit Microcontroller选型表
SILICON LABS 32位MCU选型,频率24MHz~80MHz,Flash存储4kB~2048kB,RAM存储2kB~512kB。
产品型号
|
品类
|
系列
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Debug Interface
|
Cryptography
|
Dig I/O Pins
|
ADC 1
|
DAC
|
USB
|
Cap Sense
|
LCD
|
Temp Sensor
|
Timers (16-bit)
|
UART
|
USART
|
SPI
|
I2C
|
I2S
|
EMIF
|
RTC
|
Comparators
|
EFM32GG290F512-BGA112
|
32位MCU
|
EFM32 Giant Gecko
|
48
|
512
|
128
|
1.98
|
3.8
|
BGA112
|
10x10
|
±2%
|
ETM; SW
|
AES-128 AES-256
|
90
|
12-bit, 8-ch., 1 Msps
|
12-bit, 2 ch.
|
-
|
Cap Sense
|
-
|
Temp Sensor
|
4
|
7
|
3
|
3
|
2
|
1
|
0
|
RTC
|
2
|
选型表 - SILICON LABS 立即选型
SILICON LABS EFM32PG23/EFM32PG22 32-bit Microcontrollers选型表
EFM32PG23 Series 2 and EFM32PG22 Series 2 MCUs
产品型号
|
品类
|
Series
|
Core
|
Max GPIO
|
Max LCD Segments
|
Max Temperature(℃)
|
Vdd Min (V)
|
Vdd Max (V)
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
Security
|
ADC 1
|
USB
|
Temp Sensor
|
UART
|
RTC
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Debug Interface
|
Cryptography
|
EFM32PG23B200F128IM40
|
Microcontroller
|
EFM32PG23 Series 2
|
ARM Cortex-M33
|
34
|
4 x 20
|
125
|
1.71
|
3.8
|
80
|
128
|
64
|
29
|
Vault
|
16-bit, 12-ch., 1 Msps
|
×
|
Temp Sensor
|
3
|
RTC
|
QFN40
|
5x5
|
2%
|
Secure; SW; ETM
|
AES-1
AES-256
|
选型表 - SILICON LABS 立即选型
【产品】16位微处理器S1C17M33、SICI17W3X,睡眠电流分别低至0.2uA、0.15uA
EPSON推出的微处理器S1C17M33、SICI17W34/SICI17W35/SICI17W36都属于低电压、低电流微处理器,可大幅延长产品电池寿命,它们嵌入式电路部分可帮助客户降低总产品数量、节省板子空间和减少软件开发时间,也均可驱动LCD显示模式,可广泛应用于通信设备、工业电子、汽车电子及消费电子领域。
【产品】最大工作频率48MHz的微控制器,嵌入式应用最佳选择
Silicon Labs新推出微控制器EFM8UB3系列,Flash容量为40kB,在512字节扇区内支持在线可编程,提供非易失性数据存储,同时支持固件的现场升级。提供独立的片上系统解决方案,具有多功能的外设接口。
SILICON LABS EFM32 Wonder Gecko 32-bit Microcontroller选型表
SILICON LABS 32位MCU选型,基于48MHz Frequency,64kB~256kB Flash,32kB RAM等参数进行选型。
产品型号
|
品类
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
ADC 1
|
DAC
|
Cap Sense
|
Temp Sensor
|
Timers (16-bit)
|
UART
|
USART
|
SPI
|
I2C
|
I2S
|
EMIF
|
RTC
|
Comparators
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Debug Interface
|
Cryptography
|
ADC
|
EFM32WG230F128-QFN64
|
Microcontroller
|
48
|
128
|
32
|
56
|
12-bit, 8-ch., 1 Msps
|
12-bit, 2 ch.
|
Cap Sense
|
Temp Sensor
|
4
|
5
|
3
|
3
|
2
|
1
|
0
|
RTC
|
2
|
1.98
|
3.8
|
QFN64
|
9x9
|
±2%
|
ETM; SW
|
AES-128 AES-256
|
8 x Ch 500 x MSPS 12 x bit
|
选型表 - SILICON LABS 立即选型
使用EFM32系列单片机的看门狗时,安全清看门狗计数器周期设置需要考虑什么?
首先是同步时间,由于看门狗定时器位于低频域,因此内核对其寄存器的写操作需要3个WDOGCLK周期的同步时间才能使操作生效;其次需要考虑一个不确定周期;最后需考虑所选时钟源的误差范围和不确定性。通过以上三个方面结合计算出清看门狗计数器的周期。
最多节省90%能耗,USB微控制器EFM8UB强势来袭!
EFM8UB是一个高性价比的MCU系列,内置USB外设接口(具有8KV静电防护)及高精度的晶振、时钟恢复电路和收发模块,兼容全速USB2.0,无需外部晶体。
SILICON LABS EFM32 Leopard Gecko 32-bit Microcontroller选型表
SILICON LABS 32位MCU选型,基于48MHz Frequency,64kB~256kB Flash,32kB RAM等参数进行选型。
产品型号
|
品类
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
ADC 1
|
DAC
|
Cap Sense
|
Temp Sensor
|
Timers (16-bit)
|
UART
|
USART
|
SPI
|
I2C
|
I2S
|
EMIF
|
RTC
|
Comparators
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Debug Interface
|
Cryptography
|
EFM32LG230F128G-QFN64
|
Microcontroller
|
48
|
128
|
32
|
56
|
12-bit, 8-ch., 1 Msps
|
12-bit, 2 ch.
|
Cap Sense
|
Temp Sensor
|
4
|
5
|
3
|
3
|
2
|
1
|
0
|
RTC
|
2
|
1.98
|
3.8
|
QFN64
|
9x9
|
±2%
|
ETM; SW
|
AES-128 AES-256
|
选型表 - SILICON LABS 立即选型
【技术】如何进行可编程逻辑模块设计简化微处理器应用
为了帮助读者理解可编程逻辑高度的灵活性,本文将介绍在一般的微控制器上可编程逻辑的应用操作,以及怎样利用可编程逻辑去开发性价比超高的应用。
Silicon Labs EFM32系列32位低功耗MCU Cortex系列微控制器采用的软件接口标准CMSIS有哪些特性?
嵌入式系统越来越复杂,开发和软件测试的工作量也显著增加,为了减少开发时间并且降低产品中存在的风险,软件重用已经越来越普遍。为了各种软件产品间的配合,ARM同各大 微控制器供应商、工具供应商和软件解决方案提供商一起开发了CMSIS,一个涵盖了大多数Cortex-M处理器和Cortex-M微控制器产品的软件框架。 CMSIS的设计目标和特性包括以下几点: 1、提高软件的可用性。 2、提高软件的兼容性。 3、独立的工具链特性。 4、开放性。 5、易用性。
SILICON LABS EFM32 Gecko 32-bit Microcontroller选型表
SILICON LABS 32位MCU选型,基于32MHz Frequency,16kB~128kB Flash,8kB或16kB RAM等参数进行选型。
产品型号
|
品类
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
ADC 1
|
DAC
|
Cap Sense
|
Temp Sensor
|
Timers (16-bit)
|
UART
|
USART
|
SPI
|
I2C
|
I2S
|
EMIF
|
RTC
|
Comparators
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Debug Interface
|
EFM32G200F16-QFN32
|
Microcontroller
|
32
|
16
|
8
|
24
|
12-bit, 4-ch., 1 Msps
|
12-bit, 1-ch.
|
Cap Sense
|
Temp Sensor
|
2
|
0
|
2
|
2
|
1
|
0
|
0
|
RTC
|
2
|
1.98
|
3.8
|
QFN32
|
6x6
|
±2%
|
SW
|
选型表 - SILICON LABS 立即选型
32位低功耗MCU EFM32GG990芯片内的脉冲计数器(PCNT)具有三种工作模式,PCNT的输入滤波功能在三个工作模式中都能用吗?
脉冲计数器的输入滤波功能只能在单输入过采样模式中使用。
Silicon Labs(芯科科技) EFM32WG940 勘误表 Chip Rev. A
本资料详细描述了Silicon Labs公司EFM32WG940系列微控制器最新版本A芯片的故障清单(Errata)。内容包括芯片修订A的多个错误,如LFXO振荡器在IOVDD上升沿时缺失周期、设备无法从EM2唤醒、DAC输出电压随时间漂移等问题,并提供了相应的修复方法或工作绕过方案。此外,还包含了不同修订版本的错误清单链接、修订历史、免责声明和商标信息。
SILICON LABS - 微处理器,微控制器,EFM32WG940F128,EFM32WG940F256-QFN64,EFM32WG940F128-QFN64,EFM32WG940F256,EFM32WG,EFM32WG940F64-QFN64,EFM32WG940F64,工业电子,消费电子,汽车电子,通信设备
SILICON LABS EFM32 Tiny Gecko 32-bit Microcontroller选型表
SILICON LABS 32位MCU选型,基于32MHz Frequency,4kB~32kB Flash,2kB或4kB RAM等参数进行选型。
产品型号
|
品类
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
ADC 1
|
DAC
|
Cap Sense
|
Temp Sensor
|
Timers (16-bit)
|
UART
|
USART
|
SPI
|
I2C
|
I2S
|
EMIF
|
RTC
|
Comparators
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Debug Interface
|
EFM32TG108F16-QFN24
|
microcontroller
|
32
|
16
|
4
|
17
|
—
|
12-bit
|
Cap Sense
|
Temp Sensor
|
2
|
2
|
1
|
1
|
1
|
1
|
0
|
RTC
|
2
|
1.98
|
3.8
|
QFN24
|
5x5
|
±2%
|
SW
|
选型表 - SILICON LABS 立即选型
电子商城
现货市场
服务
可定制板装式压力传感器支持产品量程从5inch水柱到100 psi气压;数字输出压力传感器压力范围0.5~60inH2O,温度补偿范围-20~85ºС;模拟和数字低压传感器可以直接与微控制器通信,具备多种小型SIP和DIP封装可选择。
提交需求>
可定制射频隔离器/环行器(10M-40GHz),双工器/三工器(30MHz/850MHz-20GHz),滤波器(DC-20GHz),功分器,同轴负载,同轴衰减器等射频器件;可定制频率覆盖DC~110GHz,功率最高20KW。
最小起订量: 1 提交需求>
登录 | 立即注册
提交评论