本文整理汇总了Python中numpy.fft.fft方法的典型用法代码示例。如果您正苦于以下问题:Python fft.fft方法的具体用法?Python fft.fft怎么用?Python fft.fft使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在模块numpy.fft的用法示例。
在下文中一共展示了fft.fft方法的23个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: _dhtm
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def _dhtm(mag):
"""Compute the modified 1D discrete Hilbert transform
Parameters
----------
mag : ndarray
The magnitude spectrum. Should be 1D with an even length, and
preferably a fast length for FFT/IFFT.
"""
# Adapted based on code by Niranjan Damera-Venkata,
# Brian L. Evans and Shawn R. McCaslin (see refs for `minimum_phase`)
sig = np.zeros(len(mag))
# Leave Nyquist and DC at 0, knowing np.abs(fftfreq(N)[midpt]) == 0.5
midpt = len(mag) // 2
sig[1:midpt] = 1
sig[midpt+1:] = -1
# eventually if we want to support complex filters, we will need a
# np.abs() on the mag inside the log, and should remove the .real
recon = ifft(mag * np.exp(fft(sig * ifft(np.log(mag))))).real
return recon
开发者ID:ryfeus,项目名称:lambda-packs,代码行数:22,
示例2: get_tunes
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def get_tunes(tr_x, tr_y):
v = np.zeros(len(tr_x))
for i in range(len(v)): v[i] = float(tr_x[i])
u = np.zeros(len(tr_y))
for i in range(len(u)): u[i] = float(tr_y[i])
sv = fft.fft(v)
su = fft.fft(u)
sv = np.abs(sv * np.conj(sv))
su = np.abs(su * np.conj(su))
freq = np.fft.fftfreq(len(sv))
return (freq[np.argmax(sv[1:len(sv) / 2 - 1], axis=0)], freq[np.argmax(su[1:len(su) / 2 - 1], axis=0)])
开发者ID:ocelot-collab,项目名称:ocelot,代码行数:18,
示例3: fftar
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def fftar(self, n=None):
'''Fourier transform of AR polynomial, zero-padded at end to n
Parameters
----------
n : int
length of array after zero-padding
Returns
-------
fftar : ndarray
fft of zero-padded ar polynomial
'''
if n is None:
n = len(self.ar)
return fft.fft(self.padarr(self.ar, n))
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:18,
示例4: fftma
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def fftma(self, n):
'''Fourier transform of MA polynomial, zero-padded at end to n
Parameters
----------
n : int
length of array after zero-padding
Returns
-------
fftar : ndarray
fft of zero-padded ar polynomial
'''
if n is None:
n = len(self.ar)
return fft.fft(self.padarr(self.ma, n))
#@OneTimeProperty # not while still debugging things
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:20,
示例5: fftarma
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def fftarma(self, n=None):
'''Fourier transform of ARMA polynomial, zero-padded at end to n
The Fourier transform of the ARMA process is calculated as the ratio
of the fft of the MA polynomial divided by the fft of the AR polynomial.
Parameters
----------
n : int
length of array after zero-padding
Returns
-------
fftarma : ndarray
fft of zero-padded arma polynomial
'''
if n is None:
n = self.nobs
return (self.fftma(n) / self.fftar(n))
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:21,
示例6: filter
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def filter(self, x):
'''
filter a timeseries with the ARMA filter
padding with zero is missing, in example I needed the padding to get
initial conditions identical to direct filter
Initial filtered observations differ from filter2 and signal.lfilter, but
at end they are the same.
See Also
--------
tsa.filters.fftconvolve
'''
n = x.shape[0]
if n == self.fftarma:
fftarma = self.fftarma
else:
fftarma = self.fftma(n) / self.fftar(n)
tmpfft = fftarma * fft.fft(x)
return fft.ifft(tmpfft)
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:24,
示例7: invpowerspd
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def invpowerspd(self, n):
'''autocovariance from spectral density
scaling is correct, but n needs to be large for numerical accuracy
maybe padding with zero in fft would be faster
without slicing it returns 2-sided autocovariance with fftshift
>>> ArmaFft([1, -0.5], [1., 0.4], 40).invpowerspd(2**8)[:10]
array([ 2.08 , 1.44 , 0.72 , 0.36 , 0.18 , 0.09 ,
0.045 , 0.0225 , 0.01125 , 0.005625])
>>> ArmaFft([1, -0.5], [1., 0.4], 40).acovf(10)
array([ 2.08 , 1.44 , 0.72 , 0.36 , 0.18 , 0.09 ,
0.045 , 0.0225 , 0.01125 , 0.005625])
'''
hw = self.fftarma(n)
return np.real_if_close(fft.ifft(hw*hw.conj()), tol=200)[:n]
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:18,
示例8: mode
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def mode(self, on):
if on:
self.changeState=1
self.current=self.pwspec
self.btnMode.setText("scope")
self.btnMode.setIcon(Qt.QIcon(Qt.QPixmap(icons.scope)))
self.btnMode.setChecked(True)
else:
self.changeState=0
self.current=self.scope
self.btnMode.setText("fft")
self.btnMode.setIcon(Qt.QIcon(Qt.QPixmap(icons.pwspec)))
self.btnMode.setChecked(False)
if self.changeState==1:
self.stack.setCurrentIndex(self.changeState)
self.scope.plot.setDatastream(None)
self.pwspec.plot.setDatastream(stream)
else:
self.stack.setCurrentIndex(self.changeState)
self.pwspec.plot.setDatastream(None)
self.scope.plot.setDatastream(stream)
开发者ID:ggventurini,项目名称:dualscope123,代码行数:23,
示例9: to_powerspec
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def to_powerspec(x, sr, win_len, time_step):
nperseg = int(win_len*sr)
nperstep = int(time_step*sr)
nfft = int(2**(ceil(log(nperseg)/log(2))))
window = hanning(nperseg+2)[1:nperseg+1]
indices = arange(int(nperseg/2), x.shape[0] - int(nperseg/2) + 1, nperstep)
num_frames = len(indices)
pspec = zeros((num_frames,int(nfft/2)+1))
for i in range(num_frames):
X = x[indices[i]-int(nperseg/2):indices[i]+int(nperseg/2)]
X = X * window
fx = fft(X, n = nfft)
power = abs(fx[:int(nfft/2)+1])**2
pspec[i,:] = power
return pspec
开发者ID:PhonologicalCorpusTools,项目名称:CorpusTools,代码行数:19,
示例10: cconv
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def cconv(a, b):
"""
Circular convolution of vectors
Computes the circular convolution of two vectors a and b via their
fast fourier transforms
a \ast b = \mathcal{F}^{-1}(\mathcal{F}(a) \odot \mathcal{F}(b))
Parameter
---------
a: real valued array (shape N)
b: real valued array (shape N)
Returns
-------
c: real valued array (shape N), representing the circular
convolution of a and b
"""
return ifft(fft(a) * fft(b)).real
开发者ID:mnick,项目名称:scikit-kge,代码行数:22,
示例11: ccorr
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def ccorr(a, b):
"""
Circular correlation of vectors
Computes the circular correlation of two vectors a and b via their
fast fourier transforms
a \ast b = \mathcal{F}^{-1}(\overline{\mathcal{F}(a)} \odot \mathcal{F}(b))
Parameter
---------
a: real valued array (shape N)
b: real valued array (shape N)
Returns
-------
c: real valued array (shape N), representing the circular
correlation of a and b
"""
return ifft(np.conj(fft(a)) * fft(b)).real
开发者ID:mnick,项目名称:scikit-kge,代码行数:23,
示例12: cconv
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def cconv(a, b):
"""
Circular convolution of vectors
Computes the circular convolution of two vectors a and b via their
fast fourier transforms
a \ast b = \mathcal{F}^{-1}(\mathcal{F}(a) \odot \mathcal{F}(b))
Parameter
---------
a: real valued array (shape N)
b: real valued array (shape N)
Returns
-------
c: real valued array (shape N), representing the circular
convolution of a and b
"""
return ifft(fft(a) * fft(b)).real
开发者ID:malllabiisc,项目名称:cesi,代码行数:22,
示例13: ccorr
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def ccorr(a, b):
"""
Circular correlation of vectors
Computes the circular correlation of two vectors a and b via their
fast fourier transforms
a \ast b = \mathcal{F}^{-1}(\overline{\mathcal{F}(a)} \odot \mathcal{F}(b))
Parameter
---------
a: real valued array (shape N)
b: real valued array (shape N)
Returns
-------
c: real valued array (shape N), representing the circular
correlation of a and b
"""
return ifft(np.conj(fft(a)) * fft(b)).real
开发者ID:malllabiisc,项目名称:cesi,代码行数:23,
示例14: _frft2
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def _frft2(x, alpha):
assert x.ndim == 2, "x must be a 2 dimensional array"
m, n = x.shape
# TODO please remove this confusing comment. Is it 'm' or 'm-1' ?
# TODO If 'p = m', more code cleaning is easy to do.
p = m # m-1 # deveria incrementarse el sigiente pow
y = zeros((2 * p, n), dtype=complex)
z = zeros((2 * p, n), dtype=complex)
j = indices(z.shape)[0]
y[(p - m) // 2 : (p + m) // 2, :] = x * exp(
-1.0j * pi * (j[0:m] ** 2) * float(alpha) / m
)
z[0:m, :] = exp(1.0j * pi * (j[0:m] ** 2) * float(alpha) / m)
z[-m:, :] = exp(1.0j * pi * ((j[-m:] - 2 * p) ** 2) * float(alpha) / m)
d = exp(-1.0j * pi * j ** 2 ** float(alpha) / m) * ifft(
fft(y, axis=0) * fft(z, axis=0), axis=0
)
return d[0:m]
# TODO better docstring
开发者ID:cihologramas,项目名称:pyoptools,代码行数:27,
示例15: _ncc_c
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def _ncc_c(x, y):
"""
>>> _ncc_c([1,2,3,4], [1,2,3,4])
array([ 0.13333333, 0.36666667, 0.66666667, 1. , 0.66666667,
0.36666667, 0.13333333])
>>> _ncc_c([1,1,1], [1,1,1])
array([ 0.33333333, 0.66666667, 1. , 0.66666667, 0.33333333])
>>> _ncc_c([1,2,3], [-1,-1,-1])
array([-0.15430335, -0.46291005, -0.9258201 , -0.77151675, -0.46291005])
"""
den = np.array(norm(x) * norm(y))
den[den == 0] = np.Inf
x_len = len(x)
fft_size = 1 << (2*x_len-1).bit_length()
cc = ifft(fft(x, fft_size) * np.conj(fft(y, fft_size)))
cc = np.concatenate((cc[-(x_len-1):], cc[:x_len]))
return np.real(cc) / den
开发者ID:johnpaparrizos,项目名称:kshape,代码行数:20,
示例16: find_frequencies
点赞 6
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def find_frequencies(data, freq=44100, bits=16):
"""Convert audio data into a frequency-amplitude table using fast fourier
transformation.
Return a list of tuples (frequency, amplitude).
Data should only contain one channel of audio.
"""
# Fast fourier transform
n = len(data)
p = _fft(data)
uniquePts = math.ceil((n + 1) / 2.0)
# Scale by the length (n) and square the value to get the amplitude
p = [(abs(x) / float(n)) ** 2 * 2 for x in p[0:uniquePts]]
p[0] = p[0] / 2
if n % 2 == 0:
p[-1] = p[-1] / 2
# Generate the frequencies and zip with the amplitudes
s = freq / float(n)
freqArray = numpy.arange(0, uniquePts * s, s)
return list(zip(freqArray, p))
开发者ID:bspaans,项目名称:python-mingus,代码行数:25,
示例17: csr_convolution
点赞 5
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def csr_convolution(a, b):
P = len(a)
Q = len(b)
L = P + Q - 1
K = 2 ** nextpow2(L)
a_pad = np.pad(a, (0, K - P), 'constant', constant_values=(0))
b_pad = np.pad(b, (0, K - Q), 'constant', constant_values=(0))
c = ifft(fft(a_pad)*fft(b_pad))
c = c[0:L-1].real
return c
开发者ID:ocelot-collab,项目名称:ocelot,代码行数:12,
示例18: wake2impedance
点赞 5
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def wake2impedance(s, w):
"""
Fourier transform with exp(iwt)
s - Meter
w - V/C
f - Hz
y - Om
"""
ds = s[1] - s[0]
dt = ds/speed_of_light
n = len(s)
shift = 1.
y = dt*fft(w, n)*shift
return y
开发者ID:ocelot-collab,项目名称:ocelot,代码行数:16,
示例19: spd
点赞 5
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def spd(self, npos):
'''raw spectral density, returns Fourier transform
n is number of points in positive spectrum, the actual number of points
is twice as large. different from other spd methods with fft
'''
n = npos
w = fft.fftfreq(2*n) * 2 * np.pi
hw = self.fftarma(2*n) #not sure, need to check normalization
#return (hw*hw.conj()).real[n//2-1:] * 0.5 / np.pi #doesn't show in plot
return (hw*hw.conj()).real * 0.5 / np.pi, w
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:13,
示例20: spdshift
点赞 5
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def spdshift(self, n):
'''power spectral density using fftshift
currently returns two-sided according to fft frequencies, use first half
'''
#size = s1+s2-1
mapadded = self.padarr(self.ma, n)
arpadded = self.padarr(self.ar, n)
hw = fft.fft(fft.fftshift(mapadded)) / fft.fft(fft.fftshift(arpadded))
#return np.abs(spd)[n//2-1:]
w = fft.fftfreq(n) * 2 * np.pi
wslice = slice(n//2-1, None, None)
#return (hw*hw.conj()).real[wslice], w[wslice]
return (hw*hw.conj()).real, w
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:16,
示例21: _spddirect2
点赞 5
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def _spddirect2(self, n):
'''this looks bad, maybe with an fftshift
'''
#size = s1+s2-1
hw = (fft.fft(np.r_[self.ma[::-1],self.ma], n)
/ fft.fft(np.r_[self.ar[::-1],self.ar], n))
return (hw*hw.conj()) #.real[n//2-1:]
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:9,
示例22: bench_random
点赞 5
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def bench_random(self):
from numpy.fft import fft as numpy_fft
print()
print(' Fast Fourier Transform')
print('=================================================')
print(' | real input | complex input ')
print('-------------------------------------------------')
print(' size | scipy | numpy | scipy | numpy ')
print('-------------------------------------------------')
for size,repeat in [(100,7000),(1000,2000),
(256,10000),
(512,10000),
(1024,1000),
(2048,1000),
(2048*2,500),
(2048*4,500),
]:
print('%5s' % size, end=' ')
sys.stdout.flush()
for x in [random([size]).astype(double),
random([size]).astype(cdouble)+random([size]).astype(cdouble)*1j
]:
if size > 500:
y = fft(x)
else:
y = direct_dft(x)
assert_array_almost_equal(fft(x),y)
print('|%8.2f' % measure('fft(x)',repeat), end=' ')
sys.stdout.flush()
assert_array_almost_equal(numpy_fft(x),y)
print('|%8.2f' % measure('numpy_fft(x)',repeat), end=' ')
sys.stdout.flush()
print(' (secs for %s calls)' % (repeat))
sys.stdout.flush()
开发者ID:ktraunmueller,项目名称:Computable,代码行数:39,
示例23: test_djbfft
点赞 5
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import fft [as 别名]
def test_djbfft(self):
from numpy.fft import fft as numpy_fft
for i in range(2,14):
n = 2**i
x = list(range(n))
y2 = numpy_fft(x)
y1 = zeros((n,),dtype=double)
y1[0] = y2[0].real
y1[-1] = y2[n//2].real
for k in range(1, n//2):
y1[2*k-1] = y2[k].real
y1[2*k] = y2[k].imag
y = fftpack.drfft(x)
assert_array_almost_equal(y,y1)
开发者ID:ktraunmueller,项目名称:Computable,代码行数:16,
注:本文中的numpy.fft.fft方法示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。