require 'plot files csv' NB. Usage: cascade_hhwt K0 NB. Usage: cascade_hhwt plot_cascade K0 NB. * DAT=. 11 12 read_trend_data '' NB. * cascade_hwt plot_cascade2 _256{. 17{"1 DAT NB. ======common=================================== DIR_PRIN=: 'user/classes/numeric_recipe/principal/data/' NB. -->copy using.csv here NB. last year;month //(of ESRI data) init_sna=: 13 : '2007;11' NB. change here NB. *******matrix of Haar wavelet************************* cascade_hwt=: 3 : 0 NB. cascade Haar wavelet TIME_IND=: I. (2^i. # y) e. # y NB. index for repeat ANS=.< TMP=. y for_CTR. i. TIME_IND do. MAT=. 0 mat_hwt_sub TMP NB. make mat N0=. MAT +/ . * TMP NB. calc ANS=. ANS, INDX{. +: i. # y NB. rotate index IND3 |. ("0 1) TMP1 NB. rotate rank 0 1 ) NB. *************************************** NB. Daubechies wavelet NB. Parameter 4 dimention cascade_dwt40=: 3 : 0 NB. cascade Daubechies wavelet TIME_IND=: I. (2^i. # y) e. # y NB. index for repeat ANS=.< TMP=. y for_CTR. i. <: TIME_IND do. MAT=. dp4_0 mat_dwt4_sub1 TMP NB. make mat N0=. MAT +/ . * TMP NB. dp4_0 is normalized ANS=. ANS, top 2 lines PHI=. u '' NB. dp4_0/dp4_1 PSI=. 1 _1 1 _1 * |. PHI NB. psi TMP=: ;("2),. (-:&# y)#:%:3)%4),((3+%:3)%4),((3-%:3)%4),(1-%:3)%4 ) NB. --------common function-------------------------------- pick_scale=: 1 : 0 NB. pickup scaling value NB. Usage: ex. cascade_hhwt K0 TMP0=. u y IND=. {@> }.2^i. # TMP0 TMP1=.(-.&* (L:0) 2|L:0 i. L:0 ,# L:0 }.TMP0)# L:0 }. TMP0 (<;IND),<;("1)({. TMP0),IND # L:0 TMP1 NB. for plot_cascade --> (;IND);DAT ) pick_wavelet=: 1 : 0 NB. pickup wavelet value NB. Usage: ex. cascade_hhwt K0 TMP0=. u y IND=: {@> }.2^i. # TMP0 TMP1=:(*(L:0) 2|L:0 i. L:0 ,# L:0 }.TMP0)# L:0 }. TMP0 ;("1)({. TMP0),IND # L:0 TMP1 NB. not add IND ) norm0=: ] % [: %: [: +/ *: NB. normalize // common util plot_cascade=: 1 : 0 NB. usage: cascade_hhwt K0 'IND DAT'=. u pick_scale y pd 'reset' pd 'keypos open bottom' pd 'keystyle open horizontal' pd 'key ',": 0,;IND pd DAT pd 'show' ) plot_cascade2 =:1 : 0 NB. cascade_dwt41 plot_cascade2 _256{. 17{"1 DAT 'IND DATX'=. u pick_scale y AXIS=: mk_xaxis_wavelet y NB. --------------------------- pd 'reset' pd 'sub 0 0 1000 _40' pd 'sub 3 1 ' NB. ---------0 0----------------- pd 'new' pd 'keypos open bottom' pd 'keystyle open horizontal' pd 'key ',": 1,2{.;IND pd AXIS;3{.DATX NB. ----------0 1------------ pd 'new' pd 'keypos open bottom' pd 'keystyle open horizontal' pd 'key ',": 1, 2{. 2}. }:IND pd AXIS;({. DATX), 2{. 3}. DATX pd 'new' pd 'keypos open bottom' pd 'keystyle open horizontal' pd 'key ',": 1, 4}. }:IND pd AXIS;({. DATX), 5}.}: DATX pd 'show' ) mk_xaxis_wavelet=: 3 : 0 NB. y. is a NB. already form_sna y. 'YEAR MONTH'=. init_sna '' RNG=. >. 12%~ NR=: # y NB. range >. is kiriage NB. mk dight M0=.>(>.(# NR)% 12) # < ". ":(>: i. 12)% 12 NB. bug(601) 7.2": Y0=. (i. RNG)+ YEAR - <: RNG NB. mk_year Y1=. ;;({.M0) + L:0 ({@>Y0) IND=. -((>:i.12) e. MONTH) # |. i.12 (-NR) {.IND}. Y1 ) NB. ------read sna data---------------------------- plot_cascade3=: 4 : 0 CTR0=. x cascade_hwt plot_cascade2 y pd 'eps temp/wave_sna/haar_sna',(":CTR0),'.eps' cascade_dwt41 plot_cascade2 y pd 'eps temp/wave_sna/dbc_sna',(":CTR0),'.eps' ) wavelet_sna=:4 : 0 NB. Usage: 11 12 wavelet_sna '' DAT=._256 {. x read_trend_data '' for_CTR. i. {: $ DAT do. CTR plot_cascade3 CTR{"1 DAT end. ) void_yellow=: 4 : '(-. (i.{:@$ y) e. x) # "1 y' NB. 11 12 u TMP read_trend_data=: 4 : 0 NB. Usage: 11 12 read_trend_data '' TMP=. 2}. readcsv DIR_PRIN,'using.csv' NB. check_filename ;("1)". L:0 x void_yellow TMP ) read_toyo_data=: 3 : 0 ;("1)". L:0 }.("1) 4}. readcsv DIR_PRIN,'shop.csv' NB. check_filename ) NB. DAT=. 11 12 read_trend_data '' NB. cascade_hwt plot_cascade2 _256{. 17{"1 DAT NB. ***********Sample Data******************************* NB. ---------------------------------------------------- NB. Kanaya P250 K0=: 0 6.0653 7.3576 6.6939 5.4134 4.1042 2.9872 2.1138 NB. ---------------------------- NB. Nievergelt P34, N0=:32 10 20 38 37 28 38 34 18 24 18 9 23 24 28 34 NB. Kamata,Inada multi wavelet example(Haar) K1=: _1 _3 _3 3 0 2 3 4 NB. K.Sandberg S0=: 2 5 8 9 7 4 _1 1 W40=:(4*%:2)%~(>:%:3),(3+%:3),(3-%:3),1-%:3