gd = gsp_design_can_dual( g );
This function returns the canonical dual filterbank g. Note that it might not be the be the optimal solution in term of computation.
Example:
N = 100;
G = gsp_sensor(N);
G = gsp_compute_fourier_basis(G);
g = gsp_design_abspline(G,8);
gd = gsp_design_can_dual(g);
paramplot.show_sum = 0;
figure(1)
gsp_plot_filter(G,g,paramplot);
title('Original filters')
figure(2)
gsp_plot_filter(G,gd,paramplot);
title('Canonical dual filters');
x = rand(N,1);
param.method = 'exact';
coeff = gsp_filter_analysis(G,g,x,param);
xs = gsp_filter_synthesis(G,gd,coeff,param);
norm(xs-x)
This code produces the following output:
ans = 1.1674e-14