JuliaDynamics/ComplexityMeasures.jl

Improve `PowerSpectrum` estimator: add threhsold

オープン

#104 opened on 2022/09/27

 (7 件のコメント) (1 件のリアクション) (0 人の担当者)Julia (19 件のフォーク)auto 404
good first issueimprovement

Repository metrics

Stars
 (79 個のスター)
PR merge metrics
 (PR metrics pending)

説明

The power spectrum estimator will yield rather uncoverged results for small timeseries of regular signals, due to the noise induced by the FOurier transform affecting the signal a lot. We should add a threshold that reduces to 0 all spectral power less than this threshold. This would make the results much more reasonable for signals, and better for normalized. Here is the example code I have:

using DynamicalSystems
N1, N2, a = 101, 100001, 10

for N in (N1, N2)
    t = LinRange(0, 2*a*π, N)
    x = sin.(t) # periodic
    y = sin.(t .+ cos.(t/0.5)) # periodic, complex spectrum
    z = sin.(rand(1:15, N) ./ rand(1:10, N)) # random
    w = trajectory(Systems.lorenz(), N÷10; Δt = 0.1, Ttr = 100)[:, 1] # chaotic

    for q in (x, y, z, w)
        h = entropy(q, PowerSpectrum())
        n = entropy_normalized(q, PowerSpectrum())
        println("entropy: $(h), normalized: $(n).")
    end
end

コントリビューターガイド