• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users






Re: 關於資料存取的問題?
#5
高級會員
高級會員


查看用戶資訊
我目前想到的另一個辦法
只能取到每11~15筆平均一次的範圍


方法如下


reg1儲存的是,最近一筆進入的資料+過去的資料,然後用一個count來計算每五筆資料總和後,將 reg3=reg2, reg2=reg1
例如
1,2,3,4,5
reg1=0
reg1=reg1+1 --->reg1=1
reg1=reg1+2 --->reg1=3
reg1=reg1+3 --->reg1=6
reg1=reg1+4 --->reg1=10
reg1=reg1+5 --->reg1=15
..................
做到第十一筆資料時,reg1與reg2分別存的值為
reg3 1+2+3+4+5=15
reg2 6+7+8+9+10=40

當第十一筆進入時
則reg3+reg2+reg1=
15+40+11=66 , 66/11=6
當第十二筆進入時
則reg3+reg2+reg1=
15+40+(11+12)=78 ,78/12
第十三筆進入時
則reg3+reg2+reg1=
15+40+(11+12+13)=91 , 91/13
第十四筆進入時
則reg3+reg2+reg1=
15+40+(11+12+13+14)=105 ,105/14
當第十五筆進入時
則reg3+reg2+reg1=
15+40+(11+12+13+14+15)=120 ,120/15
然後再把reg3=reg2, reg2=reg1
並且清除reg1
當第十六筆進入時
則reg3+reg2+reg1=
40+65+16=121 ,121/11
以此類推
可是還是沒辦法達到我真正想要的運算。
只能近似而已。
是否有更好的方法能更近似或是完全相同
在使用很少的暫存器及運算速度下。

發表於: 2006/9/27 16:35
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 關於資料存取的問題?
#4
高級會員
高級會員


查看用戶資訊
嗯 這樣做的確不錯
不過我還想問的是
如果資料是一筆一筆的進入
例如總共有1000筆資料
我每一筆新的資料進來,要跟他前九筆資料做平均
1,2,3,4,5,6,7,8,9
第十筆進入
1,2,3,4,5,6,7,8,9,10
1+2+3+4+5+6+7+8+9+10=55
第十一筆進入
2,3,4,5,6,7,8,9,10,11
則與前九筆數的總和為=55-1+11=65
第十二筆進入
3,4,5,6,7,8,9,10,11,12
則與前九筆數的總和為=65-2+12=75

以此類推
...........
當然這是範例,至於真實的數就沒有這麼漂亮了
不會有等差或等比的情形產生,沒辦法用偷吃步的辦法
這樣做的目的是只取前一分鐘的值與目前的值做平均。

像如果是要這樣做,因為是以十筆資料做一次平均,以我的想法就是要紀錄每一次的值,然後在下一筆資料進來時,把最先的那筆資料減去,在加入新的資料,去做平均,這樣的話就必須要紀錄每一次的值才能夠把最前面的值給減去
例如
1+2+3+4+5+6+7+8+9+10=55
當第11筆資料進入則先把
55-1=54
54+11=65
65/10=6.5
可是如果我是要三千筆資料做一次平均,那我不就要紀錄三千筆的資料才能知道最前面那筆資料的值,不然就沒辦法做減去這個動作
如果不這樣做
我真的想不到有什麼方法了呢
請各位先進幫我解答這個難題,多謝











發表於: 2006/9/27 16:09
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 關於資料存取的問題?
#3
高級會員
高級會員


查看用戶資訊
沒必要 收齊3000筆再平均...

假設現在要收齊十筆資料再平均,有10 byte 能放
1+2+3+4+5+6+7+8+9+10=55
55/10=5.5
假設現在要收齊十筆資料再平均,但是只有5 byte 能放
1+2+3+4+5=15
15/10=1.5
6+7+8+9+10=40
40/10=4.0
=>1.5+4.0=5.5

假設現在要收齊十筆資料再平均,但是只有3 byte 能放
1+2+3=6
6/10=0.6
4+5+6=15
15/10=1.5
7+8+9=24
24/10=2.4
10/10=1
=>0.6+1.5+2.4+1=5.5

這樣做也有一個好處,不用一次處理太量資料,浪費太多時間。
要很精確的話小數點是必然的…所以建議用c 可能比較好寫,asm的話處理小數點就比較麻煩了,可以參考教材實作…。

發表於: 2006/9/27 11:22
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 關於資料存取的問題?
#2
版主
版主


查看用戶資訊
你的RAM影這麼大嗎?

發表於: 2006/9/27 9:54
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


關於資料存取的問題?
#1
高級會員
高級會員


查看用戶資訊
請問各位先進該如何思考以下的這個流程?
有一個資料讀取的動作,資料不斷的由外部一筆一筆的送入,若欲把這些資料的前一分鐘的值做平均(每三千筆),該如何來做。
也就是說如果資料每20ms讀取一次,並且與前2999次的資料加在一起除以60sec,做一次平均值,而當下一筆資料(又過了20ms)進來時,而必須把的最初的第一筆的資料給捨去,加入新進的一筆資料,在做一次平均,有點像是fifo的方式,以此類推,請問有什麼方法,可以在不用到3000筆資料的暫存器,且運算速度不超過20ms的方式來完成?

發表於: 2006/9/26 14:10
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------