我目前正在開展一個比較簡單的項目,直到現在。基礎項目是使用音頻轉換在激光器上傳輸數據/消息。 簡而言之過程目前是這樣通過激光器進行Python音頻傳輸
- 用戶輸入一個消息
- 消息變成二進制
- 對於每個1和0的二進制消息中,它起着對應音調的信號,其在我的情況下,250赫茲爲1和450赫茲爲0.
- 輸出音頻通過立體聲電纜發送到音頻變壓器,使用鐳射裝置
- 太陽能電池板充當麥克風並記錄傳入「聲音」作爲文件
- 它們播放文件並讀取音調,並嘗試將每個250和450赫茲與1或0(這是我的問題所在)匹配。
直到聲音的實際處理很好,我目前的問題如下。
我在x時間播放每個音調,在接收端記錄y個時間,y時間被削減多次採樣,然後通過樣本分析樣本,然後記錄每個頻率。這是低效和不準確的。無論何時播放音調,我都有過許多問題,因爲它經常聽到兩次音,或根本聽不到它,這完全拋棄了整個信息。
我試圖將它的採樣率與每個音調播放的時間相匹配,但除非相應對齊,否則不起作用。我只對「測試」和「嗨」等消息進行過一些成功的測試。我已經看過bpsk和fsk,但我感覺好像我已經在做類似的事情,但是我有一個糟糕的接收端來破譯它。
這是全部用Python編寫的,我非常感謝您提供的任何提示,建議或可能的實現。另外對於音調發射,我使用pyaudiere
和錄音我使用pyaudio
。
謝謝!
-Steve
好問題 - 這是更多的DSP相關的不是編程有關,但這樣你可能會想嘗試http://DSP.stackexchange.com –
多久的是什麼方法您目前使用的檢測每個音調和? –
可能重複[Binary Phase Shift Keying in Python](http://stackoverflow.com/questions/7466715/binary-phase-shift-keying-in-python) –