[Table of Contents] [Previous section] [Next section]

Interactive Resolution Enhancement

A Matlab implementation of a mathematically simple, quickly-computable resolution enhancement technique for time-series signals consisting of partially overlapping peaks. It is based on subtracting the scaled, smoothed 2nd derivative and adding the scaled, smoothed 4th derivative to the original signal. The algorithm can be customized for signals of different types by adjusting the scaling factors for the derivatives and the width of the smoothing function. The routines here have sliders that allow you to adjust the resolution enhancement parameters continuously while observing the effect on your signal dynamically. Click here to download the ZIP file "InteractiveResEnhance.zip" that also includes supporting functions, self-contained demos to show how it works. You can also download it from the Matlab File Exchange.

Video Demonstration

This 15-second, 1.7 MByte video in WMV format (ResEnhance3.wmv ) demonstrates this resolution enhancement technique. The signal consists of four overlapping, poorly-resolved Lorentzian bands. First, the 2nd derivative factor (Factor 1) is adjusted, then the 4th derivative factor (Factor 2) is adjusted, then the smooth width (Smooth) is adjusted, and finally the Factor 2 is tweeked again.

enhance function
function Enhancedsignal=enhance(signal,factor1,factor2,SmoothWidth)
Basic function for resolution enhancement by the even-derivative method. The arguments factor1 and factor2 are the weighting factors for the 2nd and 4th derivatives. SmoothWidth is the width of the smoothing function applied to the derivatives. Optimum values for factor1 and factor2 depend on the width and the shape of the peaks in the signal, and also on the desired trade-off between resolution enhancement (peak width reduction) and baseline artifacts that are a by-product of the method. As a starting point, a reasonable value for factor1 is PeakWidth2/25 and for factor 2 is PeakWidth4/833 for peaks of Gaussian shape (or PeakWidth2/6 and PeakWidth4/700 for Lorentzian peaks), where PeakWidth is the full-width at half maximum of the peaks expressed in number of data points. The easiest way to determine the optimum values for your data is to use InteractiveResEnhance, described below.

InteractiveResEnhance


Click to view enlarged figure
Interactive optimization of derivative resolution enhancement for your own data. Requires Matlab 6.5. To use this, place the data to be enhanced in the global vector "signal", then execute this file. It plots the data and displays sliders for separate real-time control of 2nd and 4th derivative weighting factors (factor and factor2) and smooth width. (Larger values of factor1 and factor2 will reduce the peak widths but will cause artifacts in the baseline near the peak. Adjust the factors for the best trade-off). Use the minimum smooth width needed to reduce excess noise. The resolution-enhanced signal is placed in the global vector "Enhancedsignal". (If the range of the sliders is inappropriate for your signal, you can adjust the slider ranges in lines 27-29).

DemoResEnhance


Click to view enlarged figure
Self-contained demo of resolution enhancement for a simulated signal of four overlapping peaks. Requires Matlab 6.5. Displays sliders for separate real-time control of 2nd and 4th derivative weighting factors (factor and factor2) and smooth width. Larger values of factor1 and factor2 will reduce the peak width but will also cause artifacts in the baseline near the peak. Adjust these factors for the the best compromise. Use the minimum smooth width needed to reduce excess noise (too much smoothing will reduce the resolution enhancement).

DemoResEnhance2G


Click to view enlarged figure
Similar to DemoResEnhance, but for a single Gaussian peak. This allows you to experiment with the adjustable parameters that work best for a peak of Gaussian shape. You can change the width of the peak in line 26. The estimated width of the resolution-enhanced peak is computed and displayed above the graph, to make it easier to determine the extent of resolution enhancement quantitatively. Try to adjust the parameters until the estimated peak width is as small as possible, while still giving acceptable baseline flatness.

DemoResEnhance2L


Click to view enlarged figure
Similar to DemoResEnhance, but for a single Lorentzian peak. Requires Matlab 6.5. This allows you to experiment with the adjustable parameters that work best for a peak of Lorentzian shape. You can change the width of the peak in line 26. The estimated width of the resolution-enhanced peak is computed and displayed above the graph, to make it easier to determine the extent of resolution enhancement quantitatively. Try to adjust the parameters until the estimated peak width is as small as possible, while still giving acceptable baseline flatness.

ZIP file containing all of the above Interactive Resolution Enhancement functions and demos.

Tom O'Haver
Professor Emeritus
Department of Chemistry and Biochemistry
The University of Maryland at College Park
toh@umd.edu
http://www.wam.umd.edu/~toh

[Table of Contents] [Previous section] [Next section]