嗷嗷嗷電賽終于結(jié)束了!/2023電賽K題反思

事后諸葛一把,這個題再給我兩天,應該能更完美??(畫外音:你就是菜,還嘴硬)
分享記錄一下,一點個人的小看法,不一定準確,希望以后復刻這個項目的后人,記得我栽下的樹doge:
1.首先,我覺得使用MDK官方提供的CMISS-DSP中的FFT函數(shù)取峰值基頻處理,方向是很正確的;
世界上沒有兩片相同的樹葉,即便兩個一模一樣的空杯子也是如此——它們固有的基頻往往存在細微差異。
但少數(shù)極端相似的杯子是存在的,并且可能頻率多為固定的5、6種情況,會有幾個杯子一個頻率。
這個我們只能多買一些杯子篩選。?有條件的話,使用大存儲的單片機,上更多點的FFT。?或許,還可以在濾波、數(shù)據(jù)處理的方向考慮下。
2.然后,AD采樣-FFT計算-顯示結(jié)果,這個過程建議采用麥克風主導的外部觸發(fā),以確保信號被準確及時的捕獲;(否則可能像我一樣,要靠近使勁敲,讓它響的時間更長。演示中這是難看的。)
3.最重要的,敲擊分析到的頻率,和后來測得的頻率,很可能不同。
例如,裝置學習記錄的特征頻率是1800Hz,
而后來敲,頻率是在1800和1818Hz之間跳動。
那么,演示時數(shù)字也可能會跳變,
這是很尷尬的——在1800時,杯號正確;突然,頻率跳成1818,裝置不認了,杯號被歸零??
我反思,應該記錄一段時間所有出現(xiàn)次數(shù)多的數(shù)據(jù),作為記錄的特征;
識別時也間隔敲多次(題目規(guī)定不能抖著敲,但敲多次是被允許的),
分析時間段與時間段之間,數(shù)據(jù)的相似程度,再判定給出的號碼結(jié)果。
(歡迎留言交流,共同學習,共同進步)
PS:
折騰的過程復盤(大佬不要看、不要拍磚23333)
萌新人生的第一次電賽,比較慌張。拿到賽題,就趕緊用之前做的FreeRTOS模板工程+CMISS-DSP開整了。
結(jié)果發(fā)現(xiàn)很慢,慢得出奇!效果很不對頭(取64點時都沒人家做的OLED音樂頻譜快)。
后來發(fā)現(xiàn),自己作為外行、比賽跑系統(tǒng)是相當愚蠢的,
這個FFT的項目、不知道是優(yōu)先級問題還是內(nèi)存不夠還是CPU性能負擔重,反正就是不能搞復雜、去掉FreeRTOS以后就正常了
(PS:上系統(tǒng)是玩ESP32的習慣,事實上我對CMISS封裝后的系統(tǒng)拋開CubeMX后怎么用,也沒吃明白。對比那些大佬,我是稚嫩的、并不懂RTOS,,)
后來,又發(fā)現(xiàn)256點的FFT精度似乎還是不太好,于是加到了512。
遺憾的是,我的F103C6T6,加上精簡字庫后的U8G2空間卻還是不夠用了。
擔心賽區(qū)不讓用大開發(fā)板(多虧別人提醒),于是夜里翻箱倒柜(學校買的全是正點原子的大板子),
終于找到個VET6核心板,就用上了。
這次把點數(shù)提高到1024,麥克風是AD 8K采樣。1024點是F103VET6的極限,嘗試過2048點,空間是不夠的?;蛟S可以試試ZET6,那個空間好像還更大。
最后,比賽的過程緊張充實難忘,我享受這個過程,無論結(jié)果如何、都是值得紀念的。