Project: Simulation of a combined STBC(space time block codes)? and CDMA system using matlab version 6.0. I want a code for a CDMA system instead of the TDMA used in my initial codes. any changes to initial codes must be explained by small statements The STBC codes are from alamoutis papers. For aNy other queries pls ask. The codes for Combined STBC and TDMA can be provided.
## Deliverables
%###########
% 2 Tr Antenna by 1 Rx Antenna, STBC case(Alamouti's Scheme)
%###########
clear all;
MeanFadePower=-8 ; %(In dB)
PathGain=sqrt(10^(MeanFadePower/10));
Rep_No=1000;
step=1;
for SNR_dB=0:2:22
SNR(step)=10^(SNR_dB/10);
M.data=rand(1,1000)>0.5;
for repetition=1:Rep_No
[login to view URL] = 20000; % carrier frequency
[login to view URL] = 1500000; % sampling frequency
i=sqrt(-1);
h0 = =bs(PathGain*(1/sqrt(2))*(randn(size([login to view URL]))+i*randn(size([login to view URL]))));
h1 = =bs(PathGain*(1/sqrt(2))*(randn(size([login to view URL]))+i*randn(size([login to view URL]))));
k = 1;
n = 1;
while k<= length([login to view URL])
%### Binary into DPSK ###
if [login to view URL](k) == 1
s0 = 1;
elseif [login to view URL](k) == 0
s0 = -1;
end
if [login to view URL](k+1) == 1
s1 = 1;
elseif [login to view URL](k+1) == 0
s1 = -1;
end
%### Encoded symbols ###
ant0_cyc1 = s0;
ant1_cyc1 = s1;
ant0_cyc2 = -conj(s1);
ant1_cyc2 = conj(s0);
%### Upsample ###
samp_per_sym = [login to view URL];
up_a0c1 = ones(1,samp_per_sym)*ant0_cyc1;
up_a1c1 = ones(1,samp_per_sym)*ant1_cyc1;
up_a0c2 = ones(1,samp_per_sym)*ant0_cyc2;
up_a1c2 = ones(1,samp_per_sym)*ant1_cyc2;
%### Modulate ###
Tmax = 1/[login to view URL];
dt = Tmax/samp_per_sym;
time = [0:dt:Tmax-dt];
wc = 2*pi*[login to view URL];
c = cos(wc*time);
mup_a0c1 = up_a0c1.*c;
mup_a1c1 = up_a1c1.*c;
mup_a0c2 = up_a0c2.*c;
mup_a1c2 = up_a1c2.*c;
%### Transmission Stream ###
%# Tx-ant0 #
Tx0(1:samp_per_sym) = mup_a0c1;
Tx0(1+samp_per_sym:2*samp_per_sym) = mup_a0c2;
%# Tx-ant1 #
Tx1(1:samp_per_sym) = mup_a1c1;
Tx1(1+samp_per_sym:2*samp_per_sym) = mup_a1c2;
%### Power recticication ###
Tx0 = (1/sqrt(2))*Tx0;
Tx1 = (1/sqrt(2))*Tx1;
%### Channel Effects ###
ch0_a0a0= Tx0*h0(n);
ch1_a1a0= Tx1*h1(n);
% ### RECEIVER ARRAY ###
rx0 = ch0_a0a0+ch1_a1a0;
r0 = rx0(1:75);
r1 = rx0(76:150);
%### Noise at receiver ###
Noise_Factor=1/(sqrt(SNR(step)));
SigPow=1; %std(Tx0)+std(Tx1);
Noise_var=SigPow*Noise_Factor;
noise_ant0 = Noise_var*randn(size(rx0));
% For COMPLEX NOISE
%i=sqrt(-1);
%noise_ant0 = =1/sqrt(2))*Noise_var*(randn(size(rx0))+i*randn(size(rx0)));
n0 = noise_ant0(1:samp_per_sym);
n1 = noise_ant0(1+samp_per_sym:2*samp_per_sym);
r0 = r0+n0;
r1 = r1+n1;
%### Demodulated signals ###
Tmax = 1/[login to view URL];
dt = Tmax/samp_per_sym;
time = [0:dt:Tmax-dt];
wc = 2*pi*[login to view URL];
c = sin(wc*time);
r0 = r0.*c;
r1 = r1.*c;
%### Combiner ###
s0bar= h0(n)*r0+h1(n)*r1;
s1bar= h1(n)*r0-h0(n)*r1;
sum_s0 = =um(s0bar(1:19))-sum(s0bar(20:38))+sum(s0bar(39:57))-sum(s0bar(58:75));
sum_s1 = =um(s1bar(1:19))-sum(s1bar(20:38))+sum(s1bar(39:57))-sum(s1bar(58:75));
s0bar=sum_s0/75;
s1bar=sum_s1/75;
%### Maximum likelihood detection ###
si = 1;
sk =-1;
d2_s0bar_si =(s0bar-si)*(conj(s0bar)-conj(si));
d2_s0bar_sk =(s0bar-sk)*(conj(s0bar)-conj(sk));
if d2_s0bar_si <= d2_s0bar_sk
s0hat= si;
else s0hat = sk;
end
%choose si iff
%d^2(s1bar,si)<=d^2(s1bar,sk)
%where d^2(x,y)=(x-y)(x*-y*)
d2_s1bar_si =(s1bar-si)*(conj(s1bar)-conj(si));
d2_s1bar_sk =(s1bar-sk)*(conj(s1bar)-conj(sk));
if d2_s1bar_si <= d2_s1bar_sk
s1hat= si;
else s1hat = sk;
end
rsym=[s0hat,s1hat];
%### DPSK to Binary ###
if rsym(1) == 1
r_s0 = 1;
else r_s0 = 0;
end
if rsym(2) == 1
r_s1 = 1;
else r_s1 = 0;
end
rdata(k:k+1)= [r_s0,r_s1];
k = k+2;
n = n+1;
end
No_errors=find(xor(rdata,[login to view URL]));
BER(step,repetition)=size(No_errors)/size([login to view URL]);
end
SNR_VALUE(step)=SNR_dB;
BER_avg(step)=mean(BER(step,1:Rep_No));
clear [login to view URL];
step=step+1;
end
semilogy(SNR_VALUE,BER_avg,'r*:');
%title('BER Vs. EbNo(SNR) for 2 Tr Antenna by 1 Rx Antenna, STBC =ase(Alamouti''s Scheme)with BPSK modulation')
%xlabel('EbNo(SNR) In dB');
%ylabel('BER (In Log Scale)');
## Platform
The program is to be simulated in matlab 6.0 and the time for simulation should be known thank you