Hello,

This is probably a basic question, alas it has caused considerable turmoil, so at the risk of embarrassing myself. . . I am trying to implement some algorithms for processing NMR spectra using Matlab.

I got data for the 1D FID of ethanol from the biomolecular magnetic resonance database which, as far as I can tell, is in the Bruker format. I opened the file in spinworks without problems and used the "export xy data" function to get a text file of what appears to be the real channel(?)

I loaded this into Matlab and the intially the FID appeared to be the same, but there are some differences from that which is produced by spinworks.

(1) There are negative time values.

(2) I took the Fourier transform (using the fft() fuction in Matlab), and from the exported data file found a field that appears to be the reference frequence (400MHz ish?), so I adjusted the frequencies to be (frequency - reference)/reference. The frequency values have a factor of 1e4 attached though, and even worse are a bit different from those in spinworks, (3ppm instead of 5ppm etc.). The overall shape and difference between the peaks is just like the spinworks spectrum though.

(3) Also there only appears to be a real channel. . . Am I supposed to take a Hilbert transform? Or is the imaginary channel hiding somewhere?

My feeling was that maybe spinworks exports the "raw" uncorrected data from the Bruker file and they are full of Bruker eccentricities that I should correct for in order to get the right data. If this is the case, is there somewhere I can find out the things I need to correct for? And additionally, is simply using the FFT directly, oversimplifying what's required to get a spectrum, or am I on the right track?

Sorry for the incredible long winded post by the way. . .

Thanks in advance