📜  Python中的 scipy.fftfreq()(1)

📅  最后修改于: 2023-12-03 14:46:37.032000             🧑  作者: Mango

Python中的 scipy.fftfreq()

在信号处理和数字滤波中,离散傅里叶变换(DFT)是常用的一种变换方法。离散傅里叶变换可以将时域信号转化为频域信号,方便了对信号的分析和处理。而scipy.fftfreq()函数的作用就是计算给定信号的离散傅里叶变换频率。

函数定义
scipy.fftpack.fftfreq(n, d=1.0)
参数说明
  • n:int   要生成频率的个数。如果信号长度为n,则默认生成n个频率,其值为:0, 1, 2, ..., n-1。
  • d:float   采样周期(单位为s)。默认为1.0。
返回值

返回值是长度为n的numpy数组,数组中每个元素对应傅里叶变换的频率值。

代码示例

以下代码展示如何使用scipy.fftfreq()函数计算给定长度的离散傅里叶变换频率:

import numpy as np
from scipy.fftpack import fftfreq

# 生成长度为8的信号,默认采样周期为1s
n = 8
signal = np.arange(n)
freqs = fftfreq(n)
print('默认采样周期1s,8个频率值:', freqs)

# 生成长度为10的信号,采样周期为0.1s
n = 10
d = 0.1
signal = np.arange(n)
freqs = fftfreq(n, d)
print(f'采样周期为{d}s,10个频率值:', freqs)

输出结果:

默认采样周期1s,8个频率值: [ 0.  1.  2.  3. -4. -3. -2. -1.]
采样周期为0.1s,10个频率值: [0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
总结

scipy.fftfreq()函数是scipy.fftpack模块中的一个常用函数,用于生成给定长度的离散傅里叶变换频率,方便了信号处理和数字滤波的分析和处理。