Advertisement
Guest User

Untitled

a guest
Sep 8th, 2020
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.31 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3.  
  4. #%%###########################################################################
  5. def complex_to_polar(c):
  6.     return np.angle(c), np.abs(c)
  7.  
  8. def cchirp(fs=int(5e7), tau=5e-5, bw=int(1e7), get_t=False):
  9.     alpha = bw / tau
  10.     t = np.arange(0, tau, 1 / fs)
  11.     y = np.exp(1j * np.pi * alpha * t ** 2)
  12.     return y, t if get_t else y
  13.  
  14. def plot_v2(x, unwrap=True):
  15.     coef = np.fft.fft(x)
  16.     theta, r = complex_to_polar(coef)
  17.  
  18.     plt.plot(r)
  19.     plt.ylim(0, max(r) * 1.05)
  20.     plt.show()
  21.     theta = np.unwrap(theta) if unwrap else theta
  22.     plt.plot(theta)
  23.     plt.show()
  24.  
  25. def wplot(x):
  26.     plt.plot(x)
  27.     _scale_plot(plt.gcf(), plt.gca())
  28.  
  29. def mag_zoom(r, h=10, x0=0, show=True):
  30.     N = len(r)
  31.     N2 = N // 2
  32.     a, b = N2 + x0 - h, N2 + x0 + h + 1
  33.     k = np.linspace(-N2, N2 - 1, N)[a:b]
  34.     plt.plot(k, r[a:b])
  35.     _scale_plot(plt.gcf(), plt.gca())
  36.     if show:
  37.         plt.show()
  38.  
  39. def _scale_plot(fig, ax):
  40.     xmin, xmax = ax.get_xlim()
  41.     rng = xmax - xmin
  42.     ax.set_xlim(xmin + .025 * rng, xmax - .025 * rng)
  43.     fig.set_size_inches(15, 7)
  44.  
  45. #%%###########################################################################
  46. tau, fs, bw = 200000, 50, 5
  47. x, t = cchirp(fs=int(fs), bw=int(bw), tau=tau, get_t=1)
  48. plot_v2(x.real, unwrap=1)
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement