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

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

?? fft16x16t_main.c

?? ccs下編寫的fft變換
?? C
字號:
/* ======================================================================== */
/*  TEXAS INSTRUMENTS, INC.                                                 */
/*                                                                          */
/*  DSPLIB Application Note Example (DSP_fft16x16t)                         */
/*                                                                          */
/*      Release:        Version 1.0                                         */
/*                                                                          */
/*  This file contains proprietary intellectual property of Texas           */
/*  Instruments, Inc.  Its source and binary codes are protected by         */
/*  various copyrights, and portions may also be protected by patents or    */
/*  other legal protections.                                                */
/*                                                                          */
/* ------------------------------------------------------------------------ */
/*          Copyright (C) 2003 Texas Instruments, Incorporated.             */
/*                          All Rights Reserved.                            */
/* ======================================================================== */

#include <stdio.h>
#include <stdlib.h>
#include <csl.h>
#include <csl_timer.h>
#include <math.h>

/* ======================================================================== */
/* Include the DSPLIB header file                                           */
/* ======================================================================== */
#include "dsp_fft16x16t.h"

/* ======================================================================== */
/* Macro definition                                                         */
/* ======================================================================== */
#define PI  (3.141592654)
#define NN  (512)

/* ======================================================================== */
/* Input and output arrays                                                  */
/* ======================================================================== */
#pragma DATA_ALIGN(x, 8)     
#pragma DATA_ALIGN(y, 8)
#pragma DATA_ALIGN(w, 8)
short x[2*NN];           
short w[2*NN];           
short y[2*NN];           
short xx[2*NN];          
int process;
/* ======================================================================== */
/*  D2S -- Truncate a 'double' to a 'short', with clamping.                 */
/* ======================================================================== */
static short d2s(double d)
{
    if (d >=  32767.0) return  32767;
    if (d <= -32768.0) return -32768;
    return (short)d;
}

/* ======================================================================== */
/*  GEN_TWIDDLE -- Generate twiddle factors for fft16x16t().                */
/*                                                                          */
/*  USAGE                                                                   */
/*      This routine is called as follows:                                  */
/*                                                                          */
/*          int gen_twiddle_fft16x16t(short *w, int n, double scale)        */
/*                                                                          */
/*          short  *w     Pointer to twiddle-factor array                   */
/*          int    n      Size of FFT                                       */
/*          double scale  Scale factor to apply to values.                  */
/*                                                                          */
/*      The routine will generate the twiddle-factors directly into the     */
/*      array you specify.  The array needs to be approximately 2*N         */
/*      elements long.  (The actual size, which is slightly smaller, is     */
/*      returned by the function.)                                          */
/* ======================================================================== */
int gen_twiddle_fft16x16t(short *w, int n, double scale)
{
    int i, j, k;

    for (j = 1, k = 0; j < n >> 2; j = j << 2)
    {
        for (i = 0; i < n >> 2; i += j << 1)
        {
            w[k + 11] = d2s(scale * cos(6.0 * PI * (i + j) / n));
            w[k + 10] = d2s(scale * sin(6.0 * PI * (i + j) / n));
            w[k +  9] = d2s(scale * cos(6.0 * PI * (i    ) / n));
            w[k +  8] = d2s(scale * sin(6.0 * PI * (i    ) / n));

            w[k +  7] = d2s(scale * cos(4.0 * PI * (i + j) / n));
            w[k +  6] = d2s(scale * sin(4.0 * PI * (i + j) / n));
            w[k +  5] = d2s(scale * cos(4.0 * PI * (i    ) / n));
            w[k +  4] = d2s(scale * sin(4.0 * PI * (i    ) / n));

            w[k +  3] = d2s(scale * cos(2.0 * PI * (i + j) / n));
            w[k +  2] = d2s(scale * sin(2.0 * PI * (i + j) / n));
            w[k +  1] = d2s(scale * cos(2.0 * PI * (i    ) / n));
            w[k +  0] = d2s(scale * sin(2.0 * PI * (i    ) / n));

            k += 12;
        }
    }

    return k;
}

/* ======================================================================== */
/*  NAME                                                                    */
/*     main                                                                 */
/*                                                                          */
/*  RIVISION HISTORY                                                        */
/*     30-Jun-2002 Initial revision                                         */
/*     31-Dec-2002 Improved benchmarking                                    */
/*                                                                          */
/*  USAGE                                                                   */
/*     void main ();                                                        */
/*     This program is to show how to use DSP_fft16x16t()                   */
/*     when data are in L2SRAM.                                             */
/*                                                                          */
/*  DESCRIPTION                                                             */
/*     First, function call overhead for timer functions is measured.       */
/*     Then, the execution cycles for the target function is measured.      */
/*     Finally, the timer function call overhead is excluded from the       */
/*     execution cycles measured.                                           */
/*     The cycle count measured will include L1P/D miss overhead as well as */
/*     function call overhead.                                              */
/*                                                                          */
/*  ASSUMPTIONS                                                             */
/*     The benchmarking code assumes C64x, e.g., 1 count = 8 CPU cycles.    */
/*                                                                          */
/* ------------------------------------------------------------------------ */
/*            Copyright (c) 2003 Texas Instruments, Incorporated.           */
/*                           All Rights Reserved.                           */
/* ======================================================================== */

void main(void)
{
    int i; 
    short F1 = 10, F2 = 40;          /* Input frequencies                   */
    int start, stop, overhead, diff;
    TIMER_Handle hTimer;

    /* ==================================================================== */
    /* Initialize Chip Support Library                                      */
    /* ==================================================================== */
    CSL_init();

    /* ==================================================================== */
    /* Generate Q.15 input data                                             */
    /* ==================================================================== */
    for(i=0; i<NN; i++) 
    {
        xx[2*i] = x[2*i] = 32767./(2*NN) * (sin(2*PI*F2*i/NN) 
                           + sin(2*PI*F1*i/NN) ); 
        xx[2*i+1] = x[2*i+1] = 0;  
    }

    /* ==================================================================== */
    /* Generate twiddle factors                                             */
    /* ==================================================================== */
	gen_twiddle_fft16x16t(w, NN, 32767.);

    /* ==================================================================== */
    /* Configure a timer.                                                   */
    /* ==================================================================== */
    hTimer = TIMER_open(TIMER_DEVANY,0);   
    TIMER_configArgs(hTimer, 0x000002C0, 0xFFFFFFFF, 0x00000000);
  
    /* ==================================================================== */
    /*  Compute the overhead of calling the timer.                          */
    /* ==================================================================== */
    start = TIMER_getCount(hTimer); /* called twice to avoid L1D miss.      */
    start = TIMER_getCount(hTimer);        
    stop  = TIMER_getCount(hTimer);        
    overhead = stop - start;
    
    /* ==================================================================== */
    /* Measure the time                                                     */
    /* ==================================================================== */
    start = TIMER_getCount(hTimer);        
    DSP_fft16x16t(w, NN, x, y);            
  process=0;
 for(i=0;i<NN;i++)
  {
   int temp;
   temp= sqrt(y[2*i]*y[2*i]+y[2*i+1]*y[2*i+1]);
   process=process+temp*log(temp);
  }
    diff = TIMER_getCount(hTimer) - start - overhead; 
    /* ==================================================================== */
    /* Print the result                                                     */
    /* ==================================================================== */
    printf("Total cycles including L1P/D miss overhead = %d\n", diff*8);
    printf("Check the result with the Graph menu.\n"
           "* Input\n"
           "Start address: xx\n"
		   "Acquisition buffer size: 512\n"
           "Index increment: 2\n"
           "Display data size: 512\n"
           "DSP data type: 16-bit signed integer\n"
           "* Output\n"
           "Start address: y\n"
           "Acquisition buffer size: 1024\n"
           "Index increment: 1\n"
           "Display data size: 1024\n"
           "DSP data type: 16-bit signed integer\n" );

    TIMER_close(hTimer);
}

/* ======================================================================== */
/*  End of file: fft16x16t_main.c                                           */
/* ======================================================================== */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区免费视频| 亚洲日本一区二区| 中文字幕一区二区三区在线播放 | 麻豆精品一区二区av白丝在线| 亚洲一区二区不卡免费| 久久久久久久久97黄色工厂| ...xxx性欧美| 亚洲 欧美综合在线网络| 国产不卡一区视频| 日韩三级av在线播放| 亚洲精品久久久蜜桃| 国产精品一区二区黑丝| 91精品一区二区三区在线观看| **欧美大码日韩| 国产成人综合精品三级| 欧美一卡2卡三卡4卡5免费| 一二三四社区欧美黄| 成人午夜激情在线| 久久亚洲精华国产精华液| 日日夜夜精品视频天天综合网| 99这里只有久久精品视频| 久久久高清一区二区三区| 另类小说欧美激情| 91精品国产麻豆| 日韩精品一级二级 | 欧美mv和日韩mv国产网站| 亚洲欧洲综合另类在线| 成人一区二区在线观看| 欧美v日韩v国产v| 久久超碰97中文字幕| 日韩亚洲欧美中文三级| 青青草国产成人99久久| 日韩午夜激情视频| 蜜臀av一级做a爰片久久| 欧美乱熟臀69xxxxxx| 午夜av一区二区三区| 7777精品伊人久久久大香线蕉的| 亚洲r级在线视频| 欧美精品电影在线播放| 日韩av一区二| 精品精品国产高清一毛片一天堂| 精品中文av资源站在线观看| 久久色.com| 成人av电影免费观看| 亚洲美女在线国产| 91精品欧美一区二区三区综合在 | 蜜臀久久久99精品久久久久久| 欧美日韩一区二区三区视频| 亚洲线精品一区二区三区八戒| 欧美午夜理伦三级在线观看| 偷拍日韩校园综合在线| 日韩欧美二区三区| 国产成人福利片| 亚洲黄色av一区| 日韩一区二区麻豆国产| 粉嫩av一区二区三区在线播放| 亚洲欧洲精品天堂一级| 欧美日韩亚洲另类| 韩国在线一区二区| 亚洲人成人一区二区在线观看| 欧美精品一二三区| 国产麻豆欧美日韩一区| 亚洲激情中文1区| 日韩精品最新网址| 天天操天天色综合| 91麻豆国产香蕉久久精品| 51精品久久久久久久蜜臀| 国产一区二区女| 亚洲伦理在线精品| 精品乱人伦小说| 色婷婷av一区二区三区gif| 免费一级片91| 中文字幕日本乱码精品影院| 777午夜精品免费视频| 高清在线成人网| 日本欧美大码aⅴ在线播放| 日本一区二区三区国色天香| 欧美久久久久久久久| 成人免费毛片嘿嘿连载视频| 日韩精品一级中文字幕精品视频免费观看 | 色综合久久天天综合网| 无码av免费一区二区三区试看| 欧美一区二区三区视频在线观看| 亚洲国产日韩精品| 久久精品在这里| 欧美群妇大交群中文字幕| 国产不卡视频在线播放| 蜜臀久久久久久久| 亚洲一区二区三区四区的| 日本一区二区视频在线| 国产在线精品免费av| 夜夜嗨av一区二区三区| 国产一区二区三区最好精华液| 玉米视频成人免费看| 久久久久久久久久久电影| 7777女厕盗摄久久久| 欧日韩精品视频| 99精品视频在线观看免费| 韩国精品在线观看| 喷水一区二区三区| 国产精品久久久久久久久免费丝袜 | 一区二区久久久久久| 亚洲午夜免费视频| 青青青伊人色综合久久| 激情深爱一区二区| 成人18视频在线播放| 欧美色成人综合| 精品国产91亚洲一区二区三区婷婷| 国产日韩欧美一区二区三区综合| 综合久久给合久久狠狠狠97色| 夜色激情一区二区| 精品亚洲国内自在自线福利| 不卡的av电影| 日韩一区二区在线播放| 欧美激情一区二区三区不卡| 亚洲图片一区二区| 国产一区 二区| 欧美日韩一区三区四区| 欧美精彩视频一区二区三区| 亚洲五月六月丁香激情| 国产精品456露脸| 一区二区三区中文字幕在线观看| 久久精品国产77777蜜臀| 国产精品99久久久| 日日夜夜一区二区| 国产精品影视网| 欧美体内she精高潮| 精品福利视频一区二区三区| 一区二区三区中文字幕| 精品亚洲免费视频| 欧美日韩国产首页| 亚洲国产岛国毛片在线| 日韩中文字幕1| 99久久国产综合色|国产精品| 日韩区在线观看| 亚洲午夜精品在线| 成人精品高清在线| 久久先锋影音av| 日韩av一区二| 精品视频一区三区九区| 亚洲图片你懂的| 国产精品亚洲人在线观看| 欧美一区二区三级| 一个色综合av| 91论坛在线播放| 国产精品私房写真福利视频| 久久精品国产亚洲aⅴ| 欧美性欧美巨大黑白大战| 国产精品福利电影一区二区三区四区| 麻豆精品久久精品色综合| 欧美日韩一区二区电影| 亚洲人成网站在线| 99视频有精品| 国产精品福利影院| 欧美日韩黄色影视| 亚洲精品久久7777| 色诱亚洲精品久久久久久| 国产精品少妇自拍| 成人一级片在线观看| 久久九九99视频| 国产69精品久久99不卡| 久久一区二区视频| 国产精品一区二区久久精品爱涩| 久久色成人在线| 成人综合婷婷国产精品久久免费| 久久久久免费观看| 国产精品系列在线播放| 久久综合狠狠综合| 国产福利精品一区二区| 国产视频一区二区三区在线观看| 国产电影精品久久禁18| 国产欧美一区二区三区网站| 福利一区在线观看| 最新不卡av在线| 在线视频国内自拍亚洲视频| 夜色激情一区二区| 91精品国产福利| 狠狠久久亚洲欧美| 国产精品热久久久久夜色精品三区 | 欧美精品三级在线观看| 亚洲国产成人高清精品| 91麻豆精品国产自产在线 | 精品一区二区在线看| 久久久青草青青国产亚洲免观| 国产一区二区三区视频在线播放| 国产清纯白嫩初高生在线观看91 | 免费观看日韩电影| 精品久久久久久久久久久院品网 | 欧美日本在线视频| 蜜臀av国产精品久久久久| 久久网这里都是精品| 97se狠狠狠综合亚洲狠狠| 亚洲成在人线免费| 欧美成人精精品一区二区频| 国产99精品视频| 亚洲女女做受ⅹxx高潮| 911精品国产一区二区在线| 精品一区二区三区在线播放| 国产精品乱码久久久久久| 欧美日韩一区二区三区在线 |