The power method (right) is effective, but it
introduces non-linearity and messes with the peak amplitudes and
areas, which must be corrected later, whereas the derivative
method preserves the original peak areas and the ratio between
the peak heights.
The symmetricalization of asymmetric peaks by the weighted
addition of the first derivative is performed by the
function ySym = symmetricalize
and demonstrated for the exponentially modified Gaussians (EMG)
by the self-contained Matlab/Octave function EMGplusfirstderivative.m
and for the exponentially modified Lorentzian (EML) by EMLplusfirstderivative.m
In both of these, figure 1 shows the symmetricalization
and Figure 2 shows the additional
2nd and 4th derivative sharpening
. Both of these routines
report the before and after halfwidth and area of the peak, and
they measure the resulting symmetry of the processed peak two
ways: (a) by the ratio of the leading edge and trailing edge
slopes (ideally -1.000) and (b) by the R2 of the least-squares
fit to the initial Gaussian and Lorentzian shapes peak shape
before exponential broadening respectively (ideally 1.000).
Segmented derivative 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