このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
BSPK 信号のイコライズ
最小平均二乗 (LMS) アルゴリズムをもつ線形イコライザーを使用して BPSK 信号をイコライズします。
ランダムなバイナリ データを生成し、BPSK 変調を適用します。
M = 2; data = randi([0 1],1000,1); modData = pskmod(data,M);
変調した信号に 2 タップの静的フェージングを適用し、AWGN ノイズを加えます。
rxSig = conv(modData,[0.02+0.5i 0.05]); rxSig = awgn(rxSig,30);
LMS 適応アルゴリズムを使用し、8 タップ、0.1 ステップ サイズ、リファレンス タップに第 4 のタップを使用するように構成された線形イコライザー System object™ を作成します。送信信号の変調と一致するようにコンスタレーションを設定します。
lineq = comm.LinearEqualizer( ... NumTaps=8, ... StepSize=0.1, ... Constellation=complex([-1 1]), ... ReferenceTap=4)
lineq = comm.LinearEqualizer with properties: Algorithm: 'LMS' NumTaps: 8 StepSize: 0.1000 Constellation: [-1.0000 + 0.0000i 1.0000 + 0.0000i] ReferenceTap: 4 InputDelay: 0 InputSamplesPerSymbol: 1 TrainingFlagInputPort: false AdaptAfterTraining: true InitialWeightsSource: 'Auto' WeightUpdatePeriod: 1
受信信号 rxSig
をイコライズします。最初の 200 データ ビットをトレーニング シーケンスとして使用します。イコライズの前後の受信信号を示すコンスタレーション ダイアグラムを表示します。
trSeq = modData(1:200); [eqSig,err] = lineq(rxSig,trSeq); constdiag = comm.ConstellationDiagram( ... NumInputPorts=2, ... ChannelNames={'Before equalization','After equalization'}, ... ReferenceConstellation=pskmod([0 M-1],M)); constdiag(rxSig(400:end),eqSig(400:end))
誤差推定の振幅をプロットします。誤り信号の減少と安定化に示されるように、イコライズは 200 ビット未満に収束します。
plot(abs(err)) title('Error Estimate') xlabel('Bits') ylabel('Amplitude (V)')