python中的傅里叶变换&离散余弦变换

妖狐艹你老母 2022-10-08 05:49 323阅读 0赞

python中的傅里叶变换

  • 傅里叶变换与傅里叶逆变换
  • 离散余弦变换与离散余弦逆变换

傅里叶变换与傅里叶逆变换

我们用一组数来表示:

  1. import numpy as np
  2. from scipy import fftpack
  3. from scipy.fftpack import dct, idct
  4. x2 = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
  5. # 对x2求离散傅里叶变换、离散傅里叶逆变换
  6. y4 = np.fft.fft(x2)
  7. y5 = np.fft.ifft(x2)
  8. print('离散傅里叶变换:\n', y4)
  9. print('离散傅里叶逆变换:\n', y5)
  10. y6 = fftpack.fft(x2)
  11. y7 = abs(y6)
  12. print('离散傅里叶变换(fftpack):\n', y6)
  13. print('取绝对值:\n', y7)

输出结果:

  1. 离散傅里叶变换:
  2. [45. +0.j -4.5+12.36364839j -4.5 +5.36289117j -4.5 +2.59807621j
  3. -4.5 +0.79347141j -4.5 -0.79347141j -4.5 -2.59807621j -4.5 -5.36289117j
  4. -4.5-12.36364839j]
  5. 离散傅里叶逆变换:
  6. [ 5. +0.j -0.5-1.37373871j -0.5-0.5958768j -0.5-0.28867513j
  7. -0.5-0.08816349j -0.5+0.08816349j -0.5+0.28867513j -0.5+0.5958768j
  8. -0.5+1.37373871j]
  9. 离散傅里叶变换(fftpack):
  10. [45. -0.j -4.5+12.36364839j -4.5 +5.36289117j -4.5 +2.59807621j
  11. -4.5 +0.79347141j -4.5 -0.79347141j -4.5 -2.59807621j -4.5 -5.36289117j
  12. -4.5-12.36364839j]
  13. 取绝对值:
  14. [45. 13.1571198 7.00075722 5.19615242 4.56941975 4.56941975
  15. 5.19615242 7.00075722 13.1571198 ]

离散余弦变换与离散余弦逆变换

  1. # 对x2求离散余弦变换、离散余弦逆变换
  2. y2 = dct(x2)
  3. y3 = idct(y2)
  4. print('离散余弦变换:\n', y2)
  5. print('离散余弦逆变换:\n', y3)

输出结果:

  1. 离散余弦变换:
  2. [ 9.00000000e+01 -3.26596103e+01 -4.99600361e-16 -3.46410162e+00
  3. -2.33146835e-15 -1.09536678e+00 4.44089210e-16 -3.87329033e-01
  4. -3.55271368e-15]
  5. 离散余弦逆变换:
  6. [ 18. 36. 54. 72. 90. 108. 126. 144. 162.]

发表评论

表情:
评论列表 (有 0 条评论,323人围观)

还没有评论,来说两句吧...

相关阅读