exponenta event banner

interpft

интерполяция 1-D (метод БПФ)

Описание

пример

y = interpft(X,n) интерполирует преобразование Фурье значений функции в X произвести n равноудаленные точки. interpft оперирует первым размером, размер которого не равен 1.

пример

y = interpft(X,n,dim) работает вдоль размерности dim. Например, если X является матрицей, то interpft(X,n,2) работает на строках X.

Примеры

свернуть все

Интерполяция 1-D данных с помощью метода FFT и визуализация результата.

Создайте некоторые точки выборки в интервале [0,3δ] для функции f (x) = sin2 (x) cos (x). Использовать интервал интерваловdx для обеспечения равномерного распределения данных. Постройте график точек образца.

dx = 3*pi/30;
x = 0:dx:3*pi;
f = sin(x).^2 .* cos(x);
plot(x,f,'o')

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

С помощью интерполяции БПФ найдите значение функции в 200 точках запроса.

N = 200;
y = interpft(f,N);

Рассчитайте интервал между интерполированными данными по интервалу между точками выборки с помощью dy = dx*length(x)/N, где N - количество точек интерполяции. Усечение данных в y для соответствия плотности выборки x2.

dy = dx*length(x)/N;
x2 = 0:dy:3*pi;
y = y(1:length(x2));

Постройте график результатов.

hold on
plot(x2,y,'.')
title('FFT Interpolation of Periodic Function')

Figure contains an axes. The axes with title FFT Interpolation of Periodic Function contains 2 objects of type line.

Создайте три отдельных набора данных из нормально распределенных случайных чисел. Предположим, что данные дискретизированы в положительных целых числах, 1:N. Храните наборы данных в виде строк в матрице.

A = randn(3,20);
x = 1:20;

Интерполяция строк матрицы в 500 точках запроса каждая. Определить dim = 2 чтобы interpft работы на строках A.

N = 500;
y = interpft(A,N,2);

Вычисление интервала между интерполированными данными dy. Усечение данных в y для соответствия плотности выборки x2.

dy = length(x)/N;
x2 = 1:dy:20;
y = y(:,1:length(x2));

Постройте график результатов.

subplot(3,1,1)
plot(x,A(1,:)','o');
hold on
plot(x2,y(1,:)','--')
title('Row 1')

subplot(3,1,2)
plot(x,A(2,:)','o');
hold on
plot(x2,y(2,:)','--')
title('Row 2')

subplot(3,1,3)
plot(x,A(3,:)','o');
hold on
plot(x2,y(3,:)','--')
title('Row 3')

Figure contains 3 axes. Axes 1 with title Row 1 contains 2 objects of type line. Axes 2 with title Row 2 contains 2 objects of type line. Axes 3 with title Row 3 contains 2 objects of type line.

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

свернуть все

Входной массив, заданный как вектор, матрица или многомерный массив. Данные в X предполагается, что выборка производится на равномерно разнесенном интервале независимой переменной. interpft лучше всего работает с периодическими данными.

Типы данных: single | double
Поддержка комплексного номера: Да

Число точек, указанное как положительный целочисленный скаляр.

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

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

  • interpft(X,n,1) интерполирует столбцы X.

  • interpft(X,n,2) интерполирует строки X.

Пример: interpft(X,n,3)

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

свернуть все

Интерполированные точки, возвращаемые как вектор, матрица или многомерный массив. Если length(X,dim) = m, и X имеет интервал выборки, равный dx, затем новый интервал выборки для y является dy = dx*m/n, где n > m.

Если dim указывается, то interpft накладки или усечения X к длине n в измерении dim, так что size(y,dim) = n.

Алгоритмы

interpft функция использует метод FFT. Исходный вектор x преобразуется в домен Фурье с помощью fft, и затем он преобразуется обратно с большим количеством точек.

См. также

|

Представлен до R2006a