Group Blog
 
<<
ÁԶعÒ¹ 2552
 
 123456
78910111213
14151617181920
21222324252627
282930 
 
15 ÁԶعÒ¹ 2552
 
All Blogs
 

Real-Time FFT Analysis

The Real-Time FFT Analysis can be downloaded at //www.hotshare.net/file/151022-86519127f9.html


snap short:



source code:







void SantiFFT::DoFFT(double *rData, double *iData, unsigned InvertFlag, unsigned FFTSize, unsigned ReplaceFlag)
{
    register unsigned i, j;
    unsigned n, k, idx, BlockEnd, BlockSize;
    double tr, ti;      // Temporal vriables;

    Resize(FFTSize);    // Update 'Size' , 'NumBits' and Parameters

    for(i=0; i    {   j = ReverseBits(i, NumBits);
        Real.Data[j] = rData[i];
        Imag.Data[j] = (iData[i] == NULL) ? 0.0 : iData[i];
    }

    BlockEnd = 1;

    idx = (InvertFlag)?NumBits:0;
    for (idx=idx, BlockSize=2; BlockSize<=FFTSize; BlockSize<<=1, idx++)
    {   double sm2,sm1,cm2,cm1,w,ar[3],ai[3],temp;
        sm2 = xsm2.Data[idx];
        sm1 = xsm1.Data[idx];
        cm2 = xcm2.Data[idx];
        cm1 = xcm1.Data[idx];
        w   = xw.Data[idx];

        for ( i=0; i < FFTSize; i += BlockSize )
        {
            ar[2] = cm2;
            ar[1] = cm1;

            ai[2] = sm2;
            ai[1] = sm1;

            for ( j=i, n=0; n < BlockEnd; j++, n++ )
            {
                ar[0] = w*ar[1] - ar[2];
                ar[2] = ar[1];
                ar[1] = ar[0];

                ai[0] = w*ai[1] - ai[2];
                ai[2] = ai[1];
                ai[1] = ai[0];

                k = j + BlockEnd;
                tr = ar[0]*Real.Data[k] - ai[0]*Imag.Data[k];
                ti = ar[0]*Imag.Data[k] + ai[0]*Real.Data[k];

                Real.Data[k] = Real.Data[j] - tr;
                Imag.Data[k] = Imag.Data[j] - ti;

                Real.Data[j] += tr;
                Imag.Data[j] += ti;
            }
        }
        BlockEnd = BlockSize;
    }

    if(InvertFlag)
    {
        double denom = (double)FFTSize;
        for(i=0; i        {
            Real.Data[i] /= denom;
            Imag.Data[i] /= denom;
        }
    }

    if(ReplaceFlag)
    {
        for(i=0; i        {
            rData[i] = Real.Data[i];
            iData[i] = Imag.Data[i];
        }
    }
}






The Signal Processing Forum will coming soon.








 

Create Date : 15 ÁԶعÒ¹ 2552
2 comments
Last Update : 17 ÁԶعÒ¹ 2552 16:56:24 ¹.
Counter : 898 Pageviews.

 

¢ÍÃѺä»ÅͧÈÖ¡ÉҴٹФÃѺ

 

â´Â: EDENAS 17 ÁԶعÒ¹ 2552 17:53:10 ¹.  

 

ÊØ´ÂÍ´¤ÃѺ¾ÕèµÔ

 

â´Â: µêÍ¡ IP: 61.7.171.5 19 ÁԶعÒ¹ 2552 19:03:14 ¹.  

ª×èÍ :
Comment :
  *ãªé code html µ¡áµè§¢éͤÇÒÁä´é੾ÒÐÊÁÒªÔ¡
 


TheInsight
Location :


[´Ù Profile ·Ñé§ËÁ´]

½Ò¡¢éͤÇÒÁËÅѧäÁ¤ì
Rss Feed
Smember
¼ÙéµÔ´µÒÁºÅçÍ¡ : 3 ¤¹ [?]




Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.