<div><div style="font-family:'calibri' , sans-serif;font-size:11pt;line-height:normal;margin:0cm 0cm 0.0001pt 0cm"><span style="font-family:'times new roman' , serif;font-size:12pt">Hello friends!</span></div><div style="font-family:'calibri' , sans-serif;font-size:11pt;line-height:normal;margin:0cm 0cm 0.0001pt 0cm"><span style="font-family:'times new roman' , serif;font-size:12pt">Maybe that's not directly a Numpy question but I think it can be solved by Numpy.</span></div><div style="background:white;font-family:'calibri' , sans-serif;font-size:11pt;line-height:normal;margin:0cm 0cm 1.5pt 0cm;vertical-align:baseline"><span style="font-family:'times new roman' , serif;font-size:12pt">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!</span></div><div style="background:white;font-family:'calibri' , sans-serif;font-size:11pt;line-height:normal;margin:0cm 0cm 1.5pt 0cm;vertical-align:baseline"><pre style="border:0px;border-radius:5px;box-sizing:inherit;font-family:'consolas' , 'menlo' , 'monaco' , 'lucida console' , 'liberation mono' , 'dejavu sans mono' , 'bitstream vera sans mono' , 'courier new' , monospace , sans-serif;font-size:13px;font-style:normal;font-weight:400;line-height:1.30769;margin:0px;max-height:600px;overflow:auto;padding:12px;text-align:left;text-decoration-style:initial;text-indent:0px;text-transform:none;vertical-align:baseline;width:auto;word-spacing:0px"><code style="background-color:transparent;border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline;white-space:inherit"><span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">import</span> numpy <span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">as</span> np
<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">import</span> scipy
<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">import</span> matplotlib.pyplot <span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">as</span> plt
<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">from</span> scipy.fft <span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">import</span> rfft
<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">from</span> scipy.fft <span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">import</span> irfft</code></pre></div><div style="background:white;font-family:'calibri' , sans-serif;font-size:11pt;line-height:normal;margin:0cm 0cm 1.5pt 0cm;vertical-align:baseline"><pre style="border:0px;border-radius:5px;box-sizing:inherit;font-family:'consolas' , 'menlo' , 'monaco' , 'lucida console' , 'liberation mono' , 'dejavu sans mono' , 'bitstream vera sans mono' , 'courier new' , monospace , sans-serif;font-size:13px;font-style:normal;font-weight:400;line-height:1.30769;margin:0px;max-height:600px;overflow:auto;padding:12px;text-align:left;text-decoration-style:initial;text-indent:0px;text-transform:none;vertical-align:baseline;width:auto;word-spacing:0px"><code style="background-color:transparent;border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline;white-space:inherit">amplituda = <span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">200</span>
width = <span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">20</span>
CHUNK = <span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">1024</span>
x1 = np.arange(CHUNK)
x2 = np.arange(CHUNK//<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>)
y = []
<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">for</span> i <span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">in</span> <span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">range</span>(<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">len</span>(x1)):
y.append(np.sin(x1[i]/width)*amplituda)
fig = plt.figure()
ax1 = fig.add_subplot(<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>,<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>,<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">1</span>)
ax3 = fig.add_subplot(<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>,<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>,<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>)
ax2 = fig.add_subplot(<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>,<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>,<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">3</span>)
ax4 = fig.add_subplot(<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>,<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>,<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">4</span>)
<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline"># RFFT</span>
y_rfft = rfft(y)
<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline"># IRFFT without abs</span>
y_irfft = irfft(y_rfft)
<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline"># IRFFT with abs</span>
y_irfft_abs = irfft(np.<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">abs</span>(y_rfft))
a = ax1.plot(x1, y, color=<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">'green'</span>)
a = ax2.plot(x2, y_rfft[<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">1</span>:<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">513</span>], color=<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">'green'</span>)
a = ax3.plot(x1, y_irfft, color=<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">'green'</span>)
a = ax4.plot(x1, y_irfft_abs, color=<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">'green'</span>)
a = ax1.set_title(<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">'Raw signal'</span>, fontsize = <span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">8</span>)
a = ax2.set_title(<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">'Spectrum (rfft)'</span>, fontsize = <span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">8</span>)
a = ax3.set_title(<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">'(irfft) without abs'</span>, fontsize = <span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">8</span>)
a = ax4.set_title(<span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">'(irfft) with abs "np.abs(y_rfft)"'</span>, fontsize = <span style="border:0px;box-sizing:inherit;font-family:inherit;font-size:13px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;padding:0px;vertical-align:baseline">8</span>)
a = plt.show()</code></pre></div></div>