- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1203030307_dsp语音信号压缩A律汇编
摘 要
本文简要阐述了语音信号压缩A律的基本原理,可以将高位的数据压缩成低位的数据,它适用于声音信号的播放和传输系统,在设计中借助MATLAB信号处理工具箱FDAtool工具设计了语音信号压缩系数,然后在CCS中以TMS320C55x芯片的汇编语言编程实现了该语音信号压缩。利用MATLAB设计语音信号压缩,可以随时对比设计要求和语音信号压缩特性调整参数,直观简便,极大的减轻了工作量,有利于语音信号压缩设计的最优化。另外文中还介绍CCS开发环境。文中所给程序已经经过软件仿真验证,所设计的语音信号压缩符合设计要求。
关键词:
1 语音信号压缩A律设计任务及目的 1
1.1 语音信号压缩A律设计任务 1
1.2语音信号压缩A律设计目的 1
2 TMS320C55X的硬件结构 1
2.1 C55X的CPU体系结构 1
2.2 指令缓冲单元(I) 2
2.3 程序流程单元(P) 2
2.4 地址程序单元(A) 2
2.5 数据计算单元(D) 3
4 语音信号压缩(A律)原理 3
5 CCS概述 6
6语音信号压缩(A律)软件实现 7
6.1 软件实现步骤 7
6.1.1软件程序 7
6.1.2实现步骤 10
6.1.2运行并观察结果 11
6.2结果分析 12
7 结论 12
8参考文献 12
1 语音信号压缩A律设计任务及目的
语音信号压缩A律设计任务
(1)完成语音信号采集;
(2)对语音信号进行A律压缩;
(3)传输压缩后的信号;
语音信号压缩A律设计目的
本设计的目的在于通过使用DSP的程序设计完成对语音信号的压缩,既可以通过软件实现,也可以通过硬件实现。进行程序的设计,并在CCS软件环境下进行调试,同时也加深学生对数字信号处理器的常用指标和设计过程的理解。
2 TMS320C55X的硬件结构
2.1 C55X的CPU体系结构
C55X有1条32位的程序数据总线(PB),5条16位数据总线(BB、CB、DB、EB、FB)和1条24位的程序地址总线及5条23位地址总线,这些总线分别与CPU相连。总线通过存储单元接口(M)与外部程序总线和数据总线相连,实现CPU对外部存储器的访问。这种并行的多总线结构,使CPU能在一个CPU周期内完成1次32位程序代码读、3次16位数据读和两次16位数据写。C55X根据功能的不同将CPU分为4个单元,指令缓冲单元(I)、程序流程单元(P)、地址流程单元(A)、和数据计算单元(D)。
读程序地址总线(PDA)上传送24位的程序代码地址,由读程序总线(PB)将32位的程序代码送入指令缓冲单元进行译码。
C55X的指令缓冲单元有指令缓冲队列IBQ和指令译码器组成。在每个CPU周期内,I单元将从程序数据接收的4B程序代码放入指令缓冲队列,指令译码器从队列中取6B程序代码,根据指令的长度可对8位、16位、24位、32位和48位的变长指令进行译码,然后把译码数据送入P单元、A单元和D单元去执行。
------“Alaw.c”
#includemath.h
char i=0;
unsigned int sign,segment,quant,absol;
unsigned int nOutput;
unsigned char IntToaLaw(int nInput)
{
unsigned int temp;
unsigned char cOutput;
absol=abs(nInput);//取绝对值
sign=(nInput = 0)?0:1;//符号位
temp=absol3;
while(1)
{
nOutput=temp0x8000;
if(nOutput) break;//碰到1就退出
temp=1;
i++;
if(i==8) break;
}
if(i8)
{
temp=0x7800;//保留段内码
quant=temp11;//段内码
segment=8-i;//段落码
nOutput=(segment4)+quant; }
else
{
temp=0x7fff;
nOutput=temp11;
}
if(sign)
nOutput|=(17);
cOutput=(unsigned char)nOutput;
return cOutput;
}
2.主程序------“c55_fira.c”
#includemath.h
#define SIGNAL1_F 200
#define SIGNAL2_F 640
#define SALMP_F 2000
#define COFF_L 23
#define
文档评论(0)