资源描述:
《c语言的谱减法实现01043》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言的谱减法实现01043#include#include#include#defineWL256//窗长#defineP10//预测系数#undefpi#definepi3.1415926535897932384626434#definePI3.1415926#definewinsize256#definetempsizewinsize/2#definebuffsizewinsize*10typedefstruct{doublereal;doubleimg;}complex;uns
2、ignedintf=0;unsignedintc=0;complexnoise[winsize];doublebuff_r[buffsize];doublebuff_w[buffsize];doubletemp[tempsize];complexx[winsize];complexy[winsize];inthr=0;complexW[winsize];complexW1[winsize];doublex_abs[winsize];doubley_abs[winsize];doublenoise_abs[winsize];voidfft(
3、complex*x,intsize_x,complex*W);/*快速傅里叶变换*/voidifft(complex*x,intsize_x,complex*W1);doubleangle(complexa);//voidadd(complex,complex,complex*);/*复数加法*/voidmul(complex,complex,complex*);/*复数乘法*/voidsub(complex,complex,complex*);/*复数减法*/voidchange(complex*x,intsize_x);/*数组转置*
4、/doubleabs1(complexa);voidhamming(complexhw[]);/*intReadWaveFile(char*fn,int*fs,short**dat);intReadWaveFile(char*fn,//I:文件名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_
5、END);dsize=ftell(fp)/2;fseek(fp,0L,SEEK_SET);if((*dat=(short*)malloc(sizeof(short)*dsize))==NULL){fprintf(stderr,"MemoryError");return(-1);}if(fread(*dat,sizeof(short),dsize,fp)!=(unsignedint)dsize){free(*dat);return(-1);}fclose(fp);*fs=dsize;return(0);}*/voidhamming(co
6、mplexhw[]){doublex;inti;for(i=0;i7、1<
8、x(n)码位倒置*/voidchange(complex*x,intsize_x){complextemp;unsignedshorti=0,j=0,k=0;doublet;for(i=0;i