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

matlab例程

开发平台:

Matlab

  1. %
  2. % README Chapter 4
  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 sixteen files. The relationship between file name and the number of program written in the book is shown in as follows.
  10. Program4-1   ofdm.m
  11. Program4-2   ofdm_fading.m
  12. Program4-3   giins.m
  13. Program4-4   girem.m
  14. Program4-5   ofdmda.m
  15. Program4-6   crmapping.m
  16. Program4-7   crdemapping.m
  17. Program4-8   ofdmce.m
  18. Program4-9   ofdmci.m
  19. Program4-10  interwave.m
  20. Program2-4   comb.m
  21. Program2-5   fade.m
  22. Program2-6   sefade.m
  23. Program2-7   delay.m
  24. Program3-9   qpskmod.m
  25. Program3-10  qpskdemod.m
  26. If you would like to try to use the above programs by using MATLAB. First of all, please copy all of files to your created adequate directory. Then, you start to run MATLAB and you can see the following command prompt in the command window.
  27. >>
  28. 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/chapter4, you only type the following command.
  29. >> cd /matlabR12/work/chapter4
  30. In this directory, we can find five main functions, ofdm.m, ofdm_fading.m, ofdmda.m, ofdmce.m, and ofdmci.m.
  31. ##################################################
  32. (I) Simulation of "ofdm.m"
  33. This program simulates bit error rate (BER) and packet error rate (PER) performances under AWGN environment.
  34. (1) Set paremeters
  35. First of all, we set simulation parameters in "ofdm.m".
  36. para=128;   % Number of parallel channel to transmit (points)
  37. fftlen=128; % FFT length
  38. noc=128;    % Number of carrier
  39. nd=6;       % Number of information OFDM symbol for one loop
  40. ml=2;       % Modulation level : QPSK
  41. sr=250000;  % OFDM symbol rate (256 ksyombol/s)
  42. br=sr.*ml;  % Bit rate per carrier
  43. gilen=32;   % Length of guard interval (points)
  44. ebn0=3;     % Eb/N0
  45. nloop=100;  % Number of simulation loops
  46. (2) Type just the following command
  47. >> clear
  48. >> ofdm
  49. (3) Then, you can see the following simulation result on your command window.
  50. (example)
  51. 3.000000 3.694661e-002 1.000000e+000 100
  52. where first number 3 is Eb/No, second number 3.694661e-002 is the BER performance, third number 1.000000e+000 is PER performance, and fourth number 100 is Number of simulation loops. And, simulation result is stored in the file (BERofdm.dat) .
  53. ##################################################
  54. (II) Simulation of "ofdm_fading.m"
  55. This program simulates bit error rate (BER) and packet error rate (PER) performances under fading environment.
  56. (1) Set paremeters
  57. First of all, we set simulation parameters in "ofdm_fading.m".
  58. para=128;   % Number of parallel channel to transmit (points)
  59. fftlen=128; % FFT length
  60. noc=128;    % Number of carrier
  61. nd=6;       % Number of information OFDM symbol for one loop
  62. ml=2;       % Modulation level : QPSK
  63. sr=250000;  % OFDM symbol rate
  64. br=sr.*ml;  % Bit rate per carrier
  65. gilen=32;   % Length of guard interval (points)
  66. ebn0=10;    % Eb/N0
  67. % Time resolution
  68. tstp=1/sr/(fftlen+gilen); 
  69. % Arrival time for each multipath normalized by tstp
  70. itau = [0];
  71. % Mean power for each multipath normalized by direct wave.
  72. dlvl = [0];
  73. % Number of waves to generate fading for each multipath.
  74. n0=[6];
  75. % Initial Phase of delayed wave
  76. th1=[0.0];
  77. % Number of fading counter to skip 
  78. itnd0=nd*(fftlen+gilen)*10;
  79. % Initial value of fading counter
  80. itnd1=[1000];
  81. % Number of directwave + Number of delayed wave
  82. now1=1;        
  83. % Maximum Doppler frequency [Hz]
  84. fd=320;       
  85. % You can decide two mode to simulate fading by changing the variable flat
  86. % flat     : flat fading or not 
  87. % (1->flat (only amplitude is fluctuated),0->nomal(phase and amplitude are fluctutated)
  88. flat =1;
  89. nloop=500;  % Number of simulation loops
  90. (2) Type just the following command
  91. >> clear
  92. >> ofdm_fading
  93. (3) Then, you can see the following simulation result on your command window.
  94. (example)
  95. 10.000000 2.153255e-002 4.660000e-001 500
  96. where first number 10.000000 is Eb/No, second number 2.153255e-002 is the BER performance, third number 4.660000e-001 is PER performance, and fourth number 500 is Number of simulation loops. And, simulation result is stored in the file (BERofdmfad.dat) .
  97. ##################################################
  98. (III) Simulation of "ofdmda.m"
  99. This program simulates bit error rate (BER) and packet error rate (PER) performances under AWGN and fading environments. In this simulation, there are six OFDM
  100. symbols in one packet, and number of FFT length is 64 and number of parallel channel is 52.
  101. (1) Set paremeters
  102. First of all, we set simulation parameters in "ofdmda.m".
  103. %%%%%%%%%%%%% preparation part %%%%%%%%%%%%%%%%%
  104. para=52;     % Number of parallel channel to transmit (points)
  105. fftlen=64;   % FFT length
  106. noc=53;      % Number of carriers
  107. nd=6;        % Number of information OFDM symbol for one loop
  108. ml=2;        % Modulation level : QPSK
  109. sr=250000;   % OFDM symbol rate (250 ksyombol/s)
  110. br=sr.*ml;   % Bit rate per carrier
  111. gilen=16;    % Length of guard interval (points)
  112. ebn0=3;      % Eb/N0
  113. %%%%%%%%%%%%% fading initialization %%%%%%%%%%%
  114. tstp=1/sr/(fftlen+gilen); % Time resolution
  115. itau=[0];       % Arrival time for each multipath normalized by tstp 
  116. dlvl1=[0];      % Mean power for each multipath normalized by direct wave.
  117. n0=[6];         % Number of waves to generate fading n0(1),n0(2)
  118. th1=[0.0];      % Initial Phase of delayed wave
  119. itnd1=[1000];   % set fading counter        
  120. now1=1;         % Number of directwave + Number of delayed wave
  121. fd=150;         % Maximum Doppler frequency
  122. flat=0;         % Flat or not (see ofdm_fading.m)
  123. itnd0=nd*(fftlen+gilen)*20; % Number of fading counter to skip 
  124. %************************** main loop part **************************
  125. nloop=1000;   % Number of simulation loops
  126. (2) Type just the following command
  127. >> clear
  128. >> ofdmda
  129. (3) Then, you can see the following simulation result on your command window.
  130. (example)
  131. 3.000000 3.704968e-002 1.000000e+000 1000 150
  132. where first number 3 is Eb/No, second number 3.704968e-002 is the BER performance, third number 1.000000e+000 is PER performance, fourth number 1000 is number of simulation loops, and fifth number 150 is Doppler frequency. And, simulation result is stored in the file (BERofdmda.dat) . 
  133. (4) The default mode of "ofdmda.m" is BER and PER under AWGN environment. Therefore, the fifth number in the simulation result is nothing to mean. If you would like to simulate BER and PER performances under fading environment. You must remove "*" from the top of the following sentences in OFDMda.m.
  134. %[ifade,qfade,ramp,rcos,rsin]=sefade(ich4,qch4,itau,dlvl1,th1,n0,itnd1,now1,length(ich4),tstp,fd,flat);
  135. %itnd1 = itnd1+itnd0;  % Updata fading counter
  136. %ich4=ifade;
  137. %qch4=qfade;
  138. Then, type the following command again.
  139. >> clear
  140. >> ofdmda
  141. Then, you can see the following simulation result on your command window.
  142. (example when ebn0=10, flat=0, fd=150, and the others are same of the first simulation)
  143. 10.000000 4.986442e-001 9.320000e-001 1000 150
  144. (5) The above simulation results show that BER=0.5. This means we need compensation of fading. If you would like to simulate the effect of perfect compensation under fading environment. You must remove "*" from the top of the following sentences in OFDMda.m.
  145. %[ifade,qfade,ramp,rcos,rsin]=sefade(ich4,qch4,itau,dlvl1,th1,n0,itnd1,now1,length(ich4),tstp,fd,flat);
  146. %itnd1 = itnd1+itnd0;  % Updata fading counter
  147. %ich4=ifade;
  148. %qch4=qfade;
  149. %ifade2=1./ramp.*(rcos(1,:).*ich5+rsin(1,:).*qch5);
  150. %qfade2=1./ramp.*(-rsin(1,:).*ich5+rcos(1,:).*qch5);
  151. %ich5=ifade2;
  152. %qch5=qfade2;
  153. This means that we obtain the information of fading from the fading simulator,
  154. and multiply the complex reciprocal by the received signal.
  155. Then, type the following command again.
  156. >> clear
  157. >> ofdmda
  158. Then, you can see the following simulation result on your command window.
  159. (example when ebn0=10, flat=0, fd=150, and the others are same of the first simulation)
  160. 10.000000 2.121795e-002 4.020000e-001 1000 150
  161. From the above result, you can see the effect of the fading compesation.
  162. ##################################################
  163. (IV) Simulation of "ofdmce.m"
  164. This program simulates bit error rate (BER) and packet error rate (PER) performances under AWGN and fading environments. In this simulation, there are one OFDM channel estimation (CE) symbols and six OFDM symbols in one packet, and number of FFT length is 64, number of parallel channel is 52 and number of carriers is 53.
  165. (1) Set paremeters
  166. First of all, we set simulation parameters in "ofdmce.m".
  167. %********************** preparation part ***************************
  168. para=52;    % Number of parallel channel to transmit (points)
  169. fftlen=64;  % FFT length
  170. noc=53;     % Number of carriers
  171. nd=6;       % Number of information OFDM symbol for one loop
  172. knd=1;      % Number of known channel estimation (CE) OFDM symbol
  173. ml=2;       % Modulation level : QPSK
  174. sr=250000;  % OFDM symbol rate (250 ksyombol/s)
  175. br=sr.*ml;  % Bit rate per carrier
  176. gilen=16;   % Length of guard interval (points)
  177. ebn0=3;     % Eb/N0
  178. %%%%%%%%%%%%% fading initialization %%%%%%%%%%%
  179. tstp=1/sr/(fftlen+gilen); % Time resolution
  180. itau=[0];       % Arrival time for each multipath normalized by tstp 
  181. dlvl1=[0];      % Mean power for each multipath normalized by direct wave.
  182. n0=[6];         % Number of waves to generate fading n0(1),n0(2)
  183. th1=[0.0];      % Initial Phase of delayed wave
  184. itnd1=[1000];   % set fading counter        
  185. now1=1;         % Number of directwave + Number of delayed wave
  186. fd=150;         % Maximum Doppler frequency
  187. flat=0;         % Flat or not (see ofdm_fading.m)
  188. itnd0=nd*(fftlen+gilen)*20; % Number of fading counter to skip 
  189. %************************** main loop part **************************
  190. nloop=1000;  % Number of simulation loops
  191. (2) Type just the following command
  192. >> clear
  193. >> ofdmce
  194. (3) Then, you can see the following simulation result on your command window.
  195. (example)
  196. 3.000000 4.970833e-002 1.000000e+000 1000 150
  197. where first number 3 is Eb/No, second number 4.970833e-002 is the BER performance, third number 1.000000e+000 is PER performance, fourth number 1000 is number of simulation loops, and fifth number 150 is Doppler frequency. And, simulation result is stored in the file (BERofdmce.dat) . 
  198. (4) The default mode of "ofdmda.m" is BER and PER under AWGN environment. Therefore, the fifth number in the simulation result is nothing to mean. If you would like to simulate BER and PER performances under fading environment. You must remove "*" from the top of the following sentences in OFDMda.m.
  199. %[ifade,qfade,ramp,rcos,rsin]=sefade(ich4,qch4,itau,dlvl1,th1,n0,itnd1,now1,length(ich4),tstp,fd,flat);
  200. %itnd1 = itnd1+itnd0;  % Updata fading counter
  201. %ich4=ifade;
  202. %qch4=qfade;
  203. Then, type the following command again.
  204. >> clear
  205. >> ofdmce
  206. Then, you can see the following simulation result on your command window.
  207. (example when ebn0=10, flat=0, fd=150, and the others are same of the first simulation)
  208. 10.000000 4.981266e-001 9.360000e-001 1000 150
  209. (5) The above simulation results show that BER=0.5. This means we need compensation of fading. If you would like to simulate the effect of perfect compensation under fading environment. You must remove "*" from the top of the following sentences in OFDMda.m.
  210. %[ifade,qfade,ramp,rcos,rsin]=sefade(ich4,qch4,itau,dlvl1,th1,n0,itnd1,now1,length(ich4),tstp,fd,flat);
  211. %itnd1 = itnd1+itnd0;  % Updata fading counter
  212. %ich4=ifade;
  213. %qch4=qfade;
  214. %ifade2=1./ramp.*(rcos(1,:).*ich5+rsin(1,:).*qch5);
  215. %qfade2=1./ramp.*(-rsin(1,:).*ich5+rcos(1,:).*qch5);
  216. %ich5=ifade2;
  217. %qch5=qfade2;
  218. This means that we obtain the information of fading from the fading simulator,
  219. and multiply the complex reciprocal by the received signal.
  220. Then, type the following command again.
  221. >> clear
  222. >> ofdmce
  223. Then, you can see the following simulation result on your command window.
  224. (example when ebn0=10, flat=0, fd=150, and the others are same of the first simulation)
  225. 10.000000 2.455449e-002 4.660000e-001 1000 150
  226. From the above result, you can see the effect of the fading compesation.
  227. (6) Instead of perfect fading compensation, we can use CE OFDM symbol to 
  228. estimate fading and the estimation result is used to compensate the signal fluctuation of fading. If you would like to simulate the effect of CE-symbol under fading environment. You must remove "*" from the top of the following sentences in OFDMda.m.
  229. %[ifade,qfade,ramp,rcos,rsin]=sefade(ich4,qch4,itau,dlvl1,th1,n0,itnd1,now1,length(ich4),tstp,fd,flat);
  230. %itnd1 = itnd1+itnd0;  % Updata fading counter
  231. %ich4=ifade;
  232. %qch4=qfade;
  233. %ce=1;
  234. %ice0=ich2(:,ce);
  235. %qce0=qch2(:,ce);
  236. %ice1=ich7(:,ce);
  237. %qce1=qch7(:,ce);
  238. %iv=real((1./(ice1.^2+qce1.^2)).*(ice0+i.*qce0).*(ice1-i.*qce1));
  239. %qv=imag((1./(ice1.^2+qce1.^2)).*(ice0+i.*qce0).*(ice1-i.*qce1));
  240. %ieqv1=[iv iv iv iv iv iv iv];
  241. %qeqv1=[qv qv qv qv qv qv qv];
  242. %icompen=real((ich7+i.*qch7).*(ieqv1+i.*qeqv1));
  243. %qcompen=imag((ich7+i.*qch7).*(ieqv1+i.*qeqv1));
  244. %ich7=icompen;
  245. %qch7=qcompen;
  246. Then, you can see the following simulation result on your command window.
  247. (example when ebn0=10, flat=0, fd=150, and the others are same of the first simulation)
  248. 10.000000 4.992468e-002 6.590000e-001 1000 150
  249. From the above result, you also see the effect of the fading compesation based on CE OFDM symbol.
  250. ##################################################
  251. (V) Simulation of "ofdmci.m"
  252. (I) Simulation of "ofdmci.m"
  253. This program simulates bit error rate (BER) and packet error rate (PER) performances when interference wave exists under fading environment.In this simulation, there are one OFDM channel estimation (CE) symbols and six OFDM symbols in one packet, and number of FFT length is 64, number of parallel channel is 52 and number of carriers is 53.
  254. (1) Set paremeters
  255. First of all, we set simulation parameters in "ofdmci.m".
  256. %********************** preparation part ***************************
  257. para=52;      % Number of parallel channel to transmit (points)
  258. fftlen=64;    % FFT length
  259. noc=53;       % Number of carriers
  260. nd=6;         % Number of information OFDM symbol for one loop
  261. knd=1;        % Number of known channel estimation (CE) OFDM symbol
  262. ml=2;         % Modulation level : QPSK
  263. sr=250000;    % OFDM symbol rate (250 ksyombol/s)
  264. br=sr.*ml;    % Bit rate per carrier
  265. gilen=16;     % Length of guard interval (points)
  266. ebn0=1000;    % Eb/N0
  267. nloop=1000;  % Number of simulation loops
  268. %---------------------- fading initialization ----------------------
  269. tstp=1/sr/(fftlen+gilen); % Time resolution
  270. itau=[0];       % Arrival time for each multipath normalized by tstp 
  271. dlvl1=[0];      % Mean power for each multipath normalized by direct wave.
  272. n0=[6];         % Number of waves to generate fading n0(1),n0(2)
  273. th1=[0.0];      % Initial Phase of delayed wave
  274. itnd1=[1000];   % set fading counter        
  275. now1=1;         % Number of directwave + Number of delayed wave
  276. fd=150;         % Maximum Doppler frequency
  277. flat=0;         % Flat or not (see ofdm_fading.m)
  278. itnd0=nd*(fftlen+gilen)*10; % Number of fading counter to skip 
  279. Moreover, we must set simulation parameters for the interference wave.
  280. %----------------- interference wave initialization --------------------
  281. ci=10;           % C/I ratio 
  282. ml2=2;           % modulation level
  283. itau2=[0];
  284. dlvl2=[0];
  285. n02=[6];
  286. th2=[0.0];
  287. itnd2=[10000+floor(rand(1)*10)*1000];       
  288. now2=1;
  289. fd2=fd;
  290. flat2=0;
  291. itnd02=nd*(fftlen+gilen)*300; % Number of fading counter to skip 
  292. (2) Type just the following command
  293. >> clear
  294. >> ofdmci
  295. (3) Then, you can see the following simulation result on your command window.
  296. 10.000000 6.388462e-002 3.150000e-001 1000 150
  297. where first number 10 is Eb/N0, second number 6.388462e-002 is the BER performance, third number 3.150000e-001 is PER performance, and fourth number 1000 is Number of simulation loops. And, simulation result is stored in the file (BERofdmci.dat) .
  298. Default simulation used CE-based fading compensation. But you can do the same whe used perfect fading compensation by using the same procedure in the simulation of "ofdmce.m".
  299. By changing the value of Eb/N0 (variable ebn0), you can obtain the graph that shows the relationship between Eb/N0 and BER or Eb/N0 and PER and that can been seen in the figures of the book.
  300. ********** end of file **********