Skip to content

Commit

Permalink
fix overflow error for large modulations
Browse files Browse the repository at this point in the history
  • Loading branch information
jopohl committed Nov 22, 2017
1 parent e96281d commit 173501f
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/urh/signalprocessing/Modulator.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,13 @@ def modulate(self, data=None, pause=0, start=0):
else:
f = self.carrier_freq_hz

arg = ((2 * np.pi * f * t + phi) * 1j).astype(np.complex64)
self.modulated_samples[:total_samples - pause] = a * np.exp(arg)
# it may be tempting to do this with complex exp, but exp overflows for large values!
# arg = ((2 * np.pi * f * t + phi) * 1j).astype(np.complex64)
# self.modulated_samples[:total_samples - pause] = a * np.exp(arg)

arg = (2 * np.pi * f * t + phi)
self.modulated_samples[:total_samples - pause].real = a * np.cos(arg)
self.modulated_samples[:total_samples - pause].imag = a * np.sin(arg)

def gauss_fir(self, bt=0.5, filter_width=1):
"""
Expand Down

0 comments on commit 173501f

Please sign in to comment.