# Python numpy.angle() 使用实例

The following are code examples for showing how to use . They are extracted from open source Python projects. You can vote up the examples you like or vote down the exmaples you don’t like. You can also save this page to your account.

Example 1

def crosscorr(tr1,tr2):
"""This function takes 2 obspy traces and performs a phase crosscorrelation
of the traces. First, the hilbert transform is taken to obtain the
analytic signal and hence the instantaneous phase. This is then passed to a
fortran script where phase correlation is performed after Schimmel et al., 2011.

This function relies on the shared object file phasecorr.so, which is the file
containing the fortran subroutine for phase correlation.
"""

import numpy as np

from scipy.signal import hilbert
from phasecorr import phasecorr
# Hilbert transform to obtain the analytic signal
htrans1 = hilbert(tr1)
htrans2 = hilbert(tr2)
# Perform phase autocorrelation with instantaneous phase
pcc = phasecorr(np.angle(htrans1),np.angle(htrans2),len(htrans1))

return pcc 

Example 2

def getAngleInDegrees(_fft):

_angle = np.angle(_fft, True);
_rows, _columns = _fft.shape;

for i in range(0, _rows):
for j in range(0, _columns):
if (_angle[i][j] < 0 and abs(_angle[i][j]) <= 180):
#print(_angle[i][j]);
#print("\n");
_angle[i][j] = 180 + _angle[i][j];
#print(_angle[i][j]);
#print("\n");
elif (_angle[i][j] < 0 and abs(_angle[i][j]) > 180):
#print(_angle[i][j]);
#print("\n");
_angle[i][j] = 360 + _angle[i][j];
#print(_angle[i][j]);
#print("\n");
return _angle; 

Example 3

def appres(F, H, sig, chg, taux, c, mu, eps, n):

Res = np.zeros_like(F)
Phase = np.zeros_like(F)
App_ImpZ= np.zeros_like(F, dtype='complex_')

for i in range(0, len(F)):

UD, EH, Z , K = Propagate(F[i], H, sig, chg, taux, c, mu, eps, n)

App_ImpZ[i] = EH[0, 1]/EH[1, 1]

Res[i] = np.abs(App_ImpZ[i])**2./(mu_0*omega(F[i]))
Phase[i] = np.angle(App_ImpZ[i], deg = True)

return Res, Phase

# Evaluate Up, Down components, E and H field, for a frequency range,
# a discretized depth range and a time range (use to calculate envelope) 

Example 4

def phase_plot(data, toffset, log_scale, title):
"""Plot the phase of the data in linear or log scale."""
print("phase")

phase = numpy.angle(data) / numpy.pi

fig = plt.figure()
ax.plot(phase)

axmx = numpy.max(phase)

#ax.axis([-axmx, axmx, -axmx, axmx])
ax.grid(True)
ax.set_xlabel('time')
ax.set_ylabel('phase')
ax.set_title(title)

return fig 

Example 5

def unknown_feature_extractor(x, sr, win_len, shift_len, barks, inner_win, inner_shift, win_type, method_version):
x_spectrum = stft_extractor(x, win_len, shift_len, win_type)
coef = get_fft_bark_mat(sr, win_len, barks, 20, sr//2)
bark_spect = np.matmul(coef, x_spectrum)
ams = np.zeros((barks, inner_win//2+1, (bark_spect.shape[1] - inner_win)//inner_shift))
for i in range(barks):
channel_stft = stft_extractor(bark_spect[i, :], inner_win, inner_shift, 'hanning')
if method_version == 'v1':
ams[i, :, :] = 20 * np.log(np.abs(channel_stft[:inner_win//2+1, :(bark_spect.shape[1] - inner_win)//inner_shift]))
elif method_version == 'v2':
channel_amplitude = np.abs(channel_stft[:inner_win//2+1, :(bark_spect.shape[1] - inner_win)//inner_shift])
channel_angle = np.angle(channel_stft[:inner_win//2+1, :(bark_spect.shape[1] - inner_win)//inner_shift])
channel_angle = channel_angle - (np.floor(channel_angle / (2.*np.pi)) * (2.*np.pi))
ams[i, :, :] = np.power(channel_amplitude, 1./3.) * channel_angle
else:
ams[i, :, :] = np.abs(channel_stft)
return ams 

Example 6

def ams_extractor(x, sr, win_len, shift_len, barks, inner_win, inner_shift, win_type, method_version):
x_spectrum = stft_extractor(x, win_len, shift_len, win_type)
coef = get_fft_bark_mat(sr, win_len, barks, 20, sr//2)
bark_spect = np.matmul(coef, x_spectrum)
ams = np.zeros((barks, inner_win//2+1, (bark_spect.shape[1] - inner_win)//inner_shift))
for i in range(barks):
channel_stft = stft_extractor(bark_spect[i, :], inner_win, inner_shift, 'hanning')
if method_version == 'v1':
ams[i, :, :] = 20 * np.log(np.abs(channel_stft[:inner_win//2+1, :(bark_spect.shape[1] - inner_win)//inner_shift]))
elif method_version == 'v2':
channel_amplitude = np.abs(channel_stft[:inner_win//2+1, :(bark_spect.shape[1] - inner_win)//inner_shift])
channel_angle = np.angle(channel_stft[:inner_win//2+1, :(bark_spect.shape[1] - inner_win)//inner_shift])
channel_angle = channel_angle - (np.floor(channel_angle / (2.*np.pi)) * (2.*np.pi))
ams[i, :, :] = np.power(channel_amplitude, 1./3.) * channel_angle
else:
ams[i, :, :] = np.abs(channel_stft)
return ams 

Example 7

def griffin_lim(mag, phase_angle, n_fft, hop, num_iters):
"""Iterative algorithm for phase retrival from a magnitude spectrogram.

Args:
mag: Magnitude spectrogram.
phase_angle: Initial condition for phase.
n_fft: Size of the FFT.
hop: Stride of FFT. Defaults to n_fft/2.
num_iters: Griffin-Lim iterations to perform.

Returns:
audio: 1-D array of float32 sound samples.
"""
fft_config = dict(n_fft=n_fft, win_length=n_fft, hop_length=hop, center=True)
ifft_config = dict(win_length=n_fft, hop_length=hop, center=True)
complex_specgram = inv_magphase(mag, phase_angle)
for i in range(num_iters):
audio = librosa.istft(complex_specgram, **ifft_config)
if i != num_iters - 1:
complex_specgram = librosa.stft(audio, **fft_config)
_, phase = librosa.magphase(complex_specgram)
phase_angle = np.angle(phase)
complex_specgram = inv_magphase(mag, phase_angle)
return audio 

Example 8

def __init__(self, qubit_names, quad="real"):
super(PulseCalibration, self).__init__()
self.qubit_names = qubit_names if isinstance(qubit_names, list) else [qubit_names]
self.qubit     = [QubitFactory(qubit_name) for qubit_name in qubit_names] if isinstance(qubit_names, list) else QubitFactory(qubit_names)
self.filename   = 'None'
self.exp        = None
self.axis_descriptor = None
self.cw_mode    = False
self.settings = deepcopy(self.saved_settings) #make a copy for used during calibration
else:
raise ValueError('Quadrature to calibrate must be one of ("real", "imag", "amp", "phase").')
self.plot       = self.init_plot() 

Example 9

def displayResult(self):
fig = plt.figure(101)
plt.subplot(221)
plt.imshow(np.abs(self.reconstruction),origin='lower')
plt.draw()
plt.title('Reconstruction Magnitude')
plt.subplot(222)
plt.imshow(np.angle(self.reconstruction),origin='lower')
plt.draw()
plt.title('Reconstruction Phase')
plt.subplot(223)
plt.imshow(np.abs(self.aperture),origin='lower')
plt.title("Aperture Magnitude")
plt.draw()
plt.subplot(224)
plt.imshow(np.angle(self.aperture),origin='lower')
plt.title("Aperture Phase")
plt.draw()
fig.canvas.draw()

#fig.tight_layout()
# display.display(fig)
# display.clear_output(wait=True)
# time.sleep(.00001) 

Example 10

def displayResult2(self):

fig = plt.figure()
ax.imshow(np.abs(self.reconstruction))
ax.set_title('Reconstruction Magnitude')

ax.imshow(np.angle(self.reconstruction))
ax.set_title('Reconstruction Phase')

ax.imshow(np.abs(self.aperture))
ax.set_title("Aperture Magnitude")

ax.imshow(np.angle(self.aperture))
ax.set_title("Aperture Phase")
fig.tight_layout() 

Example 11

def phase_to_color_wheel(complex_number):
"""Map a phase of a complexnumber to a color in (r,g,b).

complex_number is phase is first mapped to angle in the range
[0, 2pi] and then to a color wheel with blue at zero phase.
"""
angles = np.angle(complex_number)
angle_round = int(((angles + 2 * np.pi) % (2 * np.pi))/np.pi*6)
# print(angleround)
color_map = {0: (0, 0, 1),  # blue,
1: (0.5, 0, 1),  # blue-violet
2: (1, 0, 1),  # violet
3: (1, 0, 0.5),  # red-violet,
4: (1, 0, 0),  # red
5: (1, 0.5, 0),  # red-oranage,
6: (1, 1, 0),  # orange
7: (0.5, 1, 0),  # orange-yellow
8: (0, 1, 0),  # yellow,
9: (0, 1, 0.5),  # yellow-green,
10: (0, 1, 1),  # green,
11: (0, 0.5, 1)  # green-blue,
}
return color_map[angle_round] 

Example 12

def time_sync(self, signal, start_est, stop_est):
self.symbol_found = 0
self.symbol_start = 0
self.log.debug('time_sync()')
corr_res = np.zeros( self.sym_len[self.mode], dtype=complex)
for s in range(start_est, self.sym_len[self.mode]-1):
corr_res[s] = self.gi_correlation(self.gi_len[self.mode], self.sym_len[self.mode], signal[s: s+self.sym_len[self.mode]] )
corr_max = np.argmax( np.abs(corr_res) )

self.symbol_found = 1
self.symbol_start = corr_max + 256 - 20
self.generated_samples = self.sym_len[self.mode] - self.gi_len[self.mode]

# Tracking
self.fine_freq_off = np.angle(corr_res[corr_max])/(2*np.pi*(self.sym_len[self.mode] - self.gi_len[self.mode])*(1.0/self.fs))

return 

Example 13

def compute_by_noise_pow(self, signal, n_pow):
s_spec = np.fft.fftpack.fft(signal * self._window)
s_amp = np.absolute(s_spec)
s_phase = np.angle(s_spec)
gamma = self._calc_aposteriori_snr(s_amp, n_pow)
xi = self._calc_apriori_snr(gamma)
self._prevGamma = gamma
nu = gamma * xi / (1.0 + xi)
self._G = (self._gamma15 * np.sqrt(nu) / gamma) * np.exp(-nu / 2.0) *\
((1.0 + nu) * spc.i0(nu / 2.0) + nu * spc.i1(nu / 2.0))
idx = np.less(s_amp ** 2.0, n_pow)
self._G[idx] = self._constant
idx = np.isnan(self._G) + np.isinf(self._G)
self._G[idx] = xi[idx] / (xi[idx] + 1.0)
idx = np.isnan(self._G) + np.isinf(self._G)
self._G[idx] = self._constant
self._G = np.maximum(self._G, 0.0)
amp = self._G * s_amp
amp = np.maximum(amp, 0.0)
amp2 = self._ratio * amp + (1.0 - self._ratio) * s_amp
self._prevAmp = amp
spec = amp2 * np.exp(s_phase * 1j)
return np.real(np.fft.fftpack.ifft(spec)) 

Example 14

def compute_by_noise_pow(self, signal, n_pow):
s_spec = np.fft.fftpack.fft(signal * self._window)
s_amp = np.absolute(s_spec)
s_phase = np.angle(s_spec)
gamma = self._calc_aposteriori_snr(s_amp, n_pow)
xi = self._calc_apriori_snr(gamma)
# xi = self._calc_apriori_snr2(gamma,n_pow)
self._prevGamma = gamma
nu = gamma * xi / (1.0 + xi)
self._G = xi / (1.0 + xi) * np.exp(0.5 * spc.exp1(nu))
idx = np.less(s_amp ** 2.0, n_pow)
self._G[idx] = self._constant
idx = np.isnan(self._G) + np.isinf(self._G)
self._G[idx] = xi[idx] / (xi[idx] + 1.0)
idx = np.isnan(self._G) + np.isinf(self._G)
self._G[idx] = self._constant
self._G = np.maximum(self._G, 0.0)
amp = self._G * s_amp
amp = np.maximum(amp, 0.0)
amp2 = self._ratio * amp + (1.0 - self._ratio) * s_amp
self._prevAmp = amp
spec = amp2 * np.exp(s_phase * 1j)
return np.real(np.fft.fftpack.ifft(spec)) 

Example 15

def compute_by_noise_pow(self, signal, n_pow):
s_spec = np.fft.fftpack.fft(signal * self._window)
s_amp = np.absolute(s_spec)
s_phase = np.angle(s_spec)
gamma = self._calc_aposteriori_snr(s_amp, n_pow)
# xi = self._calc_apriori_snr2(gamma,n_pow)
xi = self._calc_apriori_snr(gamma)
self._prevGamma = gamma
u = 0.5 - self._mu / (4.0 * np.sqrt(gamma * xi))
self._G = u + np.sqrt(u ** 2.0 + self._tau / (gamma * 2.0))
idx = np.less(s_amp ** 2.0, n_pow)
self._G[idx] = self._constant
idx = np.isnan(self._G) + np.isinf(self._G)
self._G[idx] = xi[idx] / (xi[idx] + 1.0)
idx = np.isnan(self._G) + np.isinf(self._G)
self._G[idx] = self._constant
self._G = np.maximum(self._G, 0.0)
amp = self._G * s_amp
amp = np.maximum(amp, 0.0)
amp2 = self._ratio * amp + (1.0 - self._ratio) * s_amp
self._prevAmp = amp
spec = amp2 * np.exp(s_phase * 1j)
return np.real(np.fft.fftpack.ifft(spec)) 

Example 16

def plot_eigen_function(ax, se, n, psi1l, psi1r):

# plt.figure(figsize=(8, 8))
for x in range(se.info['L']):
for y in range(se.info['W']):
i = x + y * se.info['L']

w = np.sqrt(10) * np.abs(psi1r[i, n])
arg = np.angle(psi1r[i, n])

circle = plt.Circle((x, y), w, color='black', zorder=10)

ax.plot([x, x + w * np.cos(arg)], [y, y + w * np.sin(arg)], color='white', lw=.8, zorder=12)

ax.set_xlim([-.5, se.info['L'] - .5])
ax.set_ylim([-.5, se.info['W'] - .5])
# plt.show() 

Example 17

def single_spectrogram(inseq,fs,wlen,h,imag=False):
"""
imag: Return Imaginary Data of the STFT on True
"""
NFFT = int(2**(np.ceil(np.log2(wlen))))
K = np.sum(hamming(wlen, False))/wlen
raw_data = inseq.astype('float32')
raw_data = raw_data/np.amax(np.absolute(raw_data))
stft_data,_,_ = STFT(raw_data,wlen,h,NFFT,fs)
s = np.absolute(stft_data)/wlen/K;
if np.fmod(NFFT,2):
s[1:,:] *=2
else:
s[1:-2] *=2
real_data = np.transpose(20*np.log10(s + 10**-6)).astype(np.float32)
if imag:
imag_data = np.angle(stft_data).astype(np.float32)
return real_data,imag_data
return real_data 

Example 18

def complex2rgbalin(s):
"""
Displays complex image with intensity corresponding to the MODULUS and color (hsv) correponging to PHASE.
From: pyVincent/ptycho.py
"""
ph=np.angle(s)
t=np.pi/3
nx,ny=s.shape
rgba=np.zeros((nx,ny,4))
rgba[:,:,0]=(ph<t)*(ph>-t) + (ph>t)*(ph<2*t)*(2*t-ph)/t + (ph>-2*t)*(ph<-t)*(ph+2*t)/t
rgba[:,:,1]=(ph>t)         + (ph<-2*t)      *(-2*t-ph)/t+ (ph>0)*(ph<t)    *ph/t
rgba[:,:,2]=(ph<-t)        + (ph>-t)*(ph<0) *(-ph)/t + (ph>2*t)         *(ph-2*t)/t
a=np.abs(s)
a/=a.max()
rgba[:,:,3]=a
return rgba 

Example 19

def autocorr(trace):
"""This function takes an obspy trace object and performs a phase autocorrelation
of the trace with itself. First, the hilbert transform is taken to obtain the
analytic signal and hence the instantaneous phase. This is then passed to a
fortran script where phase correlation is performed after Schimmel et al., 2011.

This function relies on the shared object file phasecorr.so, which is the file
containing the fortran subroutine for phase correlation.
"""

import numpy as np

from scipy.signal import hilbert
from phasecorr import phasecorr
# Hilbert transform to obtain the analytic signal
htrans = hilbert(trace)
# Perform phase autocorrelation with instantaneous phase
pac = phasecorr(np.angle(htrans),np.angle(htrans),len(htrans))

return pac 

Example 20

def __init__(self, gain):
self.gain = gain * np.pi  # pi term puts angle output to pi range

# components
self.conjugate = Conjugate()
self.complex_mult = ComplexMultiply()
self.angle = Angle()
self.out = Sfix()

# specify component delay
self._delay = self.conjugate._delay + \
self.complex_mult._delay + \
self.angle._delay + 1

# constants
self.gain_sfix = Const(Sfix(self.gain, 3, -14)) 

Example 21

def NMF(stft, n_sources):
"""
Sound source separation using NMF
:param stft: the short-time Fourier Transform of the signal
:param n_sources: the number of sources
:returns:
- Ys: sources
"""
print "Computing approximations"
W, H = librosa.decompose.decompose(np.abs(stft), n_components=n_sources, sort=True)
print "Reconstructing signals"
Ys = list(scipy.outer(W[:,i], H[i])*np.exp(1j*np.angle(stft)) for i in xrange(n_sources))
print "Saving sound arrays"
ys = [librosa.istft(Y) for Y in Ys]
del Ys
return ys 

Example 22

def undo_melspect(spect, sample_rate=SAMPLE_RATE, fps=FPS, frame_len=FRAME_LEN, min_freq=MIN_FREQ, max_freq=MAX_FREQ, invert_melbank_method='transpose', phases='random', normalize=False):
"""
Resynthesizes a mel spectrogram into a numpy array of samples.
"""
# undo logarithmic scaling
spect = undo_logarithmize(spect)
# undo Mel filterbank
spect = undo_melfilter(spect, sample_rate, frame_len, min_freq, max_freq, invert_melbank_method)
# randomize or reuse phases
if phases == 'random':
spect = spect * np.exp(np.pi*2.j*np.random.random(spect.shape))
elif phases is not None:
spect = spect * np.exp(1.j * np.angle(phases))
# undo STFT
hop_size = sample_rate / fps
samples = undo_stft(spect, hop_size, frame_len)
# normalize if needed
if normalize:
samples -= samples.mean()
samples /= np.abs(samples).max()
return samples.astype(np.float32) 

Example 23

def __new__(cls, realpart, imagpart=None):
"""Create a new EMArray."""

# Create complex obj
if np.any(imagpart):
obj = np.real(realpart) + 1j*np.real(imagpart)
else:
obj = np.asarray(realpart, dtype=complex)

# Ensure its at least a 1D-Array, view cls
obj = np.atleast_1d(obj).view(cls)

# Store amplitude
obj.amp = np.abs(obj)

# Calculate phase, unwrap it, transform to degrees

return obj

# 2. Input parameter checks for modelling

# 2.a <Check>s (alphabetically) 

Example 24

def ph_dec(m_phs, m_phc, mode='angle'):

if mode == 'sign':
m_bs = np.arcsin(m_phs)
m_bc = np.arccos(m_phc)
m_ph = np.sign(m_bs) * np.abs(m_bc)

elif mode == 'angle':
m_ph = np.angle(m_phc + m_phs * 1j)

return m_ph

#==============================================================================
# From 'analysis_with_del_comp_and_ph_encoding_from_files'
# f0_type: 'f0', 'lf0' 

Example 25

def phase_string(sig):
"""Take the angle and create a string as \pi if close to some \pi values"""
if isinstance(sig, np.ndarray):
sig = sig.ravel()[0]
if isinstance(sig, np.complex):
angle = np.angle(sig)
else:
angle = sig

fractions = [Fraction(i, 12) for i in np.arange(-12, 12 + 1)]
pi_multiples = np.array([np.pi * frac_to_float(f) for f in fractions])
strings = [frac_to_str(f) for f in fractions]

if np.min(np.abs(angle - pi_multiples)) < 1e-3:
return strings[np.argmin(np.abs(angle - pi_multiples))]
else:
return '%.2f' % angle 

Example 26

def cimshow(f_impulse):
plt.figure(figsize=(7,5))
plt.subplot(2,2,1)
plt.imshow(np.real(f_impulse))
plt.colorbar()
plt.title('Re{}')

plt.subplot(2,2,2)
plt.imshow(np.imag(f_impulse))
plt.colorbar()
plt.title('Img{}')

plt.subplot(2,2,2+1)
plt.imshow(np.abs(f_impulse))
plt.colorbar()
plt.title('Magnitude')

plt.subplot(2,2,2+2)
plt.imshow(np.angle(f_impulse))
plt.colorbar()
plt.title('Phase') 

Example 27

def cimshow(f_impulse):
plt.figure(figsize=(7,5))
plt.subplot(2,2,1)
plt.imshow(np.real(f_impulse))
plt.colorbar()
plt.title('Re{}')

plt.subplot(2,2,2)
plt.imshow(np.imag(f_impulse))
plt.colorbar()
plt.title('Img{}')

plt.subplot(2,2,2+1)
plt.imshow(np.abs(f_impulse))
plt.colorbar()
plt.title('Magnitude')

plt.subplot(2,2,2+2)
plt.imshow(np.angle(f_impulse))
plt.colorbar()
plt.title('Phase') 

Example 28

def cimshow(f_impulse):
plt.figure(figsize=(7,5))
plt.subplot(2,2,1)
plt.imshow(np.real(f_impulse))
plt.colorbar()
plt.title('Re{}')

plt.subplot(2,2,2)
plt.imshow(np.imag(f_impulse))
plt.colorbar()
plt.title('Img{}')

plt.subplot(2,2,2+1)
plt.imshow(np.abs(f_impulse))
plt.colorbar()
plt.title('Magnitude')

plt.subplot(2,2,2+2)
plt.imshow(np.angle(f_impulse))
plt.colorbar()
plt.title('Phase') 

Example 29

def update_recon_py(Recon1, support):
err1 = 1.0
Constraint = np.ones(Recon1.shape)
# cdef int R1y, R1x
Recon1_abs = np.abs(Recon1)
Recon1_pwr2 = np.power(Recon1_abs, 2)
R1y, R1x = Recon1.shape

for p in range(R1y):
for q in range(R1x):
if support[p, q] == 1:
Constraint[p, q] = Recon1_abs[p, q]
err1 += Recon1_pwr2[p, q]
if Recon1_abs[p, q] > 1:
Constraint[p, q] = 1

Recon1_update = Constraint * np.exp(1j * np.angle(Recon1))

return Recon1_update, err1 

Example 30

def imshow_GfpGbp(Gfp, Gbp):
plt.subplot(2, 2, 1)
plt.imshow(np.abs(Gfp), cmap='Greys_r')
plt.title('abs(Gfp)')

plt.subplot(2, 2, 2)
plt.imshow(np.angle(Gfp), cmap='Greys_r')
plt.title('angle(Gfp)')

plt.subplot(2, 2, 1 + 2)
plt.imshow(np.abs(Gbp), cmap='Greys_r')
plt.title('abs(Gbp)')

plt.subplot(2, 2, 2 + 2)
plt.imshow(np.angle(Gbp), cmap='Greys_r')
plt.title('angle(Gbp)') 

Example 31

def imshow_h(self):
Gbp, Gfp = self.Gbp, self.Gfp

plt.figure(figsize=[10, 10])
plt.subplot(2, 2, 1)
plt.imshow(np.abs(Gbp), cmap='Greys_r', interpolation='none')
plt.title('Gbp - Maganitute')

plt.subplot(2, 2, 2)
plt.imshow(np.angle(Gbp), cmap='Greys_r', interpolation='none')
plt.title('Gbp - Angle')

plt.subplot(2, 2, 2 + 1)
plt.imshow(np.abs(Gfp), cmap='Greys_r', interpolation='none')
plt.title('Gbf - Maganitute')

plt.subplot(2, 2, 2 + 2)
plt.imshow(np.angle(Gfp), cmap='Greys_r', interpolation='none')
plt.title('Gbf - Angle') 

Example 32

def run_complex(self, Original):
"""
diffract original image and recon.
ALso, the results will be shown
"""
Input = self.diffract_full(Original)
Recon = self.reconstruct(Input)

figure(figsize=(3 * 3 + 2, 3))
subplot(1, 4, 1)
imshow(Original, 'Greys_r')
title('Original')
subplot(1, 4, 2)
imshow(np.abs(Input), 'Greys_r')
title('|Diffraction|')
subplot(1, 4, 3)
imshow(np.angle(Input), 'Greys_r')
title('Angle(Diffraction)')
subplot(1, 4, 4)
imshow(np.abs(Recon), 'Greys_r')
title('Modulus: |Recon|') 

Example 33

def fourierExtrapolation(x, n_predict):
n = len(x)
n_harm = 10                     # number of harmonics in model
t = np.arange(0, n)
p = np.polyfit(t, x, 1)         # find linear trend in x
x_notrend = x - p[0] * t        # detrended x
x_freqdom = fft.fft(x_notrend)  # detrended x in frequency domain
f = fft.fftfreq(n)              # frequencies
indexes = list(range(n))
# sort indexes by frequency, lower -> higher
indexes.sort(key = lambda i: np.absolute(f[i]))

t = np.arange(0, n + n_predict)
restored_sig = np.zeros(t.size)
for i in indexes[:1 + n_harm * 2]:
ampli = np.absolute(x_freqdom[i]) / n   # amplitude
phase = np.angle(x_freqdom[i])          # phase
restored_sig += ampli * np.cos(2 * np.pi * f[i] * t + phase)
return restored_sig + p[0] * t 

Example 34

def fourierExtrapolation(x, n_predict):
n = len(x)
n_harm = 10                     # number of harmonics in model
t = np.arange(0, n)
p = np.polyfit(t, x, 1)         # find linear trend in x
x_notrend = x - p[0] * t        # detrended x
x_freqdom = fft.fft(x_notrend)  # detrended x in frequency domain
f = fft.fftfreq(n)              # frequencies
indexes = list(range(n))
# sort indexes by frequency, lower -> higher
indexes.sort(key = lambda i: np.absolute(f[i]))

t = np.arange(0, n + n_predict)
restored_sig = np.zeros(t.size)
for i in indexes[:1 + n_harm * 2]:
ampli = np.absolute(x_freqdom[i]) / n   # amplitude
phase = np.angle(x_freqdom[i])          # phase
restored_sig += ampli * np.cos(2 * np.pi * f[i] * t + phase)
return restored_sig + p[0] * t 

Example 35

def fourierExtrapolation(x, n_predict):
n = len(x)
n_harm = 10                     # number of harmonics in model
t = np.arange(0, n)
p = np.polyfit(t, x, 1)         # find linear trend in x
x_notrend = x - p[0] * t        # detrended x
x_freqdom = fft.fft(x_notrend)  # detrended x in frequency domain
f = fft.fftfreq(n)              # frequencies
indexes = list(range(n))
# sort indexes by frequency, lower -> higher
indexes.sort(key = lambda i: np.absolute(f[i]))

t = np.arange(0, n + n_predict)
restored_sig = np.zeros(t.size)
for i in indexes[:1 + n_harm * 2]:
ampli = np.absolute(x_freqdom[i]) / n   # amplitude
phase = np.angle(x_freqdom[i])          # phase
restored_sig += ampli * np.cos(2 * np.pi * f[i] * t + phase)
return restored_sig + p[0] * t 

Example 36

def griffinlim(spectrogram, n_iter=50, window='hann', n_fft=2048, win_length=2048, hop_length=-1, verbose=False):
if hop_length == -1:
hop_length = n_fft // 4

angles = np.exp(2j * np.pi * np.random.rand(*spectrogram.shape))

t = tqdm(range(n_iter), ncols=100, mininterval=2.0, disable=not verbose)
for i in t:
full = np.abs(spectrogram).astype(np.complex) * angles
inverse = librosa.istft(full, hop_length = hop_length, win_length = win_length, window = window)
rebuilt = librosa.stft(inverse, n_fft = n_fft, hop_length = hop_length, win_length = win_length, window = window)
angles = np.exp(1j * np.angle(rebuilt))

if verbose:
diff = np.abs(spectrogram) - np.abs(rebuilt)
t.set_postfix(loss=np.linalg.norm(diff, 'fro'))

full = np.abs(spectrogram).astype(np.complex) * angles
inverse = librosa.istft(full, hop_length = hop_length, win_length = win_length, window = window)

return inverse 

Example 37

def fourierEx(x, n_predict, harmonics):

n = len(x)                  # number of input samples
n_harmonics = harmonics            # f, 2*f, 3*f, .... n_harmonics  ( 1,2, )
t = np.arange(0, n)         # place to store data
p = np.polyfit(t, x, 1)     # find trend
x_no_trend = x - p[0] * t
x_frequency_domains = fft.fft(x_no_trend)
f = np.fft.fftfreq(n)       # frequencies
indexes = list(range(n))
indexes.sort(key=lambda i: np.absolute(f[i]))

t = np.arange(0, n + n_predict)
restored_signal = np.zeros(t.size)
for i in indexes[:1 + n_harmonics * 2]:
amplitude = np.absolute(x_frequency_domains[i] / n)
phase = np.angle(x_frequency_domains[i])
restored_signal += amplitude * np.cos(2 * np.pi * f[i] * t + phase)

return restored_signal + p[0] * t 

Example 38

def processData(self, data):
times = data.xvals('Time')
dt = times[1]-times[0]

data1 = data.asarray()
ft = np.fft.fft(data1)

## determine frequencies in fft data
df = 1.0 / (len(data1) * dt)
freqs = np.linspace(0.0, (len(ft)-1) * df, len(ft))

## flatten spikes at f0 and harmonics
f0 = self.ctrls['f0'].value()
for i in xrange(1, self.ctrls['harmonics'].value()+2):
f = f0 * i # target frequency

## determine index range to check for this frequency
ind1 = int(np.floor(f / df))
ind2 = int(np.ceil(f / df)) + (self.ctrls['samples'].value()-1)
if ind1 > len(ft)/2.:
break
mag = (abs(ft[ind1-1]) + abs(ft[ind2+1])) * 0.5
for j in range(ind1, ind2+1):
phase = np.angle(ft[j])   ## Must preserve the phase of each point, otherwise any transients in the trace might lead to large artifacts.
re = mag * np.cos(phase)
im = mag * np.sin(phase)
ft[j] = re + im*1j
ft[len(ft)-j] = re - im*1j

data2 = np.fft.ifft(ft).real

ma = metaarray.MetaArray(data2, info=data.infoCopy())
return ma 

Example 39

def removePeriodic(data, f0=60.0, dt=None, harmonics=10, samples=4):
if (hasattr(data, 'implements') and data.implements('MetaArray')):
data1 = data.asarray()
if dt is None:
times = data.xvals('Time')
dt = times[1]-times[0]
else:
data1 = data
if dt is None:
raise Exception('Must specify dt for this data')

ft = np.fft.fft(data1)

## determine frequencies in fft data
df = 1.0 / (len(data1) * dt)
freqs = np.linspace(0.0, (len(ft)-1) * df, len(ft))

## flatten spikes at f0 and harmonics
for i in xrange(1, harmonics + 2):
f = f0 * i # target frequency

## determine index range to check for this frequency
ind1 = int(np.floor(f / df))
ind2 = int(np.ceil(f / df)) + (samples-1)
if ind1 > len(ft)/2.:
break
mag = (abs(ft[ind1-1]) + abs(ft[ind2+1])) * 0.5
for j in range(ind1, ind2+1):
phase = np.angle(ft[j])   ## Must preserve the phase of each point, otherwise any transients in the trace might lead to large artifacts.
re = mag * np.cos(phase)
im = mag * np.sin(phase)
ft[j] = re + im*1j
ft[len(ft)-j] = re - im*1j

data2 = np.fft.ifft(ft).real

if (hasattr(data, 'implements') and data.implements('MetaArray')):
return metaarray.MetaArray(data2, info=data.infoCopy())
else:
return data2 

Example 40

def processData(self, data):
times = data.xvals('Time')
dt = times[1]-times[0]

data1 = data.asarray()
ft = np.fft.fft(data1)

## determine frequencies in fft data
df = 1.0 / (len(data1) * dt)
freqs = np.linspace(0.0, (len(ft)-1) * df, len(ft))

## flatten spikes at f0 and harmonics
f0 = self.ctrls['f0'].value()
for i in xrange(1, self.ctrls['harmonics'].value()+2):
f = f0 * i # target frequency

## determine index range to check for this frequency
ind1 = int(np.floor(f / df))
ind2 = int(np.ceil(f / df)) + (self.ctrls['samples'].value()-1)
if ind1 > len(ft)/2.:
break
mag = (abs(ft[ind1-1]) + abs(ft[ind2+1])) * 0.5
for j in range(ind1, ind2+1):
phase = np.angle(ft[j])   ## Must preserve the phase of each point, otherwise any transients in the trace might lead to large artifacts.
re = mag * np.cos(phase)
im = mag * np.sin(phase)
ft[j] = re + im*1j
ft[len(ft)-j] = re - im*1j

data2 = np.fft.ifft(ft).real

ma = metaarray.MetaArray(data2, info=data.infoCopy())
return ma 

Example 41

def removePeriodic(data, f0=60.0, dt=None, harmonics=10, samples=4):
if (hasattr(data, 'implements') and data.implements('MetaArray')):
data1 = data.asarray()
if dt is None:
times = data.xvals('Time')
dt = times[1]-times[0]
else:
data1 = data
if dt is None:
raise Exception('Must specify dt for this data')

ft = np.fft.fft(data1)

## determine frequencies in fft data
df = 1.0 / (len(data1) * dt)
freqs = np.linspace(0.0, (len(ft)-1) * df, len(ft))

## flatten spikes at f0 and harmonics
for i in xrange(1, harmonics + 2):
f = f0 * i # target frequency

## determine index range to check for this frequency
ind1 = int(np.floor(f / df))
ind2 = int(np.ceil(f / df)) + (samples-1)
if ind1 > len(ft)/2.:
break
mag = (abs(ft[ind1-1]) + abs(ft[ind2+1])) * 0.5
for j in range(ind1, ind2+1):
phase = np.angle(ft[j])   ## Must preserve the phase of each point, otherwise any transients in the trace might lead to large artifacts.
re = mag * np.cos(phase)
im = mag * np.sin(phase)
ft[j] = re + im*1j
ft[len(ft)-j] = re - im*1j

data2 = np.fft.ifft(ft).real

if (hasattr(data, 'implements') and data.implements('MetaArray')):
return metaarray.MetaArray(data2, info=data.infoCopy())
else:
return data2 

Example 42

def getMag(_fft):
_mag = abs(_fft);
norm_mag = _mag/_mag.max();
#angle = angle/angle.max();
return norm_mag; 

Example 43

def resample_2d_complex(array, sample_pts, query_pts):
''' Resamples a 2D complex array by interpolating the magnitude and phase
independently and merging the results into a complex value.

Args:
array (numpy.ndarray): complex 2D array.

sample_pts (tuple): pair of numpy.ndarray objects that contain the x and y sample locations,
each array should be 1D.

query_pts (tuple): points to interpolate onto, also 1D for each array.

Returns:
numpy.ndarray array resampled onto query_pts via bivariate spline

'''
xq, yq = np.meshgrid(*query_pts)
mag = abs(array)
phase = np.angle(array)

magfunc = interpolate.RegularGridInterpolator(sample_pts, mag)
phasefunc = interpolate.RegularGridInterpolator(sample_pts, phase)

interp_mag = magfunc((yq, xq))
interp_phase = phasefunc((yq, xq))

return interp_mag * exp(1j * interp_phase) 

Example 44

def phase(self):
"""
Return the phase spectrum.
"""
return np.angle(self) 

Example 45

def phase(z):
val = np.angle(z)
return val 

Example 46

def DFT(x, w, N):
""" Discrete Fourier Transformation(Analysis) of a given real input signal
via an FFT implementation from scipy. Single channel is being supported.
Args:
x       : (array) Real time domain input signal
w       : (array) Desired windowing function
N       : (int)   FFT size
Returns:
magX    : (2D ndarray) Magnitude Spectrum
phsX    : (2D ndarray) Phase Spectrum
"""

# Half spectrum size containing DC component
hlfN = (N/2)+1

# Half window size. Two parameters to perform zero-phase windowing technique
hw1 = int(math.floor((w.size+1)/2))
hw2 = int(math.floor(w.size/2))

# Window the input signal
winx = x*w

# Initialize FFT buffer with zeros and perform zero-phase windowing
fftbuffer = np.zeros(N)
fftbuffer[:hw1] = winx[hw2:]
fftbuffer[-hw2:] = winx[:hw2]

# Compute DFT via scipy's FFT implementation
X = fft(fftbuffer)

# Acquire magnitude and phase spectrum
magX = (np.abs(X[:hlfN]))
phsX = (np.angle(X[:hlfN]))

return magX, phsX 

Example 47

def test_simple(self):
x = np.array([1+0j, 1+2j])
y_r = np.log(np.abs(x)) + 1j * np.angle(x)
y = np.log(x)
for i in range(len(x)):
assert_almost_equal(y[i], y_r[i]) 

Example 48

def test_basic_ufuncs(self):
# Test various functions such as sin, cos.
(x, y, a10, m1, m2, xm, ym, z, zm, xf) = self.d
assert_equal(np.cos(x), cos(xm))
assert_equal(np.cosh(x), cosh(xm))
assert_equal(np.sin(x), sin(xm))
assert_equal(np.sinh(x), sinh(xm))
assert_equal(np.tan(x), tan(xm))
assert_equal(np.tanh(x), tanh(xm))
assert_equal(np.sqrt(abs(x)), sqrt(xm))
assert_equal(np.log(abs(x)), log(xm))
assert_equal(np.log10(abs(x)), log10(xm))
assert_equal(np.exp(x), exp(xm))
assert_equal(np.arcsin(z), arcsin(zm))
assert_equal(np.arccos(z), arccos(zm))
assert_equal(np.arctan(z), arctan(zm))
assert_equal(np.arctan2(x, y), arctan2(xm, ym))
assert_equal(np.absolute(x), absolute(xm))
assert_equal(np.angle(x + 1j*y), angle(xm + 1j*ym))
assert_equal(np.angle(x + 1j*y, deg=True), angle(xm + 1j*ym, deg=True))
assert_equal(np.equal(x, y), equal(xm, ym))
assert_equal(np.not_equal(x, y), not_equal(xm, ym))
assert_equal(np.less(x, y), less(xm, ym))
assert_equal(np.greater(x, y), greater(xm, ym))
assert_equal(np.less_equal(x, y), less_equal(xm, ym))
assert_equal(np.greater_equal(x, y), greater_equal(xm, ym))
assert_equal(np.conjugate(x), conjugate(xm)) 

Example 49

def synthesis_speech(noisy_speech, ideal_mask, win_type, win_len, shift_len, syn_method='A&R'):
samples = noisy_speech.shape[0]
frames = (samples - win_len) // shift_len

if win_type == 'hanning':
window = np.hanning(win_len)
elif win_type == 'hamming':
window = np.hamming(win_len)
elif win_type == 'rectangle':
window = np.ones(win_len)
to_ifft = np.zeros(win_len, dtype=np.complex64)
clean_speech = np.zeros((frames-1)*shift_len+win_len, dtype=np.float32)
window_sum = np.zeros((frames-1)*shift_len+win_len, dtype=np.float32)
for i in range(frames):
one_frame = noisy_speech[i * shift_len: i * shift_len + win_len]
windowed_frame = np.multiply(one_frame, window)
stft = np.fft.fft(windowed_frame, win_len)
to_ifft[:win_len//2+1] = masked_abs * np.exp(1j * np.angle(stft[:win_len//2+1]))
to_ifft[win_len//2+1:] = np.conj(to_ifft[win_len//2-1:0:-1])
speech_seg = np.real(np.fft.ifft(to_ifft, win_len))

if syn_method == 'A&R' or syn_method == 'ALLEN & RABINER':
clean_speech[i*shift_len:i*shift_len+win_len] += speech_seg
window_sum[i*shift_len:i*shift_len+win_len] += window

elif syn_method == 'G&L' or syn_method == 'GRIFFIN & LIM':
speech_seg = np.multiply(speech_seg, window)
clean_speech[i * shift_len:i * shift_len + win_len] += speech_seg
window_sum[i * shift_len:i * shift_len + win_len] += np.power(window, 2.)
# if i > 0:
#     clean_speech[i*shift_len: (i-1)*shift_len+win_len] *= 0.5
window_sum = np.where(window_sum < 1e-2, 1e-2, window_sum)
return clean_speech / window_sum 

Example 50

def synthesis_speech(ns, mk, win_type, win_len, shift_len, syn_method='A&R'):
samples = ns.shape[0]
frames = (samples - win_len) // shift_len

if win_type == 'hanning':
window = np.hanning(win_len)
elif win_type == 'hamming':
window = np.hamming(win_len)
elif win_type == 'rectangle':
window = np.ones(win_len)
to_ifft = np.zeros(win_len, dtype=np.complex64)
clean_speech = np.zeros((frames-1)*shift_len+win_len, dtype=np.float32)
window_sum = np.zeros((frames-1)*shift_len+win_len, dtype=np.float32)
for i in range(frames):
one_frame = ns[i * shift_len: i * shift_len + win_len]
windowed_frame = np.multiply(one_frame, window)
stft = np.fft.fft(windowed_frame, win_len)
masked_abs = np.abs(stft[:win_len//2+1]) * mk[:, i]
to_ifft[:win_len//2+1] = masked_abs * np.exp(1j * np.angle(stft[:win_len//2+1]))
to_ifft[win_len//2+1:] = np.conj(to_ifft[win_len//2-1:0:-1])
speech_seg = np.real(np.fft.ifft(to_ifft, 320))

if syn_method == 'A&R' or syn_method == 'ALLEN & RABINER':
clean_speech[i*shift_len:i*shift_len+win_len] += speech_seg
window_sum[i*shift_len:i*shift_len+win_len] += window

elif syn_method == 'G&L' or syn_method == 'GRIFFIN & LIM':
speech_seg = np.multiply(speech_seg, window)
clean_speech[i * shift_len:i * shift_len + win_len] += speech_seg
window_sum[i * shift_len:i * shift_len + win_len] += np.power(window, 2.)
# if i > 0:
#     clean_speech[i*shift_len: (i-1)*shift_len+win_len] *= 0.5
window_sum = np.where(window_sum < 1e-2, 1e-2, window_sum)
return clean_speech / window_sum