视音频处理技术二

视音频处理技术二

ID:35441804

大小:67.03 KB

页数:5页

时间:2019-03-24

视音频处理技术二_第1页
视音频处理技术二_第2页
视音频处理技术二_第3页
视音频处理技术二_第4页
视音频处理技术二_第5页
资源描述:

《视音频处理技术二》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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;i

5、){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);

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。