Nuclear Magnetic Resonance and Fourier Transform (2017)
compphys.go.ro
compphys.go.ro
I'd note that for 3D NMRI the challenge of tomography (extracting the 3D data from a bunch of interfering resonant torus regions) is actually more difficult in practice (I haven't heard of ML/DL techniques, but I'd expect they are now used) though the concept of NMR (without imaging) is more physically interesting. Furthermore, when chemistry is important the fitting algorithms to extract weak NMR signals overlapping strong signals is actually also moderately complex and over looked here for the sake of clarity and brevity.
There isn't any difference in the Fourier analysis between spectroscopy and imaging. In imaging you're just encoding position as a frequency and if you enforce Cartesian sampling the analysis remains the same, including combining extra dimensions. Spectroscopy and flow imaging experiments can get pretty crazy with 5-6 encoding dimensions limited only by your patience and instrument drift over longer periods (weeks).
The differences between spectroscopy and MRI are primarily application driven and then because it is tricker to apply precise magnetic field gradient pulses vs precisely timing RF pulses. Combined with the fact people are a lot bigger, more impatient and more delicate than test tubes while imaging can also be far less quantitative drives the design of very different NMR/MRI pulse sequences. In imaging, the speed gains and human placed limits on gradient slew rates (Audio frequency dB/dt induces currents in neurons) often justify the trouble of non-Cartesian and/or incomplete sampling.
If you want a next step for MRI signal processing, look into multiple-coil reconstruction techniques and how they not only combine the spacial sensitivity profiles of the coils with gradient imaging, without knowing the actual sensitivity profiles a-priori. Pretty much every medical MRI machine uses multiple receive coils to reduce imaging times.
Note: My user name is proton gamma though I left the field mid-career to do sw development. (A far better career though not as exciting if you love physics like I do.)
(edits: grammar, probably still missed a few typos)
And while it's certainly possible to process 1D NMR spectra with a bit of code, it's certainly more than 5 lines. There's stuff like removing the digital filter that is an implementation detail of Bruker spectrometers you have to deal with. The FFT is the smallest parts, you also need window functions and phasing to make something useful. And for 2D NMR you additionally need to handle the various methods of quadrature detection in the indirect dimension.