Iterative Deconvolution Algorithm in C - idac
Four Star Simulation


1. Introduction

This page presents an application of idac to simulated data to demonstrate to the user what the algorithm can do and how to use it. A four star simulation was created with variable PSF's representing speckle imaging under very good seeing conditions, for example near infrared imaging on a medium sized telescope (4m class) at a good site. The simulations modeled a D/r0 of 2 where D is the telescope aperture and r0 is the Fried seeing parameter, i.e. the atmospheric coherence length.

The data shown in the following images are the "observed" data each of which is contaminated by an additive zero-mean Gaussian noise so that the frames have a Signal-to-noise ratio (SNR) (measured from peak signal to rms background) of 400. The following image are the first two frames of the data set.
 
 


2. Data Reduction

The data was firstly reduced using the image domain option of the idac algorithm. However, before reduction was started, the data had to be investigated to determine the bandpass-limit of the data and also the SNR of the data so that the image header could be updated to initialize the algorithm.

3. Initial Set Up

The support files were all set to be unity as was the observation weighting, wt, and the inital object and PSF estimate were set up as the object long exposure and a noise-free long exposure of PSFs (using more than the 10 frames), i.e.

Before running the code the following files need to be present:
conv
Observation Frames
conv_sup
Observation Frames Support
conv_wf
Frequency Domain Weighting 
(default: Use 1.0)
obj
Initial Object Estimate
obj_sup
Initial Object Estimate Support
psf
Initial PSF Estimate
psf_sup
Initial PSF Estimate Support
wt
(If available: Use sigmaconv)
sky
(default: Use 0.0)

4. Code Execution

Once everything was initialized the data was reduced by running idac as follows:
             idac_v27 conv obj psf wt 1000 10 1 1 0 9 1 &
where idac_v27 is the executable in the directory idac/bin/ which created the following output files.
conv.diag
Diagnostic File
conv.error_met
Error Metric File
conv.obj
Object Estimate (normalized to input data)
conv.psf
PSF(s) Estimate
conv.resid
Residuals (normalized to input data)
conv.mse
Mean Squared Error (per individual input frame)
conv.sky
Sky multiplicative factor Eta for each data frame per iteration.

Note that the output files are tagged with the input convolution data filename. The unix script conv.save will rename the output files, appending a user specified serial number, if desired to keep separate runs with the same data uniquely named.

conv 000
appends .000 to each of the above files.
 

5. The Output Files

The diagnostic, error-metric and rms residual files can be viewed from the links. The following is a plot of the error metrics for the convergence. Note that for the image domain reduction with no support constraint that when E_conv crosses the noise limit then the algorithm has converged.

The following image is the estimated object, conv.obj. Note that all four stars are clearly visible. The brightest star has a faint companion at around 7 o'clock which is not clearly visible in the raw data above. Also note that these reconstructions are super-resolved, reducing each star to a sigle pixel.

The following images shows the recovered PSFs for the first two frames. Compare these to the sample above showing the two distinct morpholgies of the PSFs. Also note the lack of noise in bothe the recovered object and PSFs. The PSF's are not registered because the original data was not so that the relative motion of the reconstructed PSF's is the same as for the observations.


Julian Christou, Keith Hege
17 December, 2000