Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.85 KB | None | 0 0
  1. N = 1024
  2. freq = 8000
  3.  
  4.  
  5. f1 = 500
  6. f2 = 1200
  7. n = np.arange(N)
  8. w = np.random.normal(0,1,N)
  9. s = 0.5*np.sin(2*np.pi*n*f1/freq) + np.sin(2*np.pi*n*f2/freq)
  10. y = s + 0.1*w
  11.  
  12.  
  13. plt.figure(figsize = (12,10))
  14. fs1, Pxs1 = signal.welch(w, freq, window='hanning', nperseg=256/2, nfft=256)
  15. fs2, Pxs2 = signal.welch(w, freq, window='hanning', nperseg=128/2, nfft=128)
  16. fs3, Pxs3 = signal.welch(w, freq, window='hanning', nperseg=64/2, nfft=64)
  17. plt.plot(fs1, 10*np.log10(Pxs1), label="NFFT=256")
  18. plt.plot(fs2, 10*np.log10(Pxs2), label="NFFT=128")
  19. plt.plot(fs3, 10*np.log10(Pxs3), label="NFFT=64" )
  20. plt.title("Szum gaussowski - Periodogram Welcha")
  21. plt.xlabel("Frequency")
  22. plt.ylabel("PSD (dB/Hz)")
  23. plt.xlim(0,4000)
  24. plt.legend()
  25. plt.show()
  26.  
  27.  
  28. plt.figure(figsize = (12,10))
  29. fs1, Pxs1 = signal.welch(s, freq, window='hanning', nperseg=256/2, nfft=256)
  30. fs2, Pxs2 = signal.welch(s, freq, window='hanning', nperseg=128/2, nfft=128)
  31. fs3, Pxs3 = signal.welch(s, freq, window='hanning', nperseg=64/2, nfft=64)
  32. plt.plot(fs1, 10*np.log10(Pxs1), label="NFFT=256")
  33. plt.plot(fs2, 10*np.log10(Pxs2), label="NFFT=128" )
  34. plt.plot(fs3, 10*np.log10(Pxs3), label="NFFT=64")
  35. plt.title("Sygnały sinusoidalne - Periodogram Welcha")
  36. plt.xlabel("Frequency")
  37. plt.ylabel("PSD (dB/Hz)")
  38. plt.xlim(0,4000)
  39. plt.legend()
  40. plt.show()
  41.  
  42. plt.figure(figsize = (12,10))
  43. fs1, Pxs1 = signal.welch(y, freq, window='hanning', nperseg=256/2, nfft=256)
  44. fs2, Pxs2 = signal.welch(y, freq, window='hanning', nperseg=128/2, nfft=128)
  45. fs3, Pxs3 = signal.welch(y, freq, window='hanning', nperseg=64/2, nfft=64)
  46. plt.plot(fs1, 10*np.log10(Pxs1), label="NFFT=256")
  47. plt.plot(fs2, 10*np.log10(Pxs2), label="NFFT=128")
  48. plt.plot(fs3, 10*np.log10(Pxs3), label="NFFT=64" )
  49. plt.title("Sygnały w szumie - Periodogram Welcha")
  50. plt.xlabel("Frequency")
  51. plt.ylabel("PSD (dB/Hz)")
  52. plt.xlim(0,4000)
  53. plt.legend()
  54. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement