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) } 'N' = { Azimuthal/directional band-limit; N > 1 (default=L) } '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_ridge_wav, f_ridge_scal] = s2let_ridgelet_analysis(f, 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 % 'N' = { Azimuthal/directional band-limit; N > 1 (default=L) } 0019 % 'Spin' = { Spin; (default=0) } 0020 % 'J_min' = { Minimum wavelet scale to consider; 0021 % 0 <= J_min < log_B(L) (default=0) } 0022 % 'Upsample' = { false [multiresolution algorithm (default)], 0023 % true [full resolution wavelets] } 0024 % 'Sampling' = { 'MW' [McEwen & Wiaux sampling (default)], 0025 % 'MWSS' [McEwen & Wiaux symmetric sampling] } 0026 % 'Reality' = { false [do not assume f real (default)], 0027 % true [assume f real (improves performance)] } 0028 % 'OriginalSpin' = [integer; if the SpinLowered option is used, this 0029 % option indicates which spin number the wavelets 0030 % should be lowered from (default = 0)] 0031 % 0032 % S2LET package to perform Wavelets transform on the Sphere. 0033 % Copyright (C) 2015 Boris Leistedt & Jason McEwen 0034 % See LICENSE.txt for license details 0035 0036 sz = size(f); 0037 if sz(1) == 2*sz(2)-1 || sz(2) == 2*sz(1)-1 0038 Lguessed = min([sz(1) sz(2)]); 0039 else 0040 Lguessed = min([sz(1) sz(2)])-1; 0041 end 0042 0043 p = inputParser; 0044 p.addRequired('f', @isnumeric); 0045 p.addParamValue('B', 2, @isnumeric); 0046 p.addParamValue('L', Lguessed, @isnumeric); 0047 p.addParamValue('J_min', 0, @isnumeric); 0048 p.addParamValue('Spin', 0, @isnumeric); 0049 p.addParamValue('Upsample', false, @islogical); 0050 p.addParamValue('Sampling', 'MW', @ischar); 0051 p.addParamValue('Reality', false, @islogical); 0052 p.addParamValue('OriginalSpin', 0, @isnumeric); 0053 p.parse(f, varargin{:}); 0054 args = p.Results; 0055 0056 N = 1; 0057 0058 f_lm = ssht_forward(f, args.L, ... 0059 'Method', args.Sampling, ... 0060 'Reality', args.Reality, 'Spin', args.Spin); 0061 0062 f_radon_lm = s2let_radon_transform(f_lm, ... 0063 'Reality', args.Reality, 'Spin', args.Spin); 0064 0065 f_radon = ssht_inverse(f_radon_lm, args.L, ... 0066 'Method', args.Sampling, ... 0067 'Reality', args.Reality, 'Spin', 0); 0068 0069 [f_ridge_wav, f_ridge_scal] = ... 0070 s2let_transform_analysis_mw(f_radon, 'L', args.L, 'B', args.B, ... 0071 'J_min', args.J_min, ... 0072 'N', N, 'Upsample', args.Upsample, 'Spin', 0, ... 0073 'Reality', args.Reality, 'Sampling', args.Sampling, ... 0074 'OriginalSpin', args.OriginalSpin);