欢迎光临散文网 会员登陆 & 注册

嗷嗷嗷电赛终于结束了!/2023电赛K题反思

2023-08-08 03:08 作者:垫鸭酱  | 我要投稿

事后诸葛一把,这个题再给我两天,应该能更完美😂(画外音:你就是菜,还嘴硬)


分享记录一点个人的小看法,不一定准确,但可能有帮助,希望复刻这个项目的后人,记得我栽下的树doge

1.首先,觉得使用MDK官方提供的CMISS-DSP中的FFT函数取峰值基频处理,方向是很正确的;

世界上没有两片相同的树叶,即便两个一模一样的空杯子也是如此——它们固有的基频往往存在细微差异。

但少数极端相似的杯子是存在的,并且可能频率多为固定的5、6种情况,会有几个杯子一个频率。

这个似乎只能多买一些杯子筛选。有条件的话,使用大存储的单片机,上更多点的FFT。或许,还可以在滤波、数据处理的方向考虑下。


2.然后,AD采样-FFT计算-显示结果,这个过程建议采用麦克风主导的外部触发,以确保信号被准确及时的捕获;(否则可能像我一样,要靠近使劲敲,让它响的有效时间更长。演示中这是尴尬的。)


3.最重要的,敲击分析到的频率,和后来测得的频率,很可能不同。

例如,装置学习记录的特征频率是1800Hz,

而后来敲,频率是在1800和1818Hz之间跳动。

那么,演示时数字也可能会跳变,

这是很尴尬的——在1800时,杯号正确;突然,频率跳成1818,装置不认了,杯号被归零😂

复盘反思,应该记录一段时间所有出现次数多的数据,作为特征;

识别时也间隔敲多次(题目规定不能快速抖着敲,但敲多次是被允许的),

分析时间段与时间段之间,数据的相似程度,再判定给出的号码结果。

(欢迎留言交流,共同学习,共同进步)




PS:

折腾的过程复盘

萌新人生的第一次电赛,比较慌张。拿到赛题,就赶紧用之前做的FreeRTOS模板工程+CMISS-DSP开整了(逻辑能力差,对裸机大循环害怕

结果发现很慢,慢得出奇!效果很不对头(取64点时都没人家做的OLED音乐频谱快)。

后来发现,自己作为外行、比赛跑系统是相当愚蠢的,

这个FFT的项目、不知道是优先级问题还是内存不够还是CPU性能负担重,反正就是不能搞复杂、去掉FreeRTOS以后就正常了

(PS:上系统是玩ESP32的习惯,事实上我对CMISS封装后的系统抛开CubeMX后怎么用,也没吃明白。对比那些大佬,我是外行、并不懂RTOS,,)


后来,又发现256点的FFT精度似乎还是不太好,于是加到了512。

遗憾的是,我的F103C6T6,加上精简字库后的U8G2空间却还是不够用了。


担心赛区不让用大开发板(多亏别人提醒),于是夜里翻箱倒柜(学校买的全是正点原子的大板子),

终于找到个VET6核心板,就用上了。

这次把点数提高到1024,麦克风是AD 8K采样。1024点是F103VET6的极限,尝试过2048点,空间是不够的。或许可以试试ZET6,那个空间好像还更大。


最后,比赛的过程紧张充实难忘,很享受这个过程,无论结果如何、都是值得纪念的。

嗷嗷嗷电赛终于结束了!/2023电赛K题反思的评论 (共 条)

分享到微博请遵守国家法律