interpft

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

Описание

пример

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

пример

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

Примеры

свернуть все

Интерполируйте 1D данные с помощью метода БПФ и визуализируйте результат.

Сгенерируйте некоторые точки выборки в интервале [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 object. The axes object 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 object. The axes object 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 objects. Axes object 1 with title Row 1 contains 2 objects of type line. Axes object 2 with title Row 2 contains 2 objects of type line. Axes object 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 функционируйте использует метод БПФ. Исходный вектор x преобразовывается к области Фурье с помощью fft, и затем это преобразовывается назад с большим количеством точек.

Расширенные возможности

Смотрите также

|

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