SciPy - FFTpack
-
简述
Fourier Transformation在时域信号上计算以检查其在频域中的行为。傅里叶变换在信号和噪声处理、图像处理、音频信号处理等学科中都有应用。SciPy 提供了 fftpack 模块,让用户可以计算快速傅里叶变换。以下是正弦函数的示例,将使用 fftpack 模块计算傅里叶变换。 -
快速傅里叶变换
让我们详细了解一下什么是快速傅里叶变换。一维离散傅里叶变换
长度为N的序列x[n]的长度为N的FFT y[k]由fft()计算,逆变换由ifft()计算。让我们考虑以下示例上述程序将生成以下输出。让我们看另一个例子上述程序将生成以下输出。这scipy.fftpack模块允许计算快速傅里叶变换。例如,(嘈杂的)输入信号可能如下所示 -我们正在创建一个时间步长为 0.02 秒的信号。最后一条语句打印信号 sig 的大小。输出如下 -我们不知道信号频率;我们只知道信号sig的采样时间步长。信号应该来自一个实函数,所以傅里叶变换是对称的。这scipy.fftpack.fftfreq()函数将生成采样频率和scipy.fftpack.fft()将计算快速傅里叶变换。让我们借助一个例子来理解这一点。上述程序将生成以下输出。 -
离散余弦变换
一种Discrete Cosine Transform (DCT)用以不同频率振荡的余弦函数之和来表示有限的数据点序列. SciPy 提供了一个具有函数的 DCTdct和一个对应的 IDCT 函数idct. 让我们考虑下面的例子。上述程序将生成以下输出。逆离散余弦变换从其离散余弦变换 (DCT) 系数重构序列。idct 函数是 dct 函数的逆函数。让我们通过以下示例来理解这一点。上述程序将生成以下输出。