wyldgg
Newbie level 1
stbc matlab
hi! every one
I am a graduate student,just now I write some matlab code about ZF multiuser detection in stbc-ofdm .but when I finished the stbc code, the signal shoud go through the multi-antenna.my code is:
clear;
k=2;%user number
Nt=4; transmit antenna
Nr=2; receive antenna
M=1280;%bits
co_time=10;
carrier_count=128; %sub-carriers
Eb_N0_dB = [0:9]; %symbols/carriers
Frame=M/carrier_count;
cp_length=carrier_count/4;
addprefix_length=carrier_count+cp_length;
signal=rand(k,M)>0.5;
M_signal=2*signal-1;% BPSK modulation 0 -> -1; 1 -> 0
user1sigpara,=reshape(M_signal(1,,carrier_count,Frame);
user2sigpara,=reshape(M_signal(2,,carrier_count,Frame);
user1send1,1:2:Frame)=user1sigpara,1:2:Frame);%stbc code
user1send1,2:2:Frame)=-conj(user1sigpara,2:2:Frame));
user1send2,1:2:Frame)=user1sigpara,2:2:Frame);
user1send2,2:2:Frame)=conj(user1sigpara,1:2:Frame));
user2send1,1:2:Frame)=user2sigpara,1:2:Frame);
user2send1,2:2:Frame)=-conj(user2sigpara,2:2:Frame));
user2send2,1:2:Frame)=user2sigpara,2:2:Frame);
user2send2,2:2:Frame)=conj(user2sigpara,1:2:Frame));
user1signal_1=ifft(user1send1); %ifft
user1signal_2=ifft(user1send2);
user2signal_1=ifft(user2send1);
user2signal_2=ifft(user2send2);
user1signal_1cp=[user1signal_1(carrier_count-cp_length+1:carrier_count,;user1signal_1];
user1signal_2cp=[user1signal_2(carrier_count-cp_length+1:carrier_count,;user1signal_2];
user2signal_1cp=[user2signal_1(carrier_count-cp_length+1:carrier_count,;user2signal_1];
user2signal_2cp=[user2signal_2(carrier_count-cp_length+1:carrier_count,;user2signal_2];
user1signal_1chuan,=reshape(user1signal_1cp,,1,addprefix_length*Frame);
user1signal_2chuan,=reshape(user1signal_2cp,,1,addprefix_length*Frame);
user2signal_1chuan,=reshape(user2signal_1cp,,1,addprefix_length*Frame);
user2signal_2chuan,=reshape(user2signal_2cp,,1,addprefix_length*Frame);
but just now ,Idon't know how to write the multipath Rayleigh channel and how to get the received signal .please give some advice.thank you!
hi! every one
I am a graduate student,just now I write some matlab code about ZF multiuser detection in stbc-ofdm .but when I finished the stbc code, the signal shoud go through the multi-antenna.my code is:
clear;
k=2;%user number
Nt=4; transmit antenna
Nr=2; receive antenna
M=1280;%bits
co_time=10;
carrier_count=128; %sub-carriers
Eb_N0_dB = [0:9]; %symbols/carriers
Frame=M/carrier_count;
cp_length=carrier_count/4;
addprefix_length=carrier_count+cp_length;
signal=rand(k,M)>0.5;
M_signal=2*signal-1;% BPSK modulation 0 -> -1; 1 -> 0
user1sigpara,=reshape(M_signal(1,,carrier_count,Frame);
user2sigpara,=reshape(M_signal(2,,carrier_count,Frame);
user1send1,1:2:Frame)=user1sigpara,1:2:Frame);%stbc code
user1send1,2:2:Frame)=-conj(user1sigpara,2:2:Frame));
user1send2,1:2:Frame)=user1sigpara,2:2:Frame);
user1send2,2:2:Frame)=conj(user1sigpara,1:2:Frame));
user2send1,1:2:Frame)=user2sigpara,1:2:Frame);
user2send1,2:2:Frame)=-conj(user2sigpara,2:2:Frame));
user2send2,1:2:Frame)=user2sigpara,2:2:Frame);
user2send2,2:2:Frame)=conj(user2sigpara,1:2:Frame));
user1signal_1=ifft(user1send1); %ifft
user1signal_2=ifft(user1send2);
user2signal_1=ifft(user2send1);
user2signal_2=ifft(user2send2);
user1signal_1cp=[user1signal_1(carrier_count-cp_length+1:carrier_count,;user1signal_1];
user1signal_2cp=[user1signal_2(carrier_count-cp_length+1:carrier_count,;user1signal_2];
user2signal_1cp=[user2signal_1(carrier_count-cp_length+1:carrier_count,;user2signal_1];
user2signal_2cp=[user2signal_2(carrier_count-cp_length+1:carrier_count,;user2signal_2];
user1signal_1chuan,=reshape(user1signal_1cp,,1,addprefix_length*Frame);
user1signal_2chuan,=reshape(user1signal_2cp,,1,addprefix_length*Frame);
user2signal_1chuan,=reshape(user2signal_1cp,,1,addprefix_length*Frame);
user2signal_2chuan,=reshape(user2signal_2cp,,1,addprefix_length*Frame);
but just now ,Idon't know how to write the multipath Rayleigh channel and how to get the received signal .please give some advice.thank you!