離散コサイン変換について教えてください。

F(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);というような周波数に変換する必要があるのですか?

混乱してきました。。