Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

# iscola

ウィンドウ-オーバーラップの組み合わせが COLA 準拠かどうかを決定します。

## 構文

``tf = iscola(window,noverlap)``
``tf = iscola(window,noverlap,method)``
``[tf,m] = iscola(___) ``
``[tf,m,maxDeviation] = iscola(___)``

## 説明

``tf = iscola(window,noverlap)` は、指定したウィンドウとオーバーラップが定数オーバーラップ加算 (COLA) 制約を満たし、逆短時間フーリエ変換が変更されていないスペクトルの完全再構成になるようにします。`
``tf = iscola(window,noverlap,method)` は使用する内挿法を指定します。`
``[tf,m] = iscola(___) ` は COLA 加算の中央値も返します。以前の任意の入力構文と共にこれらの出力引数を使用できます。`

``[tf,m,maxDeviation] = iscola(___)` は、中央値 `m` から最大偏差を返します。`

## 例

すべて折りたたむ

```win = sqrt(hann(120,'periodic')); noverlap = 60;```

ウィンドウが 50% オーバーラップの COLA 準拠かどうかを確認します。

`tf = iscola(win,noverlap)`
```tf = logical 1 ```

```window = hamming(256,'periodic'); method = 'ola'; noverlap = 128;```

ウィンドウが 50% オーバーラップの COLA 準拠かどうかをテストします。COLA 加算の中央値とその加算からの最大偏差も計算します。

`[tf,m,maxDeviation] = iscola(window,noverlap,method)`
```tf = logical 1 ```
```m = 1.0800 ```
```maxDeviation = 2.2204e-16 ```

## 入力引数

すべて折りたたむ

データ型: `double` | `single`

`window` の長さより小さな正の整数として指定する、オーバーラップするサンプル数。

データ型: `double` | `single`

オーバーラップ加算の方法。以下として指定します。

• `'wola'` — 重み付きオーバーラップ加算。

• `'ola'`— オーバーラップ加算。

## 出力引数

すべて折りたたむ

COLA 準拠。logical スカラーとして返されます。関数が `1` (true) を返す場合、ウィンドウとオーバーラップの長さは COLA 制約を満たします。

COLA 加算の中央値。実数スカラーとして返されます。入力が COLA 準拠である場合は、`m` は COLA 加算定数と等しくなります。

メモ

`m = 1``maxDeviation` が数値精度誤差に近い場合、強い COLA 準拠と結論付けることができます。

## 詳細

すべて折りたたむ

### 逆短時間フーリエ変換

`$\begin{array}{c}x\left(n\right)=\underset{-1/2}{\overset{1/2}{\int }}\sum _{m=-\infty }^{\infty }{X}_{m}\left(f\right){e}^{j2\pi fn}df\\ =\sum _{m=-\infty }^{\infty }\underset{-1/2}{\overset{1/2}{\int }}{X}_{m}\left(f\right){e}^{j2\pi fn}df\\ =\sum _{m=-\infty }^{\infty }{x}_{m}\left(n\right)\end{array}$`

ここで、$R$ は連続する DFT 間のホップ サイズで、${X}_{m}$ は時間 $mR$${x}_{m}\left(n\right)=x\left(n\right)\text{ }\text{\hspace{0.17em}}g\left(n-mR\right)$ 付近を中心としたウィンドウが適用されたデータの DFT です。逆 STFT は、"解析ウィンドウ" $g\left(n\right)$ が元の信号のウィンドウ処理に使用されて $c$ が定数の $\sum _{m=-\infty }^{\infty }{g}^{a+1}\left(n-mR\right)=c\text{\hspace{0.17em}}\forall n\in ℤ$ と同じ長さの元の信号の完全再構成です。次の図は、元の信号の再構成で使用されているステップを示しています。 ### 定数オーバーラップ加算 (COLA) 制約

• 弱い COLA 準拠とは、

`$G\left({f}_{k}\right)=0,\text{ }\text{ }k=1,2,\dots ,R-1,\text{ }\text{ }{f}_{k}\triangleq \frac{k}{R}.$`

となるフレーム レートの高調波で解析ウィンドウのフーリエ変換がゼロであることを意味します。

エイリアスのキャンセルはスペクトル変更によって妨害されます。弱い COLA は、周波数領域のエイリアスのキャンセルに依存しています。したがって、信号に何らかのスペクトル変更が行われていなければ、弱い COLA 準拠ウィンドウを使用して完全な再構成が可能です。

• 強い COLA 準拠の場合、ウィンドウのフーリエ変換は

`$G\left(f\right)=0,\text{ }\text{ }f\ge \frac{1}{2R}.$`

となるフレーム レートによってダウンサンプリングしながら常に帯域制限しなければなりません。この方程式は、強い COLA 制約によって許可されるエイリアシングがないことを示します。さらに、強い COLA 準拠の場合、定数 $c$ の値は、1 と等しくなければなりません。通常、短時間のスペクトルが何らかの方法で変更される場合、より強い COLA 準拠ウィンドウが推奨されます。

### 完全再構成

• 入力サイズ — `istft` を使用して `stft` の出力を逆変換して、その結果を入力信号 `x` と同じ長さにする場合、 の値は整数でなければなりません。

• COLA 準拠 — COLA 準拠ウィンドウを使用して、信号の短時間フーリエ変換を変更していないと仮定します。

• パディング — k の値が整数にならないような入力信号の長さの場合、短時間フーリエ変換を計算する前に信号をゼロ パディングします。信号を逆変換した後に、余分なゼロを削除します。

 Allen, J. B. "Short Term Spectral Analysis, Synthesis, and Modification by Discrete Fourier Transform." IEEE Transactions on Acoustics, Speech and Signal Processing. Vol. 25, Number 3, June 1977, pp. 235–238.

 Griffin, Daniel W., and Jae S. Lim. "Signal Estimation from Modified Short-Time Fourier Transform." IEEE Transactions on Acoustics, Speech and Signal Processing. Vol. 32, Number 2, April 1984, pp. 236–243.

 Sharpe, Bruce. Invertibility of Overlap-Add Processing. https://gauss256.github.io/blog/cola.html, accessed July 2019.

 Smith, Julius Orion. Spectral Audio Signal Processing. https://ccrma.stanford.edu/~jos/sasp/, online book, 2011 edition, accessed Nov 2018.