How to correct for peak shifts in an FTIR spectrum

5 views (last 30 days)
Hello: Say I have two spectra, Spectrum A and Spectrum B. Spectrum A is the reference spectrum and spectrum B is one I just collected. I'm trying to match spectrum B with the reference spectrum A. However, I realized that the peaks in B are a bit shifted.
My question is how do I correctly align B to the reference A using matlab. Any matlab code or GUI?
Thank you.

Answers (2)

Star Strider
Star Strider on 30 May 2017
The only possibility I can think of is the alignsignals (link) function. It’s intended for time-domain signals, not spectra, however it could work for you.

Larry McDermott
Larry McDermott on 30 May 2017
If it's a simple shift (across the whole range) you can shift one of the spectra by removing leading data points for both the x and y vectors, and then pad the back end of the spectra (I usually just put 0 or the highest Y reading, and increase the x-axis by the step size for however many points the adjustment is for) to maintain a constant # of data points. If it's a nonlinear shift it's less easy, Eigenvector Research has a number of tools including their "Registerspec", "Alignpeaks" and "Alignspectra" which calculate and apply the shift function based on peak locations. http://wiki.eigenvector.com/index.php?title=Calibration_Transfer

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!