OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

MDCT→FFTへの変換?(オーディオ信号)

  • すぐに回答を!
  • 質問No.200201
  • 閲覧数298
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 86% (174/201)

いまオーディオ圧縮アルゴリズムの勉強をしています。

IMDCTの式が
  
y[n]= (2/N)*Σ{x[k]*cos((2π/N)*(n+a)*(k+0.5))}
        k
ただし0≦n<N, aは定数, Σはk=0,1,…N/2-1

とあるのですが、これをFFTで計算するには
どのような処理をすればいいのでしょうか?
また、cos(x)の計算は何回すればいいのでしょうか?
#cos(x)の値をテーブルで持っておくには、
#何種類の値をもっていればいいのでしょうか?

本やネットで調べたら、DCTの式はあるのですが、
MDCTについてはあまり触れられていないので…
よろしくお願いします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル14

ベストアンサー率 57% (1014/1775)

DCTをFFTでやっちゃおうという訳ですか。

FFTは
F[n] = Σ(f[k] exp(-2πikn/M))  (Σはk=0,1,…M-1)
を計算するんでしたよね、確か。

一方、求めたいのは
Σ(x[k]cos((2π(n+a)(k+0.5)/N))) (Σはk=0,1,…N/2-1 )
で、これは
Q[n]=Σ(x[k] exp(-2πi(n+a)(k+0.5)/N)) (Σはk=0,1,…N/2-1 )
の実部です。そして、
exp(-2πi(n+a)(k+0.5)/N)
 =exp(-πia(2k+1)/N) exp(-2πin(2k+1)/(2N))

以上から、k=0,1,...,N/2-1について
 f[2k]=0, f[2k+1]=x[k] exp(-πia(2k+1)/N)
k=N/2, ...., N-1について
 f[2k]=0, f[2k+1]=0
とし、
M=2N
とすれば、
F[n] = Σ(f[k] exp(-2πikn/M)) (Σはk=0,1,…M-1)
= Σ(f[k] exp(-2πikn/2N)) (Σはk=0,1,…2N-1)
= Σ(f[k] exp(-2πikn/2N)) (Σはk=0,1,…N-1)
= Σ(f[2k] exp(-2πikn/2N)+f[2k+1]exp(-2πi(2k+1)n/2N))(Σはk=0,1,…N/2-1)
= Σ(f[2k+1]exp(-2πi(2k+1)n/2N))(Σはk=0,1,…N/2-1)
= Σ(x[k] exp(-πia(2k+1)/N)exp(-2πi(2k+1)n/2N))(Σはk=0,1,…N/2-1)
= Σ(x[k] exp(-2πi(2k+1)(n+a)/2N))(Σはk=0,1,…N/2-1)
=Q[n]
ですから、その実部を取れば良いことになります。

もうちょっとましな方法もありそうですが、お急ぎのようなので。
お礼コメント
oddo

お礼率 86% (174/201)

アドバイスどうもありがとうございました。
半分あきらめかけていたので、感激しています。
いまから式をじっくり見ていきたいと思います。
教えていただいた式を見ると、cos(x)は2N個あれば
対応できそうですね。
本当にありがとうございました。
投稿日時 - 2002-01-21 18:42:57
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ