settings.m
上传用户:m_sun_001
上传日期:2014-07-30
资源大小:1115k
文件大小:7k
源码类别:

matlab例程

开发平台:

Matlab

  1. %SETTINGS Contains the settings to use for the COFDM transmission
  2. % This is a common file used for the transmission and reception
  3. % It specifies all the link properties, channel properties,
  4. % data to send and filenames for input an output files
  5. %
  6. % NOTE: Not all setting combinations work as only a few have been
  7. % fully debugged. If the receiver is giving very high error rates, 
  8. % then it is likely that there is a synchronisation error. If a
  9. % different ifft_size, NumCarr and guardtime is used this may fix the
  10. % error. For example: ifftsize = 2048, NumCarr = 800 guardtime = 512
  11. % didn't sync propoerly for the Corrs.wav data set, but changing it
  12. % to ifftsize = 1024, NumCarr = 400 and guardtime = 256, works.
  13. % Also NumCarr must be < ifftsize/2 as the generated waveform
  14. % is real and not complex.
  15. %
  16. % Due to processing and memory limitations, the maximum size input
  17. % data is approx. 20-100kB depending on the modulation scheme.
  18. %
  19. % This code is not likely to work using the student version of Matlab 4.2
  20. % due to the array size limitation of the student version.
  21. %
  22. % There may be some capability problems when running this code in Matlab 5.
  23. % I think the main problem is with the scripts used to read and write the
  24. % wave files. These could be changed to the in-built Matlab 5 wave scripts.
  25. %
  26. % Written by Eric Lawrey 12/8/97
  27. %================
  28. % COMMON SETTINGS
  29. %================
  30. wordsize = 8; %Number of bits per carrier per symbol to send
  31. %Allowable values are 1,2,4,8. 1 = BPSK, 2=QPSK, 4=16PSK, 8=256PSK
  32. OutWordSize = 8; %Base wordsize of input data to the COFDM transmission,
  33. %typically 8 bit. The input and output data is converted from
  34. %the OutWordSize to wordsize during the transmission
  35. ifftsize = 1024; %size fourier transform to generate signal (it is equal to the
  36. %number of samples in the symbol.) Note : must be > 2* NumCarr
  37. NumCarr = 400; %Number of transmission carriers
  38. CarrSpacing = 1; %Spacing between carriers. (1 = use all fft bins,
  39. %2 = every second bin)
  40. guardtime = 256; %Total guard time in samples.
  41. %(This is typically 25% of the FFT size)
  42. guardtype = 3; %1 = Zeroed signal, 2 = cyclic extension, 3 = half zero, half cyclic
  43. %Note: Only type 3 has been tested fully
  44. windowtype = 0; %0 = No window, 1 = Hanning window of symbol.
  45. %The window is applied to the base band time waveform.
  46. FrameGuard = ifftsize+guardtime;  %Guard Time between success frames (1 symbol)
  47. PictureComp = 1; %Fraction of picture amplitude to compress
  48. %by to over come, wrap around from black to white
  49. %due to a phase error (set to 1 for no compression)
  50. DataAvg = 1; %Data Averaging, dupticate transmission of
  51. %data words to reduce the phase error. (Normally set to 1)
  52. SymbPerFrame = 30; %Number of data symbols per frame. The timing is resynchronized
  53. %at the start of each frame. Set to 0 if only
  54. %want all the data to be transmitted with one frame.
  55. %=====================
  56. % TRANSMITTER SETTINGS
  57. %=====================
  58. NoFrames = 3; %Number of duplicate data frames to generate Only valid
  59. %if SymbPerFrame = 0
  60. %==================
  61. % RECEIVER SETTINGS
  62. %==================
  63. quickrate = round(FrameGuard/128)+1;
  64. %Amount of subsampling to find the approx starting position of the
  65. %start frame. The larger quickrate is the faster the search is but
  66. %the lower the probability of finding the correct starting location.
  67. %quickrate needs to be lower as the SNR worsens. Typical values
  68. %are from 10 - 200
  69. %=================
  70. % CHANNEL SETTINGS
  71. %=================
  72. Comp = 0; %Peak Power Compression (in dB relative to peak signal power)
  73. %set to zero for no signal compression or clipping
  74. SNR = 300; %Signal to noise ratio of received signal in dB, setting > 300
  75. %adds no noise.
  76. Delay = 1; %Delay of single reflection multipath signal in samples
  77. %Set to 1 for no multipath.
  78. MultiMag = 1; %Magnitude of the reflection with respect to the direct signal
  79. %e.g. Setting to 0.5 makes the reflection half the amplitude of the
  80. %direct signal
  81. %====================
  82. % INFORMATION FORMATS
  83. %====================
  84. DataType =4; %Type of data to send in the transmission
  85. % 1 = random data (Amount set by NoRandData)
  86. % 2 = grey scale bitmap image (only the picture data is sent
  87. % not the file header or colour map) This is useful for high
  88. % error rate conditions
  89. % 3 = general binary data file. This allows for any data file to be
  90. % sent, e.g. a recorded wavefile, a gif image, a jpg image, an excel
  91. % document etc. The file is sent simply as a binary file with no
  92. % knowledge of the file structure. Thus an error in the file header
  93. % could corrupt the entire file. In a practical system the forward
  94. % error correction would be required to reduce the error to
  95. % an acceptable level to send general data.
  96. % To make the data link easier to implement the number of data words
  97. % sent and the number of frames used is not transmitted, but sent via
  98. % a file.
  99. % 4 = Wave Sound file. This reads in an 8bit windows 3.1 wav file
  100. NoRandData =12000; %Number of random data words to transmit if the DataType = 1.
  101. RandSeed = 1234; %Random Seed used for generating the random data sent. Both the
  102. %transmitter and receiver needs to know the seed. Only valid if
  103. %DataType = 1.
  104. Fs = 44100; %Sample rate of COFDM wav file generated
  105. res = 16; %No. bits/sample of saved wavefile
  106. txwavfile = 'imagetx.wav'; %Filename of the wavefile generated
  107. rxwavfile = 'imagetx.wav'; %Filename of the wavefile to decode
  108. infile    = 'corrs11.wav'; %input filename of the bmp file or general file to transmit
  109. outfile   = 'out.wav'; %Filename to store the received image
  110. errorfile = 'errorpic.bmp'; %Filename of the picture of the
  111. %errors induced in the received image.
  112. %Only valid for DataType = 2;
  113. fileknown = 1; %Indicates whether the OFDM signal file being read is known
  114. %i.e. whether transmitted data file exists so that the 
  115. %exact data size can be found.
  116. %if fileknown = 0, the OFDM signal is read straight from
  117. %the file given with no regard for transmitted data file.
  118. %Error analysis can not be done on files read in this way
  119. %as there is nothing to check the received data against.
  120. %Also padding may be added to the received data.
  121. %fileknown = 1, is the normal operation where the original
  122. %received data is checked against the transmitted data.
  123. %==================================================
  124. %Calc Carriers used for a single wide COFDM channel
  125. %==================================================
  126. %This section calculates the carriers used to transmit the signal.
  127. %carriers is a vector of the carriers used in the transmission, e.g. [3,5,7,8,9]
  128. %Modifying carrier, allows the spectrum to be tailored to the requirements of the channel
  129. MidFreq = ifftsize/4; %find the middle of the spectrum
  130. StartCarr = MidFreq - round(((NumCarr-1)*CarrSpacing/2));
  131. FinCarr = MidFreq + floor(((NumCarr-1)*CarrSpacing/2));
  132. carriers = [StartCarr:CarrSpacing:FinCarr ]+1;
  133. %carriers = [2:NumCarr];
  134. NumCarr = length(carriers);