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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fsample.c

?? 用c語言實(shí)現(xiàn)下列的數(shù)字信號(hào)處理算法 1.離散傅里葉級(jí)數(shù)合成連續(xù)周期信號(hào) 2.DIF FFT 測試程序 3.將輸入數(shù)據(jù)的幅度畫出圖形 4.使用FFT實(shí)現(xiàn)快速卷積 5.使用FFT實(shí)現(xiàn)快速相關(guān)
?? C
字號(hào):
/**********************************************************************
FSAMPLE.C -  取樣混迭演示程序

dft          離散傅里葉變換函數(shù)
idft         IDFT 函數(shù)
draw_image   繪圖子程序
***********************************************************************/

#include    <math.h>
#include    <stdlib.h>
#include    <stdio.h>
#include    <string.h>
#include    <conio.h>
#include    <alloc.h>
#include    <graphics.h>

/* COMPLEX STRUCTURE */
typedef struct {
    double real, imag;
} COMPLEX;

#define    PI	(4.0*atan(1.0))

 void idft(COMPLEX *Datain, COMPLEX *Dataout, int N);
 void dft(COMPLEX *Datain, COMPLEX *Dataout, int N);
 void draw_image(double *x,int m,char *title1,char *title2,
		 char *xdis1,char *xdis2,int dis_type);

/********************************************************/
void main(void)
{
  int          i,j,k,length,m,type;
  char         title1[80],title2[80],tmp1[20],tmp2[20];
  double       far *amp;
  COMPLEX      far *fsamp, far *tsamp, far *ssamp;

  length = 256; /* length is the display sample size */

  amp = (double *) farcalloc(length+1,sizeof(double));
  ssamp = (COMPLEX *) farcalloc(length+1,sizeof(COMPLEX));
  fsamp = (COMPLEX *) farcalloc(length+1,sizeof(COMPLEX));
  tsamp = (COMPLEX *) farcalloc(length+1,sizeof(COMPLEX));
	if(!tsamp) {
	    printf("\nUnable to allocate complex array for calculation\n");
	    exit(1);
	}

  /* Input frequency sampling data for processing */
  for (i = 0; i < length; i++) {
     if(i<length/14) fsamp[i].real = 24.0-24.0*14.0*i/length;
     else if(i>length-length/14) fsamp[i].real = 24.0*14.0*i/length-24.0*14.0+24.0;
     else fsamp[i].real = 0;
     fsamp[i].imag=0;
  }

  printf("Generate the Signal. Waitting for the calculation...\n");
  idft(fsamp, ssamp, length);
  for(i = 0; i< length; i++)
     amp[i]=ssamp[i].real;

  strcpy(title1,"The Signal Data Sequency");
  strcpy(title2,"The Magnitude of Signal");
  strcpy(tmp1,"0");
  gcvt((float)length/2/70,5,tmp2);
  strcat(tmp2,"(s) t");
  draw_image(amp,length,title1,title2,tmp1,tmp2,0);

  /* Resample with fs = 10 Hz */
  for (i = 0 ; i < length/7 ; i++) {
    tsamp[i].real = ssamp[i*7].real;
    tsamp[i].imag = ssamp[i*7].imag;
  }

  printf("Waitting for the calculation...\n");
  dft(tsamp, fsamp, (int)(length/7));

  for(i = 0; i< length/7; i++)
     amp[i]=fsamp[i].real;

  strcpy(title1,"The Signal Spectrum fs=10Hz");
  strcpy(title2,"The Spectrum Magnitude");
  strcpy(tmp1,"0");
  strcpy(tmp2,"2*PI");
  draw_image(amp,(int)(length/7),title1,title2,tmp1,tmp2,0);

  /* Resample with fs = 7 Hz */
  for (i = 0 ; i < length/10 ; i++) {
    tsamp[i].real = ssamp[i*10].real;
    tsamp[i].imag = ssamp[i*10].imag;
  }

  printf("Waitting for the calculation...\n");
  dft(tsamp, fsamp, (int)(length/10));

  for(i = 0; i< length/10; i++)
     amp[i]=fsamp[i].real;

  strcpy(title1,"The Signal Spectrum fs=7Hz");
  strcpy(title2,"The Spectrum Magnitude");
  strcpy(tmp1,"0");
  strcpy(tmp2,"2*PI");
  draw_image(amp,(int)(length/10),title1,title2,tmp1,tmp2,0);

  /* Resample with fs = 14 Hz */
  for (i = 0 ; i < length/5 ; i++) {
    tsamp[i].real = ssamp[i*5].real;
    tsamp[i].imag = ssamp[i*5].imag;
  }

  printf("Waitting for the calculation...\n");
  dft(tsamp, fsamp, (int)(length/5));

  for(i = 0; i< length/5; i++)
     amp[i]=fsamp[i].real;

  strcpy(title1,"The Signal Spectrum fs=14Hz");
  strcpy(title2,"The Spectrum Magnitude");
  strcpy(tmp1,"0");
  strcpy(tmp2,"2*PI");
  draw_image(amp,(int)(length/5),title1,title2,tmp1,tmp2,0);

  farfree(fsamp);
  farfree(ssamp);
  farfree(tsamp);
  farfree(amp);
}

/***********************************************************************
dft -  離散傅里葉正變換子程序
輸入?yún)?shù):
	  COMPLEX *Datain : 輸入數(shù)據(jù)區(qū)指針;
	  COMPLEX *Dataout: 輸出數(shù)據(jù)區(qū)指針;
		   int  N : 數(shù)據(jù)長度;
輸出參數(shù):
	  輸出數(shù)據(jù)存放在 Dataout 所指的數(shù)據(jù)區(qū);
	  無輸出參數(shù).

void dft(COMPLEX *Datain, COMPLEX *Dataout, int N)
************************************************************************/
void dft(COMPLEX *Datain, COMPLEX *Dataout, int N)
{
    int i,k,n,p;
    static int nstore = 0;      /* store N for future use */
    static COMPLEX *cf;         /* coefficient storage */
    COMPLEX *cfptr,*Dinptr;
    double arg;

/* Create the coefficients if N has changed */

    if(N != nstore) {
	if(nstore != 0) free((char *) cf);    /* free previous */

	cf = (COMPLEX  *) calloc(N, sizeof(COMPLEX));
	if (!cf) {
	    printf("\nUnable to allocate memory for coefficients.\n");
	    exit(1);
	}

	arg = 8.0*atan(1.0)/N;
	for (i=0 ; i<N ; i++) {
	    cf[i].real = (float)cos(arg*i);
	    cf[i].imag = -(float)sin(arg*i);
	}
    }

/* Perform the DFT calculation */

    printf("\n");
    for (k=0 ; k<N ; k++) {

	Dinptr = Datain;
	Dataout->real = Dinptr->real;
	Dataout->imag = Dinptr->imag;
	Dinptr++;
	for (n=1; n<N; n++) {

	p = (int)((long)n*k % N);
	    cfptr = cf + p;         /* pointer to cf modulo N */

	    Dataout->real += Dinptr->real * cfptr->real
			     - Dinptr->imag * cfptr->imag;

	    Dataout->imag += Dinptr->real * cfptr->imag
			     + Dinptr->imag * cfptr->real;
	    Dinptr++;
	}
	if (k % 32 == 31) printf("*");
	Dataout++;          /* next output */
    }
    printf("\n");
}

/***********************************************************************
idft - 離散傅里葉反變換子程序
輸入?yún)?shù):
	  COMPLEX *Datain : 輸入數(shù)據(jù)區(qū)指針;
	  COMPLEX *Dataout: 輸出數(shù)據(jù)區(qū)指針;
		   int  N : 數(shù)據(jù)長度;
輸出參數(shù):
	  輸出數(shù)據(jù)存放在 Dataout 所指的數(shù)據(jù)區(qū);
	  無輸出參數(shù).

void idft(COMPLEX *Datain, COMPLEX *Dataout, int N)
************************************************************************/
void idft(COMPLEX *Datain, COMPLEX *Dataout, int N)
{
    int i,k,n,p;
    static int nstore = 0;      /* store N for future use */
    static COMPLEX *cf;         /* coefficient storage */
    COMPLEX *cfptr,*Dinptr;
    double arg;

/* Create the coefficients if N has changed */

    if(N != nstore) {
        if(nstore != 0) free((char *) cf);    /* free previous */

        cf = (COMPLEX  *) calloc(N, sizeof(COMPLEX));
        if (cf == 0) {
            printf("\nUnable to allocate memory for coefficients.\n");
            exit(1);
        }

/* scale stored values by 1/N */
        arg = 8.0*atan(1.0)/N;
	for (i=0 ; i<N ; i++) {
            cf[i].real = (float)(cos(arg*i)/(double)N);
            cf[i].imag = (float)(sin(arg*i)/(double)N);
        }
    }

/* Perform the DFT calculation */

    printf("\n");
    for (k=0 ; k<N ; k++) {

        Dinptr = Datain;
        Dataout->real = Dinptr->real * cf[0].real;
        Dataout->imag = Dinptr->imag * cf[0].real;
        Dinptr++;
        for (n=1; n<N; n++) {

        p = (int)((long)n*k % N);
            cfptr = cf + p;         /* pointer to cf modulo N */

	    Dataout->real += Dinptr->real * cfptr->real
                             - Dinptr->imag * cfptr->imag;

            Dataout->imag += Dinptr->real * cfptr->imag
                             + Dinptr->imag * cfptr->real;
            Dinptr++;
        }
        if (k % 32 == 31) printf("*");
	Dataout++;          /* next output */
    }
    printf("\n");
}

/************************************************************************
draw_image - 將輸入數(shù)據(jù)的幅度畫出圖形。該函數(shù)可自動(dòng)調(diào)整顯示的比例, 使圖形
	     充滿整個(gè)屏幕。

輸入?yún)?shù): double *x    -   輸入數(shù)據(jù)序列的指針;
	  int m        -   輸入數(shù)據(jù)序列的長度;
	  char *title1 -   顯示圖形的上標(biāo)題字符串指針;
	  char *xdis1  -   X 坐標(biāo)左邊顯示標(biāo)題字符串指針.
	  char *title2 -   顯示圖形的左標(biāo)題字符串指針.
	  char *xdis2  -   X 坐標(biāo)右邊顯示標(biāo)題字符串指針.
	  int dis_type -   顯示類型, 0:連線 1:直線.
輸出參數(shù): 無
*************************************************************************/
void draw_image(double *x,int m,char *title1,char *title2,
		char *xdis1,char *xdis2,int dis_type)
{
 int gdriver=DETECT, gmode,errorcode;
 int i,scx,scy,y0,signa,signb;
 int style, userpat;
 int start_x=40,start_y=40,end_x=10,end_y=60;
 long tlen;
 double ys,xs,ym;
 char dis[40];
 /*initializes the graphics mode */
 initgraph(&gdriver,&gmode,"");
 errorcode=graphresult();
 if (errorcode != grOk) {
    printf("Graphics error: %s\n",grapherrormsg(errorcode));
    printf("Press any key to halt!\n");
    getch();
    exit(1);
 }
 scx=getmaxx();
 scy=getmaxy();
 ym=1.e-90;
 signa=0;
 signb=0;

 for(i=0;i<m;i++) {
    if ((*(x+i)>0)&&(*(x+i)>ym))  ym = *(x+i);
    if ((*(x+i)<0)&&(- *(x+i)>ym))  ym = - *(x+i);
 }
 for(i=0;i<m;i++)  {
    if (*(x+i)>fabs(ym/20)) signa=1;
    if (*(x+i)<-fabs(ym/20)) signb=1;
 }
 if ((signa==1)&&(signb==1)) ys=(double)((scy - start_y - end_y)>>1)/ym;
 else ys=(double)((scy - start_y - end_y)/ym);
 xs=(double)(scx - start_x - end_x)/m;
 y0=((scy - start_y - end_y)>>1)+start_y;

 /* draw the frame */

 setcolor(LIGHTGREEN);
 rectangle(start_x-1,start_y-20,scx-end_x+1,scy-end_y+20);

 setcolor(DARKGRAY);
 /* select the line style */
 style=DASHED_LINE;
 userpat = 1;
 setlinestyle(style, userpat, 1);
 /* a user defined line pattern */
 /* binary: "0000000000000001"  */
 for(i=0;i<=10;i++)
    line(start_x,start_y+(scy-start_y-end_y)*i/10,scx-end_x,start_y+(scy-start_y-end_y)*i/10);
 for(i=0;i<=10;i++)
    line(start_x+(scx-start_x-end_x)*i/10,start_y,start_x+(scx-start_x-end_x)*i/10,scy-end_y);
 setcolor(GREEN);
 style=SOLID_LINE;
 userpat = 1;
 setlinestyle(style, userpat, 1);
 rectangle(start_x,start_y,scx-end_x,scy-end_y);
 setcolor(YELLOW);
 for(i=0;i<=10;i++)
    line(start_x,start_y+(scy-start_y-end_y)*i/10,start_x+5,start_y+(scy-start_y-end_y)*i/10);
 for(i=0;i<=10;i++)
    line(start_x+(scx-start_x-end_x)*i/10,scy-end_y+15,start_x+(scx-start_x-end_x)*i/10,scy-end_y+20);
 settextstyle(DEFAULT_FONT,HORIZ_DIR,1);
 setcolor(YELLOW);
 if((signa==1)&&(signb==0)) {
    strcpy(dis,"0");
    outtextxy(start_x+2,scy-end_y+4,dis);
    gcvt(ym,5,dis);
    outtextxy(start_x+1,start_y-10,dis);
    outtextxy(start_x-10,scy-end_y+24,xdis1);
    outtextxy(scx-2-strlen(xdis2)*8,scy-end_y+24,xdis2);
 }
 else if((signb==1)&&(signa==0)) {
    strcpy(dis,"0");
    outtextxy(start_x+2,start_y-10,dis);
    gcvt(ym,5,dis);
    outtextxy(start_x+2,scy-end_y+4,"-");
    outtextxy(start_x+10,scy-end_y+4,dis);
    outtextxy(start_x-10,scy-end_y+24,xdis1);
    outtextxy(scx-2-strlen(xdis2)*8,scy-end_y+24,xdis2);
 }
 else {
    line(start_x,y0,scx-end_x,y0);
    strcpy(dis,"0");
    outtextxy(start_x-10,y0,dis);
    gcvt(ym,5,dis);
    outtextxy(start_x+2,start_y-10,dis);
    outtextxy(start_x+2,scy-end_y+4,"-");
    outtextxy(start_x+10,scy-end_y+4,dis);
    outtextxy(start_x-10,scy-end_y+24,xdis1);
    outtextxy(scx-2-strlen(xdis2)*8,scy-end_y+24,xdis2);
 }
 strcpy(dis,"Press any key to continue...");
 setcolor(LIGHTRED);
 outtextxy((scx-28*8)>>1,scy-16,dis);

 settextstyle(DEFAULT_FONT,HORIZ_DIR,2);
 tlen=strlen(title1);
 if ((tlen<<4)<scx) {
    setcolor(LIGHTGREEN);
    outtextxy((start_x+scx-end_x-(tlen<<4))>>1,start_y-40,title1);
 }

 settextstyle(DEFAULT_FONT,VERT_DIR,1);
 tlen=strlen(title2);
 if ((tlen<<4)<scy) {
    setcolor(LIGHTGREEN);
    outtextxy(start_x-20,(scy-end_y-(tlen<<3))>>1,title2);
 }
 /*draw the amplitude image*/
 setcolor(WHITE);
 if((signa==1)&&(signb==0)) y0=scy-end_y;
 else if((signb==1)&&(signa==0)) y0=start_y;
 if (dis_type == 0) {
    for(i=0;i<m-1;i++)
      line(xs*i+start_x,y0-*(x+i)*ys,xs*(i+1)+start_x,y0-*(x+i+1)*ys);
 }
 else if (dis_type == 1) {
    for(i=0;i<=m;i++)
      line(xs*i+start_x,y0-*(x+i)*ys,xs*i+start_x,y0);
 }
 getch();
 closegraph();
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区成人在线| 亚洲免费毛片网站| 日本一区二区三区高清不卡| 欧美一区二区观看视频| 舔着乳尖日韩一区| 日韩久久免费av| 床上的激情91.| 亚洲国产成人av网| 欧美va在线播放| 99re热这里只有精品免费视频| 亚洲午夜羞羞片| 一色屋精品亚洲香蕉网站| 777亚洲妇女| 94-欧美-setu| 精一区二区三区| 一区二区国产视频| 亚洲图片欧美色图| 国产精品伊人色| 亚洲一区二区视频在线| ●精品国产综合乱码久久久久| 国产精品美女久久久久久久网站| 欧美一级淫片007| 欧美激情在线看| 粉嫩嫩av羞羞动漫久久久| 国产欧美一区二区精品仙草咪| 日韩欧美国产电影| av在线这里只有精品| 精品无人区卡一卡二卡三乱码免费卡| 国产亚洲精品aa| 国内精品久久久久影院薰衣草 | 亚洲成人av中文| 欧美一区二区免费视频| a级高清视频欧美日韩| 北条麻妃国产九九精品视频| 秋霞av亚洲一区二区三| 欧美精品一区二区久久婷婷| 国产精品一级二级三级| 国产精品久久精品日日| 在线观看欧美精品| 在线观看www91| 日韩专区欧美专区| 欧美精品一区二区三区蜜桃视频| 国产成人精品免费| 夜夜嗨av一区二区三区| 337p亚洲精品色噜噜| 国产精品一区一区三区| 亚洲三级在线免费观看| 制服丝袜一区二区三区| 国产精品香蕉一区二区三区| 日韩一区欧美一区| 欧美精品欧美精品系列| 国产一区二区剧情av在线| 日韩理论片中文av| 555夜色666亚洲国产免| 成人小视频在线观看| 亚洲一区二区精品3399| 欧美成人性战久久| 99久久777色| 日本在线不卡视频一二三区| 久久久久一区二区三区四区| 色噜噜狠狠成人中文综合| 全国精品久久少妇| 国产精品麻豆久久久| 欧美美女黄视频| 成人永久免费视频| 午夜精品福利在线| 日本一区二区动态图| 这里只有精品99re| 成人毛片老司机大片| 免费在线成人网| 亚洲天堂精品视频| 日韩精品中文字幕在线不卡尤物| voyeur盗摄精品| 久久精品国产久精国产爱| 亚洲乱码国产乱码精品精的特点 | 3751色影院一区二区三区| 国产91精品一区二区麻豆网站 | 成人一区二区三区视频在线观看| 亚洲国产精品一区二区久久 | 国产女主播视频一区二区| 精品视频一区二区不卡| 国产高清在线观看免费不卡| 午夜久久久久久| 国产视频一区不卡| 欧美一区日韩一区| 色悠悠亚洲一区二区| 国产尤物一区二区| 午夜精品久久久久久久久久久| 中文字幕av一区二区三区免费看 | 亚洲精品一区二区三区四区高清 | 69p69国产精品| av在线播放一区二区三区| 三级成人在线视频| 亚洲伦理在线精品| 欧美激情综合五月色丁香| 日韩午夜电影av| 欧美日韩一区高清| 91在线一区二区| 国产 欧美在线| 久久99国产精品久久| 婷婷一区二区三区| 亚洲欧美影音先锋| 国产欧美视频在线观看| 欧美精品一区在线观看| 91精品国产欧美一区二区18| 色综合中文字幕国产| 国产美女娇喘av呻吟久久| 日本不卡视频在线| 午夜日韩在线观看| 一区二区三区欧美视频| 中文字幕一区二区在线观看| 国产亚洲午夜高清国产拍精品| 日韩一区二区电影| 制服丝袜国产精品| 91精品国产综合久久久久久漫画| 欧美三级一区二区| 欧美三级视频在线播放| 在线观看av一区二区| 色天使色偷偷av一区二区| 97se亚洲国产综合在线| 91一区二区在线观看| 97aⅴ精品视频一二三区| 99国产欧美另类久久久精品| 成人一级视频在线观看| 福利一区二区在线观看| 国产69精品久久99不卡| 成人午夜av影视| zzijzzij亚洲日本少妇熟睡| 成人美女在线视频| a亚洲天堂av| 色综合久久综合网欧美综合网 | 在线观看亚洲a| 色老头久久综合| 欧美在线视频不卡| 欧美午夜免费电影| 欧美日本精品一区二区三区| 欧美视频完全免费看| 欧美日韩一区二区三区四区五区| 欧美日韩中文字幕一区| 欧美喷水一区二区| 日韩欧美资源站| 精品成人一区二区三区| 国产亚洲一区字幕| 中文字幕一区二区5566日韩| 成人欧美一区二区三区小说| 一区二区成人在线视频 | 香蕉久久一区二区不卡无毒影院| 亚洲一二三区视频在线观看| 午夜精品免费在线观看| 青青草国产精品亚洲专区无| 久久福利资源站| 成人晚上爱看视频| 91理论电影在线观看| 欧美日韩小视频| 日韩欧美久久久| 国产三级精品在线| 亚洲图片激情小说| 亚洲成人免费av| 久久爱另类一区二区小说| 国产精品自在在线| 99vv1com这只有精品| 欧美专区日韩专区| 日韩欧美中文字幕公布| 日本一区二区在线不卡| 亚洲人成人一区二区在线观看| 亚洲综合激情小说| 精品一区二区三区香蕉蜜桃 | 日韩欧美一区电影| 国产日韩欧美精品电影三级在线| 亚洲婷婷在线视频| 亚洲成人av中文| 国产在线播精品第三| 99久久综合狠狠综合久久| 欧美亚洲免费在线一区| 欧美mv和日韩mv国产网站| 国产精品激情偷乱一区二区∴| 夜夜嗨av一区二区三区网页| 捆绑调教一区二区三区| 成人动漫一区二区三区| 欧美日韩亚洲综合一区二区三区| 亚洲精品在线一区二区| 亚洲女同ⅹxx女同tv| 日本欧美久久久久免费播放网| 精品一区二区三区久久| 91网站在线观看视频| 日韩一级欧美一级| 国产精品久久久久久久久晋中 | 欧美第一区第二区| 日韩一区欧美一区| 奇米影视一区二区三区| 丁香激情综合五月| 欧美区视频在线观看| 中文一区在线播放| 五月天一区二区三区| 懂色av一区二区三区免费看| 欧美日韩一区久久| 中文字幕一区二区在线播放| 免费成人深夜小野草| 99re热视频精品| 精品国产123|