Video Demonstration
The "enhance" command-line 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 iSignal or InteractiveResEnhance, described below.
Interactive Resolution Enhancement using the iSignal
function
iSignal is a Matlab function
that performs resolution enhancement for time-series signals,
using the above enhance function, with keystrokes that allow you
to adjust the 2nd and
4th derivative
weighting factors and the smoothing continuously while observing
the effect on your signal dynamically. View the code here or dowload the ZIP file with sample data
for testing. Just place isignal.m in
the Matlab path and type
>> isignal(DataMatrix); or
>> isignal(x,y); or
>> isignal(y);
where DataMatrix is a matrix with x
values in the first row or column and y values in the
second. Press K
to see all the keyboard commands. Use the cursor arrow
keys to pan and zoom.
The E key turns
the resolution enhancement function on and off. iSignal is particularly
convenient to use because it calculates the sharpening and
smoothing settings for Gaussian and for Lorentzian peak
shapes using the Y and U keys,
respectively. Just isolate a single typical peak in the
upper window using the pan and zoom keys, then press Y for Gaussian or U for Lorentzian
peaks. (The optimum settings depends
on the width of the peak, so if your signal has peaks of
widely different widths, one setting will not be optimum for
all the peaks). You can fine-tune the sharpening with the F/V and G/B keys and the
smoothing with the A/Z keys. Press K to see all the keyboard
commands.
The graphic example on
the right is the result of the following commands:
>> x=[0:.005:2];y=humps(x);Data=[x;y];
>>
isignal(Data,0.3,0.5,1,3,1,0,1,220,5400);
Press the 'E' key to toggle sharpening ON/OFF to compare before
and after peak sharpening.
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). |
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). |
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. |
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. |
Number of unique visits since May 17, 2008: