Highly Nonlinear Approximations for Sparse Signal Representation

Logo EPSRC

Addapted spline approximation

Download the MATLAB code for this example here.
% This example generates a nonuniform spline space adapted to a chirp signal and 
% constructs a dictionary for sparse approximation of the chirp through refinements of 
% OOMP and OMP approaches.  
sp = [ 0 8 ]; 
L = 2049; 
x = linspace( sp(1), sp(2), L ); 
f = cos( 2*pi*x.^2 );  % Generate the chirp on the interval [0 8]  
partition = FinalProducePartition( sp(1), sp(2), f, 9 );  % Adapted partition  
nD = CutDic( partition, 4, L, 10 );  % Generate dictionary 
tol = 0.01*norm(f);
[ DS0, Di0, beta0, c0, Q0 ] = OMPFinalRefi( f, nD, tol );  % Refinement for OMP() 
plot( x, f, x, c0*DS0(:,1:size(beta0,2))' );  % Plot the chirp and the approximation 
[ DS0, Di0, beta0, c0, Q0 ] = OOMPFinalRefi( f, nD, tol );  % Refinement for OOMP() 
figure;
plot( x, f, x, c0*DS0(:,1:size(beta0,2))' );  % Plot the chirp and the approximation 
Figure: The chirp signal before and after approximation. OMPFinalRefi uses 197 coefficients and OOMPFinalRefi uses 173 coefficents.
\includegraphics[width=11cm]{images/exa_chirp_omp.eps}