interpft
1 次元内挿 (FFT 法)
説明
例
フーリエ内挿
FFT 法を使用して 1 次元データを内挿し、結果を可視化します。
区間 に関数 のサンプル点をいくつか生成します。間隔 dx
を使用して、データが必ず等間隔になるようにします。サンプル点をプロットします。
dx = 3*pi/30;
x = 0:dx:3*pi;
f = sin(x).^2 .* cos(x);
plot(x,f,'o')
FFT 内挿を使用して、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')
データの行の内挿
正規分布した乱数の独立した 3 つのデータ セットを生成します。データは正の整数 (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')
入力引数
X
— 入力配列
ベクトル | 行列 | 多次元配列
入力配列。ベクトル、行列または多次元配列として指定します。X
のデータは独立変数の等間隔でサンプリングされるものと見なされます。interpft
は周期的データに最も効果的です。
データ型: single
| double
複素数のサポート: あり
n
— 点の数
正の整数スカラー
点の数。正の整数スカラーとして指定します。
データ型: single
| double
dim
— 演算の対象の次元
正の整数スカラー
演算の対象の次元。正の整数のスカラーとして指定します。値を指定しない場合、既定値は、サイズが 1 ではない最初の配列の次元です。
interpft(X,n,1)
はX
の列を内挿します。interpft(X,n,2)
はX
の行を内挿します。
例: interpft(X,n,3)
出力引数
y
— 内挿点
ベクトル | 行列 | 多次元配列
内挿点。ベクトル、行列または多次元配列として返されます。length(X,dim) = m
であり、かつ X
のサンプリング間隔が dx
である場合、y
の新しいサンプリング間隔は dy = dx*m/n
となります。ここで n > m
です。
dim
が指定されている場合、interpft
は次元 dim
でパディングまたは切り捨てにより X
の長さを n
にし、size(y,dim) = n
となるようにします。
アルゴリズム
関数 interpft
は FFT 法を使用します。元のベクトル x
は、fft
を使ってフーリエ領域に変換され、より多くのサンプル点を使って逆変換されます。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
n
は正の整数でなければなりません。可変サイズ データに関連した制限については、ツールボックス関数のコード生成に対する可変サイズの制限 (MATLAB Coder)を参照してください。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)