nufft
Transformada de Fourier de dados amostrados em pontos não uniformes.
Categoria: Mathematics > Fourier Analysis and Filtering
Sintaxe
Y = nufft(X)
Igual a fft(X), com pontos de amostragem espaçados de 1.
Y = nufft(X, t)
As amostras estão nos pontos t; as frequências são o padrão (0:n-1)/n.
Y = nufft(X, t, f)
Avalia a transformada nas frequências f.
Y = nufft(X, t, f, dim)
Opera ao longo da dimensão dim.
Descrição
O resultado na frequência f(k) é a soma em j de X(j)*exp(-2*pi*1i*t(j)*f(k)). Quando os pontos t são igualmente espaçados e f é a grade padrão, isso se reduz à DFT usual. A razão de ser de nufft é que t e f não precisam ser uniformes.
Para analisar medições com instantes irregulares, passe os instantes como t e as frequências de interesse como f.
Argumentos de entrada
X- Valores das amostras, vetor ou array.
t- Pontos de amostragem, um por elemento de
Xna dimensão de operação. Use[]para0:n-1. f- Frequências em que avaliar, em ciclos por unidade de
t. dim- Dimensão em que operar.
Argumentos de saída
Y- Valores da transformada, um por frequência em
f.
Exemplos
Pontos uniformes reproduzem fft
v = [1 2 3 4];
t = [0 0.25 0.5 0.75];
Y = nufft(v, t, 0:3);
max(abs(Y - fft(v))) < 1e-12
ans = logical
1
Instantes irregulares
x = [0.1 0.4 0.7];
nufft([1 1 1], x, [0 1 2 3])
ans = 1×4 complex
3.0000 + 0.0000i -0.3090 - 0.2245i -0.1910 - 0.5878i 0.8090 - 2.4899i
Observações
O MatLivre calcula a soma diretamente, então o custo cresce com o produto entre o número de amostras e o de frequências, e o resultado é exato, não aproximado.