Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from scipy import signal
  4. import scipy.io.wavfile as wav
  5. f = 1000 # CZestotliwość sygnału (Hz)
  6. fp = 8000 # Częstotliwość próbkowania (Hz)
  7. Tp = 1/fp # okres próbkowania (sek)
  8. A = 1 # Amplituda
  9. #faza = np.pi # faza (rad)
  10. dur = 5 # Czas trwania
  11.  
  12. a = 0.999
  13. #def f1(funkcja, alfa):
  14. # a1 = np.zeros(40000)
  15. # for i in a1:
  16. # a1[i] = alfa*a1[i-1]+(1-alfa)*funkcja[i]*funkcja[i]
  17. #return a1
  18.  
  19. t = np.arange(0,dur,Tp)
  20. ysin = A * np.sin(2*np.pi*t*f)
  21.  
  22.  
  23. N=fp*dur
  24. t1 = np.arange(0,N,1)
  25. def xdd(x):
  26. P[0]=0
  27. for n in range(1,N):
  28. P[n]=a*P[n-1]+(1-a)*x[n]**2
  29. return P
  30.  
  31. chirp = signal.chirp(t,0,dur,f)
  32.  
  33. tt = np.arange(0,40000)/10000
  34. fs,signal=wav.read("voice.wav")
  35. y_noise = (max(signal)/8*np.random.normal(0,1,40000))
  36.  
  37. fig, ((y1,y2),(y3,y4),(y5,y6),(y7,y8)) = plt.subplots(4,2)
  38. fig.set_size_inches(15,20)
  39.  
  40. xdd(y_noise)
  41. y1.plot(tt,y_noise/40000)
  42. y1.set_xlabel('Czas [sek.]')
  43. y1.set_ylabel('Amplituda')
  44. y1.set_title('Szum gaussowksi')
  45.  
  46. y2.plot(t1/fp,P/f/fp)
  47. y2.set_ylim([0,2])
  48.  
  49. y3.plot(t,ysin)
  50. y3.set_title('Sygnał sinuoidalny o stałej częstotliwości')
  51. y3.set_xlabel('Czas [sek.]')
  52. y3.set_ylabel('Amplituda')
  53.  
  54. xdd(ysin)
  55. y4.plot(t1/fp,P)
  56. y4.set_ylim([0,1])
  57.  
  58. xdd(chirp)
  59. y5.plot(t,chirp)
  60. y5.set_title('Sygnał o zmiennej częstotliwości')
  61. y5.set_xlabel('Czas [sek.]')
  62. y5.set_ylabel('Amplituda')
  63.  
  64. y6.plot(t1/fp,P)
  65.  
  66. xdd(signal)
  67. y7.plot(tt,signal/40000)
  68. y7.set_xlabel('Czas [sek.]')
  69. y7.set_ylabel('Amplituda')
  70. y7.set_title('Mowa')
  71.  
  72. y8.plot(t1/fp,P/fp/40000*3)
  73. plt.show()
  74.  
  75. a=0.99
  76. fig, ((y1,y2),(y3,y4),(y5,y6),(y7,y8)) = plt.subplots(4,2)
  77. fig.set_size_inches(15,20)
  78.  
  79. xdd(y_noise)
  80. y1.plot(tt,y_noise/40000)
  81. y1.set_xlabel('Czas [sek.]')
  82. y1.set_ylabel('Amplituda')
  83. y1.set_title('Szum gaussowksi')
  84.  
  85. y2.plot(t1/fp,P/f/fp)
  86. y2.set_ylim([0,2])
  87.  
  88. y3.plot(t,ysin)
  89. y3.set_title('Sygnał sinuoidalny o stałej częstotliwości')
  90. y3.set_xlabel('Czas [sek.]')
  91. y3.set_ylabel('Amplituda')
  92.  
  93. xdd(ysin)
  94. y4.plot(t1/fp,P)
  95. #y4.set_title('Sygnał sinuoidalny o stałej częstotliwości')
  96. y4.set_ylim([0,1])
  97.  
  98. xdd(chirp)
  99. y5.plot(t,chirp)
  100. y5.set_title('Sygnał o zmiennej częstotliwości')
  101. y5.set_xlabel('Czas [sek.]')
  102. y5.set_ylabel('Amplituda')
  103.  
  104. y6.plot(t1/fp,P)
  105.  
  106. xdd(signal)
  107. y7.plot(tt,signal/40000)
  108. y7.set_xlabel('Czas [sek.]')
  109. y7.set_ylabel('Amplituda')
  110. y7.set_title('Mowa')
  111.  
  112. y8.plot(t1/fp,P/fp/40000*3)
  113. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement