├── README.md ├── iterative_phi1.m ├── iterative_multi_3user.m ├── iterative_mobini5_multi_ber.m ├── iterative_mobini_singleuser.m ├── iterative_pow_vs_ber_single.m ├── iterative_pow_vs_ber_multi.m ├── iterative_8_user_increase.m ├── iterative6_single_multi_beta.m ├── iterative7_multi_p.m └── iterative_9_group_increase.m /README.md: -------------------------------------------------------------------------------- 1 | # Power-allocation-for-multi-user-OFDM-DCSK-system-in-frequency-selective-fading-channel 2 | This project is related to the paper: "Power allocation for multi-user OFDM-DCSK system in frequency selective fading channel", Majid Mobini, M.Reza Zahabi, Physical Communication, 24, (2017), pp. 146–153. available online at: https://www.sciencedirect.com/science/article/pii/S1874490717301088 3 | In this paper, we introduce a grouping approach for power allocation in the multi-user OFDM-DCSK (MU-OFDM-DCSK) system under the frequency selective fading channels. The suggested procedure is convenient also for the other comb-type non-coherent schemes with similar structure. Furthermore, we derive analytical bit error rate (BER) expression for the grouped scheme and offer an optimal power distribution policy for both the single- and multi-user scenarios. This power assignment strategy is formulated by a min–max problem with the target of the worst group BER minimization incorporating total power and interference constraints. Simulation results confirm the advantages of the proposed power allocation scheme. 4 | -------------------------------------------------------------------------------- /iterative_phi1.m: -------------------------------------------------------------------------------- 1 | clear all 2 | ebn0=[0:10:30];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 3 | for j=1:4 4 | rr=[]; 5 | 6 | it=1; 7 | Ts =.1; 8 | for k=1:it 9 | cvx_begin gp 10 | m=21;B=40;np=1; 11 | ebd= 10*log10((B*5)/m) ; 12 | eb=10^(.1*ebd); 13 | ebn0ad=10^(.1*ebn0(j)); 14 | n0=(eb/ebn0ad); 15 | 16 | alpha=[.75;.85;1.3]; 17 | y=3*(alpha.^2); 18 | variables t p(3) 19 | minimize(t) 20 | subject to 21 | ((((m*p)+1).*(p+1))./(((m)*p.*y)*(eb/n0)))+((B*(((m*p)+1).^2)))./(2*((m).^2)*p.*(y.^2)*((eb/n0).^2))<=t 22 | sum(p)<=(2/21); 23 | p>[0; 0; 0]; 24 | cvx_end 25 | 26 | y=y'; 27 | p1=p'; 28 | for i=1:3 29 | kk1(i)=((p1(i)+1)*((m*p1(i))+1))/((p1(i))*((m)*y(i)*(eb/n0))); 30 | kk2(i)=(B*(((m*p1(i))+1)^2))/(2*((m)^2)*(p1(i))*(y(i)^2)*((eb/n0)^2)); 31 | kroshe(i)=kk1(i)+kk2(i); 32 | % parantez(i)=(1/(sqrt(kroshe(i)))); 33 | % ber1(i)=(.5)*erfc(parantez(i)); 34 | end 35 | berg1=kroshe(1); 36 | berg2=kroshe(2); 37 | berg3=kroshe(3); 38 | v1=[v1 berg1]; 39 | v2=[v2 berg2]; 40 | v3=[v3 berg3]; 41 | % pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 42 | % pc=pc1*pc2*pc3; 43 | % avgber1=[avgber1 1-pc]; 44 | end 45 | 46 | end 47 | figure(1) 48 | semilogy(ebn0,v1,'-^r');hold on 49 | semilogy(ebn0,v2,'-^k');hold on 50 | semilogy(ebn0,v3,'-^b');hold on 51 | % semilogy(ebn0,avgber1,'-sb');hold on 52 | -------------------------------------------------------------------------------- /iterative_multi_3user.m: -------------------------------------------------------------------------------- 1 | clear all 2 | close all 3 | ebn0=[0:10:30];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 4 | for j=1:4 5 | rr=[]; 6 | it=1; 7 | Ts =.1; 8 | for k=1:it 9 | for gg=1:1 10 | cvx_begin gp 11 | m=19;B=40;np=3; 12 | ebd= 10*log10((B*50)/m) ; 13 | eb=10^(.1*ebd); 14 | ebn0ad=10^(.1*ebn0(j)); 15 | n0=2*(eb/ebn0ad); 16 | alpha=[.35;.95;1.4]; 17 | y=3*(alpha.^2); 18 | I=6*(alpha.^2); 19 | variables t p(3) 20 | minimize(t) 21 | subject to 22 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*p.*m.*(eb/n0))<=t; 23 | sum(p)<=(44/19); 24 | p>=[0; 0; 0]; 25 | cvx_end 26 | p1=p'; 27 | y=y'; 28 | for i=1:3 29 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 30 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 31 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 32 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(p1(i).*m.*(y(i).^2)*(eb/n0)); 33 | 34 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 35 | parantez(i)=(1/(sqrt(kroshe(i)))); 36 | ber(i)=(.5)*erfc(parantez(i)); 37 | end 38 | end 39 | 40 | berg1=ber(1); 41 | berg2=ber(2); 42 | berg3=ber(3); 43 | v1=[v1 berg1]; 44 | v2=[v2 berg2]; 45 | v3=[v3 berg3]; 46 | 47 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 48 | pc=pc1*pc2*pc3; 49 | avgber1=[avgber1 1-pc]; 50 | end 51 | 52 | end 53 | 54 | figure(1) 55 | semilogy(ebn0,v1,'-^r');hold on 56 | semilogy(ebn0,v2,'-^k');hold on 57 | semilogy(ebn0,v3,'-^b');hold on 58 | semilogy(ebn0,avgber1,'-sb');hold on 59 | 60 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 61 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 62 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 63 | ebn0=[0:10:30];v1=[];v2=[];v3=[];avgber2=[]; 64 | v4=[];v5=[];v6=[];terter2=[]; 65 | for j=1:4 66 | rr2=[]; 67 | for kk=1:it 68 | m=19;B=40;np=3; 69 | ebd= 10*log10((B*50)/m) ; 70 | eb2=10^(.1*ebd); 71 | ebn0ad=10^(.1*ebn0(j)); 72 | n0=2*(eb2/ebn0ad); 73 | p2=[50/(66) 50/(66) 50/(66)]; 74 | p0=p2; 75 | y=y'; 76 | for i=1:3 77 | k1(i)=((p2(i)+p0(i))*((m+np)*p2(i)))/((p2(i)*p0(i))*(m*y(i)*(eb2/n0))); 78 | k2(i)=(B*(((m+np)*p2(i))^2))/(2*(m^2)*(p2(i)*p0(i))*(y(i)^2)*((eb2/n0)^2)); 79 | k3(i)=((2*((m+np)*p2(i)).*I(i))./(m*eb2.*(y(i)))); 80 | k4(i)=(((m+np)*p2(i))*I(i)*(n0))./(p2(i).*m.*(y(i).^2)*(eb2/n0)); 81 | 82 | kroshe2(i)=k1(i)+k2(i)+k3(i)+k4(i); 83 | parantez2(i)=(1/(sqrt(kroshe2(i)))); 84 | ber2(i)=(.5)*erfc(parantez2(i)); 85 | 86 | end 87 | b1=ber2(1); 88 | b2=ber2(2); 89 | b3=ber2(3); 90 | v4=[v4 b1]; 91 | v5=[v5 b2]; 92 | v6=[v6 b3]; 93 | pc4=(1-b1);pc5=(1-b2);pc6=(1-b3); 94 | pc7=pc4*pc5*pc6; 95 | avgber2=[avgber2 1-pc7]; 96 | end 97 | end 98 | semilogy(ebn0,v4,'-*r');hold on 99 | semilogy(ebn0,v5,'-*k');hold on 100 | semilogy(ebn0,v6,'-*b');hold on 101 | grid on 102 | semilogy(ebn0, avgber2,'-or');hold on 103 | -------------------------------------------------------------------------------- /iterative_mobini5_multi_ber.m: -------------------------------------------------------------------------------- 1 | clear all 2 | ebn0=[0:10:30];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 3 | for j=1:4 4 | rr=[]; 5 | it=1; 6 | Ts =.1; 7 | for k=1:it 8 | for gg=1:1 9 | cvx_begin gp 10 | m=20;B=40;np=2; 11 | ebd= 10*log10((B*20)/m) ; 12 | eb=10^(.1*ebd); 13 | ebn0ad=10^(.1*ebn0(j)); 14 | n0=(eb/ebn0ad); 15 | alpha=[.75;.85;1.3]; 16 | y=3*(alpha.^2); 17 | I=3*(alpha.^2); 18 | variables t p(3) 19 | minimize(t) 20 | subject to 21 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 22 | sum(p)<=(14/20); 23 | p>[0; 0; 0]; 24 | cvx_end 25 | p1=p'; 26 | y=y'; 27 | for i=1:3 28 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 29 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 30 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 31 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 32 | 33 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 34 | parantez(i)=(1/(sqrt(kroshe(i)))); 35 | ber(i)=(.5)*erfc(parantez(i)); 36 | end 37 | end 38 | 39 | berg1=ber(1); 40 | berg2=ber(2); 41 | berg3=ber(3); 42 | v1=[v1 berg1]; 43 | v2=[v2 berg2]; 44 | v3=[v3 berg3]; 45 | 46 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 47 | pc=pc1*pc2*pc3; 48 | avgber1=[avgber1 1-pc]; 49 | end 50 | 51 | end 52 | 53 | figure(1) 54 | semilogy(ebn0,v1,'-^r');hold on 55 | semilogy(ebn0,v2,'-^k');hold on 56 | semilogy(ebn0,v3,'-^b');hold on 57 | semilogy(ebn0,avgber1,'-sb');hold on 58 | 59 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 60 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 61 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 62 | ebn0=[0:10:30];v1=[];v2=[];v3=[];avgber2=[]; 63 | v4=[];v5=[];v6=[];terter2=[]; 64 | for j=1:4 65 | rr2=[]; 66 | for kk=1:it 67 | m=20;B=40;np=2; 68 | ebd= 10*log10((B*20)/m) ; 69 | eb2=10^(.1*ebd); 70 | ebn0ad=10^(.1*ebn0(j)); 71 | n0=(eb2/ebn0ad); 72 | p2=[14/(60) 14/(60) 14/(60)]; 73 | p0=[1 1 1]; 74 | y=y'; 75 | for i=1:3 76 | k1(i)=((p2(i)+p0(i))*((m*p2(i))+np))/((p2(i)*p0(i))*(m*y(i)*(eb2/n0))); 77 | k2(i)=(B*(((m*p2(i))+np)^2))/(2*(m^2)*(p2(i)*p0(i))*(y(i)^2)*((eb2/n0)^2)); 78 | k3(i)=((2*((m*p2(i))+np).*I(i))./(m*eb2.*(y(i)))); 79 | k4(i)=(((m*p2(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb2/n0)); 80 | 81 | kroshe2(i)=k1(i)+k2(i)+k3(i)+k4(i); 82 | parantez2(i)=(1/(sqrt(kroshe2(i)))); 83 | ber2(i)=(.5)*erfc(parantez2(i)); 84 | 85 | end 86 | b1=ber2(1); 87 | b2=ber2(2); 88 | b3=ber2(3); 89 | v4=[v4 b1]; 90 | v5=[v5 b2]; 91 | v6=[v6 b3]; 92 | pc4=(1-b1);pc5=(1-b2);pc6=(1-b3); 93 | pc7=pc4*pc5*pc6; 94 | avgber2=[avgber2 1-pc7]; 95 | end 96 | end 97 | semilogy(ebn0,v4,'-*r');hold on 98 | semilogy(ebn0,v5,'-*k');hold on 99 | semilogy(ebn0,v6,'-*b');hold on 100 | grid on 101 | semilogy(ebn0, avgber2,'-or');hold on 102 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 103 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 104 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 105 | -------------------------------------------------------------------------------- /iterative_mobini_singleuser.m: -------------------------------------------------------------------------------- 1 | % clear all 2 | tic 3 | ebn0=0;v1=[];v2=[];v3=[];terter=[];avgber1=[];power=[]; 4 | for j=1:1 5 | rr=[]; 6 | 7 | it=1; 8 | Ts =.1; 9 | for k=1:it 10 | cvx_begin gp quiet 11 | m=21;B=40;np=1; 12 | ebd= 10*log10((B*10)/m) ; 13 | eb=10^(.1*ebd); 14 | ebn0ad=10^(.1*ebn0(j)); 15 | n0=(eb/ebn0ad); 16 | alpha=[.75;.85;1.3]; 17 | y=3*(alpha.^2); 18 | variables t p(3) 19 | dual variables landa1 landa2 landa3 miu z 20 | minimize(t) 21 | subject to 22 | landa1:(p(1)*inv_pos(y(1)*(eb/n0)))+(inv_pos(y(1)*(eb/n0)))+(inv_pos(m*y(1)*(eb/n0)))+(inv_pos(m*p(1).*y(1)*(eb/n0)))+((B*p(1).*inv_pos(2*(y(1).^2)*((eb/n0)^2))))+(B*inv_pos(m*(y(1).^2)*((eb/n0)^2)))+(B*inv_pos(2*(m^2)*p(1).*(y(1).^2)*((eb/n0)^2)))<=t 23 | landa2:(p(2)*inv_pos(y(2)*(eb/n0)))+(inv_pos(y(2)*(eb/n0)))+(inv_pos(m*y(2)*(eb/n0)))+(inv_pos(m*p(2).*y(2)*(eb/n0)))+((B*p(2).*inv_pos(2*(y(2).^2)*((eb/n0)^2))))+(B*inv_pos(m*(y(2).^2)*((eb/n0)^2)))+(B*inv_pos(2*(m^2)*p(2).*(y(2).^2)*((eb/n0)^2)))<=t 24 | landa3:(p(3)*inv_pos(y(3)*(eb/n0)))+(inv_pos(y(3)*(eb/n0)))+(inv_pos(m*y(3)*(eb/n0)))+(inv_pos(m*p(3).*y(3)*(eb/n0)))+((B*p(3).*inv_pos(2*(y(3).^2)*((eb/n0)^2))))+(B*inv_pos(m*(y(3).^2)*((eb/n0)^2)))+(B*inv_pos(2*(m^2)*p(3).*(y(3).^2)*((eb/n0)^2)))<=t 25 | miu:sum(p)<=(7/21); 26 | 27 | p>[0; 0; 0]; 28 | cvx_end 29 | 30 | y=y'; 31 | p1=p'; 32 | for i=1:3 33 | kk1(i)=((p1(i)+1)*((m*p1(i))+1))/((p1(i))*((m)*y(i)*(eb/n0))); 34 | kk2(i)=(B*(((m*p1(i))+1)^2))/(2*((m)^2)*(p1(i))*(y(i)^2)*((eb/n0)^2)); 35 | kroshe(i)=kk1(i)+kk2(i); 36 | parantez(i)=(1/(sqrt(kroshe(i)))); 37 | ber1(i)=(.5)*erfc(parantez(i)); 38 | end 39 | 40 | toc 41 | berg1=ber1(1); 42 | berg2=ber1(2); 43 | berg3=ber1(3); 44 | v1=[v1 berg1]; 45 | v2=[v2 berg2]; 46 | v3=[v3 berg3]; 47 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 48 | pc=pc1*pc2*pc3; 49 | avgber1=[avgber1 1-pc]; 50 | power=[power p]; 51 | end 52 | 53 | end 54 | figure(1) 55 | semilogy(ebn0,v1,'-^r');hold on 56 | semilogy(ebn0,v2,'-^k');hold on 57 | semilogy(ebn0,v3,'-^b');hold on 58 | semilogy(ebn0,avgber1,'-sb');hold on 59 | 60 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 61 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 62 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 63 | tic 64 | ebn0=0;avgber2=[]; 65 | v4=[];v5=[];v6=[];terter2=[]; 66 | for j=1:1 67 | rr2=[];it=1; 68 | for kk=1:it 69 | m=21;B=40;np=1; 70 | ebd= 10*log10((B*20)/m) ; 71 | eb=10^(.1*ebd); 72 | ebn0ad=10^(.1*ebn0(j)); 73 | n0=(eb/ebn0ad); 74 | 75 | for i=1:3 76 | p2=[17/(63) 17/(63) 17/(63)]; 77 | p0=[1 1 1]; 78 | k1(i)=((p2(i)+p0(i))*((m*p2(i))+np))/((p2(i)*p0(i))*((m)*y(i)*((eb/n0)))); 79 | k2(i)=(B*(((m*p2(i))+np)^2))/(2*((m)^2)*(p2(i)*p0(i))*(y(i)^2)*((eb/n0)^2)); 80 | kroshe2(i)=k1(i)+k2(i); 81 | parantez2(i)=(1/(sqrt(kroshe2(i)))); 82 | ber2(i)=(.5)*erfc(parantez2(i)) 83 | end 84 | toc 85 | be1=ber2(1); 86 | be2=ber2(2); 87 | be3=ber2(3); 88 | v4=[v4 be1]; 89 | v5=[v5 be2]; 90 | v6=[v6 be3]; 91 | pc1=(1-be1);pc2=(1-be2);pc3=(1-be3); 92 | pc=pc1*pc2*pc3; 93 | avgber2=[avgber2 1-pc]; 94 | 95 | end 96 | end 97 | semilogy(ebn0,v4,'-*r');hold on 98 | semilogy(ebn0,v5,'-*k');hold on 99 | semilogy(ebn0,v6,'-*b');hold on 100 | grid on 101 | semilogy(ebn0, avgber2,'-or');hold on 102 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 103 | 104 | 105 | -------------------------------------------------------------------------------- /iterative_pow_vs_ber_single.m: -------------------------------------------------------------------------------- 1 | clear all 2 | close all 3 | pt=[5:1:25] 4 | ebn0=[10];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 5 | for j=1:length(pt) 6 | rr=[]; 7 | 8 | it=1; 9 | Ts =.1; 10 | for k=1:it 11 | cvx_begin gp 12 | m=21;B=40;np=1; 13 | ebd= 10*log10((B*pt(j))/m) ; 14 | eb=10^(.1*ebd); 15 | ebn0ad=10^(.1*ebn0); 16 | n0=(eb/ebn0ad); 17 | 18 | alpha=[.75;.85;1.3]; 19 | y=3*(alpha.^2); 20 | variables t p(3) 21 | minimize(t) 22 | subject to 23 | ((((m*p)+1).*(p+1))./(((m)*p.*y)*(eb/n0)))+((B*(((m*p)+1).^2)))./(2*((m).^2)*p.*(y.^2)*((eb/n0).^2))<=t 24 | sum(p)<=((pt(j)-3)/21); 25 | p>=[0; 0; 0]; 26 | cvx_end 27 | 28 | y=y'; 29 | p1=p'; 30 | for i=1:3 31 | kk1(i)=((p1(i)+1)*((m*p1(i))+1))/((p1(i))*((m)*y(i)*(eb/n0))); 32 | kk2(i)=(B*(((m*p1(i))+1)^2))/(2*((m)^2)*(p1(i))*(y(i)^2)*((eb/n0)^2)); 33 | kroshe(i)=kk1(i)+kk2(i); 34 | parantez(i)=(1/(sqrt(kroshe(i)))); 35 | ber1(i)=(.5)*erfc(parantez(i)); 36 | end 37 | 38 | 39 | berg1=ber1(1); 40 | berg2=ber1(2); 41 | berg3=ber1(3); 42 | v1=[v1 berg1]; 43 | v2=[v2 berg2]; 44 | v3=[v3 berg3]; 45 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 46 | pc=pc1*pc2*pc3; 47 | avgber1=[avgber1 1-pc]; 48 | end 49 | 50 | end 51 | figure(1) 52 | semilogy(pt,v1,'-^r');hold on 53 | semilogy(pt,v2,'-^k');hold on 54 | semilogy(pt,v3,'-^b');hold on 55 | semilogy((pt),avgber1,'-sb');hold on 56 | % 57 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 58 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 59 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 60 | pt=[5:1:25] 61 | ebn0=[10];avgber2=[]; 62 | v4=[];v5=[];v6=[];terter2=[]; 63 | for j=1:length(pt) 64 | rr2=[];it=1; 65 | for kk=1:it 66 | m=21;B=40;np=1; 67 | alpha=[.75;.85;1.3]; 68 | y=3*(alpha.^2); 69 | ebd= 10*log10((B*pt(j))/m) ; 70 | eb=10^(.1*ebd); 71 | ebn0ad=10^(.1*ebn0); 72 | n0=(eb/ebn0ad); 73 | for i=1:3 74 | p2=[(pt(j)-3)/(63) (pt(j)-3)/(63) (pt(j)-3)/(63)]; 75 | p0=[1 1 1]; 76 | k1(i)=((p2(i)+p0(i))*((m*p2(i))+np))/((p2(i)*p0(i))*((m)*y(i)*((eb/n0)))); 77 | k2(i)=(B*(((m*p2(i))+np)^2))/(2*((m)^2)*(p2(i)*p0(i))*(y(i)^2)*((eb/n0)^2)); 78 | kroshe2(i)=k1(i)+k2(i); 79 | parantez2(i)=(1/(sqrt(kroshe2(i)))); 80 | ber2(i)=(.5)*erfc(parantez2(i)) 81 | end 82 | be1=ber2(1); 83 | be2=ber2(2); 84 | be3=ber2(3); 85 | v4=[v4 be1]; 86 | v5=[v5 be2]; 87 | v6=[v6 be3]; 88 | pc1=(1-be1);pc2=(1-be2);pc3=(1-be3); 89 | pc=pc1*pc2*pc3; 90 | avgber2=[avgber2 1-pc]; 91 | end 92 | end 93 | semilogy((pt),v4,'-*r');hold on 94 | semilogy((pt),v5,'-*k');hold on 95 | semilogy((pt),v6,'-*b');hold on 96 | grid on 97 | semilogy((pt), avgber2,'-or');hold on 98 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 99 | 100 | % % ebn015 101 | % pt=[5 7 10 15 20 25 30 35] 102 | % aggman=[7.6e-7 3.9e-8 1.51e-8 1.18e-8 1.129e-8 1.129e-8 1.129e-8 1.129e-8] 103 | % eq=[5.1e-6 1.27e-7 1.81e-8 1.18e-8 2.68e-8 4.67e-8 1.08e-7 2.41e-7] 104 | % semilogy(pt,aggman,'-^b');hold on 105 | % semilogy(pt,eq,'-*r');hold on 106 | % % % ebn010 107 | % pt2=[5 7 10 15 20 25 30 35] 108 | % aggman2=[.0117 .0043 .0030 .0033 .002892 .0028 .0028 .0028] 109 | % eq2=[.0126 .00439 .003 .00332 .0046 .0066 .0092 .01227] 110 | % semilogy(pt2,aggman2,'-b');hold on 111 | % semilogy(pt2,eq2,'-r');hold on 112 | pt=[5:1:25] 113 | ebn0=[12];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 114 | for j=1:length(pt) 115 | rr=[]; 116 | 117 | it=1; 118 | Ts =.1; 119 | for k=1:it 120 | cvx_begin gp 121 | m=21;B=40;np=1; 122 | ebd= 10*log10((B*pt(j))/m) ; 123 | eb=10^(.1*ebd); 124 | ebn0ad=10^(.1*ebn0); 125 | n0=(eb/ebn0ad); 126 | 127 | alpha=[.75;.85;1.3]; 128 | y=3*(alpha.^2); 129 | variables t p(3) 130 | minimize(t) 131 | subject to 132 | ((((m*p)+1).*(p+1))./(((m)*p.*y)*(eb/n0)))+((B*(((m*p)+1).^2)))./(2*((m).^2)*p.*(y.^2)*((eb/n0).^2))<=t 133 | sum(p)<=((pt(j)-3)/21); 134 | p>=[0; 0; 0]; 135 | cvx_end 136 | 137 | y=y'; 138 | p1=p'; 139 | for i=1:3 140 | kk1(i)=((p1(i)+1)*((m*p1(i))+1))/((p1(i))*((m)*y(i)*(eb/n0))); 141 | kk2(i)=(B*(((m*p1(i))+1)^2))/(2*((m)^2)*(p1(i))*(y(i)^2)*((eb/n0)^2)); 142 | kroshe(i)=kk1(i)+kk2(i); 143 | parantez(i)=(1/(sqrt(kroshe(i)))); 144 | ber1(i)=(.5)*erfc(parantez(i)); 145 | end 146 | 147 | 148 | berg1=ber1(1); 149 | berg2=ber1(2); 150 | berg3=ber1(3); 151 | v1=[v1 berg1]; 152 | v2=[v2 berg2]; 153 | v3=[v3 berg3]; 154 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 155 | pc=pc1*pc2*pc3; 156 | avgber1=[avgber1 1-pc]; 157 | end 158 | 159 | end 160 | figure(1) 161 | semilogy(pt,v1,'-^r');hold on 162 | semilogy(pt,v2,'-^k');hold on 163 | semilogy(pt,v3,'-^b');hold on 164 | semilogy((pt),avgber1,'-sg');hold on 165 | % 166 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 167 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 168 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 169 | pt=[5:1:25] 170 | ebn0=[12];avgber2=[]; 171 | v4=[];v5=[];v6=[];terter2=[]; 172 | for j=1:length(pt) 173 | rr2=[];it=1; 174 | for kk=1:it 175 | m=21;B=40;np=1; 176 | alpha=[.75;.85;1.3]; 177 | y=3*(alpha.^2); 178 | ebd= 10*log10((B*pt(j))/m) ; 179 | eb=10^(.1*ebd); 180 | ebn0ad=10^(.1*ebn0); 181 | n0=(eb/ebn0ad); 182 | for i=1:3 183 | p2=[(pt(j)-3)/(63) (pt(j)-3)/(63) (pt(j)-3)/(63)]; 184 | p0=[1 1 1]; 185 | k1(i)=((p2(i)+p0(i))*((m*p2(i))+np))/((p2(i)*p0(i))*((m)*y(i)*((eb/n0)))); 186 | k2(i)=(B*(((m*p2(i))+np)^2))/(2*((m)^2)*(p2(i)*p0(i))*(y(i)^2)*((eb/n0)^2)); 187 | kroshe2(i)=k1(i)+k2(i); 188 | parantez2(i)=(1/(sqrt(kroshe2(i)))); 189 | ber2(i)=(.5)*erfc(parantez2(i)) 190 | end 191 | be1=ber2(1); 192 | be2=ber2(2); 193 | be3=ber2(3); 194 | v4=[v4 be1]; 195 | v5=[v5 be2]; 196 | v6=[v6 be3]; 197 | pc1=(1-be1);pc2=(1-be2);pc3=(1-be3); 198 | pc=pc1*pc2*pc3; 199 | avgber2=[avgber2 1-pc]; 200 | end 201 | end 202 | semilogy((pt),v4,'-*r');hold on 203 | semilogy((pt),v5,'-*k');hold on 204 | semilogy((pt),v6,'-*b');hold on 205 | grid on 206 | semilogy((pt), avgber2,'-og');hold on 207 | -------------------------------------------------------------------------------- /iterative_pow_vs_ber_multi.m: -------------------------------------------------------------------------------- 1 | clear all 2 | close all 3 | % pt=[7:1:25] 4 | % ebn0=[10];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 5 | % for j=1:length(pt) 6 | % 7 | % rr=[]; 8 | % it=1; 9 | % Ts =.1; 10 | % for k=1:it 11 | % for gg=1:1 12 | % cvx_begin gp 13 | % m=20;B=40;np=2; 14 | % ebd= 10*log10((B)) ; 15 | % eb=(10^(.1*ebd))*(pt(j)/m); 16 | % ebn0ad=10^(.1*ebn0); 17 | % n0=(eb/ebn0ad); 18 | % alpha=[.75;.85;1.3]; 19 | % y=3*(alpha.^2); 20 | % I=3*(alpha.^2); 21 | % variables t p(3) 22 | % minimize(t) 23 | % subject to 24 | % ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 25 | % sum(p)<=((pt(j)-6)/20); 26 | % 27 | % p>=[0; 0; 0]; 28 | % cvx_end 29 | % p1=p'; 30 | % y=y'; 31 | % for i=1:3 32 | % kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 33 | % kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 34 | % kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 35 | % kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 36 | % 37 | % kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 38 | % parantez(i)=(1/(sqrt(kroshe(i)))); 39 | % ber(i)=(.5)*erfc(parantez(i)); 40 | % end 41 | % end 42 | % 43 | % berg1=ber(1); 44 | % berg2=ber(2); 45 | % berg3=ber(3); 46 | % v1=[v1 berg1]; 47 | % v2=[v2 berg2]; 48 | % v3=[v3 berg3]; 49 | % 50 | % pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 51 | % pc=pc1*pc2*pc3; 52 | % avgber1=[avgber1 1-pc]; 53 | % end 54 | % 55 | % end 56 | % % 57 | % % figure(1) 58 | % semilogy(pt,v1,'-^r');hold on 59 | % semilogy(pt,v2,'-^k');hold on 60 | % semilogy(pt,v3,'-^b');hold on 61 | % semilogy(pt,avgber1,'-sb');hold on 62 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 63 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 64 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 65 | % pt=[7:1:25] 66 | % ebn0=[10];avgber2=[]; 67 | % v4=[];v5=[];v6=[];terter2=[]; 68 | % for j=1:length(pt) 69 | % rr2=[];it=1; 70 | % for kk=1:it 71 | % m=20;B=40;np=2; 72 | % alpha=[.75;.85;1.3]; 73 | % y=3*(alpha.^2); 74 | % I=3*mean(alpha.^2); 75 | % ebd= 10*log10((B*pt(j))/m) ; 76 | % eb2=10^(.1*ebd); 77 | % ebn0ad=10^(.1*ebn0); 78 | % n0=(eb2/ebn0ad); 79 | % 80 | % p2=[(pt(j)-6)/(60) (pt(j)-6)/(60) (pt(j)-6)/(60)]; 81 | % p0=[1 1 1]; 82 | % y=y'; 83 | % for i=1:3 84 | % k1(i)=((((m*p2(i))+np).*(p2(i)+1))./(((m)*p2(i).*y(i))*(eb2/n0))); 85 | % k2(i)=((B*((((m*p2(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p2(i).*((eb2/n0)^2))); 86 | % k3(i)=((2*((m*p2(i))+np).*I)./(m*eb2.*(y(i)))); 87 | % k4(i)=(((m*p2(i))+np)*I*(n0))./(m.*(y(i).^2)*(eb2/n0)); 88 | % 89 | % kroshe2(i)=k1(i)+k2(i)+k3(i)+k4(i); 90 | % parantez2(i)=(1/(sqrt(kroshe2(i)))); 91 | % ber2(i)=(.5)*erfc(parantez2(i)); 92 | % 93 | % end 94 | % b1=ber2(1); 95 | % b2=ber2(2); 96 | % b3=ber2(3); 97 | % v4=[v4 b1]; 98 | % v5=[v5 b2]; 99 | % v6=[v6 b3]; 100 | % pc4=(1-b1);pc5=(1-b2);pc6=(1-b3); 101 | % pc7=pc4*pc5*pc6; 102 | % avgber2=[avgber2 1-pc7]; 103 | % end 104 | % end 105 | % semilogy(pt,v4,'-*r');hold on 106 | % semilogy(pt,v5,'-*k');hold on 107 | % semilogy(pt,v6,'-*b');hold on 108 | % % grid on 109 | % semilogy(pt, avgber2,'-or');hold on 110 | %%ebn0 15 111 | % pt=[7 10 15 20 25 30 35] 112 | % aggman=[.0046 9.6e-5 2.1e-5 2.32e-5 2.96e-5 3.88e-5 5.129e-5] 113 | % eq=[.0002 6.48e-8 3.9e-9 5.2e-9 1.6e-8 6.5e-8 2.7e-7] 114 | % semilogy((pt),aggman,'-^b');hold on 115 | % semilogy((pt),eq,'-*r');hold on 116 | % %%ebn010 117 | % pt2=[7 10 15 20 25 30 35] 118 | % aggman2=[.1538 .038 .0379 .046 .05467 .06121 .072] 119 | % eq2=[.1638 .03998 .03982 .065 .1051 .1522 .2028] 120 | % semilogy( (pt2),aggman2,'-b');hold on 121 | % % semilogy( (pt2),eq2,'-r');hold on 122 | 123 | pt=[7:1:25] 124 | ebn0=[12];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 125 | for j=1:length(pt) 126 | 127 | rr=[]; 128 | it=1; 129 | Ts =.1; 130 | for k=1:it 131 | for gg=1:1 132 | cvx_begin gp 133 | m=20;B=40;np=2; 134 | ebd= 10*log10((B)) ; 135 | eb=(10^(.1*ebd))*(pt(j)/m); 136 | ebn0ad=10^(.1*ebn0); 137 | n0=(eb/ebn0ad); 138 | alpha=[.75;.85;1.3]; 139 | y=3*(alpha.^2); 140 | I=3*(alpha.^2); 141 | variables t p(3) 142 | minimize(t) 143 | subject to 144 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 145 | sum(p)<=((pt(j)-6)/20); 146 | 147 | p>=[0; 0; 0]; 148 | cvx_end 149 | p1=p'; 150 | y=y'; 151 | for i=1:3 152 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 153 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 154 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 155 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 156 | 157 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 158 | parantez(i)=(1/(sqrt(kroshe(i)))); 159 | ber(i)=(.5)*erfc(parantez(i)); 160 | end 161 | end 162 | 163 | berg1=ber(1); 164 | berg2=ber(2); 165 | berg3=ber(3); 166 | v1=[v1 berg1]; 167 | v2=[v2 berg2]; 168 | v3=[v3 berg3]; 169 | 170 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 171 | pc=pc1*pc2*pc3; 172 | avgber1=[avgber1 1-pc]; 173 | end 174 | 175 | end 176 | % 177 | % figure(1) 178 | semilogy(pt,v1,'-^r');hold on 179 | semilogy(pt,v2,'-^k');hold on 180 | semilogy(pt,v3,'-^b');hold on 181 | semilogy(pt,avgber1,'-sb');hold on 182 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 183 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 184 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 185 | pt=[7:1:25] 186 | ebn0=[12];avgber2=[]; 187 | v4=[];v5=[];v6=[];terter2=[]; 188 | for j=1:length(pt) 189 | rr2=[];it=1; 190 | for kk=1:it 191 | m=20;B=40;np=2; 192 | alpha=[.75;.85;1.3]; 193 | y=3*(alpha.^2); 194 | I=3*mean(alpha.^2); 195 | ebd= 10*log10((B*pt(j))/m) ; 196 | eb2=10^(.1*ebd); 197 | ebn0ad=10^(.1*ebn0); 198 | n0=(eb2/ebn0ad); 199 | 200 | p2=[(pt(j)-6)/(60) (pt(j)-6)/(60) (pt(j)-6)/(60)]; 201 | p0=[1 1 1]; 202 | y=y'; 203 | for i=1:3 204 | k1(i)=((((m*p2(i))+np).*(p2(i)+1))./(((m)*p2(i).*y(i))*(eb2/n0))); 205 | k2(i)=((B*((((m*p2(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p2(i).*((eb2/n0)^2))); 206 | k3(i)=((2*((m*p2(i))+np).*I)./(m*eb2.*(y(i)))); 207 | k4(i)=(((m*p2(i))+np)*I*(n0))./(m.*(y(i).^2)*(eb2/n0)); 208 | 209 | kroshe2(i)=k1(i)+k2(i)+k3(i)+k4(i); 210 | parantez2(i)=(1/(sqrt(kroshe2(i)))); 211 | ber2(i)=(.5)*erfc(parantez2(i)); 212 | 213 | end 214 | b1=ber2(1); 215 | b2=ber2(2); 216 | b3=ber2(3); 217 | v4=[v4 b1]; 218 | v5=[v5 b2]; 219 | v6=[v6 b3]; 220 | pc4=(1-b1);pc5=(1-b2);pc6=(1-b3); 221 | pc7=pc4*pc5*pc6; 222 | avgber2=[avgber2 1-pc7]; 223 | end 224 | end 225 | semilogy(pt,v4,'-*r');hold on 226 | semilogy(pt,v5,'-*k');hold on 227 | semilogy(pt,v6,'-*b');hold on 228 | grid on 229 | semilogy(pt, avgber2,'-or');hold on 230 | 231 | -------------------------------------------------------------------------------- /iterative_8_user_increase.m: -------------------------------------------------------------------------------- 1 | clear all 2 | close all 3 | 4 | ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 5 | for j=1:31 6 | rr=[]; 7 | 8 | 9 | it=1; 10 | Ts =.1; 11 | for k=1:it 12 | 13 | for gg=1:1 14 | cvx_begin gp 15 | m=21;B=40;np=1; 16 | ebd= 10*log10((B*5)/m) ; 17 | eb=10^(.1*ebd); 18 | ebn0ad=10^(.1*ebn0(j)); 19 | n0=(eb/ebn0ad); 20 | 21 | alpha=[.75;.85;1.3]; 22 | y=3*(alpha.^2); 23 | variables t p(3) 24 | minimize(t) 25 | subject to 26 | ((((m*p)+1).*(p+1))./(((m)*p.*y)*(eb/n0)))+((B*(((m*p)+1).^2)))./(2*((m).^2)*p.*(y.^2)*((eb/n0).^2))<=t 27 | 28 | sum(p)<=(2/21); 29 | p>=[0; 0; 0]; 30 | cvx_end 31 | 32 | y=y'; 33 | p1=p'; 34 | for i=1:3 35 | kk1(i)=((p1(i)+1)*((m*p1(i))+1))/((p1(i))*((m)*y(i)*(eb/n0))); 36 | kk2(i)=(B*(((m*p1(i))+1)^2))/(2*((m)^2)*(p1(i))*(y(i)^2)*((eb/n0)^2)); 37 | kroshe(i)=kk1(i)+kk2(i); 38 | parantez(i)=(1/(sqrt(kroshe(i)))); 39 | ber1(i)=(.5)*erfc(parantez(i)); 40 | end 41 | end 42 | 43 | berg1=ber1(1); 44 | berg2=ber1(2); 45 | berg3=ber1(3); 46 | v1=[v1 berg1]; 47 | v2=[v2 berg2]; 48 | v3=[v3 berg3]; 49 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 50 | pc=pc1*pc2*pc3; 51 | avgber1=[avgber1 1-pc]; 52 | end 53 | 54 | end 55 | 56 | figure(1) 57 | % semilogy(ebn0,v1,'-^r');hold on 58 | % semilogy(ebn0,v2,'-^k');hold on 59 | % semilogy(ebn0,v3,'-^b');hold on 60 | semilogy(ebn0,avgber1,'-sb');hold on 61 | 62 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 63 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 64 | 65 | 66 | ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber2=[]; 67 | for j=1:31 68 | rr=[]; 69 | 70 | 71 | it=1; 72 | Ts =.1; 73 | for k=1:it 74 | 75 | for gg=1:1 76 | cvx_begin gp 77 | m=20;B=40;np=2; 78 | ebd= 10*log10((B*20)/m) ; 79 | eb=10^(.1*ebd); 80 | ebn0ad=10^(.1*ebn0(j)); 81 | n0=(eb/ebn0ad); 82 | alpha=[.75;.85;1.3]; 83 | y=3*(alpha.^2); 84 | I=3*(alpha.^2); 85 | variables t p(3) 86 | minimize(t) 87 | subject to 88 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 89 | sum(p)<=(14/20); 90 | p>=[0; 0; 0]; 91 | cvx_end 92 | p1=p'; 93 | y=y'; 94 | for i=1:3 95 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 96 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 97 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 98 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 99 | 100 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 101 | parantez(i)=(1/(sqrt(kroshe(i)))); 102 | ber(i)=(.5)*erfc(parantez(i)); 103 | end 104 | end 105 | 106 | berg1=ber(1); 107 | berg2=ber(2); 108 | berg3=ber(3); 109 | v1=[v1 berg1]; 110 | v2=[v2 berg2]; 111 | v3=[v3 berg3]; 112 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 113 | pc=pc1*pc2*pc3; 114 | avgber2=[avgber2 1-pc]; 115 | end 116 | 117 | end 118 | 119 | % figure(1) 120 | % semilogy(ebn0,v1,'-^r');hold on 121 | % semilogy(ebn0,v2,'-^k');hold on 122 | % semilogy(ebn0,v3,'-^b');hold on 123 | semilogy(ebn0,avgber2,'-sr');hold on 124 | 125 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 126 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 127 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% user=3, m=22 128 | ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber3=[]; 129 | for j=1:31 130 | rr=[]; 131 | 132 | it=1; 133 | Ts =.1; 134 | for k=1:it 135 | 136 | for gg=1:1 137 | cvx_begin gp 138 | m=19;B=40;np=3; 139 | ebd= 10*log10((B*20)/m) ; 140 | eb=10^(.1*ebd); 141 | ebn0ad=10^(.1*ebn0(j)); 142 | n0=(eb/ebn0ad); 143 | alpha=[.75;.85;1.3]; 144 | y=3*(alpha.^2); 145 | I=6*(alpha.^2); 146 | variables t p(3) 147 | minimize(t) 148 | subject to 149 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 150 | sum(p)<=(14/19); 151 | p>=[0; 0; 0]; 152 | cvx_end 153 | p1=p'; 154 | y=y'; 155 | for i=1:3 156 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 157 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 158 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 159 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 160 | 161 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 162 | parantez(i)=(1/(sqrt(kroshe(i)))); 163 | ber(i)=(.5)*erfc(parantez(i)); 164 | end 165 | end 166 | 167 | berg1=ber(1); 168 | berg2=ber(2); 169 | berg3=ber(3); 170 | v1=[v1 berg1]; 171 | v2=[v2 berg2]; 172 | v3=[v3 berg3]; 173 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 174 | pc=pc1*pc2*pc3; 175 | avgber3=[avgber3 1-pc]; 176 | end 177 | 178 | end 179 | 180 | % figure(1) 181 | % semilogy(ebn0,v1,'-^r');hold on 182 | % semilogy(ebn0,v2,'-^k');hold on 183 | % semilogy(ebn0,v3,'-^b');hold on 184 | 185 | semilogy(ebn0,avgber3,'-sr');hold on 186 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 187 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 188 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%user=6, m=22 189 | ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber4=[]; 190 | for j=1:31 191 | rr=[]; 192 | 193 | 194 | it=1; 195 | Ts =.1; 196 | for k=1:it 197 | cvx_begin gp 198 | m=16;B=40;np=6; 199 | ebd= 10*log10((B*20)/m) ; 200 | eb=10^(.1*ebd); 201 | ebn0ad=10^(.1*ebn0(j)); 202 | n0=(eb/ebn0ad); 203 | alpha=[.75;.85;1.3]; 204 | y=3*(alpha.^2); 205 | I=5*(alpha.^2); 206 | variables t p(3) 207 | minimize(t) 208 | subject to 209 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 210 | sum(p)<=(14/16); 211 | p>=[0; 0; 0]; 212 | cvx_end 213 | p1=p'; 214 | y=y'; 215 | for i=1:3 216 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 217 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 218 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 219 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 220 | 221 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 222 | parantez(i)=(1/(sqrt(kroshe(i)))); 223 | ber1(i)=(.5)*erfc(parantez(i)); 224 | end 225 | berg1=ber1(1); 226 | berg2=ber1(2); 227 | berg3=ber1(3); 228 | v1=[v1 berg1]; 229 | v2=[v2 berg2]; 230 | v3=[v3 berg3]; 231 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 232 | pc=pc1*pc2*pc3; 233 | avgber4=[avgber4 1-pc]; 234 | end 235 | 236 | end 237 | 238 | % figure(1) 239 | % semilogy(ebn0,v1,'-^r');hold on 240 | % semilogy(ebn0,v2,'-^k');hold on 241 | % semilogy(ebn0,v3,'-^b');hold on 242 | 243 | semilogy(ebn0,avgber4,'-sb');hold on 244 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 245 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 246 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2user equal pow 247 | ebn0=[0:1:30];v1=[];v2=[];v3=[];avgber2=[]; 248 | v4=[];v5=[];v6=[];terter2=[]; 249 | for j=1:31 250 | rr2=[]; 251 | for kk=1:it 252 | m=20;B=40;np=2; 253 | ebd= 10*log10((B*20)/m) ; 254 | eb2=10^(.1*ebd); 255 | ebn0ad=10^(.1*ebn0(j)); 256 | n0=(eb2/ebn0ad); 257 | p2=[14/(60) 14/(60) 14/(60)]; 258 | p0=[1 1 1]; 259 | y=y'; 260 | I=y'; 261 | for i=1:3 262 | k1(i)=((p2(i)+p0(i))*((m*p2(i))+np))/((p2(i)*p0(i))*(m*y(i)*(eb2/n0))); 263 | k2(i)=(B*(((m*p2(i))+np)^2))/(2*(m^2)*(p2(i)*p0(i))*(y(i)^2)*((eb2/n0)^2)); 264 | k3(i)=((2*((m*p2(i))+np).*I(i))./(m*eb2.*(y(i)))); 265 | k4(i)=(((m*p2(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb2/n0)); 266 | 267 | kroshe2(i)=k1(i)+k2(i)+k3(i)+k4(i); 268 | parantez2(i)=(1/(sqrt(kroshe2(i)))); 269 | ber2(i)=(.5)*erfc(parantez2(i)); 270 | 271 | end 272 | b1=ber2(1); 273 | b2=ber2(2); 274 | b3=ber2(3); 275 | v4=[v4 b1]; 276 | v5=[v5 b2]; 277 | v6=[v6 b3]; 278 | pc4=(1-b1);pc5=(1-b2);pc6=(1-b3); 279 | pc7=pc4*pc5*pc6; 280 | avgber2=[avgber2 1-pc7]; 281 | end 282 | end 283 | semilogy(ebn0,v4,'-*r');hold on 284 | semilogy(ebn0,v5,'-*k');hold on 285 | semilogy(ebn0,v6,'-*b');hold on 286 | grid on 287 | semilogy(ebn0, avgber2,'-or');hold on 288 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 289 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 290 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3user equal pow 291 | ebn0=[0:1:30];v1=[];v2=[];v3=[];avgber2=[]; 292 | v4=[];v5=[];v6=[];terter2=[]; 293 | for j=1:31 294 | rr2=[]; 295 | for kk=1:it 296 | m=19;B=40;np=3; 297 | ebd= 10*log10((B*20)/m) ; 298 | eb2=10^(.1*ebd); 299 | ebn0ad=10^(.1*ebn0(j)); 300 | n0=(eb2/ebn0ad); 301 | p2=[14/(57) 14/(57) 14/(57)]; 302 | p0=[1 1 1]; 303 | y=y'; 304 | I=2*y'; 305 | for i=1:3 306 | k1(i)=((p2(i)+p0(i))*((m*p2(i))+np))/((p2(i)*p0(i))*(m*y(i)*(eb2/n0))); 307 | k2(i)=(B*(((m*p2(i))+np)^2))/(2*(m^2)*(p2(i)*p0(i))*(y(i)^2)*((eb2/n0)^2)); 308 | k3(i)=((2*((m*p2(i))+np).*I(i))./(m*eb2.*(y(i)))); 309 | k4(i)=(((m*p2(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb2/n0)); 310 | 311 | kroshe2(i)=k1(i)+k2(i)+k3(i)+k4(i); 312 | parantez2(i)=(1/(sqrt(kroshe2(i)))); 313 | ber2(i)=(.5)*erfc(parantez2(i)); 314 | 315 | end 316 | b1=ber2(1); 317 | b2=ber2(2); 318 | b3=ber2(3); 319 | v4=[v4 b1]; 320 | v5=[v5 b2]; 321 | v6=[v6 b3]; 322 | pc4=(1-b1);pc5=(1-b2);pc6=(1-b3); 323 | pc7=pc4*pc5*pc6; 324 | avgber2=[avgber2 1-pc7]; 325 | end 326 | end 327 | semilogy(ebn0,v4,'-*r');hold on 328 | semilogy(ebn0,v5,'-*k');hold on 329 | semilogy(ebn0,v6,'-*b');hold on 330 | grid on 331 | semilogy(ebn0, avgber2,'-or');hold on 332 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 333 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 334 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 6user equal pow 335 | ebn0=[0:1:30];v1=[];v2=[];v3=[];avgber2=[]; 336 | v4=[];v5=[];v6=[];terter2=[]; 337 | for j=1:31 338 | rr2=[]; 339 | for kk=1:it 340 | m=16;B=40;np=6; 341 | ebd= 10*log10((B*20)/m) ; 342 | eb2=10^(.1*ebd); 343 | ebn0ad=10^(.1*ebn0(j)); 344 | n0=(eb2/ebn0ad); 345 | p2=[14/(48) 14/(48) 14/(48)]; 346 | p0=[1 1 1]; 347 | y=y'; 348 | I=5*y'; 349 | for i=1:3 350 | k1(i)=((p2(i)+p0(i))*((m*p2(i))+np))/((p2(i)*p0(i))*(m*y(i)*(eb2/n0))); 351 | k2(i)=(B*(((m*p2(i))+np)^2))/(2*(m^2)*(p2(i)*p0(i))*(y(i)^2)*((eb2/n0)^2)); 352 | k3(i)=((2*((m*p2(i))+np).*I(i))./(m*eb2.*(y(i)))); 353 | k4(i)=(((m*p2(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb2/n0)); 354 | 355 | kroshe2(i)=k1(i)+k2(i)+k3(i)+k4(i); 356 | parantez2(i)=(1/(sqrt(kroshe2(i)))); 357 | ber2(i)=(.5)*erfc(parantez2(i)); 358 | 359 | end 360 | b1=ber2(1); 361 | b2=ber2(2); 362 | b3=ber2(3); 363 | v4=[v4 b1]; 364 | v5=[v5 b2]; 365 | v6=[v6 b3]; 366 | pc4=(1-b1);pc5=(1-b2);pc6=(1-b3); 367 | pc7=pc4*pc5*pc6; 368 | avgber2=[avgber2 1-pc7]; 369 | end 370 | end 371 | semilogy(ebn0,v4,'-*r');hold on 372 | semilogy(ebn0,v5,'-*k');hold on 373 | semilogy(ebn0,v6,'-*b');hold on 374 | grid on 375 | semilogy(ebn0, avgber2,'-or');hold on 376 | -------------------------------------------------------------------------------- /iterative6_single_multi_beta.m: -------------------------------------------------------------------------------- 1 | clear all 2 | close all 3 | 4 | % ebn0=[0:10:30];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 5 | % for j=1:4 6 | % rr=[]; 7 | % 8 | % 9 | % it=1; 10 | % Ts =.1; 11 | % for k=1:it 12 | % 13 | % cvx_begin gp 14 | % m=21;B=12;np=1; 15 | % ebd= 10*log10((B*5)/m) ; 16 | % eb=10^(.1*ebd); 17 | % ebn0ad=10^(.1*ebn0(j)); 18 | % n0=2*(eb/ebn0ad); 19 | % 20 | % alpha=[.75;.85;1.3]; 21 | % y=3*(alpha.^2); 22 | % variables t p(3) 23 | % minimize(t) 24 | % subject to 25 | % ((((m*p)+1).*(p+1))./(((m)*p.*y)*(eb/n0)))+((B*(((m*p)+1).^2)))./(2*((m).^2)*p.*(y.^2)*((eb/n0).^2))<=t 26 | % sum(p)<=(2/21); 27 | % p>=[0; 0; 0]; 28 | % cvx_end 29 | % 30 | % y=y'; 31 | % p1=p'; 32 | % for i=1:3 33 | % kk1(i)=((p1(i)+1)*((m*p1(i))+1))/((p1(i))*((m)*y(i)*(eb/n0))); 34 | % kk2(i)=(B*(((m*p1(i))+1)^2))/(2*((m)^2)*(p1(i))*(y(i)^2)*((eb/n0)^2)); 35 | % kroshe(i)=kk1(i)+kk2(i); 36 | % parantez(i)=(1/(sqrt(kroshe(i)))); 37 | % ber1(i)=(.5)*erfc(parantez(i)); 38 | % end 39 | % 40 | % 41 | % berg1=ber1(1); 42 | % berg2=ber1(2); 43 | % berg3=ber1(3); 44 | % v1=[v1 berg1]; 45 | % v2=[v2 berg2]; 46 | % v3=[v3 berg3]; 47 | % pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 48 | % pc=pc1*pc2*pc3; 49 | % avgber1=[avgber1 1-pc]; 50 | % end 51 | % 52 | % end 53 | % 54 | % figure(1) 55 | % % semilogy(ebn0,v1,'-^r');hold on 56 | % % semilogy(ebn0,v2,'-^k');hold on 57 | % % semilogy(ebn0,v3,'-^b');hold on 58 | % semilogy(ebn0,avgber1,'-sb');hold on 59 | % 60 | % 61 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 62 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 63 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%b=40 64 | % ebn0=[0:10:30];v4=[];v5=[];v6=[];terter=[];avgber2=[]; 65 | % for j=1:4 66 | % rr=[]; 67 | % 68 | % 69 | % it=1; 70 | % Ts =.1; 71 | % for k=1:it 72 | % 73 | % m=22;B=40; 74 | % 75 | % cvx_begin gp 76 | % m=21;B=40;np=1; 77 | % ebd= 10*log10((B*5)/m) ; 78 | % eb=10^(.1*ebd); 79 | % ebn0ad=10^(.1*ebn0(j)); 80 | % n0=2*(eb/ebn0ad); 81 | % 82 | % alpha=[.75;.85;1.3]; 83 | % y=3*(alpha.^2); 84 | % variables t p(3) 85 | % minimize(t) 86 | % subject to 87 | % ((((m*p)+1).*(p+1))./(((m)*p.*y)*(eb/n0)))+((B*(((m*p)+1).^2)))./(2*((m).^2)*p.*(y.^2)*((eb/n0).^2))<=t 88 | % sum(p)<=(2/21); 89 | % p>=[0; 0; 0]; 90 | % cvx_end 91 | % 92 | % y=y'; 93 | % p1=p'; 94 | % for i=1:3 95 | % kk1(i)=((p1(i)+1)*((m*p1(i))+1))/((p1(i))*((m)*y(i)*(eb/n0))); 96 | % kk2(i)=(B*(((m*p1(i))+1)^2))/(2*((m)^2)*(p1(i))*(y(i)^2)*((eb/n0)^2)); 97 | % kroshe(i)=kk1(i)+kk2(i); 98 | % parantez(i)=(1/(sqrt(kroshe(i)))); 99 | % ber2(i)=(.5)*erfc(parantez(i)); 100 | % end 101 | % 102 | % 103 | % berg1=ber2(1); 104 | % berg2=ber2(2); 105 | % berg3=ber2(3); 106 | % v4=[v4 berg1]; 107 | % v5=[v5 berg2]; 108 | % v6=[v6 berg3]; 109 | % pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 110 | % pc=pc1*pc2*pc3; 111 | % avgber2=[avgber2 1-pc]; 112 | % end 113 | % 114 | % end 115 | % 116 | % % figure(1) 117 | % % semilogy(ebn0,v1,'-^r');hold on 118 | % % semilogy(ebn0,v2,'-^k');hold on 119 | % % semilogy(ebn0,v3,'-^b');hold on 120 | % semilogy(ebn0,avgber2,'-sr');hold on 121 | % 122 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 123 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 124 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%b=63 125 | % ebn0=[0:10:30];v7=[];v8=[];v9=[];terter=[];avgber3=[]; 126 | % for j=1:4 127 | % rr=[]; 128 | % 129 | % 130 | % it=1; 131 | % Ts =.1; 132 | % for k=1:it 133 | % 134 | % 135 | % cvx_begin gp 136 | % m=21;B=63;np=1; 137 | % ebd= 10*log10((B*5)/m) ; 138 | % eb=10^(.1*ebd); 139 | % ebn0ad=10^(.1*ebn0(j)); 140 | % n0=2*(eb/ebn0ad); 141 | % 142 | % alpha=[.75;.85;1.3]; 143 | % y=3*(alpha.^2); 144 | % variables t p(3) 145 | % minimize(t) 146 | % subject to 147 | % ((((m*p)+1).*(p+1))./(((m)*p.*y)*(eb/n0)))+((B*(((m*p)+1).^2)))./(2*((m).^2)*p.*(y.^2)*((eb/n0).^2))<=t 148 | % sum(p)<=(2/21); 149 | % p>=[0; 0; 0]; 150 | % cvx_end 151 | % 152 | % y=y'; 153 | % p1=p'; 154 | % for i=1:3 155 | % kk1(i)=((p1(i)+1)*((m*p1(i))+1))/((p1(i))*((m)*y(i)*(eb/n0))); 156 | % kk2(i)=(B*(((m*p1(i))+1)^2))/(2*((m)^2)*(p1(i))*(y(i)^2)*((eb/n0)^2)); 157 | % kroshe(i)=kk1(i)+kk2(i); 158 | % parantez(i)=(1/(sqrt(kroshe(i)))); 159 | % ber1(i)=(.5)*erfc(parantez(i)); 160 | % end 161 | % 162 | % 163 | % berg1=ber1(1); 164 | % berg2=ber1(2); 165 | % berg3=ber1(3); 166 | % v7=[v7 berg1]; 167 | % v8=[v8 berg2]; 168 | % v9=[v9 berg3]; 169 | % pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 170 | % pc=pc1*pc2*pc3; 171 | % avgber3=[avgber3 1-pc]; 172 | % end 173 | % 174 | % end 175 | % 176 | % % figure(1) 177 | % % semilogy(ebn0,v1,'-^r');hold on 178 | % % semilogy(ebn0,v2,'-^k');hold on 179 | % % semilogy(ebn0,v3,'-^b');hold on 180 | % 181 | % semilogy(ebn0,avgber3,'-sr');hold on 182 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 183 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 184 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%b=40 185 | % ebn0=[0:10:30];v10=[];v11=[];v12=[];terter=[];avgber4=[]; 186 | % for j=1:4 187 | % rr=[]; 188 | % 189 | % 190 | % it=1; 191 | % Ts =.1; 192 | % for k=1:it 193 | % 194 | % cvx_begin gp 195 | % m=21;B=120;np=1; 196 | % ebd= 10*log10((B*5)/m) ; 197 | % eb=10^(.1*ebd); 198 | % ebn0ad=10^(.1*ebn0(j)); 199 | % n0=2*(eb/ebn0ad); 200 | % 201 | % alpha=[.75;.85;1.3]; 202 | % y=3*(alpha.^2); 203 | % variables t p(3) 204 | % minimize(t) 205 | % subject to 206 | % ((((m*p)+1).*(p+1))./(((m)*p.*y)*(eb/n0)))+((B*(((m*p)+1).^2)))./(2*((m).^2)*p.*(y.^2)*((eb/n0).^2))<=t 207 | % sum(p)<=(2/21); 208 | % p>=[0; 0; 0]; 209 | % cvx_end 210 | % 211 | % y=y'; 212 | % p1=p'; 213 | % for i=1:3 214 | % kk1(i)=((p1(i)+1)*((m*p1(i))+1))/((p1(i))*((m)*y(i)*(eb/n0))); 215 | % kk2(i)=(B*(((m*p1(i))+1)^2))/(2*((m)^2)*(p1(i))*(y(i)^2)*((eb/n0)^2)); 216 | % kroshe(i)=kk1(i)+kk2(i); 217 | % parantez(i)=(1/(sqrt(kroshe(i)))); 218 | % ber1(i)=(.5)*erfc(parantez(i)); 219 | % end 220 | % 221 | % 222 | % berg1=ber1(1); 223 | % berg2=ber1(2); 224 | % berg3=ber1(3); 225 | % v10=[v10 berg1]; 226 | % v11=[v11 berg2]; 227 | % v12=[v12 berg3]; 228 | % pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 229 | % pc=pc1*pc2*pc3; 230 | % avgber4=[avgber4 1-pc]; 231 | % end 232 | % 233 | % end 234 | % 235 | % % figure(1) 236 | % % semilogy(ebn0,v1,'-^r');hold on 237 | % % semilogy(ebn0,v2,'-^k');hold on 238 | % % semilogy(ebn0,v3,'-^b');hold on 239 | % 240 | % semilogy(ebn0,avgber4,'-sb');hold on 241 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 242 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 243 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% multi beta 12 244 | ebn0=[0:10:30];v14=[];v15=[];v16=[];terter=[];avgber5=[]; 245 | for j=1:4 246 | rr=[]; 247 | 248 | 249 | it=1; 250 | Ts =.1; 251 | for k=1:it 252 | 253 | for gg=1:1 254 | cvx_begin gp 255 | m=19;B=12;np=3; 256 | ebd= 10*log10((B*40)/m) ; 257 | eb=10^(.1*ebd); 258 | ebn0ad=10^(.1*ebn0(j)); 259 | n0=2*(eb/ebn0ad); 260 | alpha=[.75;.85;1.3]; 261 | y=3*(alpha.^2); 262 | I=6*(alpha.^2); 263 | variables t p(3) 264 | minimize(t) 265 | subject to 266 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*p.*m.*(eb/n0))<=t; 267 | sum(p)<=(34/19); 268 | p>=[0; 0; 0]; 269 | cvx_end 270 | p1=p'; 271 | y=y'; 272 | for i=1:3 273 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 274 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 275 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 276 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(p1(i).*m.*(y(i).^2)*(eb/n0)); 277 | 278 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 279 | parantez(i)=(1/(sqrt(kroshe(i)))); 280 | ber(i)=(.5)*erfc(parantez(i)); 281 | end 282 | end 283 | 284 | berg1=ber(1); 285 | berg2=ber(2); 286 | berg3=ber(3); 287 | v14=[v14 berg1]; 288 | v15=[v15 berg2]; 289 | v16=[v16 berg3]; 290 | 291 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 292 | pc=pc1*pc2*pc3; 293 | avgber5=[avgber5 1-pc]; 294 | end 295 | 296 | end 297 | 298 | figure(1) 299 | % semilogy(ebn0,v1,'-^r');hold on 300 | % semilogy(ebn0,v2,'-^k');hold on 301 | % semilogy(ebn0,v3,'-^b');hold on 302 | 303 | semilogy(ebn0,avgber5,'-*k');hold on 304 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 305 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 306 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% multi beta 120 307 | ebn0=[0:10:30];v17=[];v18=[];v19=[];terter=[];avgber6=[]; 308 | for j=1:4 309 | rr=[]; 310 | 311 | 312 | it=1; 313 | Ts =.1; 314 | for k=1:it 315 | 316 | % Fd = 1; % Max Doppler frequency shift 317 | % tau = [ 0 0 0]; % Path delays 318 | % pdb = [ 1 0 -1]; % Avg path power gains 319 | % h = rayleighchan(Ts, Fd,tau,pdb); 320 | % h.StoreHistory = 1; 321 | % h.StorePathGains = 1; 322 | % h.ResetBeforeFiltering = 0; 323 | % a = h.PathGains; 324 | % % y=(abs(h.PathGains)).^2; 325 | for gg=1:1 326 | cvx_begin gp 327 | m=19;B=40;np=3; 328 | ebd= 10*log10((B*40)/m) ; 329 | eb=10^(.1*ebd); 330 | ebn0ad=10^(.1*ebn0(j)); 331 | n0=2*(eb/ebn0ad); 332 | alpha=[.75;.85;1.3]; 333 | y=3*(alpha.^2); 334 | I=6*(alpha.^2); 335 | variables t p(3) 336 | minimize(t) 337 | subject to 338 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*p.*m.*(eb/n0))<=t; 339 | sum(p)<=(34/19); 340 | p>=[0; 0; 0]; 341 | cvx_end 342 | p1=p'; 343 | y=y'; 344 | for i=1:3 345 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 346 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 347 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 348 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(p1(i).*m.*(y(i).^2)*(eb/n0)); 349 | 350 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 351 | parantez(i)=(1/(sqrt(kroshe(i)))); 352 | ber(i)=(.5)*erfc(parantez(i)); 353 | end 354 | end 355 | 356 | berg1=ber(1); 357 | berg2=ber(2); 358 | berg3=ber(3); 359 | v17=[v17 berg1]; 360 | v18=[v18 berg2]; 361 | v19=[v19 berg3]; 362 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 363 | pc=pc1*pc2*pc3; 364 | avgber6=[avgber6 1-pc]; 365 | end 366 | 367 | end 368 | 369 | % figure(1) 370 | % semilogy(ebn0,v1,'-^r');hold on 371 | % semilogy(ebn0,v2,'-^k');hold on 372 | % semilogy(ebn0,v3,'-^b');hold on 373 | 374 | semilogy(ebn0,avgber6,'-ok');hold on 375 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 40 376 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 377 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% multi beta 40 378 | ebn0=[0:10:30];v20=[];v21=[];v22=[];terter=[];avgber7=[]; 379 | 380 | for j=1:4 381 | rr=[]; 382 | 383 | 384 | it=1; 385 | Ts =.1; 386 | for k=1:it 387 | 388 | for gg=1:1 389 | cvx_begin gp 390 | m=19;B=63;np=3; 391 | ebd= 10*log10((B*40)/m) ; 392 | eb=10^(.1*ebd); 393 | ebn0ad=10^(.1*ebn0(j)); 394 | n0=2*(eb/ebn0ad); 395 | alpha=[.75;.85;1.3]; 396 | y=3*(alpha.^2); 397 | I=6*(alpha.^2); 398 | variables t p(3) 399 | minimize(t) 400 | subject to 401 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*p.*m.*(eb/n0))<=t; 402 | sum(p)<=(34/19); 403 | p>=[0; 0; 0]; 404 | cvx_end 405 | p1=p'; 406 | y=y'; 407 | for i=1:3 408 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 409 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 410 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 411 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(p1(i).*m.*(y(i).^2)*(eb/n0)); 412 | 413 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 414 | parantez(i)=(1/(sqrt(kroshe(i)))); 415 | ber(i)=(.5)*erfc(parantez(i)); 416 | end 417 | end 418 | 419 | berg1=ber(1); 420 | berg2=ber(2); 421 | berg3=ber(3); 422 | v20=[v20 berg1]; 423 | v21=[v21 berg2]; 424 | v22=[v22 berg3]; 425 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 426 | pc=pc1*pc2*pc3; 427 | avgber7=[avgber7 1-pc]; 428 | end 429 | 430 | end 431 | 432 | % figure(1) 433 | % semilogy(ebn0,v1,'-^r');hold on 434 | % semilogy(ebn0,v2,'-^k');hold on 435 | % semilogy(ebn0,v3,'-^b');hold on 436 | 437 | semilogy(ebn0,avgber7,'-sk');hold on 438 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ofdmdcsk 439 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 440 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% multi beta 60 441 | ebn0=[0:10:30];v23=[];v24=[];v25=[];terter=[];avgber8=[]; 442 | for j=1:4 443 | rr=[]; 444 | 445 | 446 | it=1; 447 | Ts =.1; 448 | for k=1:it 449 | 450 | for gg=1:1 451 | cvx_begin gp 452 | m=19;B=120;np=3; 453 | ebd= 10*log10((B*40)/m) ; 454 | eb=10^(.1*ebd); 455 | ebn0ad=10^(.1*ebn0(j)); 456 | n0=2*(eb/ebn0ad); 457 | alpha=[.75;.85;1.3]; 458 | y=3*(alpha.^2); 459 | I=6*(alpha.^2); 460 | variables t p(3) 461 | minimize(t) 462 | subject to 463 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*p.*m.*(eb/n0))<=t; 464 | sum(p)<=(34/19); 465 | p>=[0; 0; 0]; 466 | cvx_end 467 | p1=p'; 468 | y=y'; 469 | for i=1:3 470 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 471 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 472 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 473 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(p1(i).*m.*(y(i).^2)*(eb/n0)); 474 | 475 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 476 | parantez(i)=(1/(sqrt(kroshe(i)))); 477 | ber(i)=(.5)*erfc(parantez(i)); 478 | end 479 | end 480 | 481 | berg1=ber(1); 482 | berg2=ber(2); 483 | berg3=ber(3); 484 | v23=[v23 berg1]; 485 | v24=[v24 berg2]; 486 | v25=[v25 berg3]; 487 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 488 | pc=pc1*pc2*pc3; 489 | avgber8=[avgber8 1-pc]; 490 | end 491 | 492 | end 493 | 494 | % figure(1) 495 | % semilogy(ebn0,v1,'-^r');hold on 496 | % semilogy(ebn0,v2,'-^k');hold on 497 | % semilogy(ebn0,v3,'-^b');hold on 498 | 499 | semilogy(ebn0,avgber8,'-sk');hold on 500 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ofdmdcsk 501 | 502 | -------------------------------------------------------------------------------- /iterative7_multi_p.m: -------------------------------------------------------------------------------- 1 | clear all 2 | close all 3 | 4 | ebn0=[0:1:10];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 5 | for j=1:11 6 | rr=[]; 7 | 8 | 9 | it=1; 10 | Ts =.1; 11 | for k=1:it 12 | 13 | for gg=1:1 14 | cvx_begin gp quiet 15 | m=21;B=40;np=1; 16 | ebd= 10*log10((B*5)/m) ; 17 | eb=10^(.1*ebd); 18 | ebn0ad=10^(.1*ebn0(j)); 19 | n0=(eb/ebn0ad); 20 | 21 | alpha=[.75;.85;1.3]; 22 | y=3*(alpha.^2); 23 | variables t p(3) 24 | minimize(t) 25 | subject to 26 | ((((m*p)+1).*(p+1))./(((m)*p.*y)*(eb/n0)))+((B*(((m*p)+1).^2)))./(2*((m).^2)*p.*(y.^2)*((eb/n0).^2))<=t 27 | 28 | sum(p)<=(2/21); 29 | p>=[0; 0; 0]; 30 | cvx_end 31 | 32 | y=y'; 33 | p1=p'; 34 | for i=1:3 35 | kk1(i)=((p1(i)+1)*((m*p1(i))+1))/((p1(i))*((m)*y(i)*(eb/n0))); 36 | kk2(i)=(B*(((m*p1(i))+1)^2))/(2*((m)^2)*(p1(i))*(y(i)^2)*((eb/n0)^2)); 37 | kroshe(i)=kk1(i)+kk2(i); 38 | parantez(i)=(1/(sqrt(kroshe(i)))); 39 | ber1(i)=(.5)*erfc(parantez(i)); 40 | end 41 | end 42 | 43 | berg1=ber1(1); 44 | berg2=ber1(2); 45 | berg3=ber1(3); 46 | v1=[v1 berg1]; 47 | v2=[v2 berg2]; 48 | v3=[v3 berg3]; 49 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 50 | pc=pc1*pc2*pc3; 51 | avgber1=[avgber1 1-pc]; 52 | end 53 | 54 | end 55 | 56 | figure(1) 57 | semilogy(ebn0,v1,'-^r');hold on 58 | semilogy(ebn0,v2,'-^k');hold on 59 | semilogy(ebn0,v3,'-^b');hold on 60 | semilogy(ebn0,avgber1,'-sb');hold on 61 | 62 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 63 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 64 | 65 | % 66 | % ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber2=[]; 67 | % for j=1:31 68 | % rr=[]; 69 | % 70 | % 71 | % it=1; 72 | % Ts =.1; 73 | % for k=1:it 74 | % 75 | % for gg=1:1 76 | % cvx_begin gp 77 | % m=20;B=40;np=2; 78 | % ebd= 10*log10((B*20)/m) ; 79 | % eb=10^(.1*ebd); 80 | % ebn0ad=10^(.1*ebn0(j)); 81 | % n0=(eb/ebn0ad); 82 | % alpha=[.75;.85;1.3]; 83 | % y=3*(alpha.^2); 84 | % I=3*(alpha.^2); 85 | % variables t p(3) 86 | % minimize(t) 87 | % subject to 88 | % ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 89 | % sum(p)<=(14/20); 90 | % p>=[0; 0; 0]; 91 | % cvx_end 92 | % p1=p'; 93 | % y=y'; 94 | % for i=1:3 95 | % kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 96 | % kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 97 | % kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 98 | % kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 99 | % 100 | % kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 101 | % parantez(i)=(1/(sqrt(kroshe(i)))); 102 | % ber(i)=(.5)*erfc(parantez(i)); 103 | % end 104 | % end 105 | % 106 | % berg1=ber(1); 107 | % berg2=ber(2); 108 | % berg3=ber(3); 109 | % v1=[v1 berg1]; 110 | % v2=[v2 berg2]; 111 | % v3=[v3 berg3]; 112 | % pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 113 | % pc=pc1*pc2*pc3; 114 | % avgber2=[avgber2 1-pc]; 115 | % end 116 | % 117 | % end 118 | % 119 | % % figure(1) 120 | % % semilogy(ebn0,v1,'-^r');hold on 121 | % % semilogy(ebn0,v2,'-^k');hold on 122 | % % semilogy(ebn0,v3,'-^b');hold on 123 | % semilogy(ebn0,avgber2,'-sr');hold on 124 | % 125 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 126 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 127 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% user=3, m=22 128 | % ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber3=[]; 129 | % for j=1:31 130 | % rr=[]; 131 | % 132 | % it=1; 133 | % Ts =.1; 134 | % for k=1:it 135 | % 136 | % for gg=1:1 137 | % cvx_begin gp 138 | % m=19;B=40;np=3; 139 | % ebd= 10*log10((B*20)/m) ; 140 | % eb=10^(.1*ebd); 141 | % ebn0ad=10^(.1*ebn0(j)); 142 | % n0=(eb/ebn0ad); 143 | % alpha=[.75;.85;1.3]; 144 | % y=3*(alpha.^2); 145 | % I=6*(alpha.^2); 146 | % variables t p(3) 147 | % minimize(t) 148 | % subject to 149 | % ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 150 | % sum(p)<=(14/19); 151 | % p>=[0; 0; 0]; 152 | % cvx_end 153 | % p1=p'; 154 | % y=y'; 155 | % for i=1:3 156 | % kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 157 | % kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 158 | % kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 159 | % kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 160 | % 161 | % kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 162 | % parantez(i)=(1/(sqrt(kroshe(i)))); 163 | % ber(i)=(.5)*erfc(parantez(i)); 164 | % end 165 | % end 166 | % 167 | % berg1=ber(1); 168 | % berg2=ber(2); 169 | % berg3=ber(3); 170 | % v1=[v1 berg1]; 171 | % v2=[v2 berg2]; 172 | % v3=[v3 berg3]; 173 | % pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 174 | % pc=pc1*pc2*pc3; 175 | % avgber3=[avgber3 1-pc]; 176 | % end 177 | % 178 | % end 179 | % 180 | % % figure(1) 181 | % % semilogy(ebn0,v1,'-^r');hold on 182 | % % semilogy(ebn0,v2,'-^k');hold on 183 | % % semilogy(ebn0,v3,'-^b');hold on 184 | % 185 | % semilogy(ebn0,avgber3,'-sr');hold on 186 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 187 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 188 | % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%user=6, m=22 189 | % % ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber4=[]; 190 | % % for j=1:31 191 | % % rr=[]; 192 | % % 193 | % % 194 | % % it=1; 195 | % % Ts =.1; 196 | % % for k=1:it 197 | % % cvx_begin gp 198 | % % m=16;B=40;np=6; 199 | % % ebd= 10*log10((B*50)/m) ; 200 | % % eb=10^(.1*ebd); 201 | % % ebn0ad=10^(.1*ebn0(j)); 202 | % % n0=(eb/ebn0ad); 203 | % % alpha=[.75;.85;1.3]; 204 | % % y=3*(alpha.^2); 205 | % % I=15*(alpha.^2); 206 | % % variables t p(3) 207 | % % minimize(t) 208 | % % subject to 209 | % % ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 210 | % % sum(p)<=(14/16); 211 | % % p>=[0; 0; 0]; 212 | % % cvx_end 213 | % % p1=p'; 214 | % % y=y'; 215 | % % for i=1:3 216 | % % kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 217 | % % kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 218 | % % kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 219 | % % kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 220 | % % 221 | % % kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 222 | % % parantez(i)=(1/(sqrt(kroshe(i)))); 223 | % % ber1(i)=(.5)*erfc(parantez(i)); 224 | % % end 225 | % % berg1=ber1(1); 226 | % % berg2=ber1(2); 227 | % % berg3=ber1(3); 228 | % % v1=[v1 berg1]; 229 | % % v2=[v2 berg2]; 230 | % % v3=[v3 berg3]; 231 | % % pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 232 | % % pc=pc1*pc2*pc3; 233 | % % avgber4=[avgber4 1-pc]; 234 | % % end 235 | % % 236 | % % end 237 | % % 238 | % % % figure(1) 239 | % % % semilogy(ebn0,v1,'-^r');hold on 240 | % % % semilogy(ebn0,v2,'-^k');hold on 241 | % % % semilogy(ebn0,v3,'-^b');hold on 242 | % % 243 | % % semilogy(ebn0,avgber4,'-sb');hold on 244 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 245 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 246 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 247 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 248 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% user=1, m=47 249 | % % % 250 | % % ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber5=[]; 251 | % % for j=1:31 252 | % % rr=[]; 253 | % % 254 | % % it=1; 255 | % % Ts =.1; 256 | % % for k=1:it 257 | % % 258 | % % for gg=1:1 259 | % % cvx_begin gp 260 | % % m=48;B=40;np=1; 261 | % % ebd= 10*log10((B*5)/m) ; 262 | % % eb=10^(.1*ebd); 263 | % % ebn0ad=10^(.1*ebn0(j)); 264 | % % n0=(eb/ebn0ad); 265 | % % 266 | % % alpha=[.75;.85;1.3]; 267 | % % y=3*(alpha.^2); 268 | % % variables t p(3) 269 | % % minimize(t) 270 | % % subject to 271 | % % ((((m*p)+1).*(p+1))./(((m)*p.*y)*(eb/n0)))+((B*(((m*p)+1).^2)))./(2*((m).^2)*p.*(y.^2)*((eb/n0).^2))<=t 272 | % % sum(p)<=(2/48); 273 | % % p>=[0; 0; 0]; 274 | % % cvx_end 275 | % % 276 | % % y=y'; 277 | % % p1=p'; 278 | % % for i=1:3 279 | % % kk1(i)=((p1(i)+1)*((m*p1(i))+1))/((p1(i))*((m)*y(i)*(eb/n0))); 280 | % % kk2(i)=(B*(((m*p1(i))+1)^2))/(2*((m)^2)*(p1(i))*(y(i)^2)*((eb/n0)^2)); 281 | % % kroshe(i)=kk1(i)+kk2(i); 282 | % % parantez(i)=(1/(sqrt(kroshe(i)))); 283 | % % ber(i)=(.5)*erfc(parantez(i)); 284 | % % end 285 | % % end 286 | % % 287 | % % berg1=ber(1); 288 | % % berg2=ber(2); 289 | % % berg3=ber(3); 290 | % % v1=[v1 berg1]; 291 | % % v2=[v2 berg2]; 292 | % % v3=[v3 berg3]; 293 | % % 294 | % % pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 295 | % % pc=pc1*pc2*pc3; 296 | % % avgber5=[avgber5 1-pc]; 297 | % % end 298 | % % 299 | % % end 300 | % % 301 | % % figure(1) 302 | % % % semilogy(ebn0,v1,'-^r');hold on 303 | % % % semilogy(ebn0,v2,'-^k');hold on 304 | % % % semilogy(ebn0,v3,'-^b');hold on 305 | % % 306 | % % semilogy(ebn0,avgber5,'-*k');hold on 307 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 308 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%user=2, m=47 309 | % % 310 | % % 311 | % % ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber6=[]; 312 | % % for j=1:31 313 | % % rr=[]; 314 | % % 315 | % % it=1; 316 | % % Ts =.1; 317 | % % for k=1:it 318 | % % 319 | % % for gg=1:1 320 | % % cvx_begin gp 321 | % % m=47;B=40;np=2; 322 | % % ebd= 10*log10((B*20)/m) ; 323 | % % eb=10^(.1*ebd); 324 | % % ebn0ad=10^(.1*ebn0(j)); 325 | % % n0=(eb/ebn0ad); 326 | % % alpha=[.75;.85;1.3]; 327 | % % y=3*(alpha.^2); 328 | % % I=3*(alpha.^2); 329 | % % variables t p(3) 330 | % % minimize(t) 331 | % % subject to 332 | % % ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 333 | % % sum(p)<=(14/47); 334 | % % p>=[0; 0; 0]; 335 | % % cvx_end 336 | % % p1=p'; 337 | % % y=y'; 338 | % % for i=1:3 339 | % % kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 340 | % % kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 341 | % % kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 342 | % % kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 343 | % % 344 | % % kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 345 | % % parantez(i)=(1/(sqrt(kroshe(i)))); 346 | % % ber(i)=(.5)*erfc(parantez(i)); 347 | % % end 348 | % % end 349 | % % 350 | % % berg1=ber(1); 351 | % % berg2=ber(2); 352 | % % berg3=ber(3); 353 | % % v1=[v1 berg1]; 354 | % % v2=[v2 berg2]; 355 | % % v3=[v3 berg3]; 356 | % % pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 357 | % % pc=pc1*pc2*pc3; 358 | % % avgber6=[avgber6 1-pc]; 359 | % % end 360 | % % 361 | % % end 362 | % % 363 | % % % figure(1) 364 | % % % semilogy(ebn0,v1,'-^r');hold on 365 | % % % semilogy(ebn0,v2,'-^k');hold on 366 | % % % semilogy(ebn0,v3,'-^b');hold on 367 | % % 368 | % % semilogy(ebn0,avgber6,'-ok');hold on 369 | % % 370 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 371 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 372 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%user=3, m=47 373 | % % ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber7=[]; 374 | % % for j=1:31 375 | % % rr=[]; 376 | % % 377 | % % 378 | % % it=1; 379 | % % Ts =.1; 380 | % % for k=1:it 381 | % % 382 | % % for gg=1:1 383 | % % cvx_begin gp 384 | % % m=46;B=40;np=3; 385 | % % ebd= 10*log10((B*20)/m) ; 386 | % % eb=10^(.1*ebd); 387 | % % ebn0ad=10^(.1*ebn0(j)); 388 | % % n0=(eb/ebn0ad); 389 | % % alpha=[.75;.85;1.3]; 390 | % % y=3*(alpha.^2); 391 | % % I=6*(alpha.^2); 392 | % % variables t p(3) 393 | % % minimize(t) 394 | % % subject to 395 | % % ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 396 | % % sum(p)<=(14/46); 397 | % % p>=[0; 0; 0]; 398 | % % cvx_end 399 | % % p1=p'; 400 | % % y=y'; 401 | % % for i=1:3 402 | % % kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 403 | % % kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 404 | % % kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 405 | % % kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 406 | % % 407 | % % kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 408 | % % parantez(i)=(1/(sqrt(kroshe(i)))); 409 | % % ber(i)=(.5)*erfc(parantez(i)); 410 | % % end 411 | % % end 412 | % % 413 | % % berg1=ber(1); 414 | % % berg2=ber(2); 415 | % % berg3=ber(3); 416 | % % v1=[v1 berg1]; 417 | % % v2=[v2 berg2]; 418 | % % v3=[v3 berg3]; 419 | % % pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 420 | % % pc=pc1*pc2*pc3; 421 | % % avgber7=[avgber7 1-pc]; 422 | % % end 423 | % % 424 | % % end 425 | % % 426 | % % % figure(1) 427 | % % % semilogy(ebn0,v1,'-^r');hold on 428 | % % % semilogy(ebn0,v2,'-^k');hold on 429 | % % % semilogy(ebn0,v3,'-^b');hold on 430 | % % 431 | % % semilogy(ebn0,avgber7,'-sk');hold on 432 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 433 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 434 | % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%user=6, m=47 435 | % % ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber8=[]; 436 | % % for j=1:31 437 | % % rr=[]; 438 | % % 439 | % % 440 | % % it=1; 441 | % % Ts =.1; 442 | % % for k=1:it 443 | % % cvx_begin gp 444 | % % m=43;B=40;np=6; 445 | % % ebd= 10*log10((B*20)/m) ; 446 | % % eb=10^(.1*ebd); 447 | % % ebn0ad=10^(.1*ebn0(j)); 448 | % % n0=(eb/ebn0ad); 449 | % % alpha=[.75;.85;1.3]; 450 | % % y=3*(alpha.^2); 451 | % % I=15*(alpha.^2); 452 | % % variables t p(3) 453 | % % minimize(t) 454 | % % subject to 455 | % % ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 456 | % % sum(p)<=(14/43); 457 | % % p>=[0; 0; 0]; 458 | % % cvx_end 459 | % % p1=p'; 460 | % % y=y'; 461 | % % for i=1:3 462 | % % kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 463 | % % kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 464 | % % kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 465 | % % kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 466 | % % 467 | % % kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 468 | % % parantez(i)=(1/(sqrt(kroshe(i)))); 469 | % % ber1(i)=(.5)*erfc(parantez(i)); 470 | % % end 471 | % % 472 | % % berg1=ber1(1); 473 | % % berg2=ber1(2); 474 | % % berg3=ber1(3); 475 | % % v1=[v1 berg1]; 476 | % % v2=[v2 berg2]; 477 | % % v3=[v3 berg3]; 478 | % % pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 479 | % % pc=pc1*pc2*pc3; 480 | % % avgber8=[avgber8 1-pc]; 481 | % % end 482 | % % 483 | % % end 484 | % % 485 | % % % figure(1) 486 | % % % semilogy(ebn0,v1,'-^r');hold on 487 | % % % semilogy(ebn0,v2,'-^k');hold on 488 | % % % semilogy(ebn0,v3,'-^b');hold on 489 | % % 490 | % % semilogy(ebn0,avgber8,'-sk');hold on 491 | -------------------------------------------------------------------------------- /iterative_9_group_increase.m: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1user 2 | clear all 3 | ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 4 | for j=1:31 5 | rr=[]; 6 | it=1; 7 | Ts =.1; 8 | for k=1:it 9 | for gg=1:1 10 | cvx_begin gp 11 | m=11;B=40;np=1; 12 | ebd= 10*log10((B*10)/m) ; 13 | eb=10^(.1*ebd); 14 | ebn0ad=10^(.1*ebn0(j)); 15 | n0=(eb/ebn0ad); 16 | alpha=[.75;1.3]; 17 | y=3*(alpha.^2); 18 | I=[0; 0]; 19 | variables t p(2) 20 | minimize(t) 21 | subject to 22 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 23 | sum(p)<=(10/11); 24 | p>[0; 0]; 25 | cvx_end 26 | p1=p'; 27 | y=y'; 28 | for i=1:2 29 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 30 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 31 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 32 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 33 | 34 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 35 | parantez(i)=(1/(sqrt(kroshe(i)))); 36 | ber(i)=(.5)*erfc(parantez(i)); 37 | end 38 | end 39 | 40 | berg1=ber(1); 41 | berg2=ber(2); 42 | 43 | v1=[v1 berg1]; 44 | v2=[v2 berg2]; 45 | 46 | 47 | pc1=(1-berg1);pc2=(1-berg2); 48 | pc=pc1*pc2; 49 | avgber1=[avgber1 1-pc]; 50 | end 51 | 52 | end 53 | 54 | figure(1) 55 | % semilogy(ebn0,v1,'-^r');hold on 56 | % semilogy(ebn0,v2,'-^k');hold on 57 | % semilogy(ebn0,v3,'-^b');hold on 58 | semilogy(ebn0,avgber1,'-sb');hold on 59 | 60 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 61 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 62 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 63 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 64 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3group 65 | ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 66 | for j=1:31 67 | rr=[]; 68 | it=1; 69 | Ts =.1; 70 | for k=1:it 71 | for gg=1:1 72 | cvx_begin gp 73 | m=6.3;B=40;np=1; 74 | ebd= 10*log10((B*(20/3))/m) ; 75 | eb=10^(.1*ebd); 76 | ebn0ad=10^(.1*ebn0(j)); 77 | n0=(eb/ebn0ad); 78 | alpha=[.75;.85;1.3]; 79 | y=3*(alpha.^2); 80 | I=[0; 0; 0]; 81 | variables t p(3) 82 | minimize(t) 83 | subject to 84 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 85 | sum(p)<=((20/3)/6.3); 86 | p>[0; 0; 0]; 87 | cvx_end 88 | p1=p'; 89 | y=y'; 90 | for i=1:3 91 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 92 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 93 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 94 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 95 | 96 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 97 | parantez(i)=(1/(sqrt(kroshe(i)))); 98 | ber(i)=(.5)*erfc(parantez(i)); 99 | end 100 | end 101 | 102 | berg1=ber(1); 103 | berg2=ber(2); 104 | berg3=ber(3); 105 | v1=[v1 berg1]; 106 | v2=[v2 berg2]; 107 | v3=[v3 berg3]; 108 | 109 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 110 | pc=pc1*pc2*pc3; 111 | avgber1=[avgber1 1-pc]; 112 | end 113 | 114 | end 115 | 116 | figure(1) 117 | % semilogy(ebn0,v1,'-^r');hold on 118 | % semilogy(ebn0,v2,'-^k');hold on 119 | % semilogy(ebn0,v3,'-^b');hold on 120 | semilogy(ebn0,avgber1,'-sb');hold on 121 | 122 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 123 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 124 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 group 125 | ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber1=[];v4=[]; 126 | for j=1:31 127 | rr=[]; 128 | it=1; 129 | Ts =.1; 130 | for k=1:it 131 | for gg=1:1 132 | cvx_begin gp 133 | m=4.5;B=40;np=1; 134 | ebd= 10*log10((B*(20/4))/m) ; 135 | eb=10^(.1*ebd); 136 | ebn0ad=10^(.1*ebn0(j)); 137 | n0=(eb/ebn0ad); 138 | alpha=[.75;.85;.95;1.3]; 139 | y=3*(alpha.^2); 140 | I=[0; 0; 0 ;0]; 141 | variables t p(4) 142 | minimize(t) 143 | subject to 144 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 145 | sum(p)<=((20/4)/4.5); 146 | p>[0; 0; 0;0]; 147 | cvx_end 148 | p1=p'; 149 | y=y'; 150 | for i=1:4 151 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 152 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 153 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 154 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 155 | 156 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 157 | parantez(i)=(1/(sqrt(kroshe(i)))); 158 | ber(i)=(.5)*erfc(parantez(i)); 159 | end 160 | end 161 | 162 | berg1=ber(1); 163 | berg2=ber(2); 164 | berg3=ber(3); 165 | berg4=ber(4); 166 | v1=[v1 berg1]; 167 | v2=[v2 berg2]; 168 | v3=[v3 berg3]; 169 | v4=[v4 berg4]; 170 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3);pc4=(1-berg4); 171 | pc=pc1*pc2*pc3;pc4 172 | avgber1=[avgber1 1-pc]; 173 | end 174 | 175 | end 176 | 177 | figure(1) 178 | % semilogy(ebn0,v1,'-^r');hold on 179 | % semilogy(ebn0,v2,'-^k');hold on 180 | % semilogy(ebn0,v3,'-^b');hold on 181 | semilogy(ebn0,avgber1,'-sb');hold on 182 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 183 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 184 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 22222222222222222222222222 user 185 | ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 186 | for j=1:31 187 | rr=[]; 188 | it=1; 189 | Ts =.1; 190 | for k=1:it 191 | for gg=1:1 192 | cvx_begin gp 193 | m=10;B=40;np=2; 194 | ebd= 10*log10((B*(20/2))/m) ; 195 | eb=10^(.1*ebd); 196 | ebn0ad=10^(.1*ebn0(j)); 197 | n0=(eb/ebn0ad); 198 | alpha=[.75;1.3]; 199 | y=3*(alpha.^2); 200 | I=3*(alpha.^2); 201 | variables t p(2) 202 | minimize(t) 203 | subject to 204 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 205 | sum(p)<=((20/2)/10); 206 | p>[0; 0]; 207 | cvx_end 208 | p1=p'; 209 | y=y'; 210 | for i=1:2 211 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 212 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 213 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 214 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 215 | 216 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 217 | parantez(i)=(1/(sqrt(kroshe(i)))); 218 | ber(i)=(.5)*erfc(parantez(i)); 219 | end 220 | end 221 | 222 | berg1=ber(1); 223 | berg2=ber(2); 224 | 225 | v1=[v1 berg1]; 226 | v2=[v2 berg2]; 227 | 228 | 229 | pc1=(1-berg1);pc2=(1-berg2); 230 | pc=pc1*pc2; 231 | avgber1=[avgber1 1-pc]; 232 | end 233 | 234 | end 235 | 236 | figure(1) 237 | % semilogy(ebn0,v1,'-^r');hold on 238 | % semilogy(ebn0,v2,'-^k');hold on 239 | % semilogy(ebn0,v3,'-^b');hold on 240 | semilogy(ebn0,avgber1,'-sb');hold on 241 | 242 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 243 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 244 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 245 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 246 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3group 247 | ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 248 | for j=1:31 249 | rr=[]; 250 | it=1; 251 | Ts =.1; 252 | for k=1:it 253 | for gg=1:1 254 | cvx_begin gp 255 | m=7.3;B=40;np=2; 256 | ebd= 10*log10((B*(20/3))/m) ; 257 | eb=10^(.1*ebd); 258 | ebn0ad=10^(.1*ebn0(j)); 259 | n0=(eb/ebn0ad); 260 | alpha=[.75;.85;1.3]; 261 | y=3*(alpha.^2); 262 | I=3*(alpha.^2); 263 | variables t p(3) 264 | minimize(t) 265 | subject to 266 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 267 | sum(p)<=((20/3)/7.3); 268 | p>[0; 0; 0]; 269 | cvx_end 270 | p1=p'; 271 | y=y'; 272 | for i=1:3 273 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 274 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 275 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 276 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 277 | 278 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 279 | parantez(i)=(1/(sqrt(kroshe(i)))); 280 | ber(i)=(.5)*erfc(parantez(i)); 281 | end 282 | end 283 | 284 | berg1=ber(1); 285 | berg2=ber(2); 286 | berg3=ber(3); 287 | v1=[v1 berg1]; 288 | v2=[v2 berg2]; 289 | v3=[v3 berg3]; 290 | 291 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 292 | pc=pc1*pc2*pc3; 293 | avgber1=[avgber1 1-pc]; 294 | end 295 | 296 | end 297 | 298 | figure(1) 299 | % semilogy(ebn0,v1,'-^r');hold on 300 | % semilogy(ebn0,v2,'-^k');hold on 301 | % semilogy(ebn0,v3,'-^b');hold on 302 | semilogy(ebn0,avgber1,'-sb');hold on 303 | 304 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 305 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 306 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 group 307 | ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber1=[];v4=[]; 308 | for j=1:31 309 | rr=[]; 310 | it=1; 311 | Ts =.1; 312 | for k=1:it 313 | for gg=1:1 314 | cvx_begin gp 315 | m=5.5;B=40;np=2; 316 | ebd= 10*log10((B*(20/4))/m) ; 317 | eb=10^(.1*ebd); 318 | ebn0ad=10^(.1*ebn0(j)); 319 | n0=(eb/ebn0ad); 320 | alpha=[.75;.85;.95;1.3]; 321 | y=3*(alpha.^2); 322 | I=3*(alpha.^2); 323 | variables t p(4) 324 | minimize(t) 325 | subject to 326 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 327 | sum(p)<=((20/4)/5.5); 328 | p>[0; 0; 0;0]; 329 | cvx_end 330 | p1=p'; 331 | y=y'; 332 | for i=1:4 333 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 334 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 335 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 336 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 337 | 338 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 339 | parantez(i)=(1/(sqrt(kroshe(i)))); 340 | ber(i)=(.5)*erfc(parantez(i)); 341 | end 342 | end 343 | 344 | berg1=ber(1); 345 | berg2=ber(2); 346 | berg3=ber(3); 347 | berg4=ber(4); 348 | v1=[v1 berg1]; 349 | v2=[v2 berg2]; 350 | v3=[v3 berg3]; 351 | v4=[v4 berg4]; 352 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3);pc4=(1-berg4); 353 | pc=pc1*pc2*pc3;pc4 354 | avgber1=[avgber1 1-pc]; 355 | end 356 | 357 | end 358 | 359 | figure(1) 360 | % semilogy(ebn0,v1,'-^r');hold on 361 | % semilogy(ebn0,v2,'-^k');hold on 362 | % semilogy(ebn0,v3,'-^b');hold on 363 | semilogy(ebn0,avgber1,'-sb');hold on 364 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 365 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 366 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 367 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 368 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 369 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 33333333333333333 user 370 | ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 371 | for j=1:31 372 | rr=[]; 373 | it=1; 374 | Ts =.1; 375 | for k=1:it 376 | for gg=1:1 377 | cvx_begin gp 378 | m=8;B=40;np=3; 379 | ebd= 10*log10((B*(20/2))/m) ; 380 | eb=10^(.1*ebd); 381 | ebn0ad=10^(.1*ebn0(j)); 382 | n0=(eb/ebn0ad); 383 | alpha=[.75;1.3]; 384 | y=3*(alpha.^2); 385 | I=6*(alpha.^2); 386 | variables t p(2) 387 | minimize(t) 388 | subject to 389 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 390 | sum(p)<=((20/2)/8); 391 | p>[0; 0]; 392 | cvx_end 393 | p1=p'; 394 | y=y'; 395 | for i=1:2 396 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 397 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 398 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 399 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 400 | 401 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 402 | parantez(i)=(1/(sqrt(kroshe(i)))); 403 | ber(i)=(.5)*erfc(parantez(i)); 404 | end 405 | end 406 | 407 | berg1=ber(1); 408 | berg2=ber(2); 409 | 410 | v1=[v1 berg1]; 411 | v2=[v2 berg2]; 412 | 413 | 414 | pc1=(1-berg1);pc2=(1-berg2); 415 | pc=pc1*pc2; 416 | avgber1=[avgber1 1-pc]; 417 | end 418 | 419 | end 420 | 421 | figure(1) 422 | % semilogy(ebn0,v1,'-^r');hold on 423 | % semilogy(ebn0,v2,'-^k');hold on 424 | % semilogy(ebn0,v3,'-^b');hold on 425 | semilogy(ebn0,avgber1,'-sb');hold on 426 | 427 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 428 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 429 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 430 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 431 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3group 432 | ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber1=[]; 433 | for j=1:31 434 | rr=[]; 435 | it=1; 436 | Ts =.1; 437 | for k=1:it 438 | for gg=1:1 439 | cvx_begin gp 440 | m=4.1;B=40;np=3; 441 | ebd= 10*log10((B*(20/3))/m) ; 442 | eb=10^(.1*ebd); 443 | ebn0ad=10^(.1*ebn0(j)); 444 | n0=(eb/ebn0ad); 445 | alpha=[.75;.85;1.3]; 446 | y=3*(alpha.^2); 447 | I=6*(alpha.^2); 448 | variables t p(3) 449 | minimize(t) 450 | subject to 451 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 452 | sum(p)<=((20/3)/4.1); 453 | p>[0; 0; 0]; 454 | cvx_end 455 | p1=p'; 456 | y=y'; 457 | for i=1:3 458 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 459 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 460 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 461 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 462 | 463 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 464 | parantez(i)=(1/(sqrt(kroshe(i)))); 465 | ber(i)=(.5)*erfc(parantez(i)); 466 | end 467 | end 468 | 469 | berg1=ber(1); 470 | berg2=ber(2); 471 | berg3=ber(3); 472 | v1=[v1 berg1]; 473 | v2=[v2 berg2]; 474 | v3=[v3 berg3]; 475 | 476 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3); 477 | pc=pc1*pc2*pc3; 478 | avgber1=[avgber1 1-pc]; 479 | end 480 | 481 | end 482 | 483 | figure(1) 484 | % semilogy(ebn0,v1,'-^r');hold on 485 | % semilogy(ebn0,v2,'-^k');hold on 486 | % semilogy(ebn0,v3,'-^b');hold on 487 | semilogy(ebn0,avgber1,'-sb');hold on 488 | 489 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 490 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 491 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 group 492 | ebn0=[0:1:30];v1=[];v2=[];v3=[];terter=[];avgber1=[];v4=[]; 493 | for j=1:31 494 | rr=[]; 495 | it=1; 496 | Ts =.1; 497 | for k=1:it 498 | for gg=1:1 499 | cvx_begin gp 500 | m=2.5;B=40;np=3; 501 | ebd= 10*log10((B*(20/4))/m) ; 502 | eb=10^(.1*ebd); 503 | ebn0ad=10^(.1*ebn0(j)); 504 | n0=(eb/ebn0ad); 505 | alpha=[.75;.85;.95;1.3]; 506 | y=3*(alpha.^2); 507 | I=6*(alpha.^2); 508 | variables t p(4) 509 | minimize(t) 510 | subject to 511 | ((((m*p)+np).*(p+1))./(((m)*y.*p)*(eb/n0)))+((B*((((m*p)+np)).^2))./(2*(m.^2).*(y.^2).*p.*((eb/n0)^2)))+((2*((m*p)+np).*I)./(m*eb.*y))+(((m*p)+np).*I*(n0))./((y.^2).*m.*(eb/n0))<=t; 512 | sum(p)<=((20/4)/2.5); 513 | p>[0; 0; 0;0]; 514 | cvx_end 515 | p1=p'; 516 | y=y'; 517 | for i=1:4 518 | kk1(i)=((((m*p1(i))+np).*(p1(i)+1))./(((m)*p1(i).*y(i))*(eb/n0))); 519 | kk2(i)=((B*((((m*p1(i))+np)).^2))./(2*(m.^2).*(y(i).^2).*p1(i).*((eb/n0)^2))); 520 | kk3(i)=((2*((m*p1(i))+np).*I(i))./(m*eb.*(y(i)))); 521 | kk4(i)=(((m*p1(i))+np)*I(i)*(n0))./(m.*(y(i).^2)*(eb/n0)); 522 | 523 | kroshe(i)=kk1(i)+kk2(i)+kk3(i)+kk4(i); 524 | parantez(i)=(1/(sqrt(kroshe(i)))); 525 | ber(i)=(.5)*erfc(parantez(i)); 526 | end 527 | end 528 | 529 | berg1=ber(1); 530 | berg2=ber(2); 531 | berg3=ber(3); 532 | berg4=ber(4); 533 | v1=[v1 berg1]; 534 | v2=[v2 berg2]; 535 | v3=[v3 berg3]; 536 | v4=[v4 berg4]; 537 | pc1=(1-berg1);pc2=(1-berg2);pc3=(1-berg3);pc4=(1-berg4); 538 | pc=pc1*pc2*pc3;pc4 539 | avgber1=[avgber1 1-pc]; 540 | end 541 | 542 | end 543 | 544 | figure(1) 545 | % semilogy(ebn0,v1,'-^r');hold on 546 | % semilogy(ebn0,v2,'-^k');hold on 547 | % semilogy(ebn0,v3,'-^b');hold on 548 | semilogy(ebn0,avgber1,'-sb');hold on 549 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 550 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 551 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 552 | --------------------------------------------------------------------------------