Home > src > main > matlab > s2let_ridgelet_synthesis.m

s2let_ridgelet_synthesis

PURPOSE ^

s2let_ridgelet_analysis

SYNOPSIS ^

function f = s2let_ridgelet_synthesis(f_ridge_wav, f_ridge_scal, 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) }
  '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 = 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);

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