README-Chap5.txt
上传用户:m_sun_001
上传日期:2014-07-30
资源大小:1115k
文件大小:5k
源码类别:

matlab例程

开发平台:

Matlab

  1. %
  2. % README Chapter 5
  3. %
  4. % by Hiroshi Harada
  5. %
  6. % If you have any bugs and questions in our simulation programs, please e-mail
  7. % to harada@ieee.org. We try to do our best to answer your questions.
  8. %
  9. In this directory, we can find the seventeen files. The relationship between file name and the number of program written in the book is shown in as follows.
  10. Program5-1   autocorr.m
  11. Program5-2   crosscorr.m
  12. Program5-3   mseq.m
  13. Program5-4   shift.m
  14. Program5-5   goldseq.m
  15. Program5-6   dscdma.m
  16. Program5-7   spread.m
  17. Program5-8   despread.m
  18. Program5-9   compoversamp2.m
  19. Program5-10  compconv2.m
  20. Program5-11  comb2.m
  21. Program2-5   fade.m
  22. Program2-6   sefade.m
  23. Program2-7   delay.m
  24. Program3-3   hrollfcoef.m
  25. Program3-9   qpskmod.m
  26. Program3-10   qpskdemod.m
  27. If you would like to try to use the above programs by using MATLAB.
  28. First of all, please copy all of files to your created adequate directory.
  29. Then, you start to run MATLAB and you can see the following command prompt in the command window.
  30. >>
  31. Next, you can go to the directory that have all of programs in this section by using change directory (cd) command. If you copy all of files to /matlabR12/work/chapter5, you only type the following command.
  32. >> cd /matlabR12/work/chapter5
  33. (I) Usage of the functions
  34. (1) Calculation of auto-correlation
  35. If you would like to calculate of a sequence [1 1 1 -1 -1 1 -1], you can type the following command
  36. >> autocorr([1 1 1 -1 -1 1 -1])
  37. As a result, the following auto-correlation value is obtained.
  38. ans =
  39.      7    -1    -1    -1    -1    -1    -1
  40. (2) Calculation of cross-correlation
  41. If you would like to calculate of sequences [1 1 1 -1 -1 1 -1] and [1 -1 1 -1 1 -1 1], you can type the following command.
  42. >> crosscorr([1 1 1 -1 -1 1 -1],[1 -1 1 -1 1 -1 1])
  43. As a result, the following cross-correlation value is obtained.
  44. ans =
  45.     -1     3    -1     3    -5     3    -1
  46. (3) Generation of M-sequence
  47. The function mseq(X,Y,Z) outputs an M-sequence of the stage number X, the position of feedback taps Y, and the initial value of registers Z.
  48. In case of X=3, Y=[1 3], and Z=[1 1 1],
  49. >> mseq(3,[1 3],[1 1 1])
  50. ans =
  51.      1     1     1     0     1     0     0
  52. And, the function mseq(X,Y,Z,N) outputs N one-chip shifted M-sequences.
  53. >> mseq(3,[1 3],[1 1 1],3)
  54. ans =
  55.      1     1     1     0     1     0     0
  56.      0     1     1     1     0     1     0
  57.      0     0     1     1     1     0     1
  58. (4) Generation of Gold sequence
  59. First of all, you must prepare preferred pair of M-sequences.
  60. For example, you type the following commands, and generate M-sequences m1, m2.
  61. >> m1=mseq(3,[1 3],[1 1 1])
  62. m1 =
  63.      1     1     1     0     1     0     0
  64. >> m2=mseq(3,[2 3],[1 1 1])
  65. m2 =
  66.      1     1     1     0     0     1     0
  67. Next, you type the following command.
  68. >> goldseq(m1,m2)
  69. ans =
  70.      0     0     0     0     1     1     0
  71. As a result, you can get a Gold-sequence [0 0 0 0 1 1 0].
  72. And, the function goldseq(m1,m2,N) outputs N one-chip shifted Gold-sequences.
  73. >> goldseq(m1,m2,3)
  74. ans =
  75.      0     0     0     0     1     1     0
  76.      1     0     0     1     1     0     1
  77.      0     1     0     1     0     0     0
  78. (II) Simulation of synchronous DS-CDMA
  79. (1) Set paremeters
  80. First of all, we set simulation parameters in "dscdma.m".
  81. (a) Symbol rate
  82. sr   = 256000.0;
  83. (b) Number of modulation levels
  84. ml   = 2;
  85. (c) Number of symbols
  86. nd   = 100;
  87. (d) Eb/No
  88. ebn0 = 3;
  89. (e) Number of filter taps
  90. irfn   = 21;
  91. (f) Number of oversample
  92. IPOINT =  8;
  93. (g) Roll off factor
  94. alfs   =  0.5;
  95. (h) Number of users
  96. user    = 1;
  97. (i) Code sequence (1-M-sequence, 2-Gold sequence, 3-Orthogonal Gold sequecne)
  98. seq     = 1;
  99. (j) Number of stages
  100. stage   = 3;
  101. (k) Position of feedback taps for 1st
  102. ptap1   = [1 3];
  103. (l) Position of feedback taps for 2nd
  104. ptap2   = [2 3];
  105. (m) Initial value of registers for 1st
  106. regi1   = [1 1 1];
  107. (n) Initial value of registers for 2nd
  108. regi2   = [1 1 1];
  109. (o) Do you include the Rayleigh fading or not ? (0-No, 1-Yes)
  110. rfade   = 0;
  111. (p) Delay time
  112. itau    = [0,8];
  113. (q) Attenuation level
  114. dlvl1   = [0.0,40.0];
  115. (r) Number of waves to generate fading
  116. n0      = [6,7];
  117. (s) Initial phase of delayed wave
  118. th1     = [0.0,0.0];
  119. (t) Set fading counter
  120. itnd1   = [3001,4004];
  121. (u) Number of direct wave + delayed wave
  122. now1    = 2;
  123. (v) Doppler frequency [Hz]
  124. fd      = 160;
  125. (w) Flat fading or not (0-Normal, 1-Flat)
  126. flat    = 1;
  127. (x) Simulation number of times
  128. nloop = 1000;
  129. (y) Output file name to store the simulation results
  130. fid = fopen('BER.dat','a');
  131. (2) Type just the following command
  132. >> dscdma
  133. (3) Then, you can see the following simulation result on your command window.
  134. 3 4492 200000 2.246000e-002
  135. where first number 3 is Eb/No, second number 4492 is the number of errors, third number 200000 is the number of data, and fourth number 2.246000e-002 is BER. And, simulation result is stored in the file (BER.dat) defined with (1)-(y).
  136. If you change the paramter rfade from 0 to 1, you can include the effect of fading.
  137. By changing the value of Eb/N0 (variable ebn0), you can obtain the graph that shows the relationship between Eb/N0 and BER and that can been seen in the figures of the book.
  138. ********** end of file **********