亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fftbench.c

?? fft 實現混合基
?? C
字號:

/************************************************************************
  fftbench
 ------------------------------------------------------------------------
  Function:
      The FFT routine under test is characterized in terms of speed and
      accuracy. The routine is tested at different FFT lengths and the
      test results are saved in the file FFTBENCH.TXT.
      
      The FFT benchmark program is distributed with the mixed radix FFT
      routine. If you want to test another FFT routine, you probably anly
      have to modify the make file, the FFT routine declaration and the 
      fftio routine below.
 ------------------------------------------------------------------------
  Compile options:
      The huge memory model is used.
 ------------------------------------------------------------------------
  Benchmarks:                   
      As an example the mixed radix FFT routine was tested and the 
      results are shown below. The Microsoft Visual C++ compiler was used 
      with the following compile options:
      /nologo /Gs /G2 /W4 /AH /Ox /D "NDEBUG" /D "_DOS" /FR
      and the test executed on a 50MHz 486DX :
      
      Length  Time [s]  Accuracy [dB]

         128   0.0054     -314.8   
         256   0.0116     -309.8   
         512   0.0251     -290.8   
        1024   0.0567     -313.6   
        2048   0.1203     -306.4   
        4096   0.2600     -291.8   
        8192   0.5800     -305.1   
         100   0.0040     -278.5   
         200   0.0099     -280.3   
         500   0.0256     -278.5   
        1000   0.0540     -278.5   
        2000   0.1294     -280.6   
        5000   0.3300     -278.4   
       10000   0.7133     -278.5   
 ------------------------------------------------------------------------
  Author:
      Jens Joergen Nielsen            For non-commercial use only.
      Bakkehusene 54                  A $100 fee must be paid if used
      DK-2970 Hoersholm               commercially. Please contact.
      DENMARK

      E-mail : jjn@get2net.dk   All rights reserved. October 2000.
      Homepage : http://home.get2net.dk/jjn
*************************************************************************/

#include <math.h>
#include <float.h>
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <time.h>
#include <sys\timeb.h>

#define  maxIndex  10000L


/* Declaration of FFT routine under test.
 */
void fft(int n,double are[],double aim[],double bre[],double bim[]);

/* The purpose of this routine, which is called from the benchmark  
 * program, is to convert between the data formats used in the      
 * benchmark routine and the formats used in the FFT routine under  
 * test.                                                            
 */
int fftio(long n,double are[],double aim[],double bre[],double bim[])
{
    fft((int)n, are, aim, bre, bim);
    return(0);
}

/* Calculate time in seconds from start. Resolution 1/1000 second.
 */
double timeUsed(struct _timeb *start)
{                               
    double seconds;
    struct _timeb   finish;

    _ftime(&finish);
    seconds = (double) finish.millitm;
    seconds = seconds - start->millitm;
    seconds = seconds / 1000;
    seconds = seconds + finish.time - start->time;
    
    return(seconds);
}


/* Measure the time taken to perform an FFT. The test signal is a 
 * linear sweep from 0 to fs/2. At least 2 seconds of test time is
 * used and output is the average time for one FFT in seconds.
 */
double fftTime(long fftLength, 
               double xre[], double xim[], double yre[], double yim[])
{
    long            i, k, n, m, q;  
    double          w, pi;
    double          elapsed_time;
    struct _timeb   start;
                             
    n = fftLength;                             
    pi = 4 * atan(1); 
    k  = 1;
    w  = k*pi/n/n;
    for (i=0; i<n; i++) {
        xre[i] = cos(i*i*w);
        xim[i] = sin(i*i*w);
    }                    
    
    m = 0;
    q = 1;            
    _ftime(&start);
    while (timeUsed(&start) < 2.0)
    {
        for (i=0; i<q; i++)
            fftio(n, xre, xim, yre, yim);
        m = m + q;
        q = q + q;
    }
    elapsed_time = timeUsed(&start)/(double)m;
    return(elapsed_time);
}

/* Measure the difference between the theoretical FFT output and the
 * actual FFT output. The power leak is measured in terms of error 
 * to signal power ratio. The value is returned in dB.
 */
double fftLeak(long fftLength, 
               double xre[], double xim[], double yre[], double yim[])
{
    long            i, k, n;  
    double          w, pi;
    double          sqr, sqrsum, sqrmax;
                             
    n = fftLength;                             
    pi = 4 * atan(1); 
    k = 3;
    w = 2*k*pi/n;
    for (i=0; i<n; i++) {
        xre[i] = cos(i*w);
        xim[i] = sin(i*w);
    }                    
                     
    fftio(n, xre, xim, yre, yim);

    sqrsum = (yre[k]-n)*(yre[k]-n) + yim[k]*yim[k];
    sqrmax = 0;         
    for (i=0; i<n; i++)
        if (i != k)
        {
            sqr = yre[i]*yre[i] + yim[i]*yim[i];
            sqrsum = sqrsum + sqr;
            if (sqr > sqrmax) sqrmax = sqr;
        }
    sqrsum = sqrsum/n;    /* division by n*n in two stages to avoid */
    sqrsum = sqrsum/n;    /* integer overflow !!!!                  */
    sqrmax = sqrmax/n;
    sqrmax = sqrmax/n;
             
    if (sqrsum > 0)
        sqrsum = 10*log10(sqrsum);
    else                                
        sqrsum = -1000;
    if (sqrmax > 0)
        sqrmax = 10*log10(sqrmax);
    else
        sqrmax = -1000;
        
    return(sqrsum);
}

/* FFT benchmark main program.
 */
void main()
{                
    double          t, p;
    long            i, n;
    long            nmax, nfft[100];  

    double   *are, *aim, *bre, *bim;             
    
    FILE *txtFile;

    are = (double  *) calloc(maxIndex, sizeof(double));                        
    aim = (double  *) calloc(maxIndex, sizeof(double));                        
    bre = (double  *) calloc(maxIndex, sizeof(double));
    bim = (double  *) calloc(maxIndex, sizeof(double));

    if( bim == NULL )
    {
       printf( "Insufficient memory available\n" );
       exit(2);
    }                 
      
    printf("\nFFT Benchmark Test");        
    txtFile = fopen("fftbench.txt", "w");
    fprintf(txtFile,"\nResults from FFT benchmark test:");
    fprintf(txtFile,"\n\nLength  Time [s]  Accuracy [dB]\n");
              
    do {        
        printf("\n\n");
        printf("(0)  End FFT benchmark test.\n");
        printf("(1)  FFT lengths : 128, 256, 512, ... , 8192.\n");
        printf("(2)  FFT lengths : 100, 200, 500, ... , 10000.\n");
        printf("(3)  User selectable FFT length.\n\n");
        printf("Enter selection, 0-3 : ");
        scanf( "%ld", &n );
        nmax = 0;
        switch(n) {
            case 0 : nmax = 0; break;
            case 1 : 
                nmax = 7;
                nfft[0]  =  128;
                nfft[1]  =  256;
                nfft[2]  =  512;
                nfft[3]  = 1024;
                nfft[4]  = 2048;
                nfft[5]  = 4096;
                nfft[6]  = 8192;
                break;
            case 2 : 
                nmax = 7;
                nfft[0]  =   100;
                nfft[1]  =   200;
                nfft[2]  =   500;
                nfft[3]  =  1000;
                nfft[4]  =  2000;
                nfft[5]  =  5000;
                nfft[6]  = 10000;
                break;
            case 3 : 
                printf(     "\nEnter FFT length, N<=%5ld, maxPrime <= 37     : ", maxIndex);
                scanf( "%ld", &n );
                if ((n > 0) && (n <= maxIndex)) {
                    nfft[0] = n;
                    nmax = 1;
                }
                break;
        }
                
        for (i=0; i<nmax; i++) {
            t = fftTime( nfft[i], are, aim, bre, bim);
            p = fftLeak( nfft[i], are, aim, bre, bim);
            printf(         "\n %5ld %8.4f s %8.1f dB", nfft[i], t, p);
            fprintf(txtFile,"\n %5ld %8.4f   %8.1f   ", nfft[i], t, p);
        }                    
    } while(n > 0);

    fclose(txtFile);   

    free(bim);
    free(bre);
    free(aim);
    free(are);
    printf("\n");
    printf("\nFFT test terminated.");
    printf("\nCopyright 2000, Jens Joergen Nielsen, jjn@get2net.dk.");
    printf("\n");
    
 }



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91精品免费| 日韩一区二区麻豆国产| 欧美日韩国产首页| 久久久久九九视频| 亚洲午夜精品在线| 99久久国产综合精品女不卡| 精品国产1区二区| 婷婷久久综合九色综合伊人色| 成人精品国产免费网站| 日韩精品一区二区三区视频播放| 亚洲乱码中文字幕综合| 国产精品资源在线观看| 日韩一区二区视频在线观看| 夜夜嗨av一区二区三区中文字幕| 国产91精品一区二区麻豆网站| 日韩午夜电影在线观看| 亚洲高清不卡在线| 在线观看一区二区精品视频| 中文字幕视频一区二区三区久| 国产高清久久久| 精品国精品自拍自在线| 奇米亚洲午夜久久精品| 91精品欧美福利在线观看| 亚洲免费观看高清完整版在线观看| 国产成人夜色高潮福利影视| 精品国产凹凸成av人导航| 麻豆91精品91久久久的内涵| 日韩欧美精品三级| 蜜桃免费网站一区二区三区| 欧美一卡在线观看| 久久精品国产亚洲aⅴ| 日韩欧美一级二级三级久久久| 日韩激情中文字幕| 欧美一三区三区四区免费在线看 | 国产精品女同一区二区三区| 国产一区二区在线影院| 久久综合久久综合久久| 国产成人在线视频免费播放| 国产日韩精品久久久| 成人免费高清在线观看| 中文字幕亚洲不卡| 在线亚洲精品福利网址导航| 亚洲国产另类精品专区| 欧美视频一区二区在线观看| 视频一区中文字幕国产| 2023国产精品| av电影天堂一区二区在线| 中文字幕一区二| 91国偷自产一区二区使用方法| 一区二区在线看| 欧美人妖巨大在线| 麻豆传媒一区二区三区| 亚洲国产成人在线| 在线日韩av片| 六月丁香婷婷久久| 中文字幕一区二区三区四区不卡| 在线观看网站黄不卡| 蜜桃精品视频在线| 久久久99精品久久| 在线视频国内自拍亚洲视频| 蜜臀av国产精品久久久久| 日本一区二区综合亚洲| 在线视频欧美精品| 狠狠色丁香久久婷婷综合_中| 国产精品久久久久一区| 欧美理论片在线| 国产成人一级电影| 亚洲国产日日夜夜| 欧美激情在线看| 欧美亚洲国产一区在线观看网站| 麻豆91在线播放| 亚洲视频每日更新| 欧美精品一区二区三区四区| 99re这里只有精品视频首页| 日韩高清欧美激情| 中文字幕一区视频| 欧美va在线播放| 91免费版pro下载短视频| 日本视频免费一区| 亚洲视频小说图片| 国产亚洲一区二区在线观看| 欧美日韩免费一区二区三区视频| 国产精品一区三区| 日本午夜一本久久久综合| 亚洲欧洲综合另类在线| 久久久亚洲欧洲日产国码αv| 欧美欧美午夜aⅴ在线观看| 97精品久久久午夜一区二区三区 | 欧美丰满美乳xxx高潮www| 国产99久久久国产精品| 日本视频一区二区| 亚洲一二三四在线观看| 国产亚洲女人久久久久毛片| 69堂国产成人免费视频| 在线观看www91| 不卡的电影网站| 国产精品一区二区无线| 久久91精品国产91久久小草| 图片区小说区国产精品视频| 亚洲日本免费电影| 日本一区二区视频在线观看| 欧美v国产在线一区二区三区| 6080日韩午夜伦伦午夜伦| 色综合久久综合网| 成人h版在线观看| 成人午夜电影小说| 国产精品系列在线播放| 国产精品亚洲一区二区三区在线| 老司机一区二区| 精品一区二区三区免费| 精品一区二区免费视频| 久久99精品一区二区三区三区| 日韩精品一级中文字幕精品视频免费观看| 亚洲免费av在线| 亚洲一区二区三区自拍| 亚洲视频每日更新| 亚洲激情中文1区| 亚洲国产精品久久人人爱| 亚洲国产一区二区视频| 亚洲va欧美va人人爽午夜| 亚洲高清免费在线| 蜜臀av亚洲一区中文字幕| 激情六月婷婷久久| 国产成人精品一区二区三区网站观看| 国产一区福利在线| 国产乱码精品一区二区三| 北岛玲一区二区三区四区| 99免费精品在线| 日本道精品一区二区三区| 欧美精品1区2区3区| 欧美大度的电影原声| 国产精品国产三级国产普通话蜜臀 | 欧美日韩国产高清一区二区三区 | 香蕉成人伊视频在线观看| 舔着乳尖日韩一区| 日本成人超碰在线观看| 免费在线观看日韩欧美| 国产精品夜夜爽| 91麻豆国产香蕉久久精品| 777色狠狠一区二区三区| 精品国产凹凸成av人导航| 国产精品久久久久久久久动漫| 亚洲精品乱码久久久久久久久| 日韩av电影天堂| 国产成人精品免费一区二区| 91成人在线观看喷潮| 日韩一区二区免费电影| 中文字幕一区三区| 日本欧美韩国一区三区| 国产成人午夜电影网| 日本高清成人免费播放| 欧美性做爰猛烈叫床潮| 久久只精品国产| 亚洲国产综合人成综合网站| 国产精品1区2区| 日韩精品一区二区三区在线观看| 中文字幕免费在线观看视频一区| 亚洲午夜视频在线观看| 国产成人综合精品三级| 欧美视频一区二区三区四区| 欧美极品美女视频| 免费在线看一区| 欧美中文字幕久久| 国产日韩影视精品| 日韩一区精品字幕| 91丨porny丨在线| 日本一区二区三区视频视频| 日本中文字幕一区二区有限公司| 91一区在线观看| 国产日韩av一区二区| 日本va欧美va精品| 色婷婷国产精品| 亚洲国产成人午夜在线一区| 蜜臀久久99精品久久久久久9 | 国产99久久久国产精品免费看| 欧美日韩一区二区欧美激情 | 国产盗摄精品一区二区三区在线 | 久久亚洲精精品中文字幕早川悠里| 亚洲天堂免费看| 国产在线麻豆精品观看| 欧美人伦禁忌dvd放荡欲情| 亚洲色图视频网站| 国产麻豆成人传媒免费观看| 日韩一区二区在线观看视频| 亚洲国产中文字幕| 日本韩国欧美一区二区三区| 亚洲国产岛国毛片在线| 国产高清精品久久久久| 精品国产凹凸成av人导航| 久热成人在线视频| 欧美一级理论片| 青草国产精品久久久久久| 欧美日免费三级在线| 亚洲图片欧美视频| 欧美三区免费完整视频在线观看| 一区二区视频免费在线观看| 91视视频在线直接观看在线看网页在线看| 国产日韩成人精品| 成人免费视频视频在线观看免费| 久久精品欧美一区二区三区麻豆|