- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
project2xiaohuavivian预测编码器
多媒体技术实验报告
项目名称: 预测编码器
提交文档学生姓名: xiaohuavivian
提交文档学生学号:
教师评阅成绩:
教师评阅意见:
.
.
提交报告时间: 2014 年 11 月 26 日
实验题目:
熟练掌握无损预测编码和Delta调制的原理及步骤
利用无损预测编码和Delta调制实现音频序列编解码
掌握无损预测编码和Delta调制的异同
实验要求:
1) 读入给定的文本格式音频序列,如wave1.txt, wave2.txt;
2) 对1)输入的音频序列进行无损预测编码,将编码结果以文本文件(如wave1_encode.txt)输出;
3) 读入 2)得到的结果, 对其进行解码,将解码结果以文本文件输出(如wave1_decode.txt);
4) 对1)输入的音频序列进行DM编码,将编码结果以文本文件(如wave1_encode_DM.txt)输出;
5) 读入 4)得到的结果,对其进行解码,将解码结果以文本文件输出(如wave1_decode_DM.txt);
实验环境:
Windows7、VC6.0
算法描述:
程序流程图
测试程序说明
测试程序为编写在主函数main()里的swith语句,读入文件在函数里面。有五个选择,选择1代表运行无损预测编码函数,选择2代表运行无损预测解码函数,选择3代表运行DM编码函数,选择4代表运行DM解码函数,选择5代表运行。成功后相应输出四个文件。
源程序清单:
添加必要的注释
#includestdio.h
#includestdlib.h
#includeiostream.h
#define K 3
void encode();
void decode();
void DM_encode();
void DM_decode();
void main()
{
char option;
cout***操作命令说明***endl;
cout 无损预测编码: 1endl;
cout 无损预测解码: 2endl;
cout DM编码: 3endl;
cout DM编码: 4endl;
cout 退出: 5endl;
coutplease input your number:endl;
do{
scanf(%c, option ); //用户选择操作命令键入
switch(option) {
//根据用户选择调用相关函数完成指定操作
case 1: //无损预测编码,输入音频序列,编码并输出误差序列
encode();
coutsucceed!endl;
break;
case 2: //无损预测解码,输入误差序列,解码并输出重构序列
decode();
coutsucceed!endl;
break;
case 3: //DM编码,输入音频序列,编码并输出量化误差序列
DM_encode();
coutsucceed!endl;
break;
case 4: //DM解码,输入量化误差序列,解码并输出重构序列
DM_decode();
coutsucceed!endl;
break;
}
} while(option !=5);
}
void encode() //无损预测编码,输入音频序列,编码并输出误差序列
{
FILE *fp;
FILE *fp1;
int f[1000]={0}; //信号值
int F[1000]={0}; //预测值
int e[1000]={0}; //误差值
int i=0;
if(NULL==(fp = fopen(wave2.txt,r
文档评论(0)