numpy教程:快速傅里叶变换模块numpy.fft
生活随笔
收集整理的這篇文章主要介紹了
numpy教程:快速傅里叶变换模块numpy.fft
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
http://blog.csdn.net/pipisorry/article/details/51050297
快速傅里葉變換
NumPy中,fft模塊提供了快速傅里葉變換的功能。在這個(gè)模塊中,許多函數(shù)都是成對(duì)存在的,也就是說許多函數(shù)存在對(duì)應(yīng)的逆操作函數(shù)。例如,fft和ifft函數(shù)就是其中的一對(duì)。import numpy as np
from matplotlib.pyplot import plot, show
x = np.linspace(0, 2 * np.pi, 30) #創(chuàng)建一個(gè)包含30個(gè)點(diǎn)的余弦波信號(hào)
wave = np.cos(x)
transformed = np.fft.fft(wave) ?#使用fft函數(shù)對(duì)余弦波信號(hào)進(jìn)行傅里葉變換。
print np.all(np.abs(np.fft.ifft(transformed) - wave) < 10 ** -9) ?#對(duì)變換后的結(jié)果應(yīng)用ifft函數(shù),應(yīng)該可以近似地還原初始信號(hào)。
plot(transformed) ?#使用Matplotlib繪制變換后的信號(hào)。
show()
移頻
numpy.fft模塊中的fftshift函數(shù)可以將FFT輸出中的直流分量移動(dòng)到頻譜的中央。ifftshift函數(shù)則是其逆操作。import numpy as np
from matplotlib.pyplot import plot, show
x = np.linspace(0, 2 * np.pi, 30)?
wave = np.cos(x) ?#創(chuàng)建一個(gè)包含30個(gè)點(diǎn)的余弦波信號(hào)。
transformed = np.fft.fft(wave) ?#使用fft函數(shù)對(duì)余弦波信號(hào)進(jìn)行傅里葉變換。
shifted = np.fft.fftshift(transformed) #使用fftshift函數(shù)進(jìn)行移頻操作。
print np.all((np.fft.ifftshift(shifted) - transformed) < 10 ** -9) ?#用ifftshift函數(shù)進(jìn)行逆操作,這將還原移頻操作前的信號(hào)。
plot(transformed, lw=2)
plot(shifted, lw=3)
show() ? ?#使用Matplotlib分別繪制變換和移頻處理后的信號(hào)。
from:?http://blog.csdn.net/pipisorry/article/details/51050297
ref:?
總結(jié)
以上是生活随笔為你收集整理的numpy教程:快速傅里叶变换模块numpy.fft的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python列表函数方法
- 下一篇: 教你如何找到导致程序跑飞的指令