⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myresult.m

📁 Woven码在TD-SCDMA中的应用仿真程序
💻 M
字号:
clear all;

set_sim_consts;
global sim_consts;

error = 0 ;
max = 1 ;
for sim_num = 1:max
    sim_num

    sim_consts.gu = zeros(8,4);

    
m=2;ka=8;N=44;w=4;Q=16;
%m refer to the number of user  
snr=-1;
y=N*Q+w-1;

hsig.ka(1,:) =  Rayleigh_Doppler_multiPath(2000,120,0,0.000675,0.00000078125,1.28,[0,781,1563,2344],[0,-3,-6,-9]);
hsig.ka(2,:) =  Rayleigh_Doppler_multiPath(2000,120,0,0.000675,0.00000078125,1.28,[0,781,1563,2344],[0,-3,-6,-9]);
hsig.ka(3,:) =  Rayleigh_Doppler_multiPath(2000,120,0,0.000675,0.00000078125,1.28,[0,781,1563,2344],[0,-3,-6,-9]);
hsig.ka(4,:) =  Rayleigh_Doppler_multiPath(2000,120,0,0.000675,0.00000078125,1.28,[0,781,1563,2344],[0,-3,-6,-9]);
hsig.ka(5,:) =  Rayleigh_Doppler_multiPath(2000,120,0,0.000675,0.00000078125,1.28,[0,781,1563,2344],[0,-3,-6,-9]);
hsig.ka(6,:) =  Rayleigh_Doppler_multiPath(2000,120,0,0.000675,0.00000078125,1.28,[0,781,1563,2344],[0,-3,-6,-9]);
hsig.ka(7,:) =  Rayleigh_Doppler_multiPath(2000,120,0,0.000675,0.00000078125,1.28,[0,781,1563,2344],[0,-3,-6,-9]);
hsig.ka(8,:) =  Rayleigh_Doppler_multiPath(2000,120,0,0.000675,0.00000078125,1.28,[0,781,1563,2344],[0,-3,-6,-9]);


% s=send_series;
s1 = 2*randint(44,1)-1 + i * (2*randint(44,1)-1);
s2 = 2*randint(44,1)-1 + i * (2*randint(44,1)-1);

sp1 = s1*ovsf(1);
sp2 = s2*ovsf(2);

sp = zeros(22,16);
sp = sp1 + sp2 ;
for kk = 1:14
    ddss = 2*randint(44,1)-1 + i * (2*randint(44,1)-1) ;
    sp = sp + ddss*ovsf(kk+2);
end

send = zeros(864,1);
for idx = 1:22
   send((idx-1)*16+1:idx*16) = sp(idx,:);
end
for idx = 23:44
   send((idx-23)*16+1+496:(idx-22)*16+496) = sp(idx,:);
end
send(353:480)    = 2*midamble_1;


for idx = 1:8
    t(idx,:) = send'.*abs(hsig.ka(idx,:));
    power=0;
    for i=1:864
        tempp=t(idx, i);
        power=power+tempp*tempp';
    end;
    power_s = power/864;
    tempp=10^(snr/10);
    sigma=sqrt(power_s/tempp);
    t(idx,:) = t(idx,:) + normrnd(0,sigma,1,864) + j*normrnd(0,sigma,1,864);
end

for idx = 1:8
    rm(idx,:) = t(idx,353:483);
end


ry1 = zeros(8,355);
for idx = 1:8
    ry1(idx,:)=t(idx,1:355);
end
y1 = [ry1(1,:) ry1(2,:) ry1(3,:) ry1(4,:) ry1(5,:) ry1(6,:) ry1(7,:) ry1(8,:) ]';


ry2 = zeros(8,355);
for idx = 1:8
    ry2(idx,:)=t(idx,497:851);
end
y2 = [ry2(1,:) ry2(2,:) ry2(3,:) ry2(4,:) ry2(5,:) ry2(6,:) ry2(7,:) ry2(8,:) ]';


a_1 = a_mid_1;
b_1 = inv(a_1'*a_1)*a_1';


for idx = 1:8
    sim_consts.gu(idx,:)=(b_1*rm(idx,:)')';
end


a= A_gen_1;
h=a'*a;
digh=diag(diag(h));
dighinv=inv(digh);
mt=chol(h);
hinv=inv(mt);
htinv=inv(mt');
s_zf1=hinv*htinv*digh*dighinv*a'*y1;
s_zf2=hinv*htinv*digh*dighinv*a'*y2;

rs1 = zeros(44,1);
rs2 = zeros(44,1);
for i = 1:22
    rs1(i) = s_zf1(2*i-1);
    rs1(i+22) = s_zf2(2*i-1);
    rs2(i) = s_zf1(2*i);
    rs2(i+22) = s_zf2(2*i);
end

rs1 = 2*(real(rs1)>0)-1 + j*(2*(imag(rs1)>0)-1);
rs2 = 2*(real(rs2)>0)-1 + j*(2*(imag(rs2)>0)-1);

error1 = sum((rs1-s1)~=0) + sum((rs2-s2)~= 0)
error = error1 + error ;

clear m ka N w Q snr y hsig sp1 sp2 sp send sigma idx ...
    t rm ry1 ry2 a_1 b_1 a h digh dighinv mt hinv htinv s_zf1...
    rs1 rs2 ddss i kk power power_s s1 s2 x y1 y2 s_zf2 tempp ;

end

error/(88*max)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -