Open JeffFessler opened 5 years ago
Yes, there is a minimum size requirement because of the convolution. My proposal is that we catch the error within the constructor.
Out of curious: How does your Matlab NUFFT implementation handle this?
1D NFFT is working great for me but 2D NFFT is not behaving as I am expecting
Could you elaborate on this? We have unit tests against the NDFT. We also apply the implementation to measured MRI data. This does, however, not imply that the implementation is bug-free. Maybe we could try getting some example test setting (N, alpha, m, M) where you could report the error that you get with your NUFFT implementation. Potentially we could also check the error compared to the NFFT C library. I currently have no runnable version of that though.
My Matlab NUFFT checks to see if the zero-padded fft size (K) is smaller than the interpolation kernel width (J) and if it is then it produces a warning and decreases J accordingly. See line 53 here: https://github.com/JeffFessler/mirt/blob/master/nufft/nufft_init.m I don't recall if I ever tested it with a (N,1) case though :)
Perhaps my 2D NFFT tests were using a size below the minimum, so I will look into it more and get back to you if I find a MWE with a larger dimension.
The result of a 1D NFFT of length N and a (N,1)-dimensional NFFT are quite inconsistent. Here is a MWE:
Perhaps there is some minimum size requirement for each dimension of a multi-dimensional NFFT? If so then should NFFTPlan throw an error if that requirement is not met?
1D NFFT is working great for me but 2D NFFT is not behaving as I am expecting, so this (N,1) case is an example of a test I am doing to try to diagnose my 2D issues...