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

matlab例程

开发平台:

Matlab

  1. % setup
  2. disp(' '), disp('------------------------------------------------------------')
  3. disp('Simulation Setup')
  4. % OFDM Setup -----------------------------------------------------------
  5. fft_size = 128 % should be a power of 2 for fast computation
  6. % more points = more time domain samples (smoother & more cycles)
  7. num_carriers = 32 % should be <= fft_size/4
  8. % number of carriers used for each data chunk
  9. % new var - denotes even spacing or variations of carriers among fft points
  10. input_type = 2;
  11. % 1 = test input
  12. test_input_type = 1;
  13. % 1 = bit specified (binary)
  14. binary_data = [0 1 0 1 0 1 0 1];
  15. % 2 = random data stream (samples in the range of 0-255)
  16. num_symbols = 9;
  17. % 3 = sinusoidal
  18. frequency = 2;
  19. num_samples = 50;
  20. % 2 = external file input
  21. file_name = 'shortest.wav'; % Name of input file
  22. file_input_type = 3;
  23. % 1 = binary (not implemented)
  24. % 2 = text % Demo file:  'text.txt'
  25. % 3 = sound % Demo files: 'shortest.wav' & 'shorter.wav'
  26. % 4 = image (not implemented)
  27. % QAM Setup ------------------------------------------------------------
  28. do_QAM = 1; % (1=on, 0=off)
  29. QAM_periods = 10; % defines the number of periods per QAM Symbos (1=2*pi)
  30. % Channel Simulation Parameters --------------------------------------------
  31. channel_on = 1; % 1=on, 0=off
  32. clip_level = 1.0; % 0.0 - 1.0 (0-100%)
  33. % Max magnitude of the signal is 'clip_level' times the full magnitude of the signal
  34. noise_level = 0.0; % 0.0 - 1.0 (0-100%)
  35. % Magnitude of noise is 'noise_level' times the magnitude of the signal
  36. % Multipath Channel Simulation
  37. % Good defaults when fft_size = 128 and num_carriers = 32:
  38. % d1=6; a1=0.30; d2=10; a2=0.25
  39. d1 = 6; % delay in units
  40. a1 = 0.30;  % attenuation factor - multipath signal is x% of size or original signal
  41. d2 = 10; % delay for second multipath signal
  42. a2 = 0.25; % attenuation factor for second multipath signal
  43. % ****************** TEST INPUT SETUP - DO NOT MODIFY **************************
  44. if input_type == 1
  45. if test_input_type == 1
  46. %specify BINARY input bit-by-bit
  47. data_in = binary_data;
  48. end
  49. if test_input_type == 2
  50. %random input defined by parameters
  51. num_levels = 255; %number of possible levels of a symbol
  52. %must be integer between 1-255
  53. data_samples = round(rand(1,num_symbols)*(num_levels-1));
  54. data_in = zeros(1,8*length(data_samples));
  55. for i = 1:length(data_samples)
  56. data_in(1 + (i-1)*8:(i-1)*8 + 8) = eight2bin(data_samples(i));
  57. end
  58. end
  59. if test_input_type == 3
  60. %data stream represents sine wave samples
  61. t = linspace(0,1,num_symbols); %evenly space number of samples
  62. %take 8-bit samples of sine wave
  63. data_samples = round(127.5*sin(frequency*2*pi*t) +127.5);
  64. data_in = zeros(1,8*length(data_samples));
  65. for i = 1:length(data_samples)
  66. data_in(1 + (i-1)*8:(i-1)*8 + 8) = eight2bin(data_samples(i));
  67. end
  68. end
  69. end
  70. already_made_noise = 0; % initialization (don't change)