{"action":"created","issue":{"url":"https://api.github.com/repos/cscheiblich/JWave/issues/12","labels_url":"https://api.github.com/repos/cscheiblich/JWave/issues/12/labels{/name}","comments_url":"https://api.github.com/repos/cscheiblich/JWave/issues/12/comments","events_url":"https://api.github.com/repos/cscheiblich/JWave/issues/12/events","html_url":"https://github.com/cscheiblich/JWave/issues/12","id":68734017,"number":12,"title":"continuous wavelet transforms","user":{"login":"MichaelRFairhurst","id":1627771,"avatar_url":"https://avatars.githubusercontent.com/u/1627771?v=3","gravatar_id":"","url":"https://api.github.com/users/MichaelRFairhurst","html_url":"https://github.com/MichaelRFairhurst","followers_url":"https://api.github.com/users/MichaelRFairhurst/followers","following_url":"https://api.github.com/users/MichaelRFairhurst/following{/other_user}","gists_url":"https://api.github.com/users/MichaelRFairhurst/gists{/gist_id}","starred_url":"https://api.github.com/users/MichaelRFairhurst/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MichaelRFairhurst/subscriptions","organizations_url":"https://api.github.com/users/MichaelRFairhurst/orgs","repos_url":"https://api.github.com/users/MichaelRFairhurst/repos","events_url":"https://api.github.com/users/MichaelRFairhurst/events{/privacy}","received_events_url":"https://api.github.com/users/MichaelRFairhurst/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-04-15T16:51:01Z","updated_at":"2015-04-19T11:53:18Z","closed_at":"2015-04-19T11:53:18Z","body":"Hey, looking through the function signatures, it looks like decompose maybe runs a CWT:\r\n\r\n    public double[][] decompose(double[] arrTime) { ... }\r\n\r\nis this true? If not, do you have any plans on supporting CWTs in the future?\r\n\r\nAmazing robust code, wish I understood this scientific domain more so I didn't have to ask such a potentially stupid question."},"comment":{"url":"https://api.github.com/repos/cscheiblich/JWave/issues/comments/94269858","html_url":"https://github.com/cscheiblich/JWave/issues/12#issuecomment-94269858","issue_url":"https://api.github.com/repos/cscheiblich/JWave/issues/12","id":94269858,"user":{"login":"cscheiblich","id":5475358,"avatar_url":"https://avatars.githubusercontent.com/u/5475358?v=3","gravatar_id":"","url":"https://api.github.com/users/cscheiblich","html_url":"https://github.com/cscheiblich","followers_url":"https://api.github.com/users/cscheiblich/followers","following_url":"https://api.github.com/users/cscheiblich/following{/other_user}","gists_url":"https://api.github.com/users/cscheiblich/gists{/gist_id}","starred_url":"https://api.github.com/users/cscheiblich/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cscheiblich/subscriptions","organizations_url":"https://api.github.com/users/cscheiblich/orgs","repos_url":"https://api.github.com/users/cscheiblich/repos","events_url":"https://api.github.com/users/cscheiblich/events{/privacy}","received_events_url":"https://api.github.com/users/cscheiblich/received_events","type":"User","site_admin":false},"created_at":"2015-04-19T11:53:18Z","updated_at":"2015-04-19T11:53:18Z","body":"Hi Michael,\r\n\r\nthanks for your message - no problem.\r\n\r\nFrom m understanding any continous function, transform, etc, has to be discretized. Therefore, some f(x) goes to f(x_i), where x_i ist one postion in an array of length n, for example: [0.25, 0.5, 0.75, 0.5] | n=4 and x_0=0.25, x_1=0.5, etc.. For jWave's wavelet implementation it is necessary to have always a number of n = 2^p | p € N .. 0, 1, 2, 4, 8, 16, 32, 64, ..., to allow for a full - all possible levels - wavelet decomposition.\r\n\r\nTo come back to your question, I think any CWT implementation ends up in a DWT, otherwise the number n of x_i has to reach infinity to allow for a \"continous\" transform; that's due to how binary based machines are working.\r\n\r\nHowever, the two implemented algorithm FWT and WPT are some kind of discrezied CWT, or DWT. those are different in their lifting scheme. The decompose method you are mentioning ist just computing all filter levels or steps and hand them back as a matrix (steps over arr length). Each filter level can be used to do a full reverse transform by appling the method reverse( arr, steps ), where \"steps\" has to match the level. This feature was request by a lot of people who want to manipulates coefficients at a certain level and then get the result, effect, etc. in time series by reversing this certain level.\r\n\r\nbest\r\nChristian"}}