修正離散コサイン変換(MDCT)を離散フーリエ変換(DFT)で表す。

修正離散コサイン変換の式は次のとおりです。

\begin{equation} S(r)=\sum_{k=0}^{N-1} s(k){\rm cos}(\frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2}))  ただし  r=0  ~  \frac{N}{2}-1 \end{equation}

これを離散フーリエ変換で表します。

まず、 $ {\rm cos} θ= \frac{{ \rm exp}(iθ)+{ \rm exp}(-iθ)}{2} $ の公式で $ {\rm cos} $ を

指数関数になおします。

次に $ 0~N-1 $ までの和を $ 0~N/2-1 $ の和と $ N/2~N-1 $ の和に分解します。

次に $ 0~N/2-1 $ までの和を $ N/2-1~0 $ までの和に書き換えます。 $ k $に代入すると

そうなっていることがわかると思います。同様に $ N/2~N-1 $ までの和を

 $ N-1~N/2 $ までの

和に書き換えます。そして式を整理して、 $ -i $ のマイナスの符号を次に続く( )内の

式に移動します。

次に、 $ r $ は整数なので、 $ {\rm exp}(i \frac{2π}{N}N(r+1/2)) $ は-1

 $ {\rm exp}(i \frac{2π}{N} 2N(r+1/2)) $ は+1

となることを使って変形します。

最後に、 $ {\sum }$の加算範囲ごとにまとめます。

\begin{equation} S(r) = \frac{1}{2}( \sum_{k=0}^{N-1} s(k) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2}))+\sum_{k=0}^{N-1} s(k) {\rm exp}(-i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2}))) \end{equation}

\begin{equation} =\frac{1}{2}( \sum_{k=0}^{N/2-1} s(k) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2}))+\sum_{k=N/2}^{N-1} s(k) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2})) \end{equation}

 \begin{equation} +\sum_{k=0}^{N/2-1} s(k) {\rm exp}(-i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2})) + \sum_{k=N/2}^{N-1} s(k) {\rm exp}(-i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2})))\end{equation}

\begin{equation} =\frac{1}{2}( \sum_{k=0}^{N/2-1} s(k) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2}))+\sum_{k=N/2}^{N-1} s(k) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2})) \end{equation}

\begin{equation} +\sum_{k=0}^{N/2-1} s(\frac{N}{2}-1-k) {\rm exp}(-i \frac {2 \pi} {N} (\frac{N}{2}-1-k+ \frac{1}{2}+ \frac{N}{4})(r+\frac{1}{2})) \end{equation}

\begin{equation}  + \sum_{k=N/2}^{N-1} s(\frac{3N}{2}-1-k) {\rm exp}(-i \frac {2 \pi} {N} (\frac{3N}{2}-1-k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2})))\end{equation}

\begin{equation} =\frac{1}{2}( \sum_{k=0}^{N/2-1} s(k) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2}))+\sum_{k=N/2}^{N-1} s(k) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2})) \end{equation}

\begin{equation} +\sum_{k=0}^{N/2-1} s(\frac{N}{2}-1-k) {\rm exp}(-i \frac {2 \pi} {N} (\frac{3N}{4}-k- \frac{1}{2})(r+\frac{1}{2})) \end{equation}

\begin{equation}  + \sum_{k=N/2}^{N-1} s(\frac{3N}{2}-1-k) {\rm exp}(-i \frac {2 \pi} {N} (\frac{7N}{4}-k- \frac{1}{2})(r+\frac{1}{2})))\end{equation}

\begin{equation} =\frac{1}{2}( \sum_{k=0}^{N/2-1} s(k) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2}))+\sum_{k=N/2}^{N-1} s(k) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2})) \end{equation}

\begin{equation} +\sum_{k=0}^{N/2-1} s(\frac{N}{2}-1-k) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2}-\frac{3N}{4})(r+\frac{1}{2})) \end{equation}

\begin{equation}  + \sum_{k=N/2}^{N-1} s(\frac{3N}{2}-1-k) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2}-\frac{7N}{4})(r+\frac{1}{2})))\end{equation}

\begin{equation} =\frac{1}{2}( \sum_{k=0}^{N/2-1} s(k) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2}))+\sum_{k=N/2}^{N-1} s(k) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2})) \end{equation}

\begin{equation} -\sum_{k=0}^{N/2-1} s(\frac{N}{2}-1-k) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2}+\frac{N}{4})(r+\frac{1}{2})) \end{equation}

\begin{equation}  + \sum_{k=N/2}^{N-1} s(\frac{3N}{2}-1-k) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2}+\frac{N}{4})(r+\frac{1}{2})))\end{equation}

\begin{equation} S(r)=\frac{1}{2}( \sum_{k=0}^{N/2-1} (s(k)-s(\frac{N}{2}-1-k)) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2}+ \frac{N}{4})(r+\frac{1}{2})) \end{equation}

\begin{equation} + \sum_{k=N/2}^{N-1} (s(k)+s(\frac{3N}{2}-1-k)) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2}))) \end{equation}

 


 $ r+\frac{1}{2} $ の $ \frac{1}{2} $ がないと $ {\rm exp}(i \frac{2π}{N}N(r+1/2)) $ は

$ {\rm exp}(i \frac{2π}{N}Nr) $ となって-1ではなく+1になって、奇対称数列をつくる

ための引き算がでてきません。

 $ r+\frac{1}{2} $ の $ \frac{1}{2} $ がないと、前半の数列、後半の数列ともに

偶対称数列となり、奇対称数列と偶対称数列は

たしても再び分離できるという性質を使えないので、この変換は何の役にも立ちませ

ん。 $ r+\frac{1}{2} $ の $ \frac{1}{2} $ の重要性がわかると思います。

すべての数列は、奇対称数列と偶対称数列の和になります。

 $ N $ 個のデータからなる数列 $ (f(k) (k=0~N-1)) $ があったとき

\begin{equation} f(k)= \frac {f(k)-f(N-1-k)}{2}+ \frac {f(k)+f(N-1-k)}{2} ただし k=0~N-1 \end{equation}

が成り立ちます。

 $ f(k)-f(N-1-k) $ を奇対称数列、 $ f(k)+f(N-1-k) $ を偶対称数列と定義します。

奇対称数列と偶対称数列という言葉は私の造語です。

 $ f(k)+f(N-1-k) $ という数列の値が左右対称になること、および、

$ f(k)-f(N-1-k) $ という数列が、 $ N/2- \frac{1}{2} $ で奇対称になることは

実際に具体的な数値を入れれば納得できると思います。

奇対称数列と偶対称数列は、たし算して一緒にしても、再び、奇対称数列と偶対称数列

に分離できるという性質があります。

このことは、先に書きましたが、重要なことなので、もう一度書きます。

話は式変形にもどります。

さて、このままでは、まだ、なんだかわかりません。そこで、さらに、完全なフーリエ

変換の形になるまで変形します。

\begin{equation} S(r)=\frac{1}{2}( \sum_{k=0}^{N/2-1} (s(k)-s(\frac{N}{2}-1-k)) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2}+ \frac{N}{4})(r+\frac{1}{2})) \end{equation}

\begin{equation} + \sum_{k=N/2}^{N-1} (s(k)+s(\frac{3N}{2}-1-k)) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2}))) \end{equation}

\begin{equation} = \frac{1}{2} \sum_{k=N/4+1/2}^{3N/4-1/2}(s(k- \frac{N}{4}- \frac{1}{2})-s( \frac{3N}{4}- \frac{1}{2}-k)){\rm exp}(i \frac {2 \pi}{N}k(r+ \frac{1}{2})) \end{equation}

\begin{equation} + \frac{1}{2} \sum_{k=3N/4+1/2}^{5N/4-1/2}(s(k- \frac{N}{4}- \frac{1}{2})+s( \frac{7N}{4}- \frac{1}{2}-k)){ \rm exp}(i \frac {2 \pi}{N}k(r+ \frac{1}{2})) \end{equation}

\begin{equation} = \frac{1}{2} \sum_{k=N/4+1/2}^{3N/4-1/2}{ \rm exp}(i \frac{ \pi k}{N})(s(k- \frac{N}{4}- \frac{1}{2})-s( \frac{3N}{4}- \frac{1}{2}-k)){\rm exp}(i \frac {2 \pi}{N}kr ) \end{equation}

\begin{equation} + \frac{1}{2} \sum_{k=3N/4+1/2}^{5N/4-1/2}{ \rm exp}(i \frac{ \pi k}{N})(s(k- \frac{N}{4}- \frac{1}{2})+s( \frac{7N}{4}- \frac{1}{2}-k)){ \rm exp}(i \frac {2 \pi}{N}kr) \end{equation}

 

さて、 $ \sum_{k=0}^{N/2-1} (s(k)-s(\frac{N}{2}-1-k)) $ は、数列 $ s(k) $ の前半部分の

奇対称数列成分を取り出して2倍したものです。

$ \sum_{k=N/2}^{N-1} (s(k)+s(\frac{3N}{2}-1-k)) $ は、数列 $ s(k) $ の後半部分の偶対称

数列成分を取り出して2倍したものです。

よって、 $ \sum_{k=0}^{N/2-1} (s(k)-s(\frac{N}{2}-1-k)) $ は、$ k=\frac{N}{4}- \frac{1}{2} $

の点を中心に奇対称になっています。

$ \sum_{k=N/2}^{N-1} (s(k)+s(\frac{3N}{2}-1-k)) $ は、 $ k=\frac{3N}{4}- \frac{1}{2} $ の

点を中心に偶対称になっています。

これは、変換をかける数列の前半部分の偶対称数列成分は、変換で0になり、数列の

後半部分の奇対称数列成分は変換で0になることを示しています。

数列の前半の奇対称数列成分と数列の後半の偶対称数列成分に変換はひっかかる

ようにできています。

そして、上の最後の式、 $ {\rm exp} (i \frac {2πkr}{N}) $ の形になるまで変形すると

数列の前半の奇対称数列成分は、

$ 0~N/4-1,3N/4~N-1 $ の外側 $ \frac {1}{4} $ ずつを0にしたフーリエ変換になり、

また45度から135度まで回転する複素回転子 $ {\rm exp} \frac {iπk}{N} $ によって、実数

関数 $ s(k-N/4-1/2)-s(3N/4-1/2-k) $ が実部偶対称、虚部奇対称の複素関数に変えられ

(ここは、実軸、虚軸、 $ k $ 軸の3次元空間に絵を描くとわかる。ぼくの書いてる別

のブログ

zuruyasumineko2002.blog.fc2.com

には、その絵の手書きメモを載せています。)、フーリエ変換の結果、実数の

スペクトルがでてきます。虚数部はありません。

と、さらっと書くとさっぱりわからないと思うので解説すると関数 $ {\rm exp}\frac{iπk}{N} (s(k- \frac {N}{4} - \frac {1}{2}) -s( \frac {3N}{4} - \frac{1}{2}-k)) $ を

フーリエ変換するという形なわけですが、 $ {\rm exp} \frac{iπk}{N} $ は絶対値1で

$ k $が変化すると複素平面で軌跡が単位円になることはよいでしょうか?

複素平面の実軸と虚軸のほかに $ k $ 軸を加えた3次元座標系で、 $ k $ を変えていく

と螺旋を描くのは良いでしょうか?

ということは $ {\rm exp} \frac{iπk}{N} (s(k- \frac {N}{4} - \frac {1}{2}) -s( \frac {3N}{4} - \frac{1}{2}-k)) $ は、 $ {\rm exp} \frac {iπk}{N} $

がなかったら、実数となって平面上にかけるのでイメージすることが簡単です。

 $ {\rm exp} \frac {iπk}{N}(s(k- \frac {N}{4} - \frac {1}{2})-s( \frac {3N}{4} - \frac{1}{2}-k)) $

は、 $ k $ が動いたら、螺旋をえがくのはわかりますか? 

$ k $ の動く範囲は $ \frac{N}{4} (+\frac {1}{2}) $ から $ \frac{3N}{4}(+ \frac{1}{2}) $

で、その場合、足されている $ \frac{1}{2} $ をここでは無視すると、複素平面上を45度

から135度まで動くことがわかります。 $ \frac{1}{4} $ 円の円弧を描きます。

 $ s(k- \frac {N}{4} - \frac {1}{2}) -s( \frac {3N}{4} - \frac{1}{2}-k) $ は $ k= \frac{N}{4} $ から

 $ \frac{3N}{4} $ を代入すると $ s(k) $ の前半部分から $ s(k) $ の前半部分をひっく

り返したものをひいたものですからですから奇対称数列です。

それで3次元投影図を手書きで書いたものが、僕の別のブログにのせた物です。3次元

図を $ Re-k $ 平面に投影すると偶対称数列になり、 $ Im-k $ 平面

に投影してやると奇対称数列になります。よってフーリエ変換の性質である実部が

偶関数な

フーリエ変換結果は実部の偶関数、虚部が奇関数ならフーリエ変換結果は実部の奇関

数となりそれらの和はすべて実数になるというわけです。同様に、数列の後半の偶対称

数列成分は、 $ \frac{N}{4} ~ \frac{3N}{4}-1 $ の真ん中 $ \frac{1}{2} $ (

両側の内側 $ \frac{1}{4} $ づつ)を0にしたフーリエ変換になり(離散フーリエ変換

の性質より時間領域離散化によって、周波数領域が周期関数化され、周波数領域離散化

により時間領域周期関数化されます。その周期は、 $ {\rm exp} i \frac{2πkr}{N} $ の

回転子がついている場合

 $ N $ になる。 $ N $ 進むと $ 2π $ 位相が回転します。よっ

て $ N~ \frac{5N}{4} $ の部分は $ 0~ \frac{N}{4} $ に折り返されます。したがって

 $ \frac{3N}{4} ~ \frac{5N}{4}-1 $ の区間は $ 0~ \frac{N}{4}-1、\frac{3N}{4}~N-1 $ と

なります。)

また135度から225度まで回転する複素回転子 $ {\rm exp} \frac{iπk}{N} $ によって

実数数列 $ s(k- \frac{N}{4}- \frac{1}{2})+s( \frac{7N}{4}- \frac{1}{2}-k) $ が実部偶対称数列

虚部奇対称数列の複素関数に変えられ(ここは、実軸、虚軸、 $ k $ 軸の3次元空間

に絵を描くとわかります。

ぼくの書いている別のブログ

zuruyasumineko2002.blog.fc2.com

には、その絵の手書きメモを載せています。)、

フーリエ変換の結果、実数のスペクトルがでてきます。虚数部はありません。

説明は、省略します。 $ {\rm exp} \frac{iπk}{N} (s(k- \frac{N}{4}- \frac{1}{2})-s( \frac {3N}{4} - \frac{1}{2}-k)) $

の議論と同様に行うと前の説明を理解できた方ならわかるはずです。

これら2つのスペクトルがたされ、最初の数列の長さの半分の長さのスペクトルにな

ります。

ここから、数列が倍増する逆変換がなぜできるかといいますと、フーリエ変換

フーリエ逆変換は、同じであるということ

に気付くとわかります。(波を線スペクトルにするということが常なので、逆変換は

線スペクトルを波に変えるという固定観念

取り除き、時間領域でのインパルス信号を変換すると周波数領域でスペクトルが正弦波

になるという発想の転換

つまり、前半の数列はフーリエ変換をかける範囲の真ん中 $ \frac{1}{2} $ 、高周波

成分、後半の数列は、両外側 $ \frac{1}{4} $ ずつ低周波成分を正弦波信号に変えると

考えます。

( $ N $ 個の数列のフーリエ変換結果は $ 0→ \frac{N}{2}-1 $ では 低周波

→高周波、$ \frac{N}{2}+1→N-1 $ では 高周波→低周波と並んでいます。)

ここで、フーリエ変換フーリエ逆変換は、同じものなので、周波数と時間を入れ替え

ると、うまい具合に、情報が半分になっても

正弦波状のスペクトルの周波数で、うまく、数列前半の情報と数列後半の情報が、あと

で分別できるように混ぜ込まれることがわかります。(LPF,HPFで分離できます。)

さて、修正離散コサイン変換は、式変形すると、複素数を使うフーリエ変換に分解し

て、理解しやすくできますが、実際はすべて実数で扱われる変換です。これは、偶対称

数列が左右対称で半分は冗長、奇対称数列は、正負反対だが対称なので、半分は

冗長なので実際は、特殊なコサイン変換、サイン変換が行われるわけです。ですので

変換をかける数列の長さの半分のスペクトルが得られます。

 

こうして、音声データなどの数列を、短く区切って50%重複させながら次々と変換し

ていく方式は、逆変換したとき、重複部分を足すことにより、ひっくり返した数列が相

殺されて、もとの数列が再生するという仕組みです。

元の数列の奇対称成分と偶対称成分がたされて、元の数列が再生しているだけです。

次のようなデータをMDCTしてみます。

f:id:zuruyasumineko2002:20201125181948p:plain

前半奇関数、後半偶関数のデータ

 MDCT結果は次の通り

f:id:zuruyasumineko2002:20201125182148p:plain

前半奇関数、後半偶関数のデータをMDCT

これを逆MDCTする。

f:id:zuruyasumineko2002:20201125182321p:plain

前半奇関数、後半偶関数のデータをMDCTしたものを逆MDCT

このように、前半奇対称数列、後半偶対称数列のデータをMDCTして逆MDCTすれば

元に戻ります。

ここで、MDCTのスペクトルは、前半の数列のスペクトルと後半の数列のスペクトルの

和になります。ならば、前半の数列だけのスペクトルと後半の数列だけのスペクトルを知り

たくなります。

そこで同様に写真を羅列します。

f:id:zuruyasumineko2002:20201125182744p:plain

前半奇関数、後半0データのデータ

これをMDCTすると

f:id:zuruyasumineko2002:20201125182853p:plain

前半奇関数、後半0データのデータをMDCT

これを逆MDCT

f:id:zuruyasumineko2002:20201125182939p:plain

前半奇関数、後半0データのデータをMDCTしたものを逆MDCT

f:id:zuruyasumineko2002:20201125183106p:plain

前半0データ、後半偶関数のデータ

これをMDCTすると

f:id:zuruyasumineko2002:20201125183157p:plain

前半0データ、後半偶関数のデータをMDCT

これを逆MDCTすると

f:id:zuruyasumineko2002:20201125183247p:plain

前半0データ、後半偶関数のデータをMDCTしたものを逆MDCT

このように、前半のデータのスペクトルと後半のデータのスペクトルの和が前半のあと

に後半を続けたデータのスペクトルと同じになっています。

次に

\begin{equation} F(r)=\sum_{k=0}^{N-1}f(k){\rm cos}( \frac{2π}{N}(k+ \frac{1}{2}+ \frac{N}{4})(r+ \frac{1}{2})) \end{equation}

を考えてみます。

 $ r+ \frac{1}{2} $ の理由は、この記事の前の方で説明したように $ {\rm exp}\frac{iπk}{N} $ 

がでてくることでその説明を書いた通りです。

なので $ F(r)= \sum_{k=0}^{N-1}f(k) {\rm cos}( \frac{2π}{N}(k+ \frac{1}{2}+ \frac{N}{4})r) $

について考えればいいことになります。

ここで周波数 $ r $ を基本周波数の1とすると一番低い周波数の正弦波のときの計算に

なります。

ですので

\begin{equation} F(1)= \sum_{k=0}^{N-1}f(k) {\rm cos} ( \frac{2π}{N} (k+ \frac{1}{2}+ \frac{N}{4})) \end{equation}

こうすると $ \frac{N}{4} $ の意味は$ {\rm cos} $ を $ -{\rm sin} $ にするという意味

だとわかりますね。

ですので

\begin{equation} F(1)=- \sum_{k=0}^{N-1}f(k){\rm sin}( \frac{2π}{N}(k+ \frac{1}{2})) \end{equation}

ちなみに、これからする説明はDCTⅡ,DSTⅡの $ \frac{1}{2} $ を足してることの意味

にもなります。

まず、次のような $ F'(1) $ を考えます。 $ \frac{1}{2} $ をたしていないものです。

\begin{equation} F'(1)=- \sum_{k=0}^{N-1}f(k){\rm sin} \frac{2πk}{N} \end{equation}

さて、説明してて、しまったと思ったのですが、ここでやっぱり飛躍した説明になって

しまいますが、

修正離散コサイン変換は数列の前半の奇対称数列の部分に反応する変換でした。

なので前半だけとりだして

\begin{equation} G'(1)=- \sum_{k=0}^{N/2-1}(g(k)-g( \frac{N}{2}-1-k)){\rm sin} \frac{2πk}{N} \end{equation}

として、 $ \sum $ をばらして

$ k=0 $ のときを代入すると $ -(g(0)-g( \frac{N}{2}-1)){\rm sin}0=0 $ となります。

$ k= \frac{N}{2}-1 $ のときを代入すると $ (g(0)-g( \frac{N}{2}-1)){\rm sin} \frac{2π(N-1)}{N} $

となります。

 $ k= \frac{N}{2} $ の時を代入すると $ (何とか) $ x $ {\rm sin}( \frac{2π}{N} \frac{N}{2})= {\rm sin}π=0 $

このように、関数 $ g(k)-g( \frac{N}{2}-1-k) $ と $ {\rm sin} $ は対称の中心がずれてるの

です。

そこで $ \frac{1}{2} $ をたしてやると

$ \sum_{k=0}^{N/2-1}(g(k)-g( \frac{N}{2}-1-k)){\rm sin}( \frac{2π}{N}(k+ \frac{1}{2})) $ は

 $ k= \frac{N}{4}- \frac{1}{2} $ で完全に関数 $ g(k)-g( \frac{N}{2}-1-k) $ は奇対称になり、

 $ {\rm sin}( \frac{2π}{N}(k+ \frac{1}{2})) $ は偶対称になるので、変換の結果がきれいに

なるというわけです。

正弦波の対称性と関数の対称性が一致するように、 $ \frac{1}{2} $ ずらすわけです。

 $ 0~ \frac{N}{2}-1 $ のデータと$ 0~ \frac{N}{2} $  の正弦波がおたがいに対称に

なるようにデータのほうを $ + \frac{1}{2} $ して

データ $ \frac{1}{2}~ \frac{N}{2}- \frac{1}{2} $ 、正弦波 $ 0~ \frac{N}{2} $ として、

$ \frac{N}{4} $ で対称になるようにするのです。

これが $ \frac{1}{2} $ の意味です。

 

次に修正離散コサイン逆変換を導きます。

\begin{equation} S(r)=\frac{1}{2}( \sum_{k=0}^{N/2-1} (s(k)-s(\frac{N}{2}-1-k)) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2}+ \frac{N}{4})(r+\frac{1}{2})) \end{equation}

\begin{equation} + \sum_{k=N/2}^{N-1} (s(k)+s(\frac{3N}{2}-1-k)) {\rm exp}(i \frac {2 \pi} {N} (k+ \frac{1}{2} + \frac{N}{4})(r+\frac{1}{2}))) \end{equation}

\begin{equation} = \frac{1}{2} \sum_{k=N/4+1/2}^{3N/4-1/2}(s(k- \frac{N}{4}- \frac{1}{2})-s( \frac{3N}{4}- \frac{1}{2}-k)){\rm exp}(i \frac {2 \pi}{N}k(r+ \frac{1}{2})) \end{equation}

\begin{equation} + \frac{1}{2} \sum_{k=3N/4+1/2}^{5N/4-1/2}(s(k- \frac{N}{4}- \frac{1}{2})+s( \frac{7N}{4}- \frac{1}{2}-k)){ \rm exp}(i \frac {2 \pi}{N}k(r+ \frac{1}{2})) \end{equation}

\begin{equation} = \frac{1}{2} \sum_{k=N/4+1/2}^{3N/4-1/2}{ \rm exp}(i \frac{ \pi k}{N})(s(k- \frac{N}{4}- \frac{1}{2})-s( \frac{3N}{4}- \frac{1}{2}-k)){\rm exp}(i \frac {2 \pi}{N}kr ) \end{equation}

\begin{equation} + \frac{1}{2} \sum_{k=3N/4+1/2}^{5N/4-1/2}{ \rm exp}(i \frac{ \pi k}{N})(s(k- \frac{N}{4}- \frac{1}{2})+s( \frac{7N}{4}- \frac{1}{2}-k)){ \rm exp}(i \frac {2 \pi}{N}kr) \end{equation}

\begin{equation} = \frac{1}{2} \sum_{k=N/4+1/2}^{3N/4-1/2}{ \rm exp}(i \frac{ \pi k}{N})(s(k- \frac{N}{4}- \frac{1}{2})-s( \frac{3N}{4}- \frac{1}{2}-k)){\rm exp}(i \frac {2 \pi}{N}kr ) \end{equation}

\begin{equation} + \frac{1}{2} \sum_{k=3N/4+1/2}^{N-1/2}{ \rm exp}(i \frac{ \pi k}{N})(s(k- \frac{N}{4}- \frac{1}{2})+s( \frac{7N}{4}- \frac{1}{2}-k)){ \rm exp}(i \frac {2 \pi}{N}kr) \end{equation}

\begin{equation} + \frac{1}{2} \sum_{k=N+1/2}^{5N/4-1/2}{ \rm exp}(i \frac{ \pi k}{N})(s(k- \frac{N}{4}- \frac{1}{2})+s( \frac{7N}{4}- \frac{1}{2}-k)){ \rm exp}(i \frac {2 \pi}{N}kr) \end{equation}

\begin{equation} = \frac{1}{2} \sum_{k=N/4+1/2}^{3N/4-1/2}{ \rm exp}(i \frac{ \pi k}{N})(s(k- \frac{N}{4}- \frac{1}{2})-s( \frac{3N}{4}- \frac{1}{2}-k)){\rm exp}(i \frac {2 \pi}{N}kr ) \end{equation}

\begin{equation} + \frac{1}{2} \sum_{k=3N/4+1/2}^{N-1/2}{ \rm exp}(i \frac{ \pi k}{N})(s(k- \frac{N}{4}- \frac{1}{2})+s( \frac{7N}{4}- \frac{1}{2}-k)){ \rm exp}(i \frac {2 \pi}{N}kr) \end{equation}

\begin{equation} + \frac{1}{2} \sum_{k=1/2}^{N/4-1/2}{ \rm exp}(i \frac{ \pi (k+N)}{N})(s(k+N- \frac{N}{4}- \frac{1}{2})+s( \frac{7N}{4}- \frac{1}{2}-(k+N))){ \rm exp}(i \frac {2 \pi}{N}(k+N)r) \end{equation}

\begin{equation} = \frac{1}{2} \sum_{k=N/4+1/2}^{3N/4-1/2}{ \rm exp}(i \frac{ \pi k}{N})(s(k- \frac{N}{4}- \frac{1}{2})-s( \frac{3N}{4}- \frac{1}{2}-k)){\rm exp}(i \frac {2 \pi}{N}kr ) \end{equation}

\begin{equation} + \frac{1}{2} \sum_{k=3N/4+1/2}^{N-1/2}{ \rm exp}(i \frac{ \pi k}{N})(s(k- \frac{N}{4}- \frac{1}{2})+s( \frac{7N}{4}- \frac{1}{2}-k)){ \rm exp}(i \frac {2 \pi}{N}kr) \end{equation}

\begin{equation} - \frac{1}{2} \sum_{k=1/2}^{N/4-1/2}{ \rm exp}(i \frac{ \pi k}{N})(s(k+ \frac{3N}{4}- \frac{1}{2})+s( \frac{3N}{4}- \frac{1}{2}-k)){ \rm exp}(i \frac {2 \pi}{N}kr) \end{equation}

より、修正離散コサイン変換を離散フーリエ変換に表せたので、そのまま、フーリエ逆変換を書くと

  $ \sum_{r=0}^{N-1} SS(r) { \rm exp}(-i \frac{2πrk}{N}) = $

$ \frac{1}{2}{\rm exp} \frac{iπk}{N}(s(k- \frac{N}{4}- \frac{1}{2})-s( \frac{3N}{4}- \frac{1}{2}-k)) $                                                                                      $ (k=N/4+1/2~3N/4-1/2) $

                                                     $ \frac{1}{2}{\rm exp} \frac{iπk}{N}(s(k- \frac{N}{4} - \frac{1}{2})+s( \frac{7N}{4}- \frac{1}{2}-k)) $                                                                             $ (k=3N/4+1/2~N-1/2) $

                                                     $ \frac{1}{2}{\rm exp} \frac{iπk}{N}(-s(k+ \frac{3N}{4} - \frac{1}{2})-s( \frac{3N}{4}- \frac{1}{2}-k)) $                                                                             $ (k=1/2~N/4-1/2) $

ただし、 $ S(r) $ は $ N/2 $ 個の数列で、フーリエ変換では $ N $ 個の数列に対して

変換をかけて $ N $ 個の変換結果となるので、 $ N $ 個の数列を仮定しなくては

なりません。そこで仮定した数列を $ SS(r) $ とおいています。$ SS(r) $ の正体は、以後

明らかにしていきます。

 

$ k'=k- \frac{N}{4}- \frac{1}{2} $ とすると $ k=k'+ \frac{N}{4}+ \frac{1}{2} $

$ \sum_{r=0}^{N-1}SS(r){\rm exp}(-i  \frac{2π}{N}(k'+ \frac{N}{4}+ \frac{1}{2})r)=                    \frac{1}{2}{\rm exp}( \frac{iπ}{N}(k'+ \frac{N}{4}+ \frac{1}{2}))(s(k')-s( \frac{N}{2}-1-k')) $

                                                                                                  $  (k'=0~N/2-1)  $                  $  \frac{1}{2}{\rm exp}( \frac{iπ}{N}(k'+ \frac{N}{4}+ \frac{1}{2}))(s(k')+s( \frac{3N}{2}-1-k')) $

                                                                                               $  (k'=N/2~3N/4-1) $                     $  \frac{1}{2}{\rm exp}( \frac{iπ}{N}(k'+ \frac{N}{4}+ \frac{1}{2}))(-s(k'+N)-s( \frac{N}{2}-1-k')) $

                                                                                                   $  (k'=-N/4~-1) $

$ \sum_{r=0}^{N-1}SS(r){\rm exp}(-i  \frac{2π}{N}(k'+ \frac{N}{4}+ \frac{1}{2})r)=                    \frac{1}{2}{\rm exp}( \frac{iπ}{N}(k'+ \frac{N}{4}+ \frac{1}{2}))(s(k')-s( \frac{N}{2}-1-k')) $

                                                                                                  $  (k'=0~N/2-1)  $                  $  \frac{1}{2}{\rm exp}( \frac{iπ}{N}(k'+ \frac{N}{4}+ \frac{1}{2}))(s(k')+s( \frac{3N}{2}-1-k')) $

                                                                                                   $  (k'=N/2~3N/4-1) $

                 $  \frac{1}{2}{\rm exp}( \frac{iπ}{N}(k'+ \frac{N}{4}+ \frac{1}{2}))(s(k')+s( \frac{3N}{2}-1-k')) $

                                                                                                   $  (k'=3N/4~N-1) $

 

 

 $ k' $ を $ k $ に置きなおして

両辺に $ 2{\rm exp}( \frac{-iπ}{N}(k'+ \frac{N}{4}+ \frac{1}{2})) $ をかけると

 $ 2{\rm exp}( \frac{-iπ}{N}(k+ \frac{N}{4}+ \frac{1}{2})) \sum_{r=0}^{N-1}SS(r){\rm exp}( -i \frac{2π}{N}(k+ \frac{N}{4}+ \frac{1}{2})r)= $

                                                          $   s(k)-s(N/2-1-k))    (k=0~N/2-1)$

$   s(k)+s(3N/2-1-k)                (k=N/2~3N/4-1)  $

$   s(k)+s(3N/2-1-k)                (k=3N/4~N-1)  $

 $ =2 \sum_{r=0}^{N-1}SS(r){\rm exp}(-i \frac{2π}{N}(k+ \frac{N}{4}+ \frac{1}{2})(r+ \frac{1}{2}))  $

よって、 $ SS(r) $ をフーリエ変換もどきしたものが逆変換の結果となります。

 $ SS(r) $ を複素数と仮定し

 $ SS(r) = Re(SS(r))+i Im(SS(r)) $ とおくと

 $ 2 \sum_{r=0}^{N-1} (Re(SS(r)) {\rm cos}( \frac{2π}{N}(k+ \frac{N}{4}+ \frac{1}{2})(r+ \frac{1}{2}))-Im(SS(r)) { \rm sin}( \frac{2π}{N}(k+ \frac{N}{4}+ \frac{1}{2})(r+ \frac{1}{2}))) $

 $ +i( -Re(SS(r)){\rm sin}( \frac{2π}{N}(k+ \frac{N}{4}+ \frac{1}{2})(r+ \frac{1}{2}))+Im(SS(r)) { \rm cos}( \frac{2π}{N}(k+ \frac{N}{4}+ \frac{1}{2})(r+ \frac{1}{2})))   $

 $ = s(k)-s(N/2-1-k))    (k=0~N/2-1)$

 $     s(k)+s(3N/2-1-k)                (k=N/2~N-1)  $

ここで修正離散コサイン逆変換の式を書くと

 $ \sum_{r=0}^{N/2-1} S(r) {\rm cos}( \frac{2π}{N}(k+ \frac{N}{4}+ \frac{1}{2})(r+ \frac{1}{2})) $

でした。

$ {\rm cos} $ の中身は $ \frac{N}{4} + \frac{1}{2} $ シフトしたものであり、

この $ {\rm cos} $ は、偶関数ではありません。

そこで、修正離散コサイン結果 $ S(r)   (0~N/2-1) $  と $ SS(r) (0~N-1) $ の関係を次のように定義します。

$ SS(r)      =           S(r)                           (r=0~N/2-1)  $

                      $  -S(N-1-r)                (r=N/2~N-1)  $

このように定義すると、奇対称数列である $ SS(r) $ も

 $ \sum_{k=0}^{N-1}SS(r){\rm cos}( \frac{2π}{N}(k+ \frac{N}{4}+ \frac{1}{2})(r+ \frac{1}{2})) $

という式でも、うまい具合に、逆変換がもとまることをコンピュータプログラムを実装して

確かめました。反則ではありますが、このことから、 $ SS(r) $ を複素数と仮定していましたが、

実数でいいということです。

 $ S(r) $ を奇関数展開したものを $ {\rm cos}( \frac{2π}{N}(k+ \frac{N}{4}+ \frac{1}{2})(r+ \frac{1}{2})) $

で変換すると、結果は、前半奇対称数列、後半偶対称数列になります。

コサイン変換の形をしていますが、実際はサイン変換になっています。

 $ \sum_{r=0}^{N-1}SS(r){\rm cos}( \frac{2π}{N}(k+ \frac{N}{4}+ \frac{1}{2})(r+ \frac{1}{2})) = 2 \sum_{r=0}^{N/2-1}S(r){\rm cos}( \frac{2π}{N}(k+ \frac{N}{4}+ \frac{1}{2})(r+ \frac{1}{2})) $

$ SS(r)      =           S(r)                           (r=0~N/2-1)  $

                      $  -S(N-1-r)                (r=N/2~N-1)  $

という関係がなりたちます。

修正離散コサイン逆変換については、 $ SS(r) $ について偶対称数列か奇対称数列で

あろうという仮説をたててコンピュータの力を借りて、奇対称数列とするとうまくいく

ことがわかりました。

修正離散コサイン変換をフーリエ変換であらわし、修正離散コサイン逆変換は

そのフーリエ逆変換であろうということで、修正離散コサイン逆変換の意味を明らか

にしました。このとき、 $ N $ 個の数列ではなく $ N/2 $ 個の数列から、データが

倍増する変換ができるのは、サイン変換の形になっているからだということがわかって

いただけたのではないかと思います。

今回の記事は、フーリエ変換の性質を使いまくっているので、理解するのが難しいと

思いますが、わかりやすくするための記述の追加は、逐次していきます。

修正離散コサイン変換を複素数フーリエ変換にして解釈することをおこなって

きましたが、そのまま、コサイン変換として理解するとどうなるかが気になる

ところですね。

偶関数というのは半分の符号を変えれば奇関数になる。奇関数は半分の符号を

変えれば偶関数になります。

さて、修正離散コサイン変換の解釈として、数列の前半の奇対称数列成分、数列の

後半の偶対称数列成分を変換するわけですが

この2つの成分を並べて作った数列を4等分します。そして最後の1/4を手前に

もってきて、もってきたものだけ符号を変えると、奇対称数列ができあがります。

よって半分だけ計算すれば、スペクトルは求まります。

この半分の長さになったスペクトルが修正離散コサイン変換をフーリエ変換として

ではない実数のコサイン変換として解釈したものになる感じです。

N/4のシフトを行っているのでほんとはサイン変換ですが。

ということでよさげです。

だから、逆変換も、サイン変換で半分の計算ですみます。普通に半分の長さの2倍

つまり通常の変換を行った場合に比べ、絶対値が1/2になりますが、結果は前半の

奇対称数列部と後半の偶対称数列部が正確に再現される。

ぶっとんでいますが、たぶんシンプルにそうなってないとおかしいです。

まとめると、数列の前半の奇対称数列部の半分と数列の後半の偶対称数列部の半分を

ならべて、サイン変換してるのが修正離散コサイン変換で、それをまたサイン変換

して、数列の前半の奇対称数列部の半分と数列の後半の偶対称数列部の半分を再合成

しつつ元の数列の前半の奇対称数列部と後半の偶対称数列部になるようにレイアウト

しなおすのが修正離散コサイン逆変換であるといえます。

細かいことを言わなければ、この理解が本質だと思います。