このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
mmseweights
線形イコライザーの MMSE タップ重み
説明
例
線形イコライザーの MMSE 重みの計算
最小平均二乗誤差 (MMSE) の解を計算し、線形イコライザーのタップ重みにその重みを使用します。
シミュレーション変数を初期化します。
M = 4; % QPSK
numSymbols = 10000;
numTrainingSymbols = 1000;
chtaps = [1 0.5*exp(1i*pi/6) 0.1*exp(-1i*pi/8)];
EbN0 = 20;
QPSK 変調されたシンボルを生成します。シンボルに遅延したマルチパス チャネルのフィルター処理と AWGN 障害を適用します。
data = randi([0 M-1], numSymbols, 1);
tx = pskmod(data, M, pi/4);
rx = awgn(filter(chtaps,1,tx),25,'measured');
CMA アルゴリズムを使用してタップ重みを入力するように構成された線形イコライザー System object を作成します。MMSE 重みを計算します。初期タップ重みを計算された MMSE 重みに設定します。劣化したシンボルをイコライズします。
eq = comm.LinearEqualizer('Algorithm','CMA','AdaptWeights',false,'InitialWeightsSource','Property')
eq = comm.LinearEqualizer with properties: Algorithm: 'CMA' NumTaps: 5 StepSize: 0.0100 Constellation: [0.7071 + 0.7071i -0.7071 + 0.7071i -0.7071 - 0.7071i 0.7071 - 0.7071i] InputSamplesPerSymbol: 1 AdaptWeightsSource: 'Property' AdaptWeights: false InitialWeightsSource: 'Property' InitialWeights: [5x1 double] WeightUpdatePeriod: 1
wgts = mmseweights(eq,chtaps,EbN0)
wgts = 5×1 complex
0.0005 - 0.0068i
0.0103 + 0.0117i
0.9694 - 0.0019i
-0.3987 + 0.2186i
0.0389 - 0.1756i
eq.InitialWeights = wgts; [y,err,weights] = eq(rx);
劣化したシンボルとイコライズされたシンボルのコンスタレーションをプロットします。
constell = comm.ConstellationDiagram('NumInputPorts',2);
constell(rx,y)
イコライザーの誤差信号をプロットし、イコライズされたシンボルのエラー ベクトル振幅を計算します。
plot(abs(err)) grid on; xlabel('Symbols'); ylabel('|e|')
errevm = comm.EVM; evm = errevm(tx,y)
evm = 139.0863
イコライザーのタップ重みをプロットします。
subplot(3,1,1); stem(real(weights)); ylabel('real(weights)'); xlabel('Tap'); grid on; axis([1 8 -0.5 1]) line([eq.NumTaps+0.5 eq.NumTaps+0.5], [-0.5 1], 'Color', 'r', 'LineWidth', 1) title('Equalizer Tap Weights') subplot(3,1,2); stem(imag(weights)); ylabel('imag(weights)'); xlabel('Tap'); grid on; axis([1 8 -0.5 1]) line([eq.NumTaps+0.5 eq.NumTaps+0.5], [-0.5 1], 'Color', 'r', 'LineWidth', 1) subplot(3,1,3); stem(abs(weights)); ylabel('abs(weights)'); xlabel('Tap'); grid on; axis([1 8 -0.5 1]) line([eq.NumTaps+0.5 eq.NumTaps+0.5], [-0.5 1], 'Color', 'r', 'LineWidth', 1)
入力引数
eq
— イコライザー オブジェクト
System object
イコライザー オブジェクト。comm.LinearEqualizer
System object として指定します。
chTaps
— チャネル遅延タップ
ベクトル
チャネル遅延タップ。ベクトルとして指定します。
データ型: double
複素数のサポート: あり
EbN0
— S/N 比
スカラー
チャネルの S/N 比。スカラーとして指定します。
データ型: double
出力引数
weights
— 線形イコライザーの重み
ベクトル
線形イコライザーの重み。ベクトルとして返されます。
バージョン履歴
R2019a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)