📄 alamouti.m
字号:
clc;
clear all;
close all;
N=1000;
a=(2*randint(1,N)-1)+j*(2*randint(1,N)-1);
%defining the two symbols
s0=a(1:2:N);
s1=a(2:2:N);
%defining the channel as iid rayleigh
h0=randn(1,N/2)+j*randn(1,N/2);
h1=randn(1,N/2)+j*randn(1,N/2);
a0=h0.*s0+h1.*s1;
a1=-h0.*conj(s1)+h1.*conj(s0);
for snr=1:25
r0=awgn(a0,snr,'measured');
r1=awgn(a1,snr,'measured');
%the combining scheme
s0n=conj(h0).*r0+h1.*conj(r1);
s1n=conj(h1).*r0-h0.*conj(r1);
% thresholding
re0=real(s0n);
im0=imag(s0n);
re0(real(s0n)>0)=1;
re0(real(s0n)<=0)=-1;
im0(imag(s0n)>0)=1;
im0(imag(s0n)<=0)=-1;
re1=real(s1n);
im1=imag(s1n);
re1(real(s1n)>0)=1;
re1(real(s1n)<=0)=-1;
im1(imag(s1n)>0)=1;
im1(imag(s1n)<=0)=-1;
s0n=re0+j*im0;
s1n=re1+j*im1;
x=0;
% reconstruction
for k=1:N/2
x(2*k-1)=s0n(k);
x(2*k) = s1n(k);
end
% error calculation
err=sum((x)~=a);
ber(snr)=err/N;
end
figure,semilogy(ber,'r');
xlabel('SNR in dB'),ylabel('BER');
title('Probability of bit error for QAM signal');
grid on;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -