/ 8_Utils / Python / FFT_Ramp_Frequency.py
FFT_Ramp_Frequency.py
 1  import numpy as np
 2  from numpy.fft import fft, ifft
 3  import matplotlib.pyplot as plt
 4  
 5  n = np.arange(0, 61, 1)
 6  Fs=125e6
 7  Ts = 1.0 / Fs
 8  Tb=1e-6
 9  y = 1 + np.sin(2*np.pi*(29e6*(n**2)*(Ts**2)/(2.0*Tb)+1e6*n*Ts))
10  
11  t = Ts*np.arange(0,61,1)
12  Y = fft(y)
13  M =len(Y)
14  m = np.arange(M)
15  T = M*Ts
16  freq = m/T
17  
18  
19  plt.figure(figsize = (12, 6))
20  plt.subplot(121)
21  plt.stem(freq, np.abs(Y), 'b', \
22           markerfmt=" ", basefmt="-b")
23  plt.xlabel('Freq (Hz)')
24  plt.ylabel('FFT Amplitude |Y(freq)|')
25  plt.xlim(0, 40*pow(10,6))
26  plt.ylim(0, 20)
27  
28  plt.subplot(122)
29  plt.plot(t, ifft(Y), 'r')
30  plt.xlabel('Time (s)')
31  plt.ylabel('Amplitude')
32  plt.tight_layout()
33  
34  plt.show()