Rules | Recent posts | topic RSS | Search | Register  | Log in

Please can any one send me the Matlab code for simulate the

 
Post new topic  Reply to topic    EDAboard.com Forum Index -> Digital communication
Author Message
anwer_sbh



Joined: 11 Jul 2006
Posts: 81


Post17 Aug 2006 11:27   Please can any one send me the Matlab code for simulate the

Please can any one send me the Matlab code for simulate the CDMA (IS-95) Transmitter and Receiver?
Back to top
xischaune



Joined: 08 Mar 2006
Posts: 122
Helped: 11


Post17 Aug 2006 20:00   Please can any one send me the Matlab code for simulate the

Chk this out ...maybe this helps...



%------MATLAB code for simulating the spreading using Walsh Codes----------
clear all;
close all;
no_of_users=64;
data_length=50;
user_data=randsrc(no_of_users,data_length,[-1 1]);
user=(1/64)*user_data;

%----------Generating the codes and its timing sequence--------------------
N=64;
H=hadamard(N);
c_1=H(1,Smile; c_2=H(2,Smile; c_3=H(3,Smile; c_4=H(4,Smile; c_5=H(5,Smile; c_6=H(6,Smile; c_7=H(7,Smile; c_8=H(8,Smile; c_9=H(9,Smile; c_10=H(10,Smile;
c_11=H(11,Smile;c_12=H(12,Smile;c_13=H(13,Smile;c_14=H(14,Smile;c_15=H(15,Smile;c_16=H(16,Smile;c_17=H(17,Smile;c_18=H(18,Smile;c_19=H(19,Smile;c_20=H(20,Smile;
c_21=H(21,Smile;c_22=H(22,Smile;c_23=H(23,Smile;c_24=H(24,Smile;c_25=H(25,Smile;c_26=H(26,Smile;c_27=H(27,Smile;c_28=H(28,Smile;c_29=H(29,Smile;c_30=H(30,Smile;
c_31=H(31,Smile;c_32=H(32,Smile;c_33=H(33,Smile;c_34=H(34,Smile;c_35=H(35,Smile;c_36=H(36,Smile;c_37=H(37,Smile;c_38=H(38,Smile;c_39=H(39,Smile;c_40=H(40,Smile;
c_41=H(41,Smile;c_42=H(42,Smile;c_43=H(43,Smile;c_44=H(44,Smile;c_45=H(45,Smile;c_46=H(46,Smile;c_47=H(47,Smile;c_48=H(48,Smile;c_49=H(49,Smile;c_50=H(50,Smile;
c_51=H(51,Smile;c_52=H(52,Smile;c_53=H(53,Smile;c_54=H(54,Smile;c_55=H(55,Smile;c_56=H(56,Smile;c_57=H(57,Smile;c_58=H(58,Smile;c_59=H(59,Smile;c_60=H(60,Smile;
c_61=H(61,Smile;c_62=H(62,Smile;c_63=H(63,Smile;c_64=H(64,Smile;

%-----------------Number of samples per chip-------------------------------
chips=4;
Tc_samp=ones(1,chips); %user codes
code_1=[]; code_2=[]; code_3=[]; code_4=[]; code_5=[]; code_6=[]; code_7=[]; code_8=[]; code_9=[]; code_10=[];
code_11=[];code_12=[];code_13=[];code_14=[];code_15=[];code_16=[];code_17=[];code_18=[];code_19=[];code_20=[];
code_21=[];code_22=[];code_23=[];code_24=[];code_25=[];code_26=[];code_27=[];code_28=[];code_29=[];code_30=[];
code_31=[];code_32=[];code_33=[];code_34=[];code_35=[];code_36=[];code_37=[];code_38=[];code_39=[];code_40=[];
code_41=[];code_42=[];code_43=[];code_44=[];code_45=[];code_46=[];code_47=[];code_48=[];code_49=[];code_50=[];
code_51=[];code_52=[];code_53=[];code_54=[];code_55=[];code_56=[];code_57=[];code_58=[];code_59=[];code_60=[];
code_61=[];code_62=[];code_63=[];code_64=[];
%------------------Spreading Walsh code by chips---------------------------
for k=1:length(H)
code_1=[code_1 c_1(k)*Tc_samp]; code_2=[code_2 c_2(k)*Tc_samp]; code_3=[code_3 c_3(k)*Tc_samp]; code_4=[code_4 c_4(k)*Tc_samp];
code_5=[code_5 c_5(k)*Tc_samp]; code_6=[code_6 c_6(k)*Tc_samp]; code_7=[code_7 c_7(k)*Tc_samp]; code_8=[code_8 c_8(k)*Tc_samp];
code_9=[code_9 c_9(k)*Tc_samp]; code_10=[code_10 c_10(k)*Tc_samp];code_11=[code_11 c_11(k)*Tc_samp];code_12=[code_12 c_12(k)*Tc_samp];
code_13=[code_13 c_13(k)*Tc_samp];code_14=[code_14 c_14(k)*Tc_samp];code_15=[code_15 c_15(k)*Tc_samp];code_16=[code_16 c_16(k)*Tc_samp];
code_17=[code_17 c_17(k)*Tc_samp];code_18=[code_18 c_18(k)*Tc_samp];code_19=[code_19 c_19(k)*Tc_samp];code_20=[code_20 c_20(k)*Tc_samp];
code_21=[code_21 c_21(k)*Tc_samp];code_22=[code_22 c_22(k)*Tc_samp];code_23=[code_23 c_23(k)*Tc_samp];code_24=[code_24 c_24(k)*Tc_samp];
code_25=[code_25 c_25(k)*Tc_samp];code_26=[code_26 c_26(k)*Tc_samp];code_27=[code_27 c_27(k)*Tc_samp];code_28=[code_28 c_28(k)*Tc_samp];
code_29=[code_29 c_29(k)*Tc_samp];code_30=[code_30 c_30(k)*Tc_samp];code_31=[code_31 c_31(k)*Tc_samp];code_32=[code_32 c_32(k)*Tc_samp];
code_33=[code_33 c_33(k)*Tc_samp];code_34=[code_34 c_34(k)*Tc_samp];code_35=[code_35 c_35(k)*Tc_samp];code_36=[code_36 c_36(k)*Tc_samp];
code_37=[code_37 c_37(k)*Tc_samp];code_38=[code_38 c_38(k)*Tc_samp];code_39=[code_39 c_39(k)*Tc_samp];code_40=[code_40 c_40(k)*Tc_samp];
code_41=[code_41 c_41(k)*Tc_samp];code_42=[code_42 c_42(k)*Tc_samp];code_43=[code_43 c_43(k)*Tc_samp];code_44=[code_44 c_44(k)*Tc_samp];
code_45=[code_45 c_45(k)*Tc_samp];code_46=[code_46 c_46(k)*Tc_samp];code_47=[code_47 c_47(k)*Tc_samp];code_48=[code_48 c_48(k)*Tc_samp];
code_49=[code_49 c_49(k)*Tc_samp];code_50=[code_50 c_50(k)*Tc_samp];code_51=[code_51 c_51(k)*Tc_samp];code_52=[code_52 c_52(k)*Tc_samp];
code_53=[code_53 c_53(k)*Tc_samp];code_54=[code_54 c_54(k)*Tc_samp];code_55=[code_55 c_55(k)*Tc_samp];code_56=[code_56 c_56(k)*Tc_samp];
code_57=[code_57 c_57(k)*Tc_samp];code_58=[code_58 c_58(k)*Tc_samp];code_59=[code_59 c_59(k)*Tc_samp];code_60=[code_60 c_60(k)*Tc_samp];
code_61=[code_61 c_61(k)*Tc_samp];code_62=[code_62 c_62(k)*Tc_samp];code_63=[code_63 c_63(k)*Tc_samp];code_64=[code_64 c_64(k)*Tc_samp];
end
%---------------------Generation of Tx Data--------------------------------
Tx_data=[];
for k=1:data_length %Multiplying user data with code and summing
u_1=user(1,k)*code_1; u_2=user(2,k)*code_2; u_3=user(3,k)*code_3; u_4=user(4,k)*code_4; u_5=user(5,k)*code_5; u_6=user(6,k)*code_6;
u_7=user(7,k)*code_7; u_8=user(8,k)*code_8; u_9=user(9,k)*code_9; u_10=user(10,k)*code_10;u_11=user(11,k)*code_11;u_12=user(12,k)*code_12;
u_13=user(13,k)*code_13;u_14=user(14,k)*code_14;u_15=user(15,k)*code_15;u_16=user(16,k)*code_16;u_17=user(17,k)*code_17;u_18=user(18,k)*code_18;
u_19=user(19,k)*code_19;u_20=user(20,k)*code_20;u_21=user(21,k)*code_21;u_22=user(22,k)*code_22;u_23=user(23,k)*code_23;u_24=user(24,k)*code_24;
u_25=user(25,k)*code_25;u_26=user(26,k)*code_26;u_27=user(27,k)*code_27;u_28=user(28,k)*code_28;u_29=user(29,k)*code_29;u_30=user(30,k)*code_30;
u_31=user(31,k)*code_31;u_32=user(32,k)*code_32;u_33=user(33,k)*code_33;u_34=user(34,k)*code_34;u_35=user(35,k)*code_35;u_36=user(36,k)*code_36;
u_37=user(37,k)*code_37;u_38=user(38,k)*code_38;u_39=user(39,k)*code_39;u_40=user(40,k)*code_40;u_41=user(41,k)*code_41;u_42=user(42,k)*code_42;
u_43=user(43,k)*code_43;u_44=user(44,k)*code_44;u_45=user(45,k)*code_45;u_46=user(46,k)*code_46;u_47=user(47,k)*code_47;u_48=user(48,k)*code_48;
u_49=user(49,k)*code_49;u_50=user(50,k)*code_50;u_51=user(51,k)*code_51;u_52=user(52,k)*code_52;u_53=user(53,k)*code_53;u_54=user(54,k)*code_54;
u_55=user(55,k)*code_55;u_56=user(56,k)*code_56;u_57=user(57,k)*code_57;u_58=user(58,k)*code_58;u_59=user(59,k)*code_59;u_60=user(60,k)*code_60;
u_61=user(61,k)*code_61;u_62=user(62,k)*code_62;u_63=user(63,k)*code_63;u_64=user(64,k)*code_64;
Tx_data=[Tx_data u_1+u_2+u_3+u_4+u_5+u_6+u_7+u_8+u_9+u_10+u_11+u_12+u_13+u_14+u_15+u_16+u_17+u_18+u_19+u_20+u_21+u_22+u_23+u_24+u_25+u_26+u_27+u_28+u_29+u_30+u_31+u_32+u_33+u_34+u_35+u_36+u_37+u_38+u_39+u_40+u_41+u_42+u_43+u_44+u_45+u_46+u_47+u_48+u_49+u_40+u_51+u_52+u_53+u_54+u_55+u_56+u_57+u_58+u_59+u_60+u_61+u_62+u_63+u_64];
end

%-------------------------Generating PN Code-------------------------------
m=[1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1];
PN=[];
for k=1:32767
PN=[PN m(15)];
temp1=m(1);temp2=m(2);temp3=m(3);temp4=m(4);temp5=m(5);temp6=m(6);temp7=m(7);temp8=m(Cool;
temp9=m(9);temp10=m(10);temp11=m(11);temp12=m(12);temp13=m(13);temp14=m(14);temp15=m(15);
m(1)=temp15;
m(2)=temp1;
m(3)=temp2;
m(4)=temp3;
m(5)=temp4;
m(6)=m(5)*m(15);
m(7)=temp6;
m(Cool=m(7)*m(15);
m(9)=m(Cool*m(15);
m(10)=m(9)*m(15);
m(11)=temp10;
m(12)=temp11;
m(13)=temp12;
m(14)=m(13)*m(15);
m(15)=temp14;
end
%--------------------Multiplying data with PN code-------------------------
for i=1:length(Tx_data)
Tx_data(i)=Tx_data(i)*PN(i);
end

Rx_data=Tx_data; %Simulating transmission

%------------------Multiplying received data with PN code------------------
for i=1:length(Rx_data)
Rx_data(i)=Rx_data(i)*PN(i);
end
Rx_data=64*Rx_data;
%-----------------------De-Spreading user data with Walsh code-------------
NN=length(Rx_data); %Received user data
user_1=[]; user_2=[]; user_3=[]; user_4=[]; user_5=[]; user_6=[]; user_7=[]; user_8=[]; user_9=[]; user_10=[];
user_11=[];user_12=[];user_13=[];user_14=[];user_15=[];user_16=[];user_17=[];user_18=[];user_19=[];user_20=[];
user_21=[];user_22=[];user_23=[];user_24=[];user_25=[];user_26=[];user_27=[];user_28=[];user_29=[];user_30=[];
user_31=[];user_32=[];user_33=[];user_34=[];user_35=[];user_36=[];user_37=[];user_38=[];user_39=[];user_40=[];
user_41=[];user_42=[];user_43=[];user_44=[];user_45=[];user_46=[];user_47=[];user_48=[];user_49=[];user_50=[];
user_51=[];user_52=[];user_53=[];user_54=[];user_55=[];user_56=[];user_57=[];user_58=[];user_59=[];user_60=[];
user_61=[];user_62=[];user_63=[];user_64=[];

code_chips=length(H)*length(Tc_samp);
for k=1:NN/code_chips %Multiply and sum for bit period
index=(k-1)*NN/data_length+1:k*NN/data_length;
user_1=[user_1 sum(Rx_data(index).*code_1)];user_2=[user_2 sum(Rx_data(index).*code_2)];user_3=[user_3 sum(Rx_data(index).*code_3)];user_4=[user_4 sum(Rx_data(index).*code_4)];
user_5=[user_5 sum(Rx_data(index).*code_5)];user_6=[user_6 sum(Rx_data(index).*code_6)];user_7=[user_7 sum(Rx_data(index).*code_7)];user_8=[user_8 sum(Rx_data(index).*code_8)];
user_9=[user_9 sum(Rx_data(index).*code_9)];user_10=[user_10 sum(Rx_data(index).*code_10)];user_11=[user_11 sum(Rx_data(index).*code_11)];user_12=[user_12 sum(Rx_data(index).*code_12)];
user_13=[user_13 sum(Rx_data(index).*code_13)];user_14=[user_14 sum(Rx_data(index).*code_14)];user_15=[user_15 sum(Rx_data(index).*code_15)];user_16=[user_16 sum(Rx_data(index).*code_16)];
user_17=[user_17 sum(Rx_data(index).*code_17)];user_18=[user_18 sum(Rx_data(index).*code_18)];user_19=[user_19 sum(Rx_data(index).*code_19)];user_20=[user_20 sum(Rx_data(index).*code_20)];
user_21=[user_21 sum(Rx_data(index).*code_21)];user_22=[user_22 sum(Rx_data(index).*code_22)];user_23=[user_23 sum(Rx_data(index).*code_23)];user_24=[user_24 sum(Rx_data(index).*code_24)];
user_25=[user_25 sum(Rx_data(index).*code_25)];user_26=[user_26 sum(Rx_data(index).*code_26)];user_27=[user_27 sum(Rx_data(index).*code_27)];user_28=[user_28 sum(Rx_data(index).*code_28)];
user_29=[user_29 sum(Rx_data(index).*code_29)];user_30=[user_30 sum(Rx_data(index).*code_30)];user_31=[user_31 sum(Rx_data(index).*code_31)];user_32=[user_32 sum(Rx_data(index).*code_32)];
user_33=[user_33 sum(Rx_data(index).*code_33)];user_34=[user_34 sum(Rx_data(index).*code_34)];user_35=[user_35 sum(Rx_data(index).*code_35)];user_36=[user_36 sum(Rx_data(index).*code_36)];
user_37=[user_37 sum(Rx_data(index).*code_37)];user_38=[user_38 sum(Rx_data(index).*code_38)];user_39=[user_39 sum(Rx_data(index).*code_39)];user_40=[user_40 sum(Rx_data(index).*code_40)];
user_41=[user_41 sum(Rx_data(index).*code_41)];user_42=[user_42 sum(Rx_data(index).*code_42)];user_43=[user_43 sum(Rx_data(index).*code_43)];user_44=[user_44 sum(Rx_data(index).*code_44)];
user_45=[user_45 sum(Rx_data(index).*code_45)];user_46=[user_46 sum(Rx_data(index).*code_46)];user_47=[user_47 sum(Rx_data(index).*code_47)];user_48=[user_48 sum(Rx_data(index).*code_48)];
user_49=[user_49 sum(Rx_data(index).*code_49)];user_50=[user_50 sum(Rx_data(index).*code_50)];user_51=[user_51 sum(Rx_data(index).*code_51)];user_52=[user_52 sum(Rx_data(index).*code_52)];
user_53=[user_53 sum(Rx_data(index).*code_53)];user_54=[user_54 sum(Rx_data(index).*code_54)];user_55=[user_55 sum(Rx_data(index).*code_55)];user_56=[user_56 sum(Rx_data(index).*code_56)];
user_57=[user_57 sum(Rx_data(index).*code_57)];user_58=[user_58 sum(Rx_data(index).*code_58)];user_59=[user_59 sum(Rx_data(index).*code_59)];user_60=[user_60 sum(Rx_data(index).*code_60)];
user_61=[user_61 sum(Rx_data(index).*code_61)];user_62=[user_62 sum(Rx_data(index).*code_62)];user_63=[user_63 sum(Rx_data(index).*code_63)];user_64=[user_64 sum(Rx_data(index).*code_64)];
end
%Error (Dividing decoded user data by cgip length to calculate sent data and error
%comparison)
i=10; %Checking error for ith user, change user_1 to user_ith user in next line
user_err=user_10/code_chips-user_data(i,Smile;

Added after 4 minutes:

sorry for the emoticons
Back to top
ahmedseu



Joined: 31 Jul 2006
Posts: 231
Helped: 20


Post17 Aug 2006 20:27   Re: Please can any one send me the Matlab code for simulate

I hope this program is helpfu !


Sorry, but you need login in to view this attachment

Back to top
hamdard



Joined: 09 Jun 2006
Posts: 184
Helped: 10


Post18 Aug 2006 8:08   Re: Please can any one send me the Matlab code for simulate

YOU CAN SEE THIS PROGRAM.


Sorry, but you need login in to view this attachment

Back to top
Post new topic  Reply to topic    EDAboard.com Forum Index -> Digital communication
Page 1 of 1 All times are GMT + 1 Hour


Abuse
Administrator
Moderators
topic RSS 
sitemap