Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
See the recommended documentation of this function
dst
離散サイン変換.
idst
逆離散サイン変換.
呼び出し手順
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])
引数
- A
- 実数/複素ベクトルまたは実数/複素配列 (ベクトル, 行列または N-D 配列). 
- X
- Aと同じ大きさの 実数または複素配列.
- sign
- 整数.値は 1または-1となります. 順方向または逆変換を選択します. デフォルト値は-1(順方向変換)です.
- selection
- Aの各配列次元への添字を有する ベクトル. 詳細は説明を参照ください.
- dims
- 整数値を有する正の数値ベクトル, または正の整数のベクトル.
                    詳細は説明を参照ください.
                    各要素は Aの要素の総数の約数となります.各要素の積は Aの要素の総数よりも 小さな値とする必要があります.
- incr
- 整数値を有する正の数値ベクトル, または正の整数のベクトル.
                    詳細は説明を参照ください.
                    incrは,dimsの要素数と同じにする 必要があります.各要素は, Aの要素の総数の約数とする 必要があります.incrの要素は, 厳密に昇順とする必要があります.
- option
- 文字列. 値は,順方向変換の場合,
                    "dst1","dst2","dst4"または"dst", 逆変換の場合は"dst1","dst3","dst4"または"idst"です. デフォルト値は,順方向変換の場合に"dct", 逆変換の場合に"idct"です. 詳細は説明を参照ください.
説明
変換の説明
この関数は,
                パラメータ値optionで指定したシフト量を用いて
                順方向または逆方向の1次元またはN次元離散サイン変換を
                行います:
- "dst1"の場合, この関数は 正規化しないDST-I変換を計算します. 長さ のベクトルの1次元変換は以下のようになります: のベクトルの1次元変換は以下のようになります: 
- "dst2"の場合, この関数は 正規化しないDST-II変換を計算します. 長さ のベクトルの1次元変換は以下のようになります: のベクトルの1次元変換は以下のようになります: 
- "dst3"の場合, この関数は 正規化しないDST-III変換を計算します. 長さ のベクトルの1次元変換は以下のようになります: のベクトルの1次元変換は以下のようになります: 
- "dst4"の場合, この関数は 正規化しないDST-IV変換を計算します. 長さ のベクトルの1次元変換は以下のようになります: のベクトルの1次元変換は以下のようになります: 
- "dst"の場合, この関数は 正規化されたDST-I変換を計算します. 長さ のベクトルの1次元変換は以下のようになります: のベクトルの1次元変換は以下のようになります: 
- "idst"の場合, この関数は 正規化されたDST-I変換を計算します. 長さ のベクトルの1次元変換は以下のようになります: のベクトルの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次元変換が行われます.
 
- 指定した次元方向のDSTの長い構文
- 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])と等価です.
 
dstを最適化
注意: この関数は直近のパラメータをメモリに保持し,2回目に再利用します. これにより(同じパラメータで)連続的にコールした場合の 計算時間が著しく改善されます.
get_fftw_wisdom, set_fftw_wisdom 関数により dstを更に最適化することができます.
アルゴリズム
この関数は fftw3ライブラリ を実行します.
参照
- fft — 高速フーリエ変換
- dct — 離散コサイン変換.
- fftw_flags — fftw関数の高速フーリエ変換の計算手法を設定する
- get_fftw_wisdom — fftw wisdomを返す
- set_fftw_wisdom — fftw wisdomを設定
- fftw_forget_wisdom — fftw wisdomをリセット
参考文献
Matteo Frigo and Steven G. Johnson, "FFTW Documentation" http://www.fftw.org/#documentation
| Report an issue | ||
| << dct | transforms | fft >> |