audio 應用:聲波通訊(3)接收原理

迷霧綠洲發表於2018-11-10

一上來還是整個流程圖鎮樓
在這裡插入圖片描述
這裡介紹整個流程種最複雜的部分:解析。
上一篇已經實現了資料到頻率訊號的轉換,這部分就是一個逆過程,這裡需要使用幅頻變換,幅頻變換在大學都應該學過過程比較簡單,這部分就使用開原始碼去實現。
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上了
https://github.com/bazaar-projects/kissfft
下載zip ,解壓出來
在這裡插入圖片描述
在test 有demo ,readme裡面有移植呼叫的方法,比較容易上手。
第一步:通過fft 實現資料到頻率

在這裡插入圖片描述
這裡有一個點需要注意: 這個fft 的視窗需要設定到小於輸出的資料長度,不然很容易混入到了其他頻率訊號造成識別錯誤
第二步: 頻率導資料
同樣通過查詢表實現
頻率的查詢表
頻率到資料
定義這個頻率查詢表是根據輸出定下來的,範圍不能卡的太窄,頻率會被干擾偏移,計算也會有偏差一些的。

整個過程都是為了實現實時解析,算力足夠的都是非實時的,也就是先把資料儲存下載,在裡面通過頻率和幅度查詢資料,那樣做會簡單很多,也有很多為了降低誤碼想了辦法:
1.設定起始位和結束位
2.編碼
3.增加crc 解決單bit的錯誤
4.增大到高頻範圍,頻率的混疊出現概率降低。
5.減少單次多bit 的傳輸,每次傳輸控制在30bit,極端請款有4bit 就結束的
。。。。
做到原理通了能用的階段容易,優化的路無止境。

相關文章