0001 function s2let_plot_curvelet_tiling(B, L, J_min, varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 p = inputParser;
0034 p.addRequired('B', @isnumeric);
0035 p.addRequired('L', @isnumeric);
0036 p.addRequired('J_min', @isnumeric);
0037 p.addParamValue('Spin', 0, @isnumeric);
0038 p.addParamValue('SpinLowered', false, @islogical);
0039 p.addParamValue('SpinLoweredFrom', 0, @isnumeric);
0040 p.parse(B, L, J_min, varargin{:});
0041
0042 args = p.Results;
0043
0044 B = args.B;
0045 L = args.L;
0046 J_min = args.J_min;
0047 Spin = args.Spin;
0048 J = s2let_jmax(L, B);
0049
0050
0051
0052
0053 [cur_lm scal_l] = s2let_curvelet_tiling(args.B, args.L, args.J_min, ...
0054 'Spin', args.Spin, 'SpinLowered', args.SpinLowered,...
0055 'SpinLoweredFrom',args.SpinLoweredFrom);
0056
0057
0058 el_min = max(abs(args.Spin), abs(args.SpinLoweredFrom));
0059 kappa0_cur = zeros(1,L);
0060 for el = el_min:L-1
0061 kappa0_cur(1,el+1) = scal_l(el^2+el+1,1)/sqrt((2*el+1)/(4.0*pi)) ;
0062 end
0063
0064
0065 kappa_cur = zeros(J+1,L);
0066 for j = J_min:J
0067 for el= el_min:L-1
0068
0069 kappa_cur(j+1,el+1) = cur_lm{j-J_min+1}(1,el^2+el+el+1)/ ...
0070 (sqrt(1./2.)* sqrt((2*el+1)/(8.0*pi*pi))) ;
0071 end
0072 end
0073
0074
0075
0076 pltroot = '../../../figs/' ;
0077 configstr = ['Spin',int2str(args.Spin),...
0078 '_L',int2str(L),'_B',int2str(B),...
0079 '_Jmin',int2str(J_min)];
0080
0081
0082
0083 xi =0:0.01:L-1;
0084 x = 0:L-1;
0085
0086
0087
0088 figure('Position',[100 100 900 450])
0089 yi = interp1(x, kappa0_cur, xi,'pchip');
0090 semilogx(xi, yi, 'k', 'LineWidth', 2);
0091
0092 hold on;
0093
0094
0095
0096 for j = J_min:J
0097 colour = rand(1,3)*0.9;
0098 yi = interp1(x,kappa_cur(j+1,:),xi,'pchip');
0099 plot(xi, yi, 'LineWidth', 2, 'Color', colour);
0100
0101 end
0102
0103
0104
0105 axis([0 L -0.05 1.15]);
0106 set(gca,'XTick',2.^[0:(J+2)]);
0107 fname = [pltroot,'s2let_plot_cur_tiling_', configstr, '.png']
0108 print('-r200', '-dpng', fname);
0109
0110
0111
0112
0113
0114
0115 nx = 3;
0116 ny = 3;
0117 [thetas, phis, n, ntheta, nphi] = ssht_sampling(L);
0118 figure('Position',[100 100 900 200])
0119 h = subplot(nx, ny, 1);
0120 f = ssht_inverse(scal_l, L, 'Reality', true);
0121 plot(thetas, f(:,1), '-k', 'LineWidth', 2)
0122 mx = 1.1*max(f(:,1));
0123 axis([0 3. -mx/8 mx ])
0124
0125
0126
0127
0128 Jmax = J;
0129 for j = J_min:Jmax
0130 h = subplot(nx, ny, j-J_min+2);
0131 hold on
0132 flm = zeros(L^2,1);
0133 for el = el_min:L-1
0134 flm(el^2+el+1,1) = kappa_cur(j+1,el+1);
0135 end
0136 f = ssht_inverse(flm, L, 'Reality', true);
0137 plot(thetas, f(:,1), '-k', 'LineWidth', 2)
0138 mx = 1.1*max(f(:,1));
0139 axis([0 3. -mx/1.5 mx ])
0140 end
0141 fname = [pltroot,'s2let_plot_cur_tiling_fn_real', configstr, '.png']
0142 print('-r200', '-dpng', fname);
0143
0144 end
0145