在實驗運行7.1章節(jié)例程時 [CW32數字電壓電流表軟件進階教程-1.電壓電流同時顯示] ,會發(fā)現實時顯示更新的數據是當前采集值,并未做數據濾波處理。由于采集到的原始數據有一定的波動,因此在顯示更新速度較快時,數字有跳動現象。
因此,在數據處理前,可以增加常見的均值濾波算法。均值濾波原理在實驗七中已有講述。
在7.1實驗例程基礎上,增加均值濾波的核心代碼如下:
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
*/
}
在上述例程中,可以看到使用了均值濾波函數:
Mean_Value_Filter(Volt_Buffer,ADC_SAMPLE_SIZE);; //使用均值濾波
Mean_Value_Filter(Curr_Buffer,ADC_SAMPLE_SIZE);; //使用均值濾波
其中,原始數據為每1MS采集一個數據點,共采集100次,即100MS內的定時數據值。單點數據采集在定時器BTIM1中斷函數中完成。
均值濾波函數定義如下:
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; 后期校準
return sum;
}
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。
舉報投訴
-
數據采集
+關注
關注
40文章
6777瀏覽量
115350 -
定時器
+關注
關注
23文章
3273瀏覽量
116812 -
均值濾波
+關注
關注
0文章
10瀏覽量
7182 -
CW32
+關注
關注
1文章
233瀏覽量
1042
發(fā)布評論請先 登錄
相關推薦
熱點推薦


模電怎么判斷電壓電流反饋器的好壞
在模擬電子學中,電壓電流反饋器(Voltage Current Feedback Amplifier, VCFA)是一種重要的電子元件,廣泛應用于信號放大、濾波、穩(wěn)壓等領域。判斷電壓電流反饋器的好壞
電流表電壓表無示數的原因
引言 電流表和電壓表是電氣工程中不可或缺的測量工具。它們能夠測量電路中的電流和電壓,為電路設計、調試和維護提供重要數據。然而,在實際使用過程中,有時會出現
CW32數字電壓電流表軟件進階教程-3.電壓電流標定
標定是通過測量標準器的偏差來補償儀器系統誤差,從而改善儀器或系統準確度、精度的操作。為了提高電壓電流表在測量時的測量精度和準確度,需要對電壓電流進行標定校準。 常見的標定原理如下:假設一個采樣系統

CW32數字電壓電流表軟件教程-實驗七:基本數據處理算法(均值濾波)
有像素的均值,再把該均值賦予當前像素點(x,y),作為處理后圖像在該點上的灰度g(x,y),即g(x,y)=∑f(x,y)/m,m為該模板中包含當前像素在內的像素總個數。這本是數字圖像處理的一種方法,但也可以用在我們
CW32數字電壓電流表軟件教程-實驗五:ADC采樣及顯示
的數字信號。由于數字信號本身不具有實際意義,僅僅表示一個相對大小。故任何一個模數轉換器都需要一個參考模擬量作為轉換的標準,比較常見的參考標準為最大的可轉換信號大小。而輸出的數字量則表示輸入信號相對于參考信號的大小。 6.1.2.

CW32數字電壓電流表軟件教程-實驗四:數碼管動態(tài)顯示
5.1.數碼管動態(tài)顯示原理 所謂動態(tài)掃描顯示即輪流向各位數碼管送出段碼和位碼,利用發(fā)光管的余輝和人眼視覺暫留作用,使人眼的感覺好像各位數碼管同時都在顯示。明確了原理,我們要使電壓電流表的三個位同時

CW32數字電壓電流表軟件教程-實驗一:LED原理與驅動
附在一個支架上,一端是負極,另一端連接電源的正極,整個晶片環(huán)-氧樹脂封裝起來。常見的LED燈如圖2-1所示。 圖2-1 常見LED燈 2.1.2.LED燈發(fā)光原理 半導體晶片由兩部分組成,一部分是P型半導體,另一端是N型半導體。這兩種半導體連接起來的時候,它們之間就形成了

CW32數字電壓電流表軟件教程(七):基本數據處理算法(均值濾波)
均值濾波也稱為線性濾波,其采用的主要方法為鄰域平均法。線性濾波的基本原理是用均值代替原圖像中的各個像素值
電流表和電壓表的區(qū)別
在電氣和電子工程領域,電流表和電壓表是兩種不可或缺的基本測量工具。它們各自在電路中扮演著重要的角色,幫助工程師和技術人員監(jiān)測、分析和調試電路。然而,盡管這兩種儀器在功能上有所關聯,但它們在原理、使用方法和應用場景等方面存在顯著的差異。本文將深入探討
CW32數字電壓電流表軟件教程(三):數碼管顯示數字
數碼管的顯示原理是由多個發(fā)光的二極管共陰極或者共陽極組成的成“8”字形的顯示器件。數碼管通過不同的組合可用來顯示數字0~9、字符A ~ F及小數點“.”。

評論