Digital signal resampling method
デジタル信号処理 において 、 アップサンプリング 、 拡張 、 補間は、 マルチレートデジタル信号処理 システム での 再サンプリング 処理に関連する用語です。 アップサンプリングは 拡張 と同義ですが、 拡張 とフィルタリング( 補間 )のプロセス全体を表すこともあります 。 [1] [2] [3] 信号 またはその他の連続関数のサンプルのシーケンスでアップサンプリングを実行すると、信号をより高いレート(または写真の場合は 密度 )でサンプリングした場合に取得されるシーケンスの近似値が生成されます 。たとえば、 44,100 サンプル/秒の コンパクトディスク オーディオを 5/4 の係数でアップサンプリングすると、結果として得られるサンプルレートは 55,125 になります。
図1:L=4、n=9、j=3の場合における、1つのドット積(緑色で表示)と1つの出力サンプル(緑色で表示)の図。入力サンプルの各ペアの間には、概念的な「挿入されたゼロ」が3つ描かれている。これらのゼロを計算から除外することが、マルチレートフィルタとモノレートフィルタの違いである。
整数係数によるアップサンプリング 整数倍のレート増加は 2段階のプロセスとして説明でき、より効率的な同等の実装がある : [4] L {\displaystyle L}
展開 : 元のサンプルをゼロ で区切った シーケンスを作成します 。この操作の表記法は次のとおりです 。 x L [ n ] , {\displaystyle x_{L}[n],} x [ n ] , {\displaystyle x[n],} L − 1 {\displaystyle L-1} x L [ n ] = x [ n ] ↑ L . {\displaystyle x_{L}[n]=x[n]_{\uparrow L}.} 補間 : ローパス フィルター を使用して不連続部分を滑らかにし 、ゼロを置き換えます。 このアプリケーションでは、フィルタは 補間フィルタ と呼ばれ、その設計については後述します。補間フィルタが FIR 型の場合、ゼロは ドット積の 計算に寄与しないため、効率を向上させることができます。データストリームと計算の両方からゼロを省略することは容易です。マルチレート補間FIRフィルタが各出力サンプルに対して実行する計算は、ドット積です 。 [a]
y [ j + n L ] = ∑ k = 0 K x [ n − k ] ⋅ h [ j + k L ] , j = 0 , 1 , … , L − 1 , {\displaystyle y[j+nL]=\sum _{k=0}^{K}x[n-k]\cdot h[j+kL],\ \ j=0,1,\ldots ,L-1,} そしてどんな n , {\displaystyle n,}
式1
ここで、 シーケンスは補間フィルタのインパルス応答であり、は ゼロ以外 の 値の最大値です。 h {\displaystyle h} K {\displaystyle K} k {\displaystyle k} h [ j + k L ] {\displaystyle h[j+kL]}
式1の導出
補間フィルタの出力シーケンスは畳み込みによって定義されます 。
y [ m ] = ∑ r = − ∞ ∞ x L [ m − r ] ⋅ h [ r ] {\displaystyle y[m]=\sum _{r=-\infty }^{\infty }x_{L}[m-r]\cdot h[r]} が非ゼロになり得る 唯一の項は、が の整数倍である項です 。 したがって 、 が整数値の場合 、畳み込みは と書き直すことができます 。 x L [ m − r ] {\displaystyle x_{L}[m-r]} m − r {\displaystyle m-r} L . {\displaystyle L.} m − r = ⌊ m L ⌋ L − k L {\displaystyle m-r={\bigl \lfloor }{\tfrac {m}{L}}{\bigr \rfloor }L-kL} k , {\displaystyle k,}
y [ m ] = ∑ k = − ∞ ∞ x L [ ⌊ m L ⌋ L − k L ] ⋅ h [ m − ⌊ m L ⌋ L + k L ⏞ r ] = ∑ k = − ∞ ∞ x [ ⌊ m L ⌋ − k ] ⋅ h [ m − ⌊ m L ⌋ L + k L ] ⟶ m ≜ j + n L y [ j + n L ] = ∑ k = 0 K x [ n − k ] ⋅ h [ j + k L ] , j = 0 , 1 , … , L − 1 {\displaystyle {\begin{aligned}y[m]&=\sum _{k=-\infty }^{\infty }x_{L}\left[{\bigl \lfloor }{\tfrac {m}{L}}{\bigr \rfloor }L-kL\right]\cdot h{\Bigl [}\overbrace {m-{\bigl \lfloor }{\tfrac {m}{L}}{\bigr \rfloor }L+kL} ^{r}{\Bigr ]}\\&=\sum _{k=-\infty }^{\infty }x\left[{\bigl \lfloor }{\tfrac {m}{L}}{\bigr \rfloor }-k\right]\cdot h\left[m-{\bigl \lfloor }{\tfrac {m}{L}}{\bigr \rfloor }L+kL\right]\quad {\stackrel {m\ \triangleq \ j+nL}{\longrightarrow }}\quad y[j+nL]=\sum _{k=0}^{K}x[n-k]\cdot h[j+kL],\ \ j=0,1,\ldots ,L-1\end{aligned}}}
この場合、 関数は ハーフバンドフィルタ として設計できます 。この場合、係数のほぼ半分はゼロであり、ドット積に含める必要はありません。間隔 で取得されたインパルス応答係数は 部分列を形成し、 そのような部分列( フェーズ と呼ばれる)が多重化されます。インパルス応答の各フェーズは 、データストリーム の同じ連続値をフィルタリングし、 連続する出力値の1つを生成します。一部のマルチプロセッサアーキテクチャでは、これらのドット積が同時に実行され、その場合は ポリフェーズ フィルタと呼ばれます。 L = 2 , {\displaystyle L=2,} h {\displaystyle h} L {\displaystyle L} L {\displaystyle L} L {\displaystyle L} x {\displaystyle x} L {\displaystyle L}
完全性を期すために、各フェーズの実現方法として、配列のコピーにおいて他のフェーズの係数をゼロに置き換え 、 元の入力レートよりも速い速度 でシーケンスを処理するという、可能性は低いものの実現可能な実装方法をここで述べておきます。この場合 、すべての 出力はゼロになります。望ましい シーケンスはフェーズの合計であり、 各合計の項は完全にゼロになります。 フェーズの有効な出力間でゼロを計算し、それを合計に追加することは、実質的にデシメーションです。これは、ゼロをまったく計算しないのと同じ結果です。この等価性は、第 2ノーブル恒等式 として知られています。 [5] これは、多相法の導出において使用されることがあります。 h {\displaystyle h} x L [ n ] {\displaystyle x_{L}[n]} L {\displaystyle L} L − 1 {\displaystyle L-1} L {\displaystyle L} y {\displaystyle y} L − 1 {\displaystyle L-1} L − 1 {\displaystyle L-1}
補間フィルタ設計 図2:最初のグラフの最初の三角形は、 連続関数 x(t)のフーリエ変換 X ( f ) を表しています。最初のグラフ全体は、連続関数 x(t) を 1/T という低レートで サンプリングして形成されたシーケンス x[n] の 離散時間フーリエ変換を表しています。2番目のグラフは、元のサンプルの間にゼロ値のサンプルを挿入することで実装された、より高いデータレートでのローパスフィルタの適用を表しています。3番目のグラフは、フィルタ出力のDTFTです。下の表は、フィルタ設計ツールで使用されるさまざまな周波数単位での最大フィルタ帯域幅を表しています。 任意の関数のフーリエ 変換を 、 ある区間におけるサンプル数が列に 等しいものと 仮定する 。すると、列の 離散時間フーリエ変換 (DTFT)は、 [b] の 周期和の フーリエ級数 表現 となる。 X ( f ) {\displaystyle X(f)} x ( t ) , {\displaystyle x(t),} T , {\displaystyle T,} x [ n ] {\displaystyle x[n]} x [ n ] {\displaystyle x[n]} X ( f ) : {\displaystyle X(f):}
∑ n = − ∞ ∞ x ( n T ) ⏞ x [ n ] e − i 2 π f n T ⏟ DTFT = 1 T ∑ k = − ∞ ∞ X ( f − k T ) . {\displaystyle \underbrace {\sum _{n=-\infty }^{\infty }\overbrace {x(nT)} ^{x[n]}\ e^{-i2\pi fnT}} _{\text{DTFT}}={\frac {1}{T}}\sum _{k=-\infty }^{\infty }X{\Bigl (}f-{\frac {k}{T}}{\Bigr )}.}
式2
の単位が秒の 場合、 の単位は ヘルツ(Hz) です。サンプリング 時間を速くすると(間隔)、周期性は [c] 倍に増加します。 T {\displaystyle T} f {\displaystyle f} L {\displaystyle L} T / L {\displaystyle T/L} L : {\displaystyle L:}
L T ∑ k = − ∞ ∞ X ( f − k ⋅ L T ) , {\displaystyle {\frac {L}{T}}\sum _{k=-\infty }^{\infty }X\left(f-k\cdot {\frac {L}{T}}\right),}
式3
これは補間の望ましい 結果 でもある。これらの分布の例は、図2の最初のグラフと3番目のグラフに示されている。 [6]
追加のサンプルにゼロが挿入されると、サンプル間隔は次のように減少します。 フーリエ級数のゼロ値の項を省略すると、次のように記述できます。 T / L . {\displaystyle T/L.}
∑ n = 0 , ± L , ± 2 L , . . . , ± ∞ x ( n T / L ) e − i 2 π f n T / L ⟶ m ≜ n / L ∑ m = 0 , ± 1 , ± 2 , . . . , ± ∞ x ( m T ) e − i 2 π f m T , {\displaystyle \sum _{n=0,\pm L,\pm 2L,...,\pm \infty }{}x(nT/L)\ e^{-i2\pi fnT/L}\quad {\stackrel {m\ \triangleq \ n/L}{\longrightarrow }}\sum _{m=0,\pm 1,\pm 2,...,\pm \infty }{}x(mT)\ e^{-i2\pi fmT},} これは、 の値に関わらず 、式2 と等価である。 この等価性は、図2の2番目のグラフに示されている。唯一の違いは、利用可能なデジタル帯域幅が に拡張され 、新しい帯域幅内の周期的なスペクトルイメージの数が増えることである。一部の著者は、これを新しい周波数成分と呼んでいる。 [7] 2番目のグラフは、ローパスフィルタと、 結果として得られる所望のスペクトル分布(3番目のグラフ)も示している。フィルタの帯域幅は、 元のシーケンスの ナイキスト周波数 である。 [A] Hz単位ではその値は である が、フィルタ設計アプリケーションでは通常、 正規化された単位 が必要となる。(図2の表を参照) L . {\displaystyle L.} L / T {\displaystyle L/T} L = 3 , {\displaystyle L=3,} x [ n ] {\displaystyle x[n]} 0.5 T , {\displaystyle {\tfrac {0.5}{T}},}
分数係数によるアップサンプリング L / M をアップサンプリング係数とします( L > M ) 。
L 倍のアップサンプリング M 倍に ダウンサンプリングする アップサンプリングではデータレートを上げた後にローパスフィルタが必要であり、ダウンサンプリングではデシメーションの前にローパスフィルタが必要です。したがって、両方の処理は、2つのカットオフ周波数のうち低い方の周波数を持つ単一のフィルタで実行できます。L > M の場合、補間フィルタのカットオフ周波数( 中間サンプルあたりのサイクル数)は低い方 の 周波数になります。 0.5 L {\displaystyle {\tfrac {0.5}{L}}}
参照
注記 ^ 実現可能なローパスフィルタには、応答がほぼ1からほぼ0まで減少する 遷移帯域 があります。そのため、実際には、カットオフ周波数は理論上のカットオフ周波数よりも十分に低く設定され、フィルタの遷移帯域は理論上のカットオフ周波数よりも低く抑えられます。
ページ引用 ^ Crochiere and Rabiner "2.3". p 38. 式2.80、ここでも 必要であり 、 m ≜ j + n L , {\displaystyle m\triangleq j+nL,} n = ⌊ m L ⌋ , {\displaystyle n={\bigl \lfloor }{\tfrac {m}{L}}{\bigr \rfloor },} j = m − n L . {\displaystyle j=m-nL.} ^ Harris 2004.「2.2」p 23.図2.12(上)。 ^ Harris 2004.「2.2」p 23.図2.12(下)。
参考文献 ^ Oppenheim, Alan V. ; Schafer, Ronald W. ; Buck, John R. (1999). 「4.6.2」 . 『離散時間信号処理』 (第2版). Upper Saddle River, NJ: Prentice Hall. p. 172. ISBN 0-13-754920-2 。 ^ Crochiere, RE; Rabiner, LR (1983). 「2.3. マルチレートデジタル信号処理」. エングルウッドクリフス, ニュージャージー州: Prentice-Hall. pp. 35– 36. ISBN 0136051626 。 ^ Poularikas, Alexander D. (1998年9月). 信号処理のための数式と表のハンドブック (第1版). CRC Press. pp. 42– 48. ISBN 0849385792 。 ^ Harris, Frederic J. (2004-05-24). 「2.2. 通信システムのためのマルチレート信号処理」 . Upper Saddle River, NJ: Prentice Hall PTR. pp. 20– 21. ISBN 0131465112 アップサンプリングのプロセスは、2段階の進行として視覚化できます。 このプロセスは、入力系列x(n)のサンプルレートをリサンプリング[展開]によって増加させることから始まります。ゼロパックされた時系列は、フィルタh(n)によって処理されます。実際には、サンプルレートの増加と帯域幅の削減のプロセスは、マルチレートフィルタと呼ばれる単一のプロセスに統合されています。 ^ Strang, Gilbert ; Nguyen, Truong (1996-10-01). Wavelets and Filter Banks (第2版). Wellesley, MA: Wellesley-Cambridge Press. p. 101. ISBN 0961408871 ノーブル アイデンティティは各ポリフェーズ コンポーネントに適用されます...フィルター全体には適用されません 。 ^ Tan, Li (2008-04-21). 「アップサンプリングとダウンサンプリング」. eetimes.com . EE Times . 2024年6月27日 閲覧 . 第12.1.2章、図12-5B ^ Lyons, Rick (2015年3月23日). 「なぜ時間領域ゼロスタッフィングは複数の周波数領域スペクトル画像を生成するのか」 dsprelated.com . 2023年9月30日時点のオリジナルよりアーカイブ。 2024年1月31日 閲覧 。
さらに読む 「デジタル オーディオ リサンプリング ホームページ」。 (帯域制限補間の手法について説明) 「補間に多相フィルターを使用する Matlab の例」。