Home > src > main > matlab > s2let_ridgelet_analysis.m

s2let_ridgelet_analysis

PURPOSE ^

s2let_ridgelet_analysis

SYNOPSIS ^

function [f_ridge_wav, f_ridge_scal] = s2let_ridgelet_analysis(f, varargin)

DESCRIPTION ^

 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

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

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);

Generated on Fri 11-Nov-2016 11:50:36 by m2html © 2005