本文整理汇总了Python中numpy.fft.irfft方法的典型用法代码示例。如果您正苦于以下问题:Python fft.irfft方法的具体用法?Python fft.irfft怎么用?Python fft.irfft使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类numpy.fft
的用法示例。
在下文中一共展示了fft.irfft方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: pink
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import irfft [as 别名]
def pink(N):
"""
Pink noise.
:param N: Amount of samples.
Pink noise has equal power in bands that are proportionally wide.
Power density decreases with 3 dB per octave.
"""
# This method uses the filter with the following coefficients.
# b = np.array([0.049922035, -0.095993537, 0.050612699, -0.004408786])
# a = np.array([1, -2.494956002, 2.017265875, -0.522189400])
# return lfilter(B, A, np.random.randn(N))
# Another way would be using the FFT
# x = np.random.randn(N)
# X = rfft(x) / N
uneven = N % 2
X = np.random.randn(N // 2 + 1 + uneven) + 1j * np.random.randn(N // 2 + 1 + uneven)
S = np.sqrt(np.arange(len(X)) + 1.) # +1 to avoid divide by zero
y = (irfft(X / S)).real
if uneven:
y = y[:-1]
return normalize(y)
示例2: mass
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import irfft [as 别名]
def mass(query, ts):
"""
>>> np.round(mass(np.array([0.0, 1.0, -1.0, 0.0]), np.array([-1, 1, 0, 0, -1, 1])), 3)
array([ 2. , 2.828, 2. ])
"""
query = zNormalize(query)
m = len(query)
n = len(ts)
stdv = movstd(ts, m)
query = query[::-1]
query = np.pad(query, (0, n - m), 'constant')
dots = fft.irfft(fft.rfft(ts) * fft.rfft(query))
return np.sqrt(2 * (m - (dots[m - 1 :] / stdv)))
示例3: impedance2wake
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import irfft [as 别名]
def impedance2wake(f, y):
"""
Fourier transform with exp(-iwt)
f - Hz
y - Om
s - Meter
w - V/C
"""
df = f[1] - f[0]
n = len(f)
s = 1./df*np.arange(n)/n*speed_of_light
w = n*df*irfft(y, n)
return s, w
示例4: bench_random
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import irfft [as 别名]
def bench_random(self):
from numpy.fft import irfft as numpy_irfft
print()
print('Inverse Fast Fourier Transform (real data)')
print('==================================')
print(' size | 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()
x = random([size]).astype(double)
x1 = zeros(size/2+1,dtype=cdouble)
x1[0] = x[0]
for i in range(1,size/2):
x1[i] = x[2*i-1] + 1j * x[2*i]
if not size % 2:
x1[-1] = x[-1]
y = irfft(x)
print('|%8.2f' % measure('irfft(x)',repeat), end=' ')
sys.stdout.flush()
assert_array_almost_equal(numpy_irfft(x1,size),y)
print('|%8.2f' % measure('numpy_irfft(x1,size)',repeat), end=' ')
sys.stdout.flush()
print(' (secs for %s calls)' % (repeat))
sys.stdout.flush()
示例5: test_fourier_gaussian_real01
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import irfft [as 别名]
def test_fourier_gaussian_real01(self):
for shape in [(32, 16), (31, 15)]:
for type in [numpy.float32, numpy.float64]:
a = numpy.zeros(shape, type)
a[0, 0] = 1.0
a = fft.rfft(a, shape[0], 0)
a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_gaussian(a, [5.0, 2.5],
shape[0], 0)
a = fft.ifft(a, shape[1], 1)
a = fft.irfft(a, shape[0], 0)
assert_almost_equal(ndimage.sum(a), 1)
示例6: test_fourier_uniform_real01
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import irfft [as 别名]
def test_fourier_uniform_real01(self):
for shape in [(32, 16), (31, 15)]:
for type in [numpy.float32, numpy.float64]:
a = numpy.zeros(shape, type)
a[0, 0] = 1.0
a = fft.rfft(a, shape[0], 0)
a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_uniform(a, [5.0, 2.5],
shape[0], 0)
a = fft.ifft(a, shape[1], 1)
a = fft.irfft(a, shape[0], 0)
assert_almost_equal(ndimage.sum(a), 1.0)
示例7: test_fourier_shift_real01
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import irfft [as 别名]
def test_fourier_shift_real01(self):
for shape in [(32, 16), (31, 15)]:
for dtype in [numpy.float32, numpy.float64]:
expected = numpy.arange(shape[0] * shape[1], dtype=dtype)
expected.shape = shape
a = fft.rfft(expected, shape[0], 0)
a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_shift(a, [1, 1], shape[0], 0)
a = fft.ifft(a, shape[1], 1)
a = fft.irfft(a, shape[0], 0)
assert_array_almost_equal(a[1:, 1:], expected[:-1, :-1])
assert_array_almost_equal(a.imag, numpy.zeros(shape))
示例8: test_fourier_ellipsoid_real01
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import irfft [as 别名]
def test_fourier_ellipsoid_real01(self):
for shape in [(32, 16), (31, 15)]:
for type in [numpy.float32, numpy.float64]:
a = numpy.zeros(shape, type)
a[0, 0] = 1.0
a = fft.rfft(a, shape[0], 0)
a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_ellipsoid(a, [5.0, 2.5],
shape[0], 0)
a = fft.ifft(a, shape[1], 1)
a = fft.irfft(a, shape[0], 0)
assert_almost_equal(ndimage.sum(a), 1.0)
示例9: test_fourier_gaussian_real01
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import irfft [as 别名]
def test_fourier_gaussian_real01(self):
for shape in [(32, 16), (31, 15)]:
for type_, dec in zip([numpy.float32, numpy.float64], [6, 14]):
a = numpy.zeros(shape, type_)
a[0, 0] = 1.0
a = fft.rfft(a, shape[0], 0)
a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_gaussian(a, [5.0, 2.5], shape[0], 0)
a = fft.ifft(a, shape[1], 1)
a = fft.irfft(a, shape[0], 0)
assert_almost_equal(ndimage.sum(a), 1, decimal=dec)
示例10: test_fourier_uniform_real01
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import irfft [as 别名]
def test_fourier_uniform_real01(self):
for shape in [(32, 16), (31, 15)]:
for type_, dec in zip([numpy.float32, numpy.float64], [6, 14]):
a = numpy.zeros(shape, type_)
a[0, 0] = 1.0
a = fft.rfft(a, shape[0], 0)
a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_uniform(a, [5.0, 2.5], shape[0], 0)
a = fft.ifft(a, shape[1], 1)
a = fft.irfft(a, shape[0], 0)
assert_almost_equal(ndimage.sum(a), 1.0, decimal=dec)
示例11: test_fourier_shift_real01
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import irfft [as 别名]
def test_fourier_shift_real01(self):
for shape in [(32, 16), (31, 15)]:
for type_, dec in zip([numpy.float32, numpy.float64], [4, 11]):
expected = numpy.arange(shape[0] * shape[1], dtype=type_)
expected.shape = shape
a = fft.rfft(expected, shape[0], 0)
a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_shift(a, [1, 1], shape[0], 0)
a = fft.ifft(a, shape[1], 1)
a = fft.irfft(a, shape[0], 0)
assert_array_almost_equal(a[1:, 1:], expected[:-1, :-1],
decimal=dec)
assert_array_almost_equal(a.imag, numpy.zeros(shape),
decimal=dec)
示例12: test_fourier_ellipsoid_real01
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import irfft [as 别名]
def test_fourier_ellipsoid_real01(self):
for shape in [(32, 16), (31, 15)]:
for type_, dec in zip([numpy.float32, numpy.float64], [5, 14]):
a = numpy.zeros(shape, type_)
a[0, 0] = 1.0
a = fft.rfft(a, shape[0], 0)
a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_ellipsoid(a, [5.0, 2.5],
shape[0], 0)
a = fft.ifft(a, shape[1], 1)
a = fft.irfft(a, shape[0], 0)
assert_almost_equal(ndimage.sum(a), 1.0, decimal=dec)
示例13: lpc_python
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import irfft [as 别名]
def lpc_python(x, order):
def levinson(R,order):
""" input: autocorrelation and order, output: LPC coefficients """
a = np.zeros(order+2)
a[0] = -1
k = np.zeros(order+1)
# step 1: initialize prediction error "e" to R[0]
e = R[0]
# step 2: iterate over [1:order]
for i in range(1,order+1):
# step 2-1: calculate PARCOR coefficients
k[i]= (R[i] - np.sum(a[1:i] * R[i-1:0:-1])) / e
# step 2-2: update LPCs
a[i] = np.copy(k[i])
a_old = np.copy(a)
for j in range(1,i):
a[j] -= k[i]* a_old[i-j]
# step 2-3: update prediction error "e"
e = e * (1.0 - k[i]**2)
return -1*a[0:order+1], e, -1*k[1:]
# N: compute next power of 2
n = x.shape[0]
N = int(np.power(2, np.ceil(np.log2(2 * n - 1))))
# calculate autocorrelation using FFT
X = rfft(x, N)
r = irfft(abs(X) ** 2)[:order+1]
return levinson(r, order)
示例14: multS
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import irfft [as 别名]
def multS(s, v, L, TP=False):
N = s.shape[0]
vp = prepare_v(v, N, L, TP=TP)
p = irfft(rfft(vp) * rfft(s))
if not TP:
return p[:L]
return p[L - 1:]
示例15: autocorr
# 需要导入模块: from numpy import fft [as 别名]
# 或者: from numpy.fft import irfft [as 别名]
def autocorr(x):
""" Fast autocorrelation computation using the FFT """
X = fft.rfft(x, n=2*x.shape[0])
r = fft.irfft(np.abs(X)**2)
return r[:x.shape[0]] / (x.shape[0] - 1)