simple test for nufft not working

2 visualizzazioni (ultimi 30 giorni)
Pieter van Wyk
Pieter van Wyk il 27 Mar 2023
Modificato: Pieter van Wyk il 27 Mar 2023
I have a very simple test code for using the nufft function:
%% define signal
t = [-1.0/(2*pi),1.0/(2*pi)];
X = [1.0,1.0];
%% compute the NFFT
f_k = -10:10;
Y_k = nufft(X,t,f_k);
Accroding to the equation given in the documentation the result of this test should be , but the result is just a real constant across . How do I need to modify my program to deliver the correct result, or is this a bug?

Risposta accettata

Paul
Paul il 27 Mar 2023
Modificato: Paul il 27 Mar 2023
Hi Pieter,
I don't think that expression for Y(k) is correct. We can check symbolically
%% define signal
t = sym([-1.0,1.0]);
X = [1.0/(2*sym(pi)),1.0/(2*sym(pi))];
%% compute the NFFT
%f_k = sym(-10:10);
%Y_k = nufft(X,t,f_k)
syms f_k
% expression of Y(k) from the doc page for nufft
Yk = sum(X.*exp(-1j*2*sym(pi)*t*f_k))
Yk = 
Yk = simplify(Yk)
Yk = 
Subbing back in the values of f_k from the original problem
cos(2*pi*(-10:10))/pi
ans = 1×21
0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183
which matches the result from nufft.
nufft(double(X),double(t),-10:10)
ans = 1×21
0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183 0.3183

Più risposte (0)

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by