離散サイン変換.
逆離散サイン変換.
X=dst(A [,sign] [,option]) X=dst(A,sign,selection [,option]) X=dst(A,sign,dims,incr [,option]) X=idst(A [,option]) X=idst(A,selection [,option]) X=idst(A,dims,incr [,option])
実数/複素ベクトルまたは実数/複素配列 (ベクトル, 行列または N-D 配列).
A
と同じ大きさの
実数または複素配列.1
または
-1
となります.
順方向または逆変換を選択します.
デフォルト値は-1
(順方向変換)です.A
の各配列次元への添字を有する
ベクトル. 詳細は説明を参照ください.各要素は
A
の要素の総数の約数となります.
各要素の積はA
の要素の総数よりも
小さな値とする必要があります.
incr
は,
dims
の要素数と同じにする
必要があります.
各要素は,A
の要素の総数の約数とする
必要があります.
incr
の要素は,
厳密に昇順とする必要があります.
"dst1"
, "dst2"
,
"dst4"
または "dst"
,
逆変換の場合は "dst1"
,
"dst3"
, "dst4"
または
"idst"
です.
デフォルト値は,順方向変換の場合に"dct"
,
逆変換の場合に"idct"
です.
詳細は説明を参照ください.この関数は,
パラメータ値option
で指定したシフト量を用いて
順方向または逆方向の1次元またはN次元離散サイン変換を
行います:
"dst1"
の場合, この関数は
正規化しないDST-I変換を計算します.
長さn のベクトルの1次元変換は以下のようになります:
"dst2"
の場合, この関数は
正規化しないDST-II変換を計算します.
長さn のベクトルの1次元変換は以下のようになります:
"dst3"
の場合, この関数は
正規化しないDST-III変換を計算します.
長さn のベクトルの1次元変換は以下のようになります:
"dst4"
の場合, この関数は
正規化しないDST-IV変換を計算します.
長さn のベクトルの1次元変換は以下のようになります:
"dst"
の場合, この関数は
正規化されたDST-I変換を計算します.
長さn のベクトルの1次元変換は以下のようになります:
"idst"
の場合, この関数は
正規化されたDST-I変換を計算します.
長さn のベクトルの1次元変換は以下のようになります:
多次元のDST変換は,一般に,配列の各次元方向の1次元変換の分離可能な積です. 正規化しない変換の場合,順方向変換の後に逆方向多次元変換を行うと,元の配列が各次元の大きさの積で拡大されたものとなります.
X=dst(A,-1 [,option])
または
X=dst(A [,option])
により,
オプション値を指定した順方向変換が得られます.
デフォルトは,正規化された
DST-I順方向変換です.
A
がベクトルの場合
(1より大きい次元が1つだけの場合),
1次元の変換が行われ,
その他の場合にはn次元変換が行われます.
(引数-1
は"inverse"ではなく,
指数の符号を意味します).
X=dst(A,1 [,option])
または
X=idst(A [,option])
は
逆変換を行います.
A
がベクトルの場合
(1より大きい次元が1つだけの場合),
1次元の変換が行われ,
その他の場合にはn次元変換が行われます.
X=dst(A,sign,selection [,option])
により,
選択した次元方向のA
の"スライス"の
順方向または逆方向dstを
効率的に計算することができます.
例えば, A
が3次元配列の場合,
X=dst(A,-1,2)
は以下と等価になります:
そして X=dst(A,-1,[1 3])
は
以下と等価になります:
X=dst(A,sign,dims,incr)
は
古い構文であり,この方法でも
指定した次元方向のA
のスライスの
順方向または逆方向のdctを行うことができます.
例えば,A
が
n1*n2*n3
個の要素を有する配列の場合,
X=dst(A,-1,n1,1)
は
X=dst(matrix(A,[n1,n2,n3]),-1,1)
と等価で,
X=dst(A,-1,[n1 n3],[1 n1*n2])
は
X=dst(matrix(A,[n1,n2,n3]),-1,[1,3])
と等価です.
注意: この関数は直近のパラメータをメモリに保持し,2回目に再利用します. これにより(同じパラメータで)連続的にコールした場合の 計算時間が著しく改善されます.
get_fftw_wisdom, set_fftw_wisdom 関数により dstを更に最適化することができます.
この関数は fftw3ライブラリ を実行します.
Matteo Frigo and Steven G. Johnson, "FFTW Documentation" http://www.fftw.org/#documentation