プロが教える店舗&オフィスのセキュリティ対策術

例えばwavファイルにDFTやDCTをかけて、IDFT・IDCTをかけると
ほとんどもとの音に戻る(多少の誤差を除いて)のですが、
MDCT-IMDCTをかけると、もとに戻りません。
窓の幅を短くすればするほど、低音がなくなっていくような感じです。

MDCTは可逆変換ではないのでしょうか?

A 回答 (1件)

仕事でDFTはよく使用するのですが、DCTやMDCTはあまり馴染みがないので、本当に参考の参考までに思ったことを回答させていただきます。



DFTとDCTの違いはともかくとして、MDCTは、DCTの観測窓の境界で発生するノイズを抑えるため、サンプリング点数の半分(つまり観測窓の半分)のみをコサイン変換し、コサイン変換をする領域を徐々にずらしていくという手法を取っています。

DFTとDCTの場合、変換される基本周波数(最低周波数)は、観測窓の時間幅Tの逆数、即ちf0=1/Tで与えられ、その整数倍の周波数のパワーが求められます。また、どこまで高周波を検出できるかは、その時間窓を構成するサンプリングのポイント数により支配され、時間窓が1/T、その中のサンプリングポイントがN点ならば、f0=1/Tから、2f0, 3f0, ... ,(N/2)f0までの周波数のパワーが計測可能となります。
一方、MDCTの場合、先述したように、観測窓(計測ポイント)の半分しか利用されませんので、実効的な時間窓はT/2, 故に計測される基本周波数f0'はf0'=1/(T/2) = 2f0、そして、その整数倍の周波数が計測されますので、結局、計測可能な周波数は、(DFTやDCTと同じ時間窓で計測したとして)2f0, 4f0, 6f0, 8f0,....となってしまい、観測される基本周波数が2倍に上がってしまうとともに、低周波域で計測される周波数の間隔が2倍に粗くなってしまう(周波数の再現性が低下する)と思われます。

ご質問のように、「窓の幅を短くすればするほど、低音がなくなっていく」というのは当然で、窓を1/nにすれば(即ちT/nにすれば)、計測される基本周波数はf0' = 1/(T/2n) = 2n f0と2n倍も高周波になり、通常のDCTで測定できていた低周波域f0,f1,f2,...(2n-1)f0は観測できなくなります。また、計測される周波数は、2nf0, 4nf0, 8nf0,...と、通常のDCTの2n倍も粗い(飛び飛びの)周波数しか計測できないことになりますので、実際の時間窓によっては、極端に低音が消えてしまってもなんら不思議ではないと思われます。

MDCTで(一般的にはDFTやDCTでも)低周波領域を落とさずにきちんと計測したい場合には、時間窓を充分に広く取る必要があると思われます。

以上、とんちんかんな回答でしたらすみません。
    • good
    • 0
この回答へのお礼

技術的ながら簡素で曖昧な質問に対して丁寧なご回答ありがとうございます。
MDCTはDCTに比べて周波数領域での観測できるスペクトルが2倍間隔に
なるから、特に低音で音がなくなっているということなんですね。
確かに、DCTは例えば1024サンプル(時間領域)から1024スペクトルを
得られるのに対して、MDCTは1024サンプルから512のスペクトルしか
得られないため、そうなるんですね。
#しかも基本周波数が2倍になるため低周波が特に影響を受けると。

それでAACのコーデックでは、低音のことをかんがえて十分な窓幅をとっている
(2048 or 256みたいですが)ということでしょうか。。。

ありがとうございました。

お礼日時:2007/09/24 23:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!