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

matlab例程

开发平台:

Matlab

  1. %UWB_MONOCYCLE1-Run from editor debug(F5)
  2. %This m file plots the time and frequency waveforms for the 1st and 2nd derivative 
  3. %equations used in UWB system analysis. Fudge factors are required to
  4. %correct for inaccuracies in the 1st and 2nd derivative equations.
  5. %Tail to tail on the time wave forms must be considered as the actual pulse width. 
  6. %7*PW1 has about 99.9% of the signal power. The frequency spreads and center 
  7. %frequencies(fc=center of the spread)are basically correct as you can verify(fc~1/pw1).
  8. %Change t and fudge factor for other pulse widths and zooming in on the time waveforms.
  9. %Signal available to test FFT.Another signal is available for notching the frequency spread
  10. %which could be future direction for adaptive UWB systems or could be used for basic multipath
  11. %and interference analysis depending on what equation is used.
  12. pw1=.25e-9;%pulse width in nanosec,change to desired width
  13. pw=pw1/4.5;%Fudge factor for inaccurate PWs,4-5 for 1st der. and 2-3 for 2nd der.
  14. Fs=20e9;%sample frequency
  15. Fn=Fs/2;%Nyquist freq
  16. t=-3e-9:1/Fs:3e-9;%time vector sampled at Fs hertz
  17. td=0;%time delay-PPM(pulse position modulation) with td=0 a zero bit and td>0=1 bit
  18. A=1;%PAM(pulse amplitude modulation) with A=1 a zero bit and A>1=1 bit
  19. %Phase=+/-180 degrees BPSK-not sure how to do this. Need to put for loops in for
  20. %many pulses and rates for all three types of modulation
  21. x =((t-td)/pw).^2;
  22. %y=A.*exp(0.5.*(-x));%Gaussian pulse function
  23. y=A*(t/pw).*exp(-x);%1st derivative Gaussian pulse=Gaussian monocycle
  24. %y =A*(1 - 4*pi.* x).* exp(-2*pi.* x);%2nd derivative Gaussian pulse=doublet(two zero crossings) 
  25. %y=sin(2*pi.*t*2e9);%test signal only-%out 1st and 2nd derivative signals
  26. %y=y.*sin((2*pi*t*2.e9).^2);%provides spectrum notches for adaptive schemes
  27. figure(1)
  28. plot(t,y)%time domain
  29. title('Time domain');
  30. xlabel('nanoseconds');ylabel('amplitude')
  31. grid on
  32. NFFY=2.^(ceil(log(length(y))/log(2)));
  33. FFTY=fft(y,NFFY);%pad with zeros
  34. NumUniquePts=ceil((NFFY+1)/2); 
  35. FFTY=FFTY(1:NumUniquePts);
  36. MY=abs(FFTY);
  37. MY=MY*2;
  38. MY(1)=MY(1)/2;
  39. MY(length(MY))=MY(length(MY))/2;
  40. MY=MY/length(y);
  41. f=(0:NumUniquePts-1)*2*Fn/NFFY;
  42. figure(2)
  43. plot(f,MY);
  44. %plot(f,20*log10(MX));%frequency domain
  45. title('frequency domain')
  46. xlabel('Frequency');ylabel('Amplitude')
  47. %axis([0 .1e9 -60 0])%zoom in
  48. grid on