资源描述:
《视音频处理技术二》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《视音频处理技术》实验报吿学院班级姓名学号任课教师《视音频处理技术》实验报告学号:姓名:班级:实验2音频数据的处理要求:1、给定一个16KHz的音频数据(一维整数数组)A,时间长度为1秒。请对音频数据A进行8KHz的采样,用量化值q二12进行量化,并进行PCM编码,并打印输出前100个采样的PCM编码。其中A的定义如下:IntA[160()0];Floatpi=3.1415926535;For(inti=0;i<16000;i++)A[i]=(int)(sin(i/pi)*256)+256;2、以题1中得到的8KHz重采样
2、的音频数据为基础,进行DPCM编码,量化阈值q=12,并打印输出前100个采样的DPCM编码。3、以题1中得到的8KHz重采样的音频数据为基础,使用以下简化规则进行的ADPCM编码,并打印输出前100个釆样的ADPCM编码。ADPCM简化规则为:1)当前音频样本的采值的预测值S(町等与上一个样本值的量化编码值S(n-l).2)如果当前值S(n)与预测值S(n),的差e(n)<5时,量化阈值q=2;3)如果当前值S(n)与预测值S(“的差5<=e(n)<20时,量化阈值q=6;3)如果当前值S(n)与预测值S(Q的差e(n)
3、>二20吋,量化阈值q=12;源代码:#includc#includevoidcaiyang(){inti,bufl16000];FILE*fout,*fin;if(!(fin=fopen("b.txt,,,V)))printfC'error!can'topentheinfile!");if(!(fout=fopen("c.txt,,,,'wH)))printf("crror!can'topentheoutfilc!");fread(buf,sizeof(int),16000,fi
4、n);for(i=l;i<16000;i+=2){fwritc(&buf[i],sizeof(int),1,fbut);)fclose(fin);fclose(foul);voidpcm_codc()inti,buf[8OOOJ;FILE*fin,*fout;fin=fopen("c.txt","r");fread(buf,sizeof(int),8000,fin);fclose(fin);fout=fopen(',d.txt,,,"w");printf("pcm_code:");for(i=0;i5、){buf[i]=buf[i]/12;printfC'%d”,buf[i]);}printf("");fwritc(buf5sizcof(int),8000,fin);fclose(fout);}voidpcm_code(){inti,temp,pre,buf[8000];FILE*fout,*fin;if(!(fin=fopen(,,c.txt,,,,,r")))printfC'error!can'topentheinfile!");if(!(fout=fopen("dpcm.txt",,,w")))printf
6、("crror!can'topentheoutfilc!");fread(buf,sizeof(int),8000,fin);buf[0]=(buf[0])/12;fwrite(&buf[0],sizeof(int),1,fout);pre=buf[0]*12;for(i=l;i<8000;i++){teinp=buf(i
7、;buf[i]=(buf[i]-pre)/12;pre=(temp/l2)*12;fwrite(&buf[i],sizeof(int),1,fout);}fclose(fin);fclosc(fou
8、t);printf(Hdpcm_code:n);for(i=0;i<100;i++)printf(M%d”,buffi]);}printfC'");}voidadpcm_codc(){inti,temp.pre,buf[8000J;FILEif(!(fin=fopen("c.txt";,r")))printf("error!can'topentheinfilc!");if(!(fout=fopen("dpcm.txt","w")))printfC'error!can'topentheoutfile!")
9、;fread(buf,sizeof(int),8000,fin);if(buf[0]/12<5)buf[0]/=2;elseif(buf[0)/12<20)buf[0)/=6;elsebuf[0]/=12;pre=buf[0]/12;fwrite(&buf[0],sizeof(int),1,fout);