📅  最后修改于: 2023-12-03 14:46:37.032000             🧑  作者: Mango
在信号处理和数字滤波中,离散傅里叶变换(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模块中的一个常用函数,用于生成给定长度的离散傅里叶变换频率,方便了信号处理和数字滤波的分析和处理。