Hello friends!
Maybe that's not directly a Numpy question but I think it can be solved by Numpy.
I do RFFT of microphone sound and find its absolute value np.abs(). Than I need to do IRFFT but I don't know how to restore sinusoida after np.abs(). I can't not to use 'abs'. I need it in my code. Is there any rough way to restore sound sinusoidal signal from its absolute values. Thank you for your attention!
import numpy as np
import scipy
import matplotlib.pyplot as plt
from scipy.fft import rfft
from scipy.fft import irfft
amplituda = 200
width = 20
CHUNK = 1024
x1 = np.arange(CHUNK)
x2 = np.arange(CHUNK//2)
y = []
for i in range(len(x1)):
y.append(np.sin(x1[i]/width)*amplituda)
fig = plt.figure() ax1 = fig.add_subplot(2,2,1) ax3 = fig.add_subplot(2,2,2) ax2 = fig.add_subplot(2,2,3) ax4 = fig.add_subplot(2,2,4) # RFFT y_rfft = rfft(y) # IRFFT without abs y_irfft = irfft(y_rfft) # IRFFT with abs y_irfft_abs = irfft(np.abs(y_rfft)) a = ax1.plot(x1, y, color='green') a = ax2.plot(x2, y_rfft[1:513], color='green') a = ax3.plot(x1, y_irfft, color='green') a = ax4.plot(x1, y_irfft_abs, color='green') a = ax1.set_title('Raw signal', fontsize = 8) a = ax2.set_title('Spectrum (rfft)', fontsize = 8) a = ax3.set_title('(irfft) without abs', fontsize = 8) a = ax4.set_title('(irfft) with abs "np.abs(y_rfft)"', fontsize = 8) a = plt.show()
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion