UWB_monocycle2.m
上传用户:asli888
上传日期:2013-05-03
资源大小:7045k
文件大小:6k
源码类别:

matlab例程

开发平台:

Matlab

  1. %UWB-Run from editor debug(F5)-PPM(pulse position modulation) of
  2. %UWB monocycle and doublet waveforms.
  3. %This m file plots the time and frequency waveforms for PPM 1st and 2nd derivative 
  4. %equations used in UWB system analysis. Fudge factors are required to
  5. %correct for inaccuracies in the 1st and 2nd derivative equations.
  6. %Tail to tail on the time wave forms must be considered as the actual pulse width. 
  7. %7*PW1 has about 99.9% of the signal power. The frequency spreads and center 
  8. %frequencies(fc=center of the spread)are correct as you can verify(fc~1/pw1).
  9. %Change pw(fudge factor)and t for other entered(pw1) pulse widths and
  10. %zooming in on the waveforms. See SETUP at end of program
  11. %================================================
  12. pw1=.5e-9;%pulse width in nanosec,change to desired width
  13. pw=pw1/2.5;%Fudge factor for inaccurate PWs(approx. 4-5 for 1st der. and
  14. %approx. 2-3 for 2nd der.)
  15. Fs=100e9;%sample frequency
  16. Fn=Fs/2;%Nyquist frequency
  17. t=-1e-9:1/Fs:1e-9;%time vector sampled at Fs Hertz. zoom in/out using (-1e-9:1/Fs:xxxx)
  18. A=1;
  19. %================================================ 
  20. % EQUATIONS
  21. %================================================
  22. %y=A*(t/pw).*exp(-(t/pw).^2);%1st derivative of Gaussian pulse=Gaussian monocycle
  23. y =A*(1 - 4*pi.*((t)/pw).^2).* exp(-2*pi.*((t)/pw).^2);%2nd derivative of Gaussian
  24. %pulse=doublet(two zero crossings) 
  25. %================================================
  26. %This series of pulses sets the pulse recurring frequency(PRF)
  27. %at 400MHz(waveform repeats every 2.5e-9 sec)and a
  28. %modulation bit stream(info bit rate=200MHz) of 0 1 0 1 0 (5 pulses,can add more)
  29. %using 0.2e-9 as the time delay PPM where a delay = a 0 bit and no delay = a 1 bit. 
  30. %One could expand the # of pulses and modulate for a series of
  31. %000000111111000000111111000000 which would give a lower bit rate. You could just
  32. %change the PRF also. For loops or some other method could be used to do this but for
  33. %myself, I would get lost. This is a brute force method and I can easily copy and paste.
  34. %I will leave that for more energetic souls. Since we basically have the transmitter
  35. %implemented it's time to move on to the correlation receiver design 
  36. %and and add interference, multipath and noise with BER capability to
  37. %see if we can demodulate and get 01010 bits out at the 200MHz information bit rate. As
  38. %someone once said a journey of a thousand miles requires taking a small first step. 
  39. %==================================================
  40. % 1ST DERIVATIVE MONOCYCLE(PPM WITH 5 PULSES)
  41. %==================================================
  42. %yp=y+ ...
  43. %A*((t-2.5e-9-.2e-9)/pw).*exp(-((t-2.5e-9-.2e-9)/pw).^2)+A*((t-5e-9)/pw).*exp(-((t-5e-9)/pw).^2)+ ...
  44. %A*((t-7.5e-9-.2e-9)/pw).*exp(-((t-7.5e-9-.2e-9)/pw).^2)+A*((t-10e-9)/pw).*exp(-((t-10e-9)/pw).^2);
  45. %==================================================
  46. % 2ND DERIVATIVE DOUBLET(PPM WITH 5 PULSES)
  47. %==================================================
  48. yp=y+ ...
  49. A*(1-4*pi.*((t-2.5e-9-.2e-9)/pw).^2).*exp(-2*pi.*((t-2.5e-9-.2e-9)/pw).^2)+ ...
  50. A*(1-4*pi.*((t-5.0e-9)/pw).^2).*exp(-2*pi.*((t-5.0e-9)/pw).^2)+ ...
  51. A*(1-4*pi.*((t-7.5e-9-.2e-9)/pw).^2).*exp(-2*pi.*((t-7.5e-9-.2e-9)/pw).^2)+ ...
  52. A*(1-4*pi.*((t-10e-9)/pw).^2).*exp(-2*pi.*((t-10e-9)/pw).^2);
  53. %==================================================
  54. % FFT
  55. %==================================================
  56. y=yp;
  57. NFFY=2.^(ceil(log(length(y))/log(2)));
  58. FFTY=fft(y,NFFY);%pad with zeros
  59. NumUniquePts=ceil((NFFY+1)/2); 
  60. FFTY=FFTY(1:NumUniquePts);
  61. MY=abs(FFTY);
  62. MY=MY*2;
  63. MY(1)=MY(1)/2;
  64. MY(length(MY))=MY(length(MY))/2;
  65. MY=MY/length(y);
  66. f=(0:NumUniquePts-1)*2*Fn/NFFY;
  67. %===================================================
  68. % PLOTS
  69. %===================================================
  70. subplot(2,2,1); plot(t,y);xlabel('TIME');ylabel('AMPLITUDE');
  71. grid on;
  72. %axis([-1e-9,4e-9 -1 1])
  73. subplot(2,2,2); plot(f,MY);xlabel('FREQUENCY');ylabel('AMPLITUDE');
  74. %axis([0 10e9 0 .1]);%zoom in/out
  75. grid on;
  76. subplot(2,2,3); plot(f,20*log10(MY));xlabel('FREQUENCY');ylabel('20LOG10=DB');
  77. %axis([0 20e9 -120 0]);
  78. grid on;
  79. %SETUP
  80. %Enter desired pulse width in pw1(.5e-9).
  81. %Change t=-1e-9:1/Fs:(xxxx) to 1e-9.
  82. %Press F5 or run.
  83. %With waveform in plot 2,2,1, set pulse width with fudge factor to .5e-9
  84. %using #s corresponding to chosen waveform. Set from tail to tail.
  85. %Change t=-1e-9:1/Fs:(xxx) to something like 20e-9.Zoom out. I would
  86. %comment in all plot axis and use them for zooming in and out.
  87. %Press F5 and observe waveforms. Print waveforms to compare with next set of
  88. %wave forms.
  89. %Pick another waveform by commenting out existing waveform and repeat as above.
  90. %When you compare the waveforms you will see that the second derivative
  91. %doublet has a center frequency in the spread twice that of the first
  92. %derivative monocycle.
  93. %You would expect this on a second derivative. Picking a doublet waveform
  94. %for transmission (by choice of UWB antenna design) pushes the fc center frequency 
  95. %spread out by (two) allowing relief from the difficult design of narrower pulse
  96. %generating circuits in transmitters and receivers. If you chose a monocycle, you would
  97. %need to design your pulse circuits with a much narrower(factor of two)pulse width to
  98. %meet the tough FCC spectral mask from ~3 to 10GHz at-40 DB. I would guess a
  99. %pulse width of ~ 0.4 to 0.45 nanosec using a doublet at the proper amplitude(A) 
  100. %would meet the requirements.
  101.  
  102. %You can zoom in on the waveforms of plot 2,2,1 to see the PPM
  103. %delays generating 01010. Use axis on plot 2,,2,1 for better
  104. %zooming.Comment in the axis.