Skip to content

Commit

Permalink
improved code a bit
Browse files Browse the repository at this point in the history
  • Loading branch information
andimarafioti committed Jun 27, 2019
1 parent d6074da commit f4ee055
Showing 1 changed file with 17 additions and 22 deletions.
39 changes: 17 additions & 22 deletions data/pghi test.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -152,12 +152,15 @@
" fgradw = - b * ( fgrad + np.arange(spectrogram.shape[1]) * a ) * sampToRadConst # also convert relative to freqinv convention\n",
" \n",
" magnitude_heap = []\n",
" heapq.heappush(magnitude_heap, (-max_val, max_pos)) # Start on max value \n",
" done_mask[max_pos] = 1\n",
" done_mask[spectrogram < max_val-tol] = 3 # Do not integrate over small areas\n",
" done_mask[spectrogram < max_val-tol] = 3 # Do not integrate over silence\n",
"\n",
" while True:\n",
" while len(magnitude_heap)>0:\n",
" while np.any([done_mask==0]):\n",
" max_val = np.amax(spectrogram[done_mask == 0]) # Find new maximum value to start integration\n",
" max_pos = np.where(spectrogram==max_val)\n",
" heapq.heappush(magnitude_heap, (-max_val, max_pos))\n",
" done_mask[max_pos] = 1\n",
"\n",
" while len(magnitude_heap)>0: # Integrate around maximum value until reaching silence\n",
" max_val, max_pos = heapq.heappop(magnitude_heap)\n",
" \n",
" col = max_pos[0]\n",
Expand Down Expand Up @@ -188,14 +191,7 @@
" phase[W_pos] = phase[max_pos] - (tgradw[max_pos] + tgradw[W_pos])/2\n",
" done_mask[W_pos] = 2\n",
" heapq.heappush(magnitude_heap, (-spectrogram[W_pos], W_pos))\n",
" \n",
" try:\n",
" max_val = np.amax(spectrogram[done_mask == 0])\n",
" max_pos = np.where(spectrogram==max_val)\n",
" except ValueError:\n",
" return phase\n",
" heapq.heappush(magnitude_heap, (-max_val, max_pos))\n",
" done_mask[max_pos] = 1"
" return phase\n"
]
},
{
Expand All @@ -213,8 +209,8 @@
" spectrogram = spectrogram.copy() \n",
" abstol = -20\n",
" phase = np.zeros_like(spectrogram)\n",
" max_val = np.amax(spectrogram)\n",
" max_x, max_y = np.where(spectrogram==max_val)\n",
" max_val = np.amax(spectrogram) # Find maximum value to start integration\n",
" max_x, max_y = np.where(spectrogram==max_val) \n",
" max_pos = max_x[0], max_y[0]\n",
" \n",
" if max_val <= abstol: #Avoid integrating the phase for the spectogram of a silent signal\n",
Expand All @@ -229,17 +225,16 @@
" tgradw = a * tgrad * sampToRadConst\n",
" fgradw = - b * ( fgrad + np.arange(spectrogram.shape[1]) * a ) * sampToRadConst # also convert relative to freqinv convention\n",
" \n",
" magnitude_heap = [(-max_val, max_pos)]\n",
"# heapq.heappush(magnitude_heap, (-max_val, max_pos)) # Start on max value \n",
" magnitude_heap = [(-max_val, max_pos)] # Numba requires heap to be initialized with content\n",
" spectrogram[max_pos] = abstol\n",
" \n",
" small_x, small_y = np.where(spectrogram < max_val-tol)\n",
" for x, y in zip(small_x, small_y):\n",
" spectrogram[x, y] = abstol # Do not integrate over small areas\n",
" spectrogram[x, y] = abstol # Do not integrate over silence\n",
"\n",
" while max_val > abstol:\n",
" while len(magnitude_heap) > 0:\n",
" max_val, max_pos = heapq.heappop(magnitude_heap)\n",
" while len(magnitude_heap) > 0: # Integrate around maximum value until reaching silence\n",
" max_val, max_pos = heapq.heappop(magnitude_heap) \n",
" \n",
" col = max_pos[0]\n",
" row = max_pos[1]\n",
Expand Down Expand Up @@ -270,7 +265,7 @@
" heapq.heappush(magnitude_heap, (-spectrogram[W_pos], W_pos))\n",
" spectrogram[W_pos] = abstol\n",
" \n",
" max_val = np.amax(spectrogram)\n",
" max_val = np.amax(spectrogram) # Find new maximum value to start integration\n",
" max_x, max_y = np.where(spectrogram==max_val)\n",
" max_pos = max_x[0], max_y[0]\n",
" heapq.heappush(magnitude_heap, (-max_val, max_pos))\n",
Expand All @@ -284,7 +279,7 @@
"metadata": {},
"outputs": [],
"source": [
"np.testing.assert_array_equal(pure_python_pghi(spectrograms[2], tgrads[2], fgrads[2], a, M, L, tol=8), pghi(spectrograms[2], tgrads[2], fgrads[2], a, M, L, tol=8))"
"np.testing.assert_array_equal(pure_python_pghi(spectrograms[2], tgrads[2], fgrads[2], a, M, L, tol=10), pghi(spectrograms[2], tgrads[2], fgrads[2], a, M, L, tol=10))"
]
},
{
Expand Down

0 comments on commit f4ee055

Please sign in to comment.