audio 應用:聲波通訊(3)接收原理
一上來還是整個流程圖鎮樓
這裡介紹整個流程種最複雜的部分:解析。
上一篇已經實現了資料到頻率訊號的轉換,這部分就是一個逆過程,這裡需要使用幅頻變換,幅頻變換在大學都應該學過過程比較簡單,這部分就使用開原始碼去實現。
FFT 在開源能做到不錯的也就FFTW和kiss_fft ,FFTW一般使用在pc 上,他對機選效能能的要求比較高,我的板子的算力比較弱,又不能用浮點,所以還是選用了kiss_fft ,這個號稱同等算力消耗的情況下效果最好,2017年就停更了,看來也是演算法收斂到了穩定期了。
他的介紹
Kiss FFT is
small
no frills (just like this page)
able to do fixed or floating point with just a recompile
efficient enough for all but the most demanding applications
distributed with an easy-going license (BSD)
visit the SourceForge project for the latest code and news.
現在他已經掛在了github上了
這裡有一個點需要注意: 這個fft 的視窗需要設定到小於輸出的資料長度,不然很容易混入到了其他頻率訊號造成識別錯誤 第二步: 頻率導資料 同樣通過查詢表實現 定義這個頻率查詢表是根據輸出定下來的,範圍不能卡的太窄,頻率會被幹擾偏移,計算也會有偏差一些的。
整個過程都是為了實現實時解析,算力足夠的都是非實時的,也就是先把資料儲存下載,在裡面通過頻率和幅度查詢資料,那樣做會簡單很多,也有很多為了降低誤碼想了辦法: 1.設定起始位和結束位 2.編碼 3.增加crc 解決單bit的錯誤 4.增大到高頻範圍,頻率的混疊出現概率降低。 5.減少單次多bit 的傳輸,每次傳輸控制在30bit,極端請款有4bit 就結束的 。。。。 做到原理通了能用的階段容易,優化的路無止境。