離散サイン変換.
逆離散サイン変換.
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]) は
以下と等価になります:
for i2=1:size(A,2), X(:,i2,:)=dst(A(:,i2,:),-1); end | ![]() | ![]() |
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