基于python实现FFT和DWT记录

这篇博客介绍了如何使用Python进行快速傅里叶变换(FFT)和离散小波变换(DWT)。文中通过示例代码详细阐述了FFT的原理,并讲解了np.linalg.norm()函数在计算范数中的应用。此外,还探讨了Python中pow()函数的用法。接着,文章转向DWT,讲解了pywt.WaveletPacket在小波包分析中的应用。
摘要由CSDN通过智能技术生成

1. FFT代码

import numpy as np
from scipy.fftpack import fft
def FFT(data,Fs):
    n=len(data)
    if n%2!=0:
        n-=1
        # data=data[range(0,n)]  #由于要进行取半处理,所以将n与2取余
        data.pop()
    Y=fft(data)    #快速傅里叶变换
    Fre=np.linspace(0,n-1,n)*Fs/n  #linspace(start,stop,number)
    Fre=Fre[range(0,int(n/2))]
    Amp=np.abs(Y[range(0,int(n/2))])
    Amp=Amp/(n/2)
    Amp[0]=Amp[0]/2
    Amp[-1]=Amp[-1]/2  
    return Fre, Amp

说明:Fs:数据点个数。该方法定义的FFT函数直接将你选的数据看作一个周期。

例子:

for i in range(0,10):
    iq_current = pd.read_excel(p+files[i])
    iq = iq_current['iq(A)'].tolist()
    iq_effective = iq[307:340]
    fre,amp = FFT(iq_effective,33)

2. 小波包

import pywt
import numpy as np

def wpd_energy(signal,n):
    #w
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值