0

レイリー フェージングを使用した M-QAM 変調の matlab で作業していますが、統合部分に少し問題があります。近似値を使用してそのコードを作成しました。

function y = m_qam_ray( M )
%UNTITLED4 Summary of this function goes here
%   Detailed explanation goes here
% simulation for M-QAM transmission
EbNodB = [0:2:40];
EbNolin = 10.^(EbNodB/10) ;
Pe_sim=[];

% For M-QAM
if(M==4)
a=1;
else
a=4/log2(M);
end
b=3*log2(M)/(M-1);
Pe=[];
for i = 1:((40/2)+1),
    Pe= [Pe 0.5*a*(1-sqrt(0.5*b*EbNolin(i)/(1+0.5*b*EbNolin(i))))]; %THE APROXIMATION
end                      % Ref: Wireless Communication, A. Goldsmith

semilogy(EbNodB,Pe)
xlabel('SNR, EbNo(dB)');
ylabel('Bit error probability, Pe');
title('Theoretical results of BER of M-QAM');
legend(num2str(M));
legend('-DynamicLegend')
hold off

end

そのコードは正しく動作しますが、修正を行う必要があります。

    0.5*a*(1-sqrt(0.5*b*EbNolin(i)/(1+0.5*b*EbNolin(i))))

次のような新しい値が必要です。

(a/pi)*int((a/pi)*mgf*(-b/(2*((sin(phi))^2)) integrated from phi = 0..pi/2

どこ

mgf = (2*(sin(phi))^2)/(2*(sin(phi))^2+b*EbNolin)

したがって、コードを次のように変更しました。

function y= m_qam_ray2(M)
%UNTITLED4 Summary of this function goes here
% Detailed explanation goes here
% simulation for M-QAM transmission
EbNodB = [0:2:40];
EbNolin = 10.^(EbNodB/10) ;
%Pe_sim=[];
if(M==4)
    a=1; %Amplitud alpha_m
else
    a=(4/log2(M))*(1-(1/sqr(M)));
end

b=3*log2(M)/(M-1); %beta_m

%mgf= (2*(sin(phi))^2)/(2*(sin(phi))^2+b*EbNolin);

Pe=[];

for i = 1:((40/2)+1),

    Pe= [Pe (a/pi)*int((a/pi)*((2*((sin(phi))^2)/(2*((sin(phi))^2)+b*EbNolin(i)))*(-b/(2*((sin(phi))^2)), phi = 0..pi/2)];
end                      % Ref: Wireless Communication, A. Goldsmith

semilogy(EbNodB,Pe)
xlabel('SNR, EbNo(dB)');
ylabel('Bit error probability, Pe');
title('Theoretical results of BER of M-QAM');
legend(num2str(M));
legend('-DynamicLegend')
hold off

終わり

i のすべてのループで、0 と pi/2 の間の積分を行っています (あまり効率的ではないことはわかっていますが、今はそれが必要なだけです)。の

 Pe = [Pe (a/pi)*int(((2*((sin(phi))^2)/(2*((sin(phi))^2)+b*EbNolin(i)))*(-b/(2*((sin(phi))^2)))),  phi = 0..pi/2)];

エラーは??? エラー: ファイル: m_qam_ray2.m 行: 22 列: 108 等号の左側の式は、代入の有効なターゲットではありません。

そして、それが私のループがプログラムされていないためなのか、それとも積分が原因なのかはわかりません。

誰かが助けてくれたらとてもありがたいです。

ありがとう :)

4

0 に答える 0