The figure below shows a spectrum on the left that consists of several poorly-resolved (that is, partly overlapping) bands. The extensive overlap of the bands makes the accurate measurement of their intensities and positions impossible, even though the signal-to-noise ratio is very good. Things would be easier if the bands were more completely resolved, that is, if the bands were narrower.

Here use can be made of

Here's how it works. The figure below shows, in Window 1, a computer-generated peak (with a Lorentzian shape) in red, superimposed on the

Click to enlarge

The second derivative is amplified (by multiplying it by an adjustable constant) so that the negative sides of the inverted second derivative (from approximately X = 0 to 100 and from X = 150 to 250) are a mirror image of the sides of the original peak over those regions. In this way, when the original peak is added to the inverted second derivative, the two signals will approximately cancel out in the two side regions but will reinforce each other in the central region (from X = 100 to 150). The result, shown in Window 2, is a substantial (about 50%) reduction in the width, and a corresponding increase in height, of the peak. This effect is most dramatic with Lorentzian-shaped peaks; with Gaussian-shaped peaks, the resolution enhancement is less dramatic (only about 20 - 30%). Note that the baseline of either side of the resolution-enhanced peak is not quite flat, especially for a Lorentzian peak, because the cancellation of the original peak and the inverted second derivative is only approximate; the adjustable weighting factor k is selected to minimize this effect. Peak sharpening will have little or no effect on the baseline, because if the baseline is linear, its derivative will be zero, and if it is gradually curved, its second derivative will be very small compared to that of the peak.

Mathematically, this technique is a simplified version of a converging Taylor series expansion, in which only the

R

The result is a 26% reduction in width for a Gaussian peak, as shown in the figure on the left (Matlab/Octave script), and a 60% reduction for a Lorentzian peak (script). (It's possible to add a sixth derivative term, but the series converges quickly and the results are only slightly improved, at the cost of increased complexity of

An interesting property of this procedure is that it does not change the

Because differentiation and smoothing are both linear techniques, the amplitude of a sharpened signal is therefore proportional to the amplitude of the original signal, which allows quantitative analysis applications employing any of the standard calibration techniques). As long as you apply the same signal-processing techniques to the standards as well as to the samples, everything works.

Peak sharpening can be especially useful in automated peak detection and measurement to increase the ability to detect weak overlapping peaks that appear only as shoulders in the original signal. Click for animated example.

Of course, this method introduces

SPECTRUM, the freeware signal-processing application for Mac OS8 and earlier, includes this resolution-enhancement algorithm, with adjustable weighting factor and derivative smoothing width.

Here's a simple example that creates a signal consisting of four Gaussian peaks of equal width, applies the "enhance" function, and compares a plot (shown on the left) of the original signal (in blue) to the resolution-enhanced version (in red):

Peak sharpening can be a useful pre-process
before measuring
the areas under overlapping peaks, because it's easier and
more accurate to measure the areas of peaks that are more
completely separated, and because, as mentioned above, this
method of sharpening does not change the total area under each
peak.

**Segmented peak sharpening**. If
the peak widths vary substantially across the signal, you
can use the *segmented *version SegmentedSharpen.m, for which the input
arguments factor1, factor2, and SmoothWidth are *vectors*.
The script DemoSegmentedSharpen.m,
shown on the right, uses this function to sharpen four
Gaussian peaks with gradually increasing peak widths from left
to right with increasing degrees of sharpening, showing that
the peak width is reduced
by 20% to 22% compared to the original. DemoSegmentedSharpen2.m
shows four peaks of the *same *width sharpened to
increasing degrees.

ProcessSignal, a Matlab/Octave command-line function that performs smoothing, differentiation, and peak sharpening on the time-series data set x,y (column or row vectors). Type "help ProcessSignal". Returns the processed signal as a vector that has the same shape as x, regardless of the shape of y. The syntax is

Processed=ProcessSignal(x,y, DerivativeMode, w, type, ends,Sharpen, factor1, factor2, SlewRate, MedianWidth)

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 2

* Before Peak Sharpening in
iSignal After peak sharpening in
iSignal*

iSignal 5.95 can also use the power transform method (press the

iPeak, a Matlab interactive peak detection and measurement program, has a built-in peak sharpening mode that is based on this technique. See ipeakdemo5.

Last updated July, 2016. This page is part of "

Unique visits since May 17, 2008: