历史上的今天
今天是:2025年03月30日(星期日)
2020年03月30日 | 单片机ADC采样算法----加权递推平均滤波法
2020-03-30 来源:eefocus
加权递推平均滤波法是对递推平均滤波法的改进,即不同时刻的数据加以不同的权。通常是,越接近现时刻的数据,权取得越大。给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低。
下面直接看C代码的实现
define N 12
unsigned int coe[N] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
unsigned int sum_coe = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12;
unsigned int filter8( void )
{
unsigned int count;
unsigned int value_buf[N];
unsigned long int sum = 0;
for( count = 0; count < N; count++ )
{
value_buf[count] = ReadVol_CH2();
}
for( count = 0; count < N; count++ )
{
sum += value_buf[count] * coe[count];
}
return ( unsigned int )( sum / sum_coe );
}
void main( void )
{
while( 1 )
{
val = ReadVol_CH2(); //读取AD采样值
val1 = filter8();
printf( "A%drn", val );
printf( "B%drn", val1 );
}
}
主函数中实时采样AD端口的波形值,然后将采样值经过加权递推平均滤波法进行滤波,然后用串口输出原始采样值和滤波后的值,并在串口波形软件上显示采样的数据波形。

图中蓝色曲线为原始数据曲线,橙色曲线为经过滤波算法后的曲线。
史海拾趣
|
友情提示:承蒙网友的厚爱,见到有些网友把此帖转帖,谢谢!希望大家在转贴的时候注明作者:焦作华润白志刚。 目前,本文的最新版本已经编辑完成,如果已经转贴的朋友,请按照最新版本修改。再次感谢! 第一章 自动调节系统的发展历程 1-1 ...… 查看全部问答> |
|
运用ISD1760芯片的录音功能来录制其他遥控发出的红外波,以此原理设计一个万能遥控。 重点需要研究的问题: ISD1760录音、无线收发模块。 麻烦大家给个思路,,参考·· ...… 查看全部问答> |
|
下载NK到开发板后执行,到最后一部应该显示如下红色部分代码时却执行不下去了。请问怎样才能检测内核程序是死在 哪里了? ERROR: OALIntrReleaseSysIntr: Invalid sysIntr value 0 UfnClientLib!UfnCheckPID: WARNING -- using MS reference pl ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 09:08 编辑 我看看了看03年的元件清单有个高频变容二极管,然后那年题目就有电压控制LC振荡器。是不是今年有可能会有呢? … 查看全部问答> |
|
相信大家对PCB板应该不会陌生吧,下面有卓跃教育为您介绍有关于PCB设计方法和技巧。 一、需要选择好pcb板材:选择pcb板材主要满足设计需求和可量产性及成本中间取得平衡点。在电气方面,要注意介电常数(dielectricconstant)和介质损在所设计的 ...… 查看全部问答> |
|
excle表格批注弹出说明形式,写程序时方便查询,可与芯片手册配合使用,发个简图: < 十六进制地址名 称功 能位7位6位5位4位3位2位1位0 ...… 查看全部问答> |
|
现在我使用STM32已经可以进入到stop模式,也可以使用RTCAlarm_IRQn唤醒,但是我发现一个问题,我设置的rtc alarm唤醒时间为1秒中,使用指令为RTC_SetAlarm(RTC_GetCounter()+1);但是唤醒时间却变成了2秒唤醒一次。我试着将时间修改成3秒、5秒,测试 ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:58 编辑 半导体,推动创新能源效率,曾与Teledyne成像传感器为天文学来制造一个非常大的集成电路(ELSROIC)。这个图像传感器,由Teledyne设计了,是最新一代由国家科学基金会努力20年的传感器。Teledyne内 ...… 查看全部问答> |




