Main Content

interpft

1차원 보간(FFT 방법)

설명

예제

y = interpft(X,n)X 함수 값의 푸리에 변환을 보간하여 균일한 간격의 점을 n개 생성합니다. interpft는 크기가 1이 아닌 첫 번째 차원에 대해 연산을 수행합니다.

예제

y = interpft(X,n,dim)은 차원 dim을 따라 연산을 수행합니다. 예를 들어, X가 행렬인 경우 interpft(X,n,2)X의 행에 대한 연산을 수행합니다.

예제

모두 축소

FFT 방법을 사용하여 1차원 데이터를 보간하고 그 결과를 시각화합니다.

함수 f(x)=sin2(x)cos(x)에 대해 구간 [0,3π]에서 샘플 점을 생성합니다. 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 contains a line object which displays its values using only markers.

FFT 보간을 사용하여 200개 쿼리 점의 함수 값을 구합니다.

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

dy = dx*length(x)/N인 샘플 점의 간격에서 보간된 점의 간격을 계산합니다. 여기서, N은 보간 지점의 개수입니다. x2의 샘플링 밀도에 맞게 y의 데이터를 자릅니다.

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. One or more of the lines displays its values using only markers

정규분포된 난수 데이터 세트 세 개를 생성합니다. 데이터가 양의 정수 1:N에서 샘플링되는 것으로 가정합니다. 데이터 세트를 행렬의 행으로 저장합니다.

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

500개 쿼리 점 각각에 행렬의 행을 보간합니다. interpftA의 행에 대해 동작하도록 dim = 2를 지정합니다.

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

보간된 데이터의 간격 dy를 계산합니다. x2의 샘플링 밀도에 맞게 y의 데이터를 자릅니다.

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. One or more of the lines displays its values using only markers Axes object 2 with title Row 2 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 3 with title Row 3 contains 2 objects of type line. One or more of the lines displays its values using only markers

입력 인수

모두 축소

입력 배열로, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다. X의 데이터는 독립 변수가 균일한 간격으로 샘플링되는 것으로 간주됩니다. interpft는 주기적 데이터에 가장 적합합니다.

데이터형: single | double
복소수 지원 여부:

점 개수로, 양의 정수 스칼라로 지정됩니다.

데이터형: single | double

연산을 수행할 차원으로, 양의 정수 스칼라로 지정됩니다. 값이 지정되지 않은 경우 디폴트 값은 크기가 1이 아닌 첫 번째 배열 차원이 됩니다.

  • interpft(X,n,1)X의 열을 보간합니다.

    interpft(X,n,1) column-wise computation

  • interpft(X,n,2)X의 행을 보간합니다.

    interpft(X,n,2) row-wise computation

예: interpft(X,n,3)

출력 인수

모두 축소

보간된 점으로, 벡터, 행렬 또는 다차원 배열로 반환됩니다. length(X,dim) = m이고 X의 샘플링 간격이 dx인 경우 y의 새 샘플링 간격은 dy = dx*m/n이 됩니다. n > m입니다.

dim이 지정된 경우 interpftsize(y,dim) = n을 충족하도록 차원 dimX의 길이를 자르거나 채워 n으로 맞춥니다.

알고리즘

interpft 함수는 FFT 방법을 사용합니다. 원본 벡터 xfft를 사용하여 푸리에 영역으로 변환된 다음 더 많은 점을 포함하여 원래대로 변환됩니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목

|