◆ わからない問題はここに書いてね 186 ◆
■ このスレッドは過去ログ倉庫に格納されています
0892132人目の素数さん
2006/02/24(金) 18:56:41F(w) = √(2/N)・C(w)・(i = 0〜N-1)f(i)cos((i + 1/2)wπ / N)
という計算をするDCT(int N, double * f, double w)という関数があります。
ここでfは128個の配列であるとします。
1サンプルあたりの時間幅を1/8000secとします。(扱っている問題が8KHzの音声なので)
次のように呼び出しました
for(int i = 0 ; i < 128 ; ++i)
{
x[i] = i;
f[i] = DCT(128, f, i);
}
問題は周波数分布のグラフを書くためには
x[i]=i;
としている部分の単位がおかしいのではないか?と思うのです(逆DCTする場合は問題でていないのですが)。
wは周波数と考えればあっているのかもしれないですが、そうすると1〜128Hzの周波数範囲しか書けない?
それとも
x[i]=aaa(i);というような周波数に変換する必要があるのですか?
混乱してきました。。
■ このスレッドは過去ログ倉庫に格納されています