Giter Site home page Giter Site logo

ucd4ids / waveletsext.jl Goto Github PK

View Code? Open in Web Editor NEW
18.0 1.0 4.0 24.08 MB

A Julia extension package to Wavelets.jl

License: BSD 3-Clause "New" or "Revised" License

Julia 94.46% TeX 5.54%
julia wavelet-transform signal-processing wavelet filter ac-wavelets stationary-wavelets

waveletsext.jl's People

Contributors

boundaryvalueproblems avatar github-actions[bot] avatar shozend avatar zengfung avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

waveletsext.jl's Issues

TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.

If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Implementation of wavelet multiplication + nonstandard transforms

Adding new features to the current package. The main idea of this feature is to be able to compute approximations of y = Mx (which is computed in the order of O(n^2)) in O(n) time. This is done by transforming M and x into sparse matrices and multiplying them, then computing the inverse transform.

The pull request should include:

  • working functions
  • unit tests
  • API documentation
  • manual documentations

Improve EnergyMap data structures

Make changes to EnergyMap types, create easily readable and editable energy map data structures that are outputs of energy_map functions.

Fix plotting keyword issue

In Visualization.wiggle!, the keyword argument orientation in the plot function needs to be changed to permute in v1.7 and later.

Messy data structure of SIWPD

Some functions on the Shift-Invariant Wavelet Packet Decomposition (SIWPD) have been implemented, but the tree structure and the best basis algorithm are quite different from the usual implementations in the standard, stationary, and the autocorrelation wavelet transforms. The latter transforms all involve binary trees (for 1D signals) and quadtrees (for 2D signals).

For SIWPD however, each level of decomposition also comes with a corresponding shifted decomposition, ie. in the case of 1D signals, each node will decompose into 2 nodes for approximate and detail coefficients of the original node, plus 2 more nodes for the approximate and detail coefficients of the right circularly shifted version (via circshift) of the node.

The current implementation is quite messy. Here's an example of the difference in tree structures between the SIWPD and the other transforms:

# 1D tree for dwt, swt, and acwt transforms for signals of length 4
3-element BitVector:
 1
 1
 1

# full tree for siwpd for the same signal
7-element Vector{BitVector}:
 [1]
 [1, 1]
 [1, 1]
 [1, 1, 1, 1]
 [1, 1, 1, 1]
 [1, 1, 1, 1]
 [1, 1, 1, 1]

Hence, the issues that need to be resolved are:

  • What data structure is best for representing the full tree for SIWPD?
  • Can we find a data structure for SIWPD trees that is similar to the BitVectors used for the standard, stationary, and autocorrelation wavelet transforms' binary and quadtrees?
  • Plot(s) to visualize the best basis of SIWPD of a signal.

Necessary vs. recommended dependencies

Quoting from the review checklist of JOSS:

Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.

I have searched the word using in your package and i have found:

  • using Wavelets
  • using LinearAlgebra
  • using Statistics
  • using Plots
  • using Distributions
  • using AverageShiftedHistograms
  • using Parameters
  • using Documenter
  • using Test
  • using ImageQualityIndexes
  • using Random

It would be good to clarify which of these packages are necessary/recommended for (1) running the software (2) running the tests (3) compiling the documentation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.