exponenta event banner

nufft

Неуниформное быстрое преобразование Фурье

Описание

пример

Y = nufft(X,t) возвращает неоднородное дискретное преобразование Фурье (NUDFT) X использование точек выборки t.

  • Если X является вектором, то nufft возвращает преобразование вектора.

  • Если X является матрицей, то nufft обрабатывает столбцы X в виде векторов и возвращает преобразование каждого столбца.

  • Если X является многомерным массивом, то nufft обрабатывает значения вдоль первого размера массива, размер которого не равен 1, как векторы и возвращает преобразование каждого вектора.

пример

Y = nufft(X,t,f) вычисляет NUDFT в точках запроса f использование точек выборки t. Определить f без указания точек выборки, использовать nufft(X,[],f).

Y = nufft(X,t,f,dim) возвращает NUDFT вдоль размера dim. Например, nufft(X,t,f,2) вычисляет преобразование каждой строки матрицы X.

Y = nufft(X) возвращает дискретное преобразование Фурье X, и эквивалентно fft(X).

Примеры

свернуть все

Создание сигнала X выборка в неравномерно разнесенных точках t. Вычисление неравномерного быстрого преобразования Фурье Y.

t = [0:300 500.5:700.5];
S = 2*sin(0.1*pi*t) + sin(0.02*pi*t);
X = S + rand(size(t));
Y = nufft(X,t);

Постройте график абсолютного значения преобразования как функции частот по умолчанию.

n = length(t);
f = (0:n-1)/n;
plot(f,abs(Y))

Figure contains an axes. The axes contains an object of type line.

Определение и маркировка частот диапазона музыкальных тонов.

C3 = 440 / (2^(21/12));
nOctaves = 3;
musicalTones = C3 * 2.^((0:(12*nOctaves-1))/12);
toneNames = ["C";"C#";"D";"D#";"E";"F";"F#";"G";"G#";"A";"A#";"B"] + string(3:(3+nOctaves-1));
toneNames = categorical(toneNames, toneNames);

Определение частоты дискретизации звукового сигнала в Гц, точек дискретизации nи сигнал, содержащий главную хорду X.

fs = 16e3;
n = 1:16000;
X = 4*cos(2*pi*(440/fs)*n) + 2*cos(2*pi*(554.37/fs)*n) + 3*cos(2*pi*(659.2/fs)*n);

Вычислите и постройте график частотных составляющих главной хорды.

Y = nufft(X,[],musicalTones/fs);
bar(toneNames(:),abs(Y))

Figure contains an axes. The axes contains an object of type bar.

Входные аргументы

свернуть все

Входной массив, заданный как вектор, матрица или многомерный массив.

Типы данных: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical
Поддержка комплексного номера: Да

Точки выборки, заданные как вектор длиной n, где n - длина рабочего размера входного массива X. По умолчанию вектором точек выборки является 0:(n-1).

Типы данных: double | single

Точки запроса, указанные как вектор. По умолчанию вектором точек запроса является (0:(n-1))/n, где n - длина рабочего размера входного массива X. Определить f без указания точек выборки, использовать nufft(X,[],f).

Типы данных: double | single

Размерность для работы, заданная как целочисленный скаляр. По умолчанию используется первый размер массива, размер которого не равен 1.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Подробнее

свернуть все

Неравномерное дискретное преобразование Фурье вектора

Для вектора X длины n, точек выборки t и частот f неравномерное дискретное преобразование Фурье X определяется как

Y (k) =∑j=1nX (j) e 2οi t (j) f (k)

где k = 1, 2,..., м. Когда t = 0, 1,..., n-1 и f = (0, 1,..., n-1 )/n (значения по умолчанию nufft), формула эквивалентна равномерному дискретному преобразованию Фурье, используемому fft функция.

Ссылки

[1] Поттер, Самуэль Ф., Наиль А. Гумеров и Рамани Дурайсвами. «Быстрая интерполяция функций с ограниченным диапазоном». В 2017 году Международная конференция IEEE по акустике, обработке речи и сигналов (ICASSP), 4516-20. Новый Орлеан, ЛА: IEEE, 2017. https://doi.org/10.1109/ICASSP.2017.7953011.

[2] Датт, А. и В. Рохлин. «Быстрые преобразования Фурье для неэквидированных данных». Журнал СИАМ по научным вычислениям 14, № 6 (ноябрь 1993 года): 1368-93. https://doi.org/10.1137/0914081.

См. также

|

Представлен в R2020a