1

私はこれまでmatlabと信号処理を使用したことがないため、このnoobの質問については申し訳ありません。私がやりたいことは次のとおりです。固定長のバイト配列Xがあり、それをサウンドファイルにエンコードしたいのですが、このプロセスをリバーシブルにしたいのです。つまり、サウンドをXに戻すことができます。エラー。オンラインで検索したところ、次のコードが見つかりました。

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

私の質問は、QAMがこれを行うための最良の方法であるということです。とそれを使用する方法?少しのコード例は本当にありがたいです、ありがとう!

update#1:sound(y)でyを出力しようとしましたが、matlabでは出力できず、浮動小数点数しか出力できないと表示されます。どうすればこれを解決できますか?ありがとうございました!

4

1 に答える 1

1

無線で送信する必要がある場合は、目の前で静かに多くの作業が行われていると思います。通信システムで解決するのが最も難しい問題は、多くの場合同期です。つまり、受信機はQAMシンボルが時間内に配置されている場所を知る必要があります。これは簡単ではありません。あなたが先に進むことを選択した場合、私はあなたがdsp.stackexchange.comを試してみるべきであるというmtrwに同意します。

たとえば、各ビットが1または0のどちらであるかに応じた周波数で、短い正弦波に変換される単純な変調方式をイメージしてみてください。これをレシーバー側でどのようにデコードしますか?最初のビットの開始を検出し、受信機で同期するために自己維持クロックを実行して、ビットが変更されない場合にビットを見つける必要があります。これは、PLL(フェーズロックループ)とも呼ばれます。これは、マンチェスターコーディングを使用することで簡単にできる可能性がありますが、それでも実行するにはかなりの作業が必要になります。

ご覧のとおり、Matlabの保存ハーバーを離れるときの簡単な解決策はありません:-)

よろしくお願いします

于 2013-03-18T20:49:01.083 に答える