Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

レイズド コサイン フィルターを使ったパルス整形

対になるルート レイズド コサイン整合フィルター処理を使用して 16-QAM 信号のフィルター処理を行います。信号のアイ ダイアグラムおよび散布図をプロットします。AWGN チャネル経由で信号を渡した後にビット誤り数を計算します。

シミュレーション パラメーターを設定します。

M = 16; % Modulation order
k = log2(M); % Bits/symbol
n = 20000; % Transmitted bits
nSamp = 4; % Samples per symbol
EbNo = 10; % Eb/No (dB)

フィルター パラメーターを設定します。

span = 10; % Filter span in symbols
rolloff = 0.25; % Rolloff factor

直前に定義したパラメーターを使用してレイズド コサイン送信フィルターおよびレイズド コサイン受信フィルターを作成します。

txfilter = comm.RaisedCosineTransmitFilter('RolloffFactor',rolloff, ...
    'FilterSpanInSymbols',span,'OutputSamplesPerSymbol',nSamp);

rxfilter = comm.RaisedCosineReceiveFilter('RolloffFactor',rolloff, ...
    'FilterSpanInSymbols',span,'InputSamplesPerSymbol',nSamp, ...
    'DecimationFactor',nSamp);

hTxFilter のインパルス応答をプロットします。

fvtool(txfilter,'impulse')

Figure Filter Visualization Tool - Impulse Response contains an axes and other objects of type uitoolbar, uimenu. The axes with title Impulse Response contains an object of type stem.

整合フィルターによる遅延を計算します。群遅延は、1 つのフィルター全体のフィルター スパンの半分であるため、両方のフィルターのフィルター スパンと等しくなります。シンボルあたりのビット数を掛けてビット単位の遅延を取得します。

filtDelay = k*span;

誤り率カウンター System object を作成します。ReceiveDelay プロパティを設定して整合フィルターによる遅延が考慮されるようにします。

errorRate = comm.ErrorRate('ReceiveDelay',filtDelay);

バイナリ データを生成します。

x = randi([0 1],n,1);

データを変調します。

modSig = qammod(x,M,'InputType','bit');

変調した信号をフィルター処理します。

txSig = txfilter(modSig);

先頭から 1000 個のサンプルのアイ ダイアグラムをプロットします。

eyediagram(txSig(1:1000),nSamp)

Figure Eye Diagram contains 2 axes. Axes 1 with title Eye Diagram for In-Phase Signal contains an object of type line. This object represents In-phase. Axes 2 with title Eye Diagram for Quadrature Signal contains an object of type line. This object represents Quadrature.

EbNo を指定して S/N 比 (SNR) を dB 単位で計算します。関数 awgn を使用して AWGN チャネル経由で送信信号を渡します。

SNR = EbNo + 10*log10(k) - 10*log10(nSamp);
noisySig = awgn(txSig,SNR,'measured');

ノイズ信号をフィルター処理し、その散布図を表示します。

rxSig = rxfilter(noisySig);
scatterplot(rxSig)

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains an object of type line. This object represents Channel 1.

フィルター処理された信号を復調し、誤り統計を計算します。フィルターによる遅延は、errorRateReceiveDelay プロパティによって考慮されています。

z = qamdemod(rxSig,M,'OutputType','bit');

errStat = errorRate(x,z);
fprintf('\nBER = %5.2e\nBit Errors = %d\nBits Transmitted = %d\n',...
    errStat)
BER = 1.85e-03
Bit Errors = 37
Bits Transmitted = 19960