このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MATLAB 関数による散布図とアイ ダイアグラム
この例では、アイ ダイアグラムと散布図を使用して信号の動作を可視化する方法を説明します。例では、ルート レイズド コサイン (RRC) フィルターを使用して渡される QPSK 信号を使用します。
散布図
RRC フィルター、変調方式およびプロット パラメーターを設定します。
span = 10; % Filter span rolloff = 0.2; % Rolloff factor sps = 8; % Samples per symbol M = 4; % Modulation alphabet size k = log2(M); % Bits/symbol phOffset = pi/4; % Phase offset (radians) n = 1; % Plot every nth value of the signal offset = 0; % Plot every nth value of the signal, starting from offset+1
関数 rcosdesign
を使用してフィルター係数を作成します。
filtCoeff = rcosdesign(rolloff,span,sps);
サイズが M
のアルファベットに対しランダムなシンボルを生成します。
rng default
data = randi([0 M-1],5000,1);
QPSK 変調を適用します。
dataMod = pskmod(data,M,phOffset);
変調されたデータをフィルター処理します。
txSig = upfirdn(dataMod,filtCoeff,sps);
オーバーサンプリングされた QPSK 信号の SNR を計算します。
EbNo = 20; snr = EbNo + 10*log10(k) - 10*log10(sps);
送信信号に AWGN を付加します。
rxSig = awgn(txSig,snr,'measured');
RRC 受信フィルターを適用します。
rxSigFilt = upfirdn(rxSig, filtCoeff,1,sps);
フィルター処理された信号を復調します。
dataOut = pskdemod(rxSigFilt,M,phOffset,'gray');
関数 scatterplot
を使用して、フィルター処理の前後の信号の散布図を表示します。コンスタレーションが理想値により近づいていることから、受信フィルターによって性能が改善されていることがわかります。最初の span
シンボルと最後の span
シンボルは、2 つのフィルター処理操作の累積遅延を表し、散布図を生成する前に 2 つのフィルター処理された信号から削除されます。
h = scatterplot(sqrt(sps)*txSig(sps*span+1:end-sps*span),sps,offset); hold on scatterplot(rxSigFilt(span+1:end-span),n,offset,'bx',h) scatterplot(dataMod,n,offset,'r+',h) legend('Transmit Signal','Received Signal','Ideal','location','best')
アイ ダイアグラム
2 シンボル周期にわたる送信信号の 1000 点のアイ ダイアグラムを表示します。
eyediagram(txSig(sps*span+1:sps*span+1000),2*sps)
受信信号の 1000 点のアイ ダイアグラムを表示します。
eyediagram(rxSig(sps*span+1:sps*span+1000),2*sps)
AWGN が存在するため、受信アイ ダイアグラムの目が閉じはじめていることを確認します。また、フィルターの長さが有限であることも、理想的でない動作の要因となっています。