在實(shí)驗(yàn)運(yùn)行7.1章節(jié)例程時(shí) [CW32數(shù)字電壓電流表軟件進(jìn)階教程-1.電壓電流同時(shí)顯示] ,會(huì)發(fā)現(xiàn)實(shí)時(shí)顯示更新的數(shù)據(jù)是當(dāng)前采集值,并未做數(shù)據(jù)濾波處理。由于采集到的原始數(shù)據(jù)有一定的波動(dòng),因此在顯示更新速度較快時(shí),數(shù)字有跳動(dòng)現(xiàn)象。
因此,在數(shù)據(jù)處理前,可以增加常見(jiàn)的均值濾波算法。均值濾波原理在實(shí)驗(yàn)七中已有講述。
在7.1實(shí)驗(yàn)例程基礎(chǔ)上,增加均值濾波的核心代碼如下:
void Volt_Cal(void)
{
V_Buffer = Mean_Value_Filter(Volt_Buffer,ADC_SAMPLE_SIZE);; //使用均值濾波
I_Buffer = Mean_Value_Filter(Curr_Buffer,ADC_SAMPLE_SIZE);; //使用均值濾波
V_Buffer = (V_Buffer * ADC_REF_VALUE > > 12) * (R2 + R1)/R1;
// 四舍五入
if(V_Buffer % 10 >= 5)
{
V_Buffer = V_Buffer / 10 + 1;
}
else
{
V_Buffer = V_Buffer / 10;
}
I_Buffer=I_Buffer * ADC_REF_VALUE > > 12;
/**
mv =I_Buffer * ADC_REF_VALUE > > 12,
R = 100mr,
10ma = mv/R/10=mv/0.1/10 = mv
*/
}
在上述例程中,可以看到使用了均值濾波函數(shù):
Mean_Value_Filter(Volt_Buffer,ADC_SAMPLE_SIZE);; //使用均值濾波
Mean_Value_Filter(Curr_Buffer,ADC_SAMPLE_SIZE);; //使用均值濾波
其中,原始數(shù)據(jù)為每1MS采集一個(gè)數(shù)據(jù)點(diǎn),共采集100次,即100MS內(nèi)的定時(shí)數(shù)據(jù)值。單點(diǎn)數(shù)據(jù)采集在定時(shí)器BTIM1中斷函數(shù)中完成。
均值濾波函數(shù)定義如下:
uint32_t Mean_Value_Filter(uint16_t *value, uint32_t size) //均值濾波
{
uint32_t sum = 0;
uint16_t max = 0;
uint16_t min = 0xffff;
int i;
for(i = 0; i < size; i++)
{
sum += value[i];
if(value[i] > max)
{
max = value[i];
}
if(value[i] < min)
{
min = value[i];
}
}
sum -= max + min;
sum = sum / (size - 2);
//if(sum >1)sum+=4; 后期校準(zhǔn)
return sum;
}
審核編輯 黃宇
-
數(shù)據(jù)采集
+關(guān)注
關(guān)注
40文章
6814瀏覽量
115454 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3280瀏覽量
116926 -
均值濾波
+關(guān)注
關(guān)注
0文章
10瀏覽量
7185 -
CW32
+關(guān)注
關(guān)注
1文章
242瀏覽量
1055
發(fā)布評(píng)論請(qǐng)先 登錄



用VCA821做壓控放大器,為什么供電電壓給到±2V就有電流0.02A往上加電壓電流越大?
模電怎么判斷電壓電流反饋器的好壞
電流表電壓表無(wú)示數(shù)的原因
基于CW32F003E4P7的數(shù)字電壓電流表產(chǎn)品方案

CW32數(shù)字電壓電流表軟件進(jìn)階教程-3.電壓電流標(biāo)定

CW32數(shù)字電壓電流表軟件進(jìn)階教程-1.電壓電流同時(shí)顯示

CW32數(shù)字電壓電流表軟件教程-實(shí)驗(yàn)七:基本數(shù)據(jù)處理算法(均值濾波)
CW32數(shù)字電壓電流表軟件教程-實(shí)驗(yàn)五:ADC采樣及顯示

CW32數(shù)字電壓電流表軟件教程-實(shí)驗(yàn)四:數(shù)碼管動(dòng)態(tài)顯示

CW32數(shù)字電壓電流表軟件教程-實(shí)驗(yàn)一:LED原理與驅(qū)動(dòng)

CW32數(shù)字電壓電流表軟件教程(七):基本數(shù)據(jù)處理算法(均值濾波)
CW32數(shù)字電壓電流表軟件教程(五):ADC采樣及顯示

評(píng)論