主要内容

このページの翻訳は最新ではありませ。

QPSK送信機および受信機

この例で,MATLAB®でのQPSKのの信机と诚信机机の装配について示します。特色この例でますます,搬送周周波位相オフセット,タイミング再生物と同オフセット,タイミング再の通信の问题への通信の问题の対处について明します。同じシステムのs金宝appimulink®包装については,金宝appSimulinkでのQPSK诚信机およびおよび信机の例を参照してください。

はじめに

送信されたQPSKデータは,加法性ホワイトガウスノイズ(AWGN)の付加,搬送周波数と位相オフセットの導入およびタイミングのずれなど,無線送信の影響をシミュレートした減損を被っています。この例では,これらの損失に対処するための実用的なデジタル受信機のリファレンス設計を示します。受信機には、相関ベースの大まかな周波数補正、PLL ベースの細かな周波数補正、PLL ベースのシンボル タイミング再生、フレーム同期、位相不確定性の解決が含まれます。

この例は,以下の2つの目的にかない。

  • シミュレーションシミュレーションされたさまざまさまざまな障害によって破损破损したを复元できるできるできるできるできる无绕通信システムの无无通信システムの化

  • 

初期化

commqpsktxrx_init.m.スクリプトスクリプトはシミュレーションパラメーターをを初初,体内PRMQPSKTXRXを生成しし。

prmqpsktxrx = commqpsktxrx_init.%#OK <* NOPTS>%QPSK系统参数USESCOPES = TRUE;如果要使用作用域,则%为真printReceivedData = false;如果要打印接收到的数据,则为真compileit = false;如果代码要编译,%为真useCodegen = false;% true运行生成的mex文件
prmQPSKTxRx =结构体字段:ModulationOrder: 4插值:2大量毁灭:1 Rsym: 50000 Tsym: 2.0000 e-05 Fs: 100000 TotalFrame: 1000 BarkerCode: [1 1 1 1 1 1 1 1 1 1 1 1 1] BarkerLength: 13 HeaderLength: 26日消息:“Hello world”MessageLength: 16 NumberOfMessage: 20 PayloadLength: 2240 FrameSize: 1133 FrameTime: 0.0227 RolloffFactor:0.5000 ScramblerBase: 2 ScramblerPolynomial: [1 1 1 0 1] ScramblerInitialConditions: [0 0 0 0] RaisedCosineFilterSpan: 10 PhaseOffset: 47 EbNo: 13 FrequencyOffset: 5000 DelayType:“三角形”DesiredPower: 2 AveragingLength: 50 MaxPowerGain: 20 MaximumFrequencyOffset: 6000 PhaseRecoveryLoopBandwidth: 0.0100 PhaseRecoveryDampingFactor:1 TimingRecoveryLoopBandwidth: 0.0100 TimingRecoveryDampingFactor: 1 timingerrordetectororgain: 5.4000 PreambleDetectorThreshold: 20 MessageBits: [11200x1 double] BerMask: [1540x1 double]

テスト対象システムのコードアーキテクチャ

この例では,QPSK変调変调使使使しいる通信システムををします。关键词runqpsksystemundertest.m.はこの通信环境をモデルモデルモデルししこのででのののモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルからのの

1)QPSKTransmitter.m:ビットストリームを生成し,それを编号化,変调変调および致理性。

2)QPSKCHANNEL.M.:搬送搬送オフセット,タイミングオフセットオフセットawgnのあるあるをモデルします。

3)QPSKReceiver.m:位相位相生,タイミングタイミング生,编号化,复调などのコンポーネントを含む信机をを化します。

4)QPSKScopes.m:时间スコープ,周波数スコープおよびダイアグラムダイアグラムして信号をしし(オプション)。

各コンポーネントは,系统对象を使用してモデル化されます。系统对象の4つの主要コンポーネントの構造を確認するには,runqpsksystemundertest.m.を参照してください。

各コンポーネントの説明

送信机

このこのは,ascii文章を使使用してメッセージ生成し,文标をビットビットし,そのそのににし,そのそのににバーカーフレーム同しますバーカー符ますますます。され,ルートレイズドコサインフィルターでフィルター处理されます。

チャネル

このコンポーネントは,无无伝送伝送の様々な影响をシミュレートししこれにより,位相位相との両両オフセット,送信机とと信机との间のクロック再现変変およびスキュー再変遅延awgnをもつをもつ信信号が劣化させられ。

受信機

。

1)自动ゲインコントロール:位相とタイミングの误差検出仪の等価なゲイン常に常に常ににレベルに出出出パワーしますます.AGCはレイズドコサイン受信フィルターの前に置かれるため,2のオーバーサンプリング係数で信号の振幅を測定できるようになります。このプロセスによって推定の精度が向上します。

二に平均化されます。そのその,大まかな周波数码オフセット推定はcomm.CoarseFrequencyCompensatorSystem对象と平台化式,补正はcomm.phasefrequencyOffset.系统对象を使用して行われます。

3)タイミング先生:comm.SymbolSynchronizerSystem Object obersをを使て,闭ループのスカラースカラー実による,チャネルによる遅延の実を解决しは,诚信したを。。オブジェクトの出力は,ビットスタッフィングとストリッピングによって长さが変わるシンボルフレームで,実际のチャネル遅延に依存します。

4)细かな细かな数号正:comm.carriersynchronizer系统对象を使用して,閉ループのスカラー処理を実行し,周波数オフセットを正確に補正します。オブジェクトは,位相同期回路(锁相环)を実装し,入力信号の残留周波数オフセットと位相オフセットを追跡します。

5)プリアンブル検出:comm.PreambleDetectorSYSTEM OBTERSをを使て,入力のの既知のバーカーのの位置を検出検出しのははは相ベースの実実ししししししし検出実検出検出し検出実実検出検出検出し

6)フレーム同期:FramesynchronizerSystem Object obers obersをを使て,フレーム同同を実行しシンボル同を固定固定にしし固定はははこのししははははスカラーししははははであるであるしのにははがありであるであるのにはががありであるしのははががであるしが有效かどうかを示します。

7)データ復号化器:位相不確定性の解決および復調を実行します。また,データ復号化器は再生成されたメッセージを送信されたものと比較して,误码率を計算します。

スコープ

このコンポーネントでは,以下をプロットするための可视化オプションが提供されています。

  • ルートレイズドコサインフィルターのの定理前后の诚信信号を示すスコープ

  • 受信機側のフィルター処理後,タイミング再生後,さらにきめ細かい周波数補正後の受信信号を示すコンスタレーションダイアグラム

システムコンポーネントの詳細については,金宝appSimulinkでのQPSK诚信机およびおよび信机のs金宝appimulink例を参照しくださいください。

テスト対象システム

テスト対象システムのスクリプトにあるメインループでは,データがフレームごとに処理されます。コードを生成するには,MATLAB変数编译をtrueに设定します。これこれ,matlab编码器™制品によって提供されるCodegen.コマンドを使用して設定できます。Codegen.コマンドは,MATLAB®関数を墨西哥人ファイルに変換してコードを生成し,実行を高速化します。生成されたCコードの実行速度は,元のMATLABコードよりも数倍高速です。この例では,useCodegenを真实に设定し,matlabコードの代わりにCodegen.で生成されたコードを使用します。

runqpsksystemundertest.m.の内部ループは,前述の4つの系统对象を使用します。このファイルには,テスト対象システムで一度に1フレームを処理する为ループがあります。

for count = 1:prmqpsktxrx.framecount发送rignal = qpsktx();rcvdsignal = QPSKCHAN(传输股票,计数);[rcrxsignal,timingrecsignal,freqrecsignal,ber] = qpskrx(rcvdsignal);%接收器如果USESCOPES runqpskscopes(QPSKSCOPES,RCVDSIGNAL,RCRXSignal,TimingRecsignal,FreqRecsignal);%绘制所有范围结束结束

実行と结果

テスト対象システムのスクリプトを実行して,シミュレートされたQPSK通信のBER値を取得するため,以下のコードが実行されます。シミュレーションを実行すると,ビット误り率のデータといくつかの结果のグラフが表示されます。表示表示されるスコープ凸起余弦接收过滤器出力、符号同步器出的力,および细频率补偿出力のコンスタレーション,および凸起余弦接收过滤器出力のパワースペクトルです。

如果Compileit Codegen.报告runqpsksystemundertest.m.-  args.{编码器.Constant(prmqpsktxrx),coder.constant(USESCOPES),Coder.Constant(PrintReceivedData)}%#好的结尾如果useCodegen BER = runQPSKSystemUnderTest_mex(prmQPSKTxRx,useScopes,printReceivedData); / /输出别的数量= runQPSKSystemUnderTest (prmQPSKTxRx useScopes printReceivedData);结尾FPRINTF('错误率= %f.\n',BER(1));FPRINTF('检测到的错误数=%d。\ n'BER (2));FPRINTF('被比较的样本总数= %d.\n'BER (3));
错误率= 0.000238。检测到的误差数= 366.比较样本的总数= 1536920。

代替の実行オプション

テスト対象システムの節で既に説明したように,この例のはじめに変数を使用することによって,コードを操作して系统对象と符号化オプションについてさまざまな調査ができます。

既定でで,幂数USESCOPES.はtrueに,遇数printreceiveddata.はfalseにそれぞれ设定さています。参数USESCOPES.によって,この例の実行時にMATLABのスコープを開くことができます。このスコープを使用すると,シミュレートされたサブコンポーネントがどのように動作しているかを知ることができ,また,システムがシミュレーション時間にどのように機能しているかをより深く理解できます。この変数を假に設定すると,例の実行中,このスコープは開きません。printreceiveddata.を真正に設定すると,復号化済みの受信パケットをコマンドウィンドウに出力して確認することもできます。他の2つの変数,compileItとuseCodegenは,速度パフォーマンスに关键词,设计トレードオフの解析に使。

compileItを真正に設定すると,このスクリプト例では,MATLAB编码器™の機能が使用され,高速実行のスクリプトrunQPSKSystemUnderTextがコンパイルされます。このコマンドは,墨西哥人ファイル(runQPSKSystemUnderTest_mex)を作成し,そのファイルを現在のフォルダーに保存します。墨西哥人ファイルを実行するuseCodegenを真正に設定すると,この例ではMATLABで実装されるシステムをより高速に実行できます。この機能は,リアルタイムシステムの実装に欠くことができない,重要なシミュレーションツールです。シミュレーションの速度を最大にするには,USESCOPES.を假に設定し,useCodegenを真正に設定して墨西哥人ファイルを実行します。

他の探索オプションについては,金宝appSimulinkでのQPSK诚信机およびおよび信机の例を参照してください。

まとめ

この例でで,awgnチャネル上のデジタル通信を,周波数およびています。変调,周波数およびの再再再生,タイミング再生,フレームフレームなど,qpskシステムシステムの各をを化するますがれてます。を计算することによって,システムパフォーマンスを测定します。生成されたcコードが,元のmatlabコードよりもことことことこと示し示しいい

付録

この例では以下のスクリプトと补助关数が使用されています。

参考文献

1.大米,迈克尔。数字通信 - 离散时间方法.1版。纽约,纽约:Prentice Hall, 2008。