Skip to content

Spikes in wavelet after cwt #784

Open
@MatthijsRN

Description

@MatthijsRN

I run the following code to visualize some wavelets with specific wavelengths. However when I increase my wavelength some samples will spike towards 0. This gets increasingly worse with longer wavelengths. I would greatly appreciate your solution or insight

import pywt
import numpy as np
import math
import matplotlib.pyplot as plt

def generate_wavelet(wavelet_name, n_points, wavelength):
    # Scale computation
    scale = pywt.frequency2scale(wavelet_name, 1/wavelength, precision=math.log2(n_points))

    # Signal (impulse to visualize wavelet)
    signal = np.zeros(n_points)
    signal[n_points//2] = 1

    # Perform Continuous Wavelet Transform
    coeffs, _ = pywt.cwt(signal, scales=[scale], wavelet=wavelet_name)

    return coeffs[0]

wavelengths = [20, 40, 80, 100]
n = len(wavelengths)

plt.figure(figsize=(20,5))
for i, wavelength in enumerate(wavelengths):
    wavelet = generate_wavelet('morl', 5*wavelength, wavelength)
    plt.subplot(1, n, i+1)
    plt.title("wavelength: " + str(wavelength))
    plt.plot(wavelet)

Wavelet_spikes

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions