?? dcm_qpsk_mapping_psdu.asv
字號:
function [out]=Dcm_qpsk_mapping_psdu(datain,length,rate);
if(isequal(rate,[0 0 0 0 0])|isequal(rate,[0 0 0 0 1])|isequal(rate,[0 0 0 1 0])|isequal(rate,[0 0 0 1 1])|isequal(rate,[0 0 1 0 0]))
for i=1:(length/2)
temp(i)=1/sqrt(2)*(2*datain((i-1)*2+1)-1+j*(2*datain((i-1)*2+2)-1));
end
elseif(isequal(rate,[0 0 1 0 1])|isequal(rate,[0 0 1 1 0])|isequal(rate,[0 0 1 1 1]))
for i=1:(length/200)
for k=1:25
test((i-1)*50+k,1)=1/sqrt(10)*datain((i-1)*200+2*(k-1)+1);
test((i-1)*50+k,2)=1/sqrt(10)*datain((i-1)*200+2*(k-1)+2);
test((i-1)*50+k,3)=1/sqrt(10)*datain((i-1)*200+2*(k-1)+50+1);
test((i-1)*50+k,4)=1/sqrt(10)*datain((i-1)*200+2*(k-1)+50+2);
end
for k=26:50
test((i-1)*50+k,1)=1/sqrt(10)*datain((i-1)*200+2*(k-1)+50+1);
test((i-1)*50+k,2)=1/sqrt(10)*datain((i-1)*200+2*(k-1)+50+2);
test((i-1)*50+k,3)=1/sqrt(10)*datain((i-1)*200+2*(k-1)+100+1);
test((i-1)*50+k,4)=1/sqrt(10)*datain((i-1)*200+2*(k-1)+100+2);
end
end
for i=1:(length/200)
for k=1:50
if(isequal(test((i-1)*50+k,1:4),[0 0 0 0])
temp((i-1)*100+k)=1/sqrt(10)*(-3-j*3);
temp((i-1)*100+k+50)=1/sqrt(10)*(1+j);
elseif(isequal(test((i-1)*50+k,1:4),[0 0 0 1])
temp((i-1)*100+k)=1/sqrt(10)*(-3-j);
temp((i-1)*100+k+50)=1/sqrt(10)*(1-j*3);
elseif(isequal(test((i-1)*50+k,1:4),[0 0 1 0])
temp((i-1)*100+k)=1/sqrt(10)*(-3+j);
temp((i-1)*100+k+50)=1/sqrt(10)*(1+j*3);
elseif(isequal(test((i-1)*50+k,1:4),[0 0 1 1])
temp((i-1)*100+k)=1/sqrt(10)*(-3+j*3);
temp((i-1)*100+k+50)=1/sqrt(10)*(1-j);
elseif(isequal(test((i-1)*50+k,1:4),[0 1 0 0])
temp((i-1)*100+k)=1/sqrt(10)*(-1-j*3);
temp((i-1)*100+k+50)=1/sqrt(10)*(-3+j);
elseif(isequal(test((i-1)*50+k,1:4),[0 1 0 1])
temp((i-1)*100+k)=1/sqrt(10)*(-1-j);
temp((i-1)*100+k+50)=1/sqrt(10)*(-3-j*3);
elseif(isequal(test((i-1)*50+k,1:4),[0 1 1 0])
temp((i-1)*100+k)=1/sqrt(10)*(-1+j);
temp((i-1)*100+k+50)=1/sqrt(10)*(-3+j*3);
elseif(isequal(test((i-1)*50+k,1:4),[0 0 0 1])
temp((i-1)*100+k)=1/sqrt(10)*(-1+j*3);
temp((i-1)*100+k+50)=1/sqrt(10)*(-3-j);
elseif(isequal(test((i-1)*50+k,1:4),[0 0 0 1])
temp((i-1)*100+k)=1/sqrt(10)*(1-j*3);
temp((i-1)*100+k+50)=1/sqrt(10)*(3+j);
elseif(isequal(test((i-1)*50+k,1:4),[0 0 0 1])
temp((i-1)*100+k)=1/sqrt(10)*(1-j);
temp((i-1)*100+k+50)=1/sqrt(10)*(3-j*3);
elseif(isequal(test((i-1)*50+k,1:4),[0 0 0 1])
temp((i-1)*100+k)=1/sqrt(10)*(1+j);
temp((i-1)*100+k+50)=1/sqrt(10)*(3+j*3);
elseif(isequal(test((i-1)*50+k,1:4),[0 0 0 1])
temp((i-1)*100+k)=1/sqrt(10)*(1+j*3);
temp((i-1)*100+k+50)=1/sqrt(10)*(3-j);
elseif(isequal(test((i-1)*50+k,1:4),[0 0 0 1])
temp((i-1)*100+k)=1/sqrt(10)*(3-j*3);
temp((i-1)*100+k+50)=1/sqrt(10)*(-1+j);
elseif(isequal(test((i-1)*50+k,1:4),[0 0 0 1])
temp((i-1)*100+k)=1/sqrt(10)*(3-j);
temp((i-1)*100+k+50)=1/sqrt(10)*(-1-j*3);
elseif(isequal(test((i-1)*50+k,1:4),[0 0 0 1])
temp((i-1)*100+k)=1/sqrt(10)*(3+j);
temp((i-1)*100+k+50)=1/sqrt(10)*(-1+j*3);
elseif(isequal(test((i-1)*50+k,1:4),[0 0 0 1])
temp((i-1)*100+k)=1/sqrt(10)*(3+j*3);
temp((i-1)*100+k+50)=1/sqrt(10)*(-1-j);
end
end
end
end
out=temp;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -