资源描述:
《c语言的谱减法实现01599》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言的谱减法实现01599C语言的谱减法实现.txt机会就像秃子头上一根毛,你抓住就抓住了,抓不住就没了。我和你说了10分钟的话,但却没有和你产生任何争论。那么,我们之间一定有个人变得虚伪无比!过错是短暂的遗憾,错过是永远的遗憾。相遇是缘,相知是份,相爱是约定,相守才是真爱。#include#include#include#defineWL256//窗长#defineP10//预测系数#undefpi#definepi3.141592653589793238462643
2、4#definePI3.1415926#definewinsize256#definetempsizewinsize/2#definebuffsizewinsize*10typedefstruct{doublereal;doubleimg;}complex;unsignedintf=0;unsignedintc=0;complexnoise[winsize];doublebuff_r[buffsize];doublebuff_w[buffsize];doubletemp[tempsize];complexx[winsize]
3、;complexy[winsize];inthr=0;complexW[winsize];complexW1[winsize];doublex_abs[winsize];doubley_abs[winsize];doublenoise_abs[winsize];voidfft(complex*x,intsize_x,complex*W);/*快速傅里叶变换*/voidifft(complex*x,intsize_x,complex*W1);doubleangle(complexa);//voidadd(complex,com
4、plex,complex*);/*复数加法*/voidmul(complex,complex,complex*);/*复数乘法*/voidsub(complex,complex,complex*);/*复数减法*/voidchange(complex*x,intsize_x);/*数组转置*/doubleabs1(complexa);voidhamming(complexhw[]);/*intReadWaveFile(char*fn,int*fs,short**dat);intReadWaveFile(char*fn,//I
5、:文件名int*fs,//O:文件大小short**dat//O:语音数据){FILE*fp;intdsize;if((fp=fopen(fn,"rb+"))==NULL){fprintf(stderr,"%s:Nosuchfile",fn);return(-1);}fseek(fp,0L,SEEK_END);dsize=ftell(fp)/2;fseek(fp,0L,SEEK_SET);if((*dat=(short*)malloc(sizeof(short)*dsize))==NULL){fprintf(stderr
6、,"MemoryError");return(-1);}if(fread(*dat,sizeof(short),dsize,fp)!=(unsignedint)dsize){free(*dat);return(-1);}fclose(fp);*fs=dsize;return(0);}*/voidhamming(complexhw[]){doublex;inti;for(i=0;i7、os(x));//*32768;}}voidfft(complex*x,intsize_x,complex*W){inti=0,j=0,k=0,l=0,jk=0;complexup,down,product;change(x,size_x);for(i=0;i8、/l],&product);up.real=x[jk].real+product.real;up.img=x[jk].img+product.img;down.real=x[jk].real-product.real;down.img=x[jk].img-product.img;x[jk]