2013-03-17 45 views
1

對不起這個noob問題,因爲我從來沒有使用過matlab和信號處理。 下面是我想要做的事情:我有一個固定長度的字節數組X,現在我想將它編碼爲一個聲音文件,我也希望這個過程是可逆的,這意味着聲音可以轉換回X沒有錯誤。我在網上搜了一遍,發現下面的代碼:QAM是最好的方法嗎?

M = 16; 
x = randint(5000,1,M); 
y=modulate(modem.qammod(M),x); 

我的問題是,QAM是做這個的最好方法嗎?以及如何使用它?一點點的代碼示例將非常感謝,謝謝!

更新#1:我試圖輸出y的聲音(Y),但MATLAB不允許我這樣做,它說我只能輸出浮點數。我該如何解決這個問題?謝謝!

+2

什麼是你該傳輸系統的要求是什麼?它必須是抗噪聲的,傳輸信道是什麼樣的,你需要傳輸多少位/秒等等?有很多方法可以實現你想要的。如果你只需要保存一個聲音文件並從中獲取數據,上面的例子可能會工作,但如果你想通過無線或電話線或類似的方式傳輸音頻,這完全是另一回事。 – KlausCPH 2013-03-17 20:12:50

+0

@KlausCPH我可能需要通過無線傳輸音頻,比特率無關緊要,所以我應該看什麼?謝謝 – 2013-03-17 21:23:12

+0

@KlausCPH btw,我的想法是將簡單的ECC放入字節數組中以使其具有抗噪聲性,這有可能嗎?謝謝 – 2013-03-17 21:31:36

回答

1

如果您需要在空氣上傳輸,你必須在你的面前安靜了很多工作,我想。在電信系統中解決的最困難的問題通常是同步,這意味着您的接收器必須知道QAM符號及時放置在哪裏。這並不容易。如果你選擇繼續,我同意mtrw你應該嘗試dsp.stackexchange.com。

嘗試例如用於成像的簡單調製方案,其中每一個比特轉換成具有取決於位是否是一或零頻率一小段正弦的。你將如何去解碼這在接收端?您需要檢測第一位的開始,並在接收器上運行一些自我維護時鐘以進行同步,以便在不改變的情況下查找位,即PLL(鎖相環)。通過使用曼徹斯特編碼,這可能會變得更容易,但是爲了讓它運行,您仍然需要做很多工作。

正如你看到的,有沒有簡單的解決辦法,當你離開的保存Matlab的港口:-)

問候