小波去噪python代码_一维数据小波阈值去噪-python实现

本文介绍了使用Python进行一维数据小波去噪的方法,通过`pywt`库实现sym8小波基的5层分解,并采用软硬阈值折中方法进行去噪处理。代码中定义了`wavelet_noising`函数,对数据进行去噪并展示去噪前后效果。
摘要由CSDN通过智能技术生成

简介

处理的一维数据类型:.asc微震文件

小波层数:5 小波基:sym8

阈值公式:

,cD1为第一层分解的细节系数,N为数据长度

阈值函数:软硬阈值折中的方法

2.代码

#模块调用

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import math

import pywt

#封装成函数

def sgn(num):

if(num > 0.0):

return 1.0

elif(num == 0.0):

return 0.0

else:

return -1.0

def wavelet_noising(new_df):

data = new_df

data = data.values.T.tolist() # 将np.ndarray()转为列表

w = pywt.Wavelet('sym8')

# [ca3, cd3, cd2, cd1] = pywt.wavedec(data, w, level=3) # 分解波

[ca5, cd5, cd4, cd3, cd2, cd1] = pywt.wavedec(data, w, level=5) # 分解波

length1 = len(cd1)

length0 = len(data)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值