1
$\begingroup$

I have two set of spectrum data, the first record (in wavenumbers) looks like this:

...
967.0511723
968.9374611
970.8224407
972.7061127
974.5884787
976.4695403
...

And the second record (again, wavenumbers) umber looks like this:

...
955.9630179
957.8733753
959.7823965
961.6900828
963.596436
965.5014577
967.4051494
969.3075128
971.2085494
973.1082609
975.0066489
976.9037149
978.7994605
980.6938874
982.586997
...

How do i merge two datasets with the same wavenumber?

$\endgroup$
8
  • 1
    $\begingroup$ I am a little surprised. Your wavenumbers are not equally spaced. If they were, we could have done upsampling by interpolation methods. $\endgroup$
    – M. Farooq
    Jan 14 at 5:31
  • $\begingroup$ could you recommend some python package or papers about spectrum interpolation? thank you very much ! $\endgroup$
    – haidan li
    Jan 14 at 5:42
  • $\begingroup$ I don't remember any, but you can start from MATLAB documentation on upsampling by interpolation. $\endgroup$
    – M. Farooq
    Jan 14 at 5:58
  • $\begingroup$ Also upsampling to a higher value can be done by Fourier methods. The ke point is the sampling interval must be constant. Yours is not. This is the main issue. $\endgroup$
    – M. Farooq
    Jan 14 at 6:00
  • $\begingroup$ Easiest is probably to combine your data in one vector for wavenumber and one for intensity and sort both vectors on the values of the wavenumber list. Then you could do a running average with $n=2$. Make sure to check that the peaks don't get wider due to the running average operator $\endgroup$
    – Paul
    Jan 14 at 6:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.