标签: pywavelets

时变频率的频谱图与标度图

我正在比较特定信号的 FFT 与 CWT。

我不清楚如何从 CWT 的相应比例图中读取相应的频率和幅度。此外,我的印象是 CWT 相当不精确?

频谱图在预测精确频率方面似乎非常好,但对于 CWT,我尝试了许多不同的小波,结果是一样的。

我监督了什么吗?这不是解决这个问题的合适工具吗?

在下面,您可以找到我的示例源代码和相应的图。

import matplotlib.pyplot as plt
import numpy as np
from numpy import pi as ?
from scipy.signal import spectrogram
import pywt

f_s = 200              # Sampling rate = number of measurements per second in [Hz]
t   = np.arange(-10,10, 1 / f_s) # Time between [-10s,10s].
T1  = np.tanh(t)/2  + 1.0 # Period in [s]
T2  = 0.125               # Period in [s]
f1  = 1 / T1              # Frequency …
Run Code Online (Sandbox Code Playgroud)

python signal-processing fft wavelet pywavelets

8
推荐指数
1
解决办法
1680
查看次数

为什么pywavelet Wavelet()不接受所有内置小波?

知道为什么pywt.Wavelet()会给某些内置小波产生错误吗?有一个基本的(数学)原因吗?

pywt.Wavelet(i)
Run Code Online (Sandbox Code Playgroud)

退出

ValueError: Invalid wavelet name.
Run Code Online (Sandbox Code Playgroud)

对于i =

'cgau1', 'cgau2', 'cgau3', 'cgau4', 'cgau5', 'cgau6', 'cgau7'
'cgau8', 'cmor', 'fbsp', 'gaus1', 'gaus2', 'gaus3', 'gaus4', 'gaus5'
'gaus6', 'gaus7', 'gaus8', 'mexh', 'morl'
Run Code Online (Sandbox Code Playgroud)

来自pywavelet的文档

class pywt.Wavelet(name[, filter_bank=None])
Run Code Online (Sandbox Code Playgroud)

描述由指定的小波名称标识的小波的属性.为了使用内置小波,name参数必须是pywt.wavelist()列表中的有效小波名称.

wavelet pywavelets

5
推荐指数
1
解决办法
1292
查看次数

如何使用 Keras 或 Tensorflow 为小波神经网络编写自定义小波激活函数

尝试使用 Keras/Tensorflow 构建小波神经网络。对于这个神经网络,我应该使用小波函数作为我的激活函数。

我尝试通过简单地调用创建自定义激活函数来做到这一点。然而,反向传播似乎存在问题

import numpy as np
import pandas as pd
import pywt
import matplotlib.pyplot as plt
import tensorflow as tf
from keras.models import Model
import keras.layers as kl
from keras.layers import Input, Dense
import keras as kr
from keras.layers import Activation
from keras import backend as K
from keras.utils.generic_utils import get_custom_objects


def custom_activation(x):
  return pywt.dwt(x, 'db1') -1

get_custom_objects().update({'custom_activation':Activation(custom_activation)})

model = Sequential()
model.add(Dense(12, input_dim=8, activation=custom_activation))
model.add(Dense(8, activation=custom_activation)
model.add(Dense(1, activation=custom_activation) 
Run Code Online (Sandbox Code Playgroud)

完整运行代码时出现以下错误

SyntaxError: invalid syntax

如果我跑

model = Sequential()
model.add(Dense(12, input_dim=8, …
Run Code Online (Sandbox Code Playgroud)

neural-network pywavelets keras tensorflow activation-function

5
推荐指数
1
解决办法
1236
查看次数

如何使用小波变换对数据进行去噪

我想用小波变换对信号进行去噪,但不知何故去噪后的数据并没有显着变化

代码:

df = pd.read_csv('0311LalaStand5Min1.csv', low_memory=False)
columns = ['Fx','Fy','Fz','Mx','My','Mz']
selected_df = df[columns]
FPDatas = selected_df[:15000]

FPData = np.array(FPDatas).astype('float64')

wavelet = 'db4'

# Perform the wavelet decomposition
coeffs = pywt.wavedec2(FPData, wavelet)

# Threshold the coefficients (using hard thresholding)
threshold = 0.1# adjust this threshold to control the amount of noise removal
coeffs_thresh = [pywt.threshold(c, threshold, 'soft') for c in coeffs]

# Reconstruct the signal using the inverse wavelet transform
FPData_Decompos = pywt.waverec2(coeffs_thresh, wavelet)

plt.figure(figsize=(15,6))
    # plt.figure()
plt.plot(FPData[:,1],color='red')
plt.plot(FPData_Decompos[:,1], markerfacecolor='none',color='green')
plt.legend(['Real Data', …
Run Code Online (Sandbox Code Playgroud)

python wavelet-transform pywavelets

5
推荐指数
1
解决办法
2039
查看次数

用于最大重叠离散小波变换(MODWT)的Python包

我必须使用python从使用MODWT的论文中复制结果。我目前正在使用pywt,它只有平稳小波变换(SWT)。我研究了一下,似乎目前没有用于MODWT的软件包,而且我还发现很多人说SWT和MODWT是同一件事。但是使用MATLAB的MODWT和python的SWT的结果是不同的。python中是否有任何可直接用于执行MODWT的软件包?还是可以使用SWT在MODWT中获得结果?

wavelet wavelet-transform pywavelets

2
推荐指数
1
解决办法
2096
查看次数

时间序列的小波

我正在尝试使用小波系数作为时间序列数据上的神经网络的特征,但我对其使用感到有点困惑。我是否需要立即找到整个时间序列的系数,或者使用滑动窗口来查找相同的系数。我的意思是,在整个时间序列上查找系数一次,在确定这些系数时是否会包括未来的数据点?在时间序列数据上使用小波而不存在前瞻偏差(如果有)的方法应该是什么?

python wavelet quantitative-finance pywavelets

-1
推荐指数
1
解决办法
3742
查看次数