s2let_ridgelet_analysis Compute ridgelet transform on the sphere. Default usage : [f_ridge_wav, f_ridge_scal] = s2let_ridgelet_analysis(f, varargin) where f is the real space function on the sphere to analyse, f_wav contains the output wavelet ridgelet contributions, and f_scal contains the output scaling ridgelet contributions, Option : 'B' = { Dilation factor; B > 1 (default=2) } 'L' = { Harmonic band-limit; L > 1 (default=guessed from input) } 'Spin' = { Spin; (default=0) } 'J_min' = { Minimum wavelet scale to consider; 0 <= J_min < log_B(L) (default=0) } 'Upsample' = { false [multiresolution algorithm (default)], true [full resolution wavelets] } 'Sampling' = { 'MW' [McEwen & Wiaux sampling (default)], 'MWSS' [McEwen & Wiaux symmetric sampling] } 'Reality' = { false [do not assume f real (default)], true [assume f real (improves performance)] } 'OriginalSpin' = [integer; if the SpinLowered option is used, this option indicates which spin number the wavelets should be lowered from (default = 0)] S2LET package to perform Wavelets transform on the Sphere. Copyright (C) 2015 Boris Leistedt & Jason McEwen See LICENSE.txt for license details
0001 0002 function f = s2let_ridgelet_synthesis(f_ridge_wav, f_ridge_scal, varargin) 0003 0004 % s2let_ridgelet_analysis 0005 % Compute ridgelet transform on the sphere. 0006 % 0007 % Default usage : 0008 % 0009 % [f_ridge_wav, f_ridge_scal] = s2let_ridgelet_analysis(f, varargin) 0010 % 0011 % where f is the real space function on the sphere to analyse, 0012 % f_wav contains the output wavelet ridgelet contributions, and 0013 % f_scal contains the output scaling ridgelet contributions, 0014 % 0015 % Option : 0016 % 'B' = { Dilation factor; B > 1 (default=2) } 0017 % 'L' = { Harmonic band-limit; L > 1 (default=guessed from input) } 0018 % 'Spin' = { Spin; (default=0) } 0019 % 'J_min' = { Minimum wavelet scale to consider; 0020 % 0 <= J_min < log_B(L) (default=0) } 0021 % 'Upsample' = { false [multiresolution algorithm (default)], 0022 % true [full resolution wavelets] } 0023 % 'Sampling' = { 'MW' [McEwen & Wiaux sampling (default)], 0024 % 'MWSS' [McEwen & Wiaux symmetric sampling] } 0025 % 'Reality' = { false [do not assume f real (default)], 0026 % true [assume f real (improves performance)] } 0027 % 'OriginalSpin' = [integer; if the SpinLowered option is used, this 0028 % option indicates which spin number the wavelets 0029 % should be lowered from (default = 0)] 0030 % 0031 % S2LET package to perform Wavelets transform on the Sphere. 0032 % Copyright (C) 2015 Boris Leistedt & Jason McEwen 0033 % See LICENSE.txt for license details 0034 0035 len = size(f_ridge_wav); 0036 temp = f_ridge_wav{len}; 0037 sz = size(temp); 0038 if sz(1) == 2*sz(2)-1 || sz(2) == 2*sz(1)-1 0039 Lguessed = min([sz(1) sz(2)]); 0040 else 0041 Lguessed = min([sz(1) sz(2)])-1; 0042 end 0043 0044 p = inputParser; 0045 p.addRequired('f_ridge_wav'); 0046 p.addRequired('f_ridge_scal', @isnumeric); 0047 p.addParamValue('B', 2, @isnumeric); 0048 p.addParamValue('L', Lguessed, @isnumeric); 0049 p.addParamValue('J_min', 0, @isnumeric); 0050 p.addParamValue('Spin', 0, @isnumeric); 0051 p.addParamValue('Upsample', false, @islogical); 0052 p.addParamValue('Sampling', 'MW', @ischar); 0053 p.addParamValue('Reality', false, @islogical); 0054 p.addParamValue('OriginalSpin', 0, @isnumeric); 0055 p.parse(f_ridge_wav, f_ridge_scal, varargin{:}); 0056 args = p.Results; 0057 0058 N = 1; 0059 0060 f_radon = s2let_transform_synthesis_mw(f_ridge_wav, f_ridge_scal, ... 0061 'L', args.L, 'B', args.B, ... 0062 'J_min', args.J_min, ... 0063 'N', N, 'Upsample', args.Upsample, 'Spin', 0, ... 0064 'Reality', args.Reality, 'Sampling', args.Sampling, ... 0065 'OriginalSpin', args.OriginalSpin); 0066 0067 f_radon_lm = ssht_forward(f_radon, args.L, ... 0068 'Method', args.Sampling, ... 0069 'Reality', args.Reality, 'Spin', 0); 0070 0071 f_lm = s2let_radon_inverse(f_radon_lm, ... 0072 'Reality', args.Reality, 'Spin', args.Spin); 0073 0074 f = ssht_inverse(f_lm, args.L, ... 0075 'Method', args.Sampling, ... 0076 'Reality', args.Reality, 'Spin', args.Spin);