阅读:1073回复:8
20分决不斯言
大虾谁能够讲讲FFT原理,应用领域?
|
|
|
沙发#
发布于:2002-11-26 14:29
大虾谁能够讲讲FFT原理,应用领域? 就20分还 决不食言?有这么严重? |
|
|
板凳#
发布于:2002-11-26 14:31
哈哈,大头鬼,嫌少啦?
|
|
|
地板#
发布于:2002-11-26 15:05
给你个网址:http://www.intersrv.com/~dcross/fft.html
放分! |
|
|
地下室#
发布于:2002-11-26 16:00
对,这信息了得。
|
|
5楼#
发布于:2002-11-26 17:13
谢谢,不过要再等等看还有那些高手,后定放.
|
|
|
6楼#
发布于:2002-11-26 20:31
到www.ti.com上去找找。
|
|
|
7楼#
发布于:2002-11-27 10:13
其实挺简单的,主要是一个蝶形变换,你可以找本数字信号处理的书看一下,上面有图形介绍的,下面是我很早以前写过的一段源代码,虽然没有优化过,但适合于直接理解没有任何转弯的地方.
for( int m = 0; m < 5; m++) { // I表示在第m级中,每半组有几个点 int I = (int)Math.pow(2, m); for( int i = 0; i < 32; i += 2 * I ) { // j用于遍历每组中的一半点,因为另一半点可以与这一半都是相差2的m次方 for( int j = i; j < (i + I); j++) { double[] w = new double[2]; wfunc(2 * I, j - i, w); int q = j + I; x[j][0] = x[j][0] + w[0] * x[q][0] - w[1] * x[q][1]; x[j][1] = x[j][1] + w[0] * x[q][1] + w[1] * x[q][0]; x[q][0] = x[j][0] - w[0] * x[q][0] + w[1] * x[q][1]; x[q][1] = x[j][1] - w[0] * x[q][1] - w[1] * x[q][0]; } } } // 计算W private void wfunc(int n, int k, double[] out) { switch (k % 4) { case 0: out[0] = Math.exp(2 * k * Math.PI / n); break; case 1: out[0] = Math.cos(2 * k * Math.PI / n); out[1] = Math.sin(-2 * k * Math.PI / n); break; case 2: out[0] = Math.exp(-2 * k * Math.PI /n); break; case 3: out[0] = Math.cos(2 * k * Math.PI / n); out[1] = Math.sin(-2 * k * Math.PI / n); break; } } |
|
8楼#
发布于:2002-11-27 17:31
还有吗?大虾块块...药放分楼.
|
|
|