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

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

?? fastconvodemo.c

?? DSP原理及其C編程開發技術相關代碼
?? C
字號:
//fastconvosim.c Overlap-add fast convolution demonstration program
//Uses FFT function from C31 DSK book. Not real-time, and therefore
//does not need McBSP I/O. Run with breakpoints inserted as indicated
//in source file and view graphs of

// start     acquisition   display    index      DSP
// address   buffer size   data size  increment  data type

// h         512           256        2          32-bit float
// samples   512           256        2          32-bit float
// iobuffer  128           128        1          32-bit float
// overlap   128           128        1          32-bit float

#include <c6x.h>
#include <math.h>
#include <stdio.h>
#include "coeffs.h"               //time domain FIR filter coefficients
#define PTS 256                   //number of points used in FFT
 
struct cmpx                       //complex data structure used by FFT
    {
    float real;
    float imag;
    };
typedef struct cmpx COMPLEX;
#define PI 3.14159265358979
short poweroftwo[] = {1,2,4,8,16,32,64,128,256,512,1024};  
short buffercount = 0;            //number of new input samples in iobuffer 
float iobuffer[PTS/2];            //primary input/output buffer
COMPLEX samples[PTS];             //primary working buffer used by FFT
float overlap[PTS/2];             //intermediate result buffer
COMPLEX w[PTS];                   //twiddle factors stored in w
COMPLEX h[PTS];                   //freq domain filter coeffs stored in h
short i;                          //general purpose index variable 
float a,b;                        //variables used in complex multiply
short NUMCOEFFS = sizeof(coeffs)/sizeof(float);

void FFT(COMPLEX *Y, int N)       //input sample array, # of points
{
  COMPLEX temp1,temp2;            //temporary storage variables
  int i,j,k;                      //loop counter variables
  int upper_leg, lower_leg;       //index of upper/lower butterfly leg
  int leg_diff;                   //difference between upper/lower leg
  int num_stages=0;               //number of FFT stages, or iterations
  int index, step;                //index and step between twiddle factor
  i=1;                            //log(base 2) of # of points = # of stages
  do
  {
    num_stages+=1;
    i=i*2;
  } while (i!=N);

  leg_diff=N/2;                   //starting difference between upper & lower legs
  step=512/N;                     //step between values in twiddle.h              
  for (i=0;i<num_stages;i++)      //for N-point FFT                 
  {
    index=0;
    for (j=0;j<leg_diff;j++)
    {
      for (upper_leg=j;upper_leg<N;upper_leg+=(2*leg_diff))
      {
        lower_leg=upper_leg+leg_diff;
        temp1.real=(Y[upper_leg]).real + (Y[lower_leg]).real;
        temp1.imag=(Y[upper_leg]).imag + (Y[lower_leg]).imag;
        temp2.real=(Y[upper_leg]).real - (Y[lower_leg]).real;
        temp2.imag=(Y[upper_leg]).imag - (Y[lower_leg]).imag;
        (Y[lower_leg]).real=temp2.real*(w[index]).real-temp2.imag*(w[index]).imag;
        (Y[lower_leg]).imag=temp2.real*(w[index]).imag+temp2.imag*(w[index]).real;
        (Y[upper_leg]).real=temp1.real;
        (Y[upper_leg]).imag=temp1.imag;
      }
      index+=step;
    }
    leg_diff=leg_diff/2;
    step*=2;
  }
  j=0;
  for (i=1;i<(N-1);i++)           //bit reversal for resequencing data*/
  {
    k=N/2;
    while (k<=j)
    {
      j=j-k;
      k=k/2;
    }
    j=j+k;
    if (i<j)
    {
      temp1.real=(Y[j]).real;
      temp1.imag=(Y[j]).imag;
      (Y[j]).real=(Y[i]).real;
      (Y[j]).imag=(Y[i]).imag;
      (Y[i]).real=temp1.real;
      (Y[i]).imag=temp1.imag;
    }
  }
  return;
}                                 //end of FFT()

     
main()
{

  for (i=0 ; i<PTS ; i++)         //set up twiddle factors in array w
  {
    w[i].real = cos(PI*(i)/PTS);
    w[i].imag = -sin(PI*(i)/PTS);
  }
printf("twiddle factors set up ...\n");
printf("\n");                     //insert breakpoint
  for (i=0 ; i<PTS ; i++)         //set up complex time domain filter coeffs
  {
    h[i].real = 0.0;
    h[i].imag = 0.0;
  }
  for (i=0 ; i<NUMCOEFFS ; i++)
  {
    h[i].real = coeffs[i];
  }
printf("time-domain filter coefficients loaded into h ...\n");
printf("\n");                     //insert breakpoint 
  FFT(h,PTS);                     //transform filter coeffs to freq domain 
printf("and transformed to frequency domain\n");
printf("\n");                     //insert breakpoint
  for (i=0 ; i<PTS/2 ; i++)
    {
    samples[i+PTS/2].real = 0.0;
    overlap[i] = 0.0; 
    }
 for (i=0 ; i<PTS/2 ; i++)        //initialise iobuffer contents
    {
    iobuffer[i] = (float)(cos(2*PI*i/110)) + 0.25*cos(2*PI*i/3); 
    }
printf("iobuffer filled\n");
printf("\n");                     //insert breakpoint
  for (i=0 ; i<PTS/2 ; i++)
    {
    samples[i].real = iobuffer[i];
    }
  for (i=0 ; i<PTS/2 ; i++)
    {
   overlap[i] = samples[i+PTS/2].real;
    samples[i+PTS/2].real = 0.0;
    }
  for (i=0 ; i<PTS ; i++)
    {
    samples[i].imag = 0.0;
    }
printf("iobuffer contents copied to samples ...\n");
printf("\n");                     //insert breakpoint
  FFT(samples,PTS);
printf("and converted to frequency domain\n");
printf("\n");                     //insert breakpoint
  for (i=0 ; i<PTS ; i++)
    {
    a = samples[i].real;
    b = samples[i].imag;
    samples[i].real = h[i].real*a - h[i].imag*b;
    samples[i].imag = h[i].real*b + h[i].imag*a;
    }
printf("samples multiplied by filter coefficients\n");
printf("\n");                     //insert breakpoint
    for (i=0 ; i<PTS ; i++)       //inverse transform samples back to time domain
    {
      samples[i].imag = -samples[i].imag;
    }
    FFT(samples,PTS);
    for (i=0 ; i<PTS ; i++)
    {
      samples[i].real = samples[i].real/PTS;
      samples[i].imag = -samples[i].imag/PTS;
    }
printf("samples transformed back to time domain ...\n");
printf("\n");                     //insert breakpoint
  for (i=0 ; i<PTS/2 ; i++)
    {
    overlap[i] += samples[i].real;
    }
printf("and summed with (overlapping) previous result into overlap\n");
printf("\n");                     //insert breakpoint
  for (i=0 ; i<PTS/2 ; i++)
    {
    iobuffer[i] = (float)(cos(2*PI*(i+(PTS/2))/110)) + 0.25*cos(2*PI*(i+(PTS/2))/3); 
    }
printf("iobuffer filled\n");
printf("\n");                     //insert breakpoint
  for (i=0 ; i<PTS/2 ; i++)
    {
    samples[i].real = iobuffer[i];
    }
  for (i=0 ; i<PTS/2 ; i++)
    {
    overlap[i] = samples[i+PTS/2].real;
    samples[i+PTS/2].real = 0.0;
    }
  for (i=0 ; i<PTS ; i++)
    {
    samples[i].imag = 0.0;
    }
printf("iobuffer contents copied to samples ...\n");
printf("\n");                     //insert breakpoint
  FFT(samples,PTS);
printf("and converted to frequency domain\n");
printf("\n");                     //insert breakpoint
  for (i=0 ; i<PTS ; i++)
    {
    a = samples[i].real;
    b = samples[i].imag;
    samples[i].real = h[i].real*a - h[i].imag*b;
    samples[i].imag = h[i].real*b + h[i].imag*a;
    }
printf("samples multiplied by filter coefficients\n");
printf("\n");                     //insert breakpoint
    for (i=0 ; i<PTS ; i++)       //inverse transform samples back to time domain
    {
      samples[i].imag = -samples[i].imag;
    }
    FFT(samples,PTS);
    for (i=0 ; i<PTS ; i++)
    {
      samples[i].real = samples[i].real/PTS;
      samples[i].imag = -samples[i].imag/PTS;
    }
printf("samples transformed back to time domain ...\n");
printf("\n");                     //insert breakpoint
  for (i=0 ; i<PTS/2 ; i++)
    {
    overlap[i] += samples[i].real;
    }
printf("and summed with (overlapping) previous result\n");
printf("\n end of program\n");    //insert breakpoint
}                                 //end of main()

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产精品国产专区不蜜| 欧美成人伊人久久综合网| 亚洲女与黑人做爰| 色婷婷久久99综合精品jk白丝| 日韩伦理免费电影| 欧美日韩免费视频| 麻豆国产一区二区| 欧美激情一区二区| 色婷婷亚洲综合| 久久国产精品99久久久久久老狼| 精品剧情在线观看| 不卡一区二区在线| 日韩av不卡一区二区| 国产三级久久久| 欧美日韩一级视频| 国产一区久久久| 亚洲伊人色欲综合网| 精品久久久久久综合日本欧美| www.色综合.com| 免费看欧美女人艹b| 日韩伦理免费电影| 久久久久久一二三区| 日本久久一区二区三区| 国产在线精品一区在线观看麻豆| 最新日韩av在线| 2020国产精品自拍| 欧美日韩亚洲综合一区二区三区| 国产精品一二三四区| 日韩成人精品在线观看| √…a在线天堂一区| 日本一区二区三区免费乱视频| 69精品人人人人| fc2成人免费人成在线观看播放| 日韩成人一区二区| 亚洲mv大片欧洲mv大片精品| 国产精品嫩草影院av蜜臀| 日韩精品资源二区在线| 欧美精品丝袜中出| 91国产精品成人| 色综合一个色综合| 91色porny| 色综合久久久久久久久久久| 成人永久看片免费视频天堂| 蜜桃视频在线观看一区二区| 亚洲国产精品麻豆| 亚洲高清视频在线| 亚洲国产另类av| 午夜精品久久久久久| 洋洋av久久久久久久一区| 亚洲精品高清在线| 亚洲狼人国产精品| 亚洲香肠在线观看| 亚洲国产欧美一区二区三区丁香婷| 一区二区三区在线播| 一区二区三区国产精品| 亚洲一二三四在线观看| 亚洲国产一区视频| 麻豆成人免费电影| 国产精品456露脸| 成人免费三级在线| 在线观看网站黄不卡| 欧美日本在线播放| 欧美精品一区二| 国产精品久久久久久久裸模| 亚洲欧洲av在线| 婷婷国产在线综合| 国产精品99久久久久久久vr| 国产成人免费视频一区| 91在线观看美女| 91精品欧美综合在线观看最新| 日韩免费观看2025年上映的电影| 国产欧美一区二区精品秋霞影院 | www.亚洲精品| 欧美视频你懂的| 久久精品欧美一区二区三区麻豆| 国产精品成人午夜| 男男视频亚洲欧美| 不卡免费追剧大全电视剧网站| 欧美日韩mp4| 中文在线一区二区| 日本不卡视频在线| 日本大香伊一区二区三区| 精品久久国产97色综合| 一区二区理论电影在线观看| 久久精品国产一区二区| 色屁屁一区二区| 2024国产精品视频| 婷婷丁香久久五月婷婷| www.综合网.com| 国产欧美视频一区二区三区| 日韩成人午夜电影| 欧美最猛性xxxxx直播| 国产精品人人做人人爽人人添| 日韩国产欧美三级| 欧美性一级生活| 亚洲日本中文字幕区| 丁香激情综合国产| 久久精品日产第一区二区三区高清版 | 日本网站在线观看一区二区三区 | 国产精品一二三| 日韩欧美一区二区在线视频| 亚洲黄色免费网站| 91女神在线视频| 国产精品福利一区二区三区| 国产精品一区不卡| 久久久蜜桃精品| 国产成人精品亚洲777人妖| 欧美刺激午夜性久久久久久久| 日韩国产成人精品| 91精品麻豆日日躁夜夜躁| 亚洲韩国精品一区| 欧美肥胖老妇做爰| 麻豆精品精品国产自在97香蕉| 日韩一二在线观看| 韩国中文字幕2020精品| 精品不卡在线视频| 成人一区二区在线观看| 国产精品国产三级国产有无不卡 | 91精品国产一区二区三区蜜臀| 亚洲成a人片在线不卡一二三区| 欧美综合欧美视频| 奇米综合一区二区三区精品视频| 91麻豆精品国产91久久久更新时间| 天天色图综合网| 精品久久久久久久一区二区蜜臀| 国产精品99久久久久久久vr| 亚洲国产精品黑人久久久| 色婷婷久久综合| 久久精品噜噜噜成人88aⅴ| 久久久亚洲精品一区二区三区| 92国产精品观看| 偷窥国产亚洲免费视频| 国产亚洲欧美一级| 色噜噜偷拍精品综合在线| 日韩精品免费专区| 国产精品初高中害羞小美女文| 欧美人妇做爰xxxⅹ性高电影| 久久成人麻豆午夜电影| 国产精品伦理一区二区| 91精品国产色综合久久不卡蜜臀| 国产成人精品网址| 免费视频最近日韩| 亚洲美女区一区| 26uuu国产日韩综合| 欧美精品少妇一区二区三区| 成人免费视频播放| 久久精品国产**网站演员| 亚洲免费在线观看| 国产清纯白嫩初高生在线观看91| 91国产视频在线观看| 成人黄页在线观看| 裸体一区二区三区| 天天亚洲美女在线视频| 亚洲日本在线看| 国产精品污网站| 精品少妇一区二区三区免费观看| 91福利精品第一导航| 成人动漫在线一区| 国产精品亚洲一区二区三区在线| 日韩不卡在线观看日韩不卡视频| 中文字幕在线免费不卡| 国产日韩欧美制服另类| 精品国产欧美一区二区| 91麻豆精品国产综合久久久久久| 日本二三区不卡| 91丨porny丨国产入口| 成人av电影在线网| 国产91精品在线观看| 国产精品69久久久久水密桃 | 中文字幕一区二区视频| 久久精品在线免费观看| 久久九九全国免费| 久久久青草青青国产亚洲免观| 久久久精品国产99久久精品芒果| 久久一夜天堂av一区二区三区| 欧美成人精品1314www| 日韩一区二区三区四区| 日韩欧美精品在线| 久久女同精品一区二区| 日本一区二区三级电影在线观看| 欧美国产日韩a欧美在线观看| 国产婷婷色一区二区三区四区| 欧美激情在线免费观看| 1000精品久久久久久久久| 亚洲成人自拍偷拍| 久久成人精品无人区| 国产精品99久久久久久似苏梦涵| 成人va在线观看| 欧美丰满一区二区免费视频| 欧美成人r级一区二区三区| 国产视频911| 亚洲精品国产无套在线观| 麻豆国产91在线播放| 不卡的看片网站| 欧美日韩高清一区二区| 国产亚洲一二三区| 亚洲一区二区三区视频在线播放| 免费高清视频精品| 日韩一区精品字幕| 国产综合色精品一区二区三区|