np.fft.fft快速离散傅里叶变换

np.fft.fft快速离散傅里叶变换

最简单的用法

import numpy as np

a = np.arange(10)
a_fft = np.fft.fft(a)

a_fft
==>array([45.+0.00000000e+00j, -5.+1.53884177e+01j, -5.+6.88190960e+00j,
       -5.+3.63271264e+00j, -5.+1.62459848e+00j, -5.-1.33226763e-15j,
       -5.-1.62459848e+00j, -5.-3.63271264e+00j, -5.-6.88190960e+00j,
       -5.-1.53884177e+01j])

以上例子,输入长度为10的离散数组,返回长度为10的离散数组,且元素均为复数。
第一个元素表示直流分量,第二个元素表示第一个正频率分量。

绘图看看
在这里插入图片描述

如果想知道每个幅值对应的频率具体值,调用np.fft.fftfreq()

freqs = np.fft.fftfreq(10, 1)

# 第一个参数表示数组长度,这里是10
# 第二个参数表示采样频率,这里设为1

freqs
==>array([ 0. ,  0.1,  0.2,  0.3,  0.4, -0.5, -0.4, -0.3, -0.2, -0.1])

绘图看看
在这里插入图片描述

函数原型

def fft(a, n=None, axis=-1, norm=None)

a: 时序离散数组
n: 输出的长度,默认为输入长度。改变此参数,会改变输出的频率间隔。
例如改成,输出改成7

a_fft = np.fft.fft(a, 7)
freqs = np.fft.fftfreq(7, 1)

在这里插入图片描述

axis: 输入数组可以是多维的,默认对最后一个维度进行变换。
norm:标准化,可选参数**{“backward”, “ortho”, “forward”}**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值