python中的傅里叶变换&离散余弦变换
python中的傅里叶变换
- 傅里叶变换与傅里叶逆变换
- 离散余弦变换与离散余弦逆变换
傅里叶变换与傅里叶逆变换
我们用一组数来表示:
import numpy as np
from scipy import fftpack
from scipy.fftpack import dct, idct
x2 = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
# 对x2求离散傅里叶变换、离散傅里叶逆变换
y4 = np.fft.fft(x2)
y5 = np.fft.ifft(x2)
print('离散傅里叶变换:\n', y4)
print('离散傅里叶逆变换:\n', y5)
y6 = fftpack.fft(x2)
y7 = abs(y6)
print('离散傅里叶变换(fftpack):\n', y6)
print('取绝对值:\n', y7)
输出结果:
离散傅里叶变换:
[45. +0.j -4.5+12.36364839j -4.5 +5.36289117j -4.5 +2.59807621j
-4.5 +0.79347141j -4.5 -0.79347141j -4.5 -2.59807621j -4.5 -5.36289117j
-4.5-12.36364839j]
离散傅里叶逆变换:
[ 5. +0.j -0.5-1.37373871j -0.5-0.5958768j -0.5-0.28867513j
-0.5-0.08816349j -0.5+0.08816349j -0.5+0.28867513j -0.5+0.5958768j
-0.5+1.37373871j]
离散傅里叶变换(fftpack):
[45. -0.j -4.5+12.36364839j -4.5 +5.36289117j -4.5 +2.59807621j
-4.5 +0.79347141j -4.5 -0.79347141j -4.5 -2.59807621j -4.5 -5.36289117j
-4.5-12.36364839j]
取绝对值:
[45. 13.1571198 7.00075722 5.19615242 4.56941975 4.56941975
5.19615242 7.00075722 13.1571198 ]
离散余弦变换与离散余弦逆变换
# 对x2求离散余弦变换、离散余弦逆变换
y2 = dct(x2)
y3 = idct(y2)
print('离散余弦变换:\n', y2)
print('离散余弦逆变换:\n', y3)
输出结果:
离散余弦变换:
[ 9.00000000e+01 -3.26596103e+01 -4.99600361e-16 -3.46410162e+00
-2.33146835e-15 -1.09536678e+00 4.44089210e-16 -3.87329033e-01
-3.55271368e-15]
离散余弦逆变换:
[ 18. 36. 54. 72. 90. 108. 126. 144. 162.]
还没有评论,来说两句吧...