Convolute spectrum with line shape.
out = convspec(spec,df,fwhm,deriv,alpha) out = convspec(spec,df,fwhm,deriv) out = convspec(spec,df,fwhm)
Convolutes the (real or complex) spectral data array spec
with a line shape. df
specifies the abscissa step, i.e.
the frequency or field increment from one point to the next in
spec
. fwhm
is the FWHM of the line shape in
the same units as df
.
The rest of the parameters is identical to those of
lshape.
deriv
indicates the derivative, 0 being the default.
alpha
determines the line shape function, alpha = 1
is a
pure Gaussian (the default) and alpha = 0
is a pure Lorentzian.
out
is the convoluted spectrum, exactly the same size as
spec
.
The applied line shape is normalised in a way that it does not change
the integral of the spectrum.
If spec
is more than 1D, convspec
operates
on all non-singleton
dimensions. It is possible to define different parameters for each
dimension. For 2D, e.g. df = 2
means that the abscissa step is 2
for both dimensions. df = [2 3]
means it is 2 for the first and
3 for the second dimension. The parameters fwhm
,
deriv
and
alpha
work the same way. If fwhm(i) = 0
,
convolution along dimension i
is skipped.
To convolute a 1D spectrum with a Lorentzian first derivative use
spec = zeros(1,1024); spec([70 400 560]) = [3 6 7]; w = convspec(spec,1,30,1,0); plot(w);
In the 2D case, one can use different line widths for the 2 dimensions.
spec = zeros(128); spec(70,70) = 3; spec(100,50) = 1; w = convspec(spec,1,[20 10]); pcolor(w);The line shape is the default, a Gaussian, in both dimensions.
To achieve convolution only along the second dimension, set fwhm
for the other dimension to zero.
w = convspec(spec,1,[0 10]); pcolor(w);
The convolution is performed by multiplying the IFFT of both the spectral array and the full line shape array followed by FFT. To avoid fold-around for peaks at the edges, each dimension is temporarily expanded in size.
For arrays with more than two dimensions, the convolution can get very
time-consuming. In this case, convspec
issues a warning.
gaussian, lorentzian, lshape, voigtian