このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
GSM、CDMA および WiMAX チャネル モデル
この例は、GSM/EDGE [1 2]、CDMA [3]、および WiMAX [4] 無線規格に定義されているマルチパス フェージング チャネルをシミュレートする方法を示しています。例では、Communications Toolbox™ からのレイリーおよび MIMO フェージング チャネル System objects™ を使用して、チャネルをシミュレートして可視化しています。
GSM チャネル モデル
GSM (Global System for Mobile Communications) は、2G モバイル通信の世界標準です。GSM のマルチパス フェージング チャネルは、農村地域 (RAx)、起伏の多い地形 (HTx)、都市部 (TUx) などの異なる通信シナリオ用に [1 2] で定義されています。各シナリオには、特定の電力遅延プロファイル (PDP) とドップラー スペクトルが割り当てられています。この例では、起伏の多い地形 (HTx) のシナリオを 12 タップでシミュレートします。フェージング チャネル経由で GMSK 変調された信号を渡し、そのインパルス応答を観察します。
% Set random number generator for repeatability rng('default');
comm.GMSKModulator
オブジェクトを使用して GMSK 変調器を作成し、それを使用してランダムに生成されたビットを変調します。このオブジェクトは、GMSK 変調が GSM システムで使用されていることを説明します。
gmskMod = comm.GMSKModulator( ... 'BitInput', true, ... 'SamplesPerSymbol', 8); % Modulate random bits using the GMSK object x = gmskMod(randi([0 1], 1e4, 1));
120 km/h の移動体速度を想定します。1.8 GHz の搬送波周波数でドップラー シフトを計算します。
v = 120*1e3/3600; % Mobile speed (m/s) fc = 1.8e9; % Carrier frequency fd = v*fc/physconst('lightspeed'); % Maximum Doppler shift
HTx のフェージング チャネルをシミュレートするには、[1 2] の PDP 仕様に従ってcomm.RayleighChannel
オブジェクトを構成します。または、関数stdchan
を使用し、シナリオ入力 'gsmHTx12c1' を設定して、適切な comm.RayleighChannel
オブジェクトを作成します。そのため、PDP とドップラー スペクトルの仕様に関して、[1 2] を参照する必要はありません。
Rsym = 270.833e3; % GSM symbol rate Rsamp = gmskMod.SamplesPerSymbol * Rsym; % GSM sample rate gsmChan = stdchan('gsmHTx12c1', Rsamp, fd);
チャネル オブジェクトのインパルス応答の可視化を有効にして、そこを経由して GMSK 変調されたデータを送信します。パス (タップ) が最後の 5 つのサンプル上で遅延していることがわかります。最初の 7 つと最後の 5 つのタップは、2 つの異なるクラスターにグループ化することができます。その意味で、チャネルは送信機から受信機へ散乱しながら 2 つの主要なパスを特徴付けます。インパルス応答が 120 km/h のこの移動体速度でかなり高速に変化することも観察できます。
gsmChan.Visualization = 'Impulse response';
gsmChan(x);
CDMA チャネル モデル
CDMA (Code-Division Multiple Access) は 3G モバイル通信の標準です。GSM と同様に、CDMA のマルチパス フェージング チャネルは、異なる PDP とドップラー スペクトルを使用した異なる通信シナリオ用に [3] で定義されています。この例では、移動体速度が低い典型的な都市シナリオ (TUx) をシミュレートして、チャネルの周波数応答を可視化します。関数cdma2000ForwardReferenceChannels
およびcdma2000ForwardWaveformGenerator
は、CDMA 2000 波形を構成およびシミュレートするために使用されます。これは、フェージング チャネル経由で引き続き送信されます。
% Configure a CDMA waveform and change the packet length config = cdma2000ForwardReferenceChannels('ALL-RC3'); config.NumChips = 1e4; % Generate a waveform waveform = cdma2000ForwardWaveformGenerator(config);
波形の構成からチャネル サンプルレートを算出します。SpreadingRate フィールドが 'SR1' の場合、1.2288 Mcps 波形に対応します。'SR3' の場合は、3.6864 Mcps 波形に対応します。
Rsprd = str2double(config.SpreadingRate(3)) * 1.2288e6; Rsamp = Rsprd * config.OversamplingRatio; % Assume a human walking speed which is about 5 km/h. Calculate the Doppler % shift at the carrier frequency of 1.9 GHz. v = 5*1e3/3600; % Mobile speed (m/s) fc = 1.9e9; % Carrier frequency fd = v*fc/physconst('lightspeed'); % Maximum Doppler shift
再度、関数 stdchan
を使用して、TUx の CDMA チャネルを構成します。チャネルの周波数応答の可視化を有効にして、そこを経由して波形を渡します。チャネルの明らかな周波数選択性を観察できます。周波数応答は、5 km/h のこの低い移動体速度でゆっくり変化します。
cdmaChan = stdchan('cdmatux', Rsamp, fd); cdmaChan.Visualization = 'Frequency response'; y = cdmaChan(waveform);
WiMAX チャネル モデル
固定無線アプリケーション向けの WiMAX (IEEE® 802.16) チャネル モデル [4] は、セル半径が 10 km 未満で、受信機の指向性アンテナが軒/窓の下または屋根の上に取り付けられており、基地局 (BS) アンテナの高さが 15 ~ 40 m である状況に対して提案されます。チャネル モデルは、シャドウイング (郊外、都市部) などの一連のパス損失モデルと、マルチパス遅延プロファイル、K ファクター分布、およびドップラー スペクトルを記述するマルチパス フェージング モデルで構成されています。また、指向性アンテナを使用しているため、アンテナ ゲインの減少係数も特徴的です。
この例では、MIMO マルチパス フェージング チャネル System object™comm.MIMOChannel
、2 つの送信アンテナ、1 つの受信アンテナおよびラウンド型ドップラー スペクトル構造体を使用します。変更した Stanford University Interim (SUI) チャネル モデルは、IEEE 802.16 チャネル モデル (具体的には、固定無線アプリケーションの規格の 2004 年版) をシミュレートするのに使用される一般的な 6 つのチャネルのセットで構成されます。これらのチャネル モデルは、セル サイズが 7 km、BS アンテナの高さが 30 m、受信アンテナの高さが 6 m、BS アンテナのビーム幅が 120 度、受信アンテナが無指向性または指向性 (30 度) であり、垂直偏波のみを使用している状況用に提案されています。
変更した各 SUI チャネル モデルには 3 つのタップがあります。各タップは、最初のパス遅延に対する相対的な遅延、相対電力、ライス K ファクター、および最大ドップラー シフトで特徴付けられます。チャネル モデルごとに 2 セットの相対電力が指定されます。1 つは無指向性アンテナのためで、1 つは 30 度の指向性アンテナのためです。また、相対電力のセットごとに 2 つの異なる K ファクターが指定されます。90% のセル カバレッジ用の K ファクターと 75% のセル カバレッジ用の K ファクターです。したがって、変更した 6 つの SUI チャネル モデルはそれぞれ 4 つの異なる状況に対するパラメーターで構成されます。さらに、変更した各 SUI チャネル モデルにはアンテナ相関が割り当てられ、異なるアンテナ素子で受信した信号間のエンベロープ相関係数として定義されます。
下記のコードは、変更した SUI-1 チャネル モデルに従って無指向性アンテナおよび 90% のセル カバレッジに対する MIMO フェージング チャネル System object を構築します。
チャネル モデルには 3 つのパスがあり、最初のパスはライスで、残りの 2 つはレイリーです。各パスには、その拡散成分に対するラウンド型ドップラー スペクトルがあり、パラメーターは、既定のドップラー (「ラウンド型」) 構造体で指定されています。[4] の各パスには異なる最大ドップラー シフトが指定されていますが、ここでは、すべてのパスにドップラー シフトの最大値を使用します。
また、2 つの送信アンテナと 1 つの受信アンテナを使用します。[4] の付録 B と同様に、各パスの 2 つのリンク間の相関係数はアンテナ空間相関と等しくなります。相関係数は 0.7 です。
WiMAX システムのサンプルレートは 1.429、2.857、5.714、11.429 または 22.857 MHz です。ドップラー シフトが小さいこのようなレートでは、チャネルの統計的特性を十分に示すために多くのサンプルと長いシミュレーション時間が必要です。それを避けるには、0.1 MHz の小さいサンプルレートを任意に選択します。サンプルレート Rsamp
と、サンプル数 Ns
を同時に増やすと、類似の統計結果を確認することができます。
Rsamp = 0.1e6; Ns = 3e6; wimaxChan = comm.MIMOChannel( ... 'SampleRate', Rsamp, ... 'PathDelays', [0 0.4 0.9]*1e-6, ... 'AveragePathGains', [0 -15 -20], ... 'FadingDistribution', 'Rician', ... 'KFactor', 4, ... 'MaximumDopplerShift', .5, ... 'DopplerSpectrum', doppler('Rounded'), ... 'TransmitCorrelationMatrix', [1 0.7; 0.7 1], ... 'ReceiveCorrelationMatrix', 1, ... 'PathGainsOutputPort', true);
下記のコードは、長い QPSK 変調されたフレーム入力を使用して、変更した SUI-1 チャネル モデルをシミュレートします。
Nt = size(wimaxChan.TransmitCorrelationMatrix, 1); x = pskmod(randi([0 3], Ns, Nt), 4); [~, g] = wimaxChan(x);
2 番目のパスの最初のリンクのドップラー スペクトルを複素数のパス ゲインから推定し、プロットします。
figure; win = hamming(Ns/5); Noverlap = Ns/10; pwelch(g(:,2,1),win,Noverlap,[],Rsamp,'centered') axis([-0.1/10 0.1/10 -80 10]); legend('Simulation');
推定されたドップラー スペクトルの上に理論上のラウンド型ドップラー スペクトルを重ねます。両者はよく近似しています。
fd = wimaxChan.MaximumDopplerShift; f = -fd:0.01:fd; a = wimaxChan.DopplerSpectrum.Polynomial; % Parameters of the rounded Doppler spectrum Sd = 1/(2*fd*(a(1)+a(2)/3+a(3)/5))*(a(1)+a(2)*(f/fd).^2+a(3)*(f/fd).^4); Sd = Sd*10^(wimaxChan.AveragePathGains(2)/10); % Scaling by average path power hold on; plot(f(Sd>0)/1e3,10*log10(Sd(Sd>0)),'k--'); legend('Simulation','Theory');
2 番目のパスの 2 番目のリンクに対するドップラー スペクトルも推定し、理論上のスペクトルと比較します。この場合も両者はよく近似しています。
figure; pwelch(g(:,2,2),win,Noverlap,[],Rsamp,'centered') axis([-0.1/10 0.1/10 -80 10]); legend('Simulation'); hold on; plot(f(Sd>0)/1e3,10*log10(Sd(Sd>0)),'k--'); legend('Simulation','Theory');
各パスに対して、両方の送信リンクのフェージング エンベロープ波形をプロットします。ここでは、フェージング エンベロープ間の相関を観測できます。
figure; semilogy(abs(g(:,1,1)),'b'); hold on; grid on; semilogy(abs(g(:,1,2)),'r'); legend('First transmit link','Second transmit link'); title('Fading envelopes for two transmit links of Path 1'); figure; semilogy(abs(g(:,2,1)),'b'); hold on; grid on; semilogy(abs(g(:,2,2)),'r'); legend('First transmit link','Second transmit link'); title('Fading envelopes for two transmit links of Path 2'); figure; semilogy(abs(g(:,3,1)),'b'); hold on; grid on; semilogy(abs(g(:,3,2)),'r'); legend('First transmit link','Second transmit link'); title('Fading envelopes for two transmit links of Path 3');
ここで、パスごとに空間相関行列を計算します。結果が理論上の値 Rt と一致していることがわかります。Ns
を大きくすると、関数 corrcoef
の推定値を改善できます。
TxCorrMatrixPath1 = corrcoef(g(:,1,1),g(:,1,2)).' TxCorrMatrixPath2 = corrcoef(g(:,2,1),g(:,2,2)).' TxCorrMatrixPath3 = corrcoef(g(:,3,1),g(:,3,2)).'
TxCorrMatrixPath1 = 1.0000 + 0.0000i 0.7537 + 0.0388i 0.7537 - 0.0388i 1.0000 + 0.0000i TxCorrMatrixPath2 = 1.0000 + 0.0000i 0.7605 + 0.2331i 0.7605 - 0.2331i 1.0000 + 0.0000i TxCorrMatrixPath3 = 1.0000 + 0.0000i 0.7113 + 0.1282i 0.7113 - 0.1282i 1.0000 + 0.0000i
参考文献
3GPP TS 05.05 V8.20.0 (2005-11): 3rd Generation Partnership Project; Technical Specification Group GSM/EDGE Radio Access™ Network; Radio transmission and reception (Release 1999).
3GPP TS 45.005 V7.9.0 (2007-2): 3rd Generation Partnership Project; Technical Specification Group GSM/EDGE Radio Access Network; Radio transmission and reception (Release 7).
3GPP TR 25.943 V6.0.0 (2004-12): 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Deployment aspects (Release 6).
IEEE 802.16 Broadband Wireless Access Working Group、"Channel models for fixed wireless applications"、IEEE 802.16a-03/01、2003-06-27。