📄 run_no_awgn.m
字号:
%---------------------------------------------------------------
% 20070101 simulation para records without AWGN
%---------------------------------------------------------------
m_transmitter = 4; %
n_receiver = 8; %
fir_len = 1;
QAM_bit = 2;
N_point_FFT = 4;
symbol_block_K = 25;
SNR_dB = 10;
chan_h = firChannel(m_transmitter, n_receiver, fir_len);
channel_H = gen_freq_H(chan_h, N_point_FFT);
R_HH = channel_H * channel_H';
S = transmitter(m_transmitter, QAM_bit, N_point_FFT, symbol_block_K);
%----------------------------step 1--------------start--------------
Y = S * channel_H;
%Y = awgn(Y_H,(SNR_dB + 10*log10(QAM_bit)),'measured'); % jie shou xin hao Y
A = diag(gen_tag(m_transmitter, N_point_FFT));
Z = S * A * channel_H;
%Z = awgn(Z_H,(SNR_dB + 10*log10(QAM_bit)),'measured'); % jie shou xin hao Z
R_YY = Y * Y'; % jie shou xin hao Y zi xiang guan
R_ZY = Z * Y'; % jie shou xin hao Y & Z hu xiang guan
%----------------------------step 1----------------end------------
%----------------------------step 2-------------------------------
[VV, DD] = eig(R_YY); % R_YY * V = V * D
mu = diag(DD)';
% step 3
sigma2 = sum(mu(m_transmitter * N_point_FFT + 1 : symbol_block_K))/...
(symbol_block_K - m_transmitter * N_point_FFT);
% step 4
R_YY0_P = 0;
for index = 1 : (m_transmitter * N_point_FFT)
temp = (mu(index) - sigma2)^(-1) * VV(:,index) * VV(:,index)';
R_YY0_P = R_YY0_P + temp;
end;
R = R_ZY * R_YY0_P;
[V_R, D_R] = eig(R);
mu_R = diag(D_R);
% K*K K*K K*K MG*MG
reslut = R * V_R - V_R * D_R
% for index = 1:symbol_block_K
% if (abs(real(D_R(index,index))) > 10^(-10) | abs(imag(D_R(index,index))) > 10^(-10))
% angle_A(1,index) = angle(D_R(index,index))/pi;
% else
% angle_A(1,index) = 0;
% end;
%
% end
for index = 1:symbol_block_K
if abs(D_R(index,index)) > 10^(-10)
angle_A2(1,index) = angle(D_R(index,index))/pi;
else
angle_A2(1,index) = 0;
end;
end
angle_A2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -