📄 src1xnr.m
字号:
% M file for MRRC 1xNr and Alamouti 2xNr
function ber_m1_SRC1xNr=SRC1xNr(snr,Nr)
% soglia=1;
% rad=5;
% Nr=2;
% Ns=100;
% wdd=3;
% snr=30;
Nt=1;
Nr=Nr;
no_bit_sym=1;
no_it_x_SNR=10000;
%iter=0;
tot_err_m1=0;
% while tot_err_m1<soglia
% iter=iter+1;
for i=1:no_it_x_SNR
%DATA
X=(2*round(rand(Nt,1))-1);
%Channel
H=rey(Nr,Nt); % or H=Scat(Nt,Nr);
%Noise
sig=sqrt(0.5/(10^(snr/10)));
n=sig*(randn(Nr,Nt)+j*randn(Nr,Nt));
%Received Signal
R=H*X+n;
%Combiner
s0=0;
[sceltal,posizione1]=max(abs(H));
s0=conj(H(posizione1,1))*R(posizione1,1);
% if(abs(R(1,1))>abs(R(2,1)))
% s0=conj(H(1,1))*R(1,1);
% else
% s0=conj(H(2,1))*R(2,1);
% end
% for n=1:Nr
% s0=conj(H(n,1))*R(n,1)+s0;
% end
% if(real(s0)>0)
% decoded=1;
% else
% decoded=-1;
% end
S=[s0];
dh=sqrt(2)*[1 -1]/2;
d11=((dh(1)-real(S(1)))^2+(imag(S(1)))^2);
d12=((dh(2)-real(S(1)))^2+(imag(S(1)))^2);
D1=[d11 d12];
for k=1:2
X1_dec(k)=((abs(dh(k)))^2)*sum(sum((abs(H)).^2)-1)+D1(k);
end
%Decision
[sceltal,posizione1]=min(X1_dec);
decoded=[dh(posizione1)];
err_m1=sum(round(X')~=round(decoded));
tot_err_m1=err_m1+tot_err_m1;
end
%end
ber_m1_SRC1xNr=tot_err_m1/(no_it_x_SNR)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -