DSP课程设计-语音采集压缩存储与回放.doc_第1页
DSP课程设计-语音采集压缩存储与回放.doc_第2页
DSP课程设计-语音采集压缩存储与回放.doc_第3页
DSP课程设计-语音采集压缩存储与回放.doc_第4页
DSP课程设计-语音采集压缩存储与回放.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录1 概述1 1.1设计目的1 1.2设计要求1 1.3 语音信号压缩A律设计基本原理1 1.3.1 语音信号压缩编码技术的发展1 1.3.2 DSP硬件实现数据压缩解压的简单流程2 1.3.3 A律语音信号压缩22 系统硬件设计方案4 2.1 DSP芯片的基本原理42.2 指令缓冲单元(I)52.3 程序流程单元(P)52.4 地址程序单元(A)52.5 数据计算单元(D)63 语音信号压缩A律设计的CCS实现6 3.1 简述CCS环境6 3.1.1 CCS主要特点7 3.1.2 DSP/BIOS和API函数以及RTDX插件7 3.2 CCS配置7 3.3 CCS环境中工程文件的使用8 3.3.1 建立工程文件8 3.3.2 创建新文件9 3.4 编译链接和运行目标文件9 3.4.1 对程序进行编译链接并装载.out文件104 软件设计与系统仿真10 4.1软件设计流程图10 4.2 CCS操作过程11 4.3 程序代码实现115 课程设计总结206参考文献211 概述1.1设计目的在CCS环境下基于TMS320VC55X芯片的语音采集压缩存储与回放。通过这次课程设计,加深对CCS集成开发环境的以及DSP试验系统箱的使用。锻炼逻辑思维能力、动手能力以及独立解决问题的能力,对以后更深入地学习和应用数字信号处理及相关知识作准备。1.2设计要求(1)了解DSP开发工具及其安装过程(2)熟悉DSP开发软件CCS使用(3)熟悉工程文件的建立方法、汇编程序开发调试过程(4)熟悉常用C55X系列指令的用法(5)在老师的指导下,独立完成课程设计的全部内容,并按要求编写课程设计论文,能正确阐述和分析设计和实验结果。1.3 语音信号压缩A律设计基本原理1.3.1 语音信号压缩编码技术的发展 随随着通信、计算机网络等技术的飞速发展,语音压缩编码技术得到了快速发展和广泛应用,尤其是最近20年,语音压缩编码技术在移动通信、卫星通信、多媒体技术以及IP电话通信中得到普遍应用,起着举足轻重的作用。 语音压缩编码技术的类别 语音编码就是将模拟语音信号数字化,数字化之后可以作为数字信号传输、存储或处理,可以充分利用数字信号处理的各种技术。为了减小存储空间或降低传输比特率节省带宽,还需要对数字化之后的语音信号进行压缩编码,这就是语音压缩编码技术。 语音的压缩编码方法归纳起来可以分为三大类:波形编码、参数编码和混合编码。1.3.2 DSP硬件实现数据压缩解压的简单流程 DSP将传输来的压缩后的数据进行解压成16位或32位,而后对解压后的数据进行分析,处理,最后将处理后的数据按照要求压缩成8位的数据格式输出到相应设备以供读取:DRRSRRBR解压RJUSTDDRDXR压缩XSRDX 在进行压缩时,采样后的12位数据,默认其最高位为符号位,压缩时要保持最高位即符号位不变;原数据的后11位要压缩成7位。这7位码由3位段落码和4位段内码组成,具体压缩变换后的根据后11位数据大小决定。压缩后数据的最高位(第7位)表示符号,量阶分别为1,1,2,4,8,16,32,64,由压缩后数据的第6位到第4位决定,第3位到第0位是段内码,压缩后数据有一定的失真,有些数据不能表示出,只能取最接近该数据的压缩值。例如数据125,压缩后的值为00111111,意义如下: 从左往右,第一个0为符号位,表示为一个正数;后面的011为段落码,表示量阶为4,起始数据为64,后面的4个1111为段内码,表示值为15最终结果为:64+4*15=124.1.3.3 A律语音信号压缩A律限制采样值为12比特,A律的压缩可按照下列公式定义: F(x)=sgn(x)A|x|/(a+lnA)0=|x|1/A=sgn(x)(1+lnA|x|)/(1+lnA)1/A=|x| PRAM PAGE 0 .text PRAM PAGE 0 .vectors VECS PAGE 0 init_var PRAM PAGE 0 detect PRAM PAGE 0 vrcprg PRAM PAGE 0 matprg PRAM PAGE 0 .stack STACK PAGE 1 .trap SCRATCH PAGE 1 .const EXRAM PAGE 1 .data EXRAM PAGE 1 .bss EXRAM PAGE 1 .cio EXRAM PAGE 1 .switch EXRAM PAGE 1 tables EXRAM PAGE 1 var EXRAM PAGE 1 svctab EXRAM PAGE 1 /* SS_V LSP table */ vctab EXRAM PAGE 1 /* V LSP table */ uvctab EXRAM PAGE 1 /* UV LSP table */ cuvtab EXRAM PAGE 1 /* Stochastic codebook */ cdbktab EXRAM PAGE 1 /* various codebook tables*/ logtab EXRAM PAGE 1 /* table for log2 */ powtab EXRAM PAGE 1 /* table for pow2 */ hamtab EXRAM PAGE 1 /* table for hamming */ lgwtab EXRAM PAGE 1 /* table for lag window */ acostab EXRAM PAGE 1 /* table for arccos */ sqrtab EXRAM PAGE 1 /* table for square root */ acbtab EXRAM PAGE 1 /* table for thresholds in acb */ pm03tab EXRAM PAGE 1 /* table for x(-0.3) computation */ costab EXRAM PAGE 1 /* table for cosine */ V23 INRAM PAGE 1 FSK INRAM PAGE 1 hpibuff0 HPRAM0 PAGE 1 hpibuff1 HPRAM1 PAGE 1 hpibuff2 HPRAM2 PAGE 1 dma_buff DMARAM PAGE 1/*主程序设计*/*语音采集及回放程序,用A律进行压缩及解压,采用AD50进行A/D,D/A转换 */ /*灯循环闪烁程序开始,L0:录音,L1:放音*/#include /* 头文件*/#include #include #include #defineSIGN_BIT(0x80)/* Sign bit for a A-law byte. */#defineQUANT_MASK(0xf)/* Quantization field mask. */#defineNSEGS(8) /* Number of A-law segments. */#defineSEG_SHIFT(4) /* Left shift for segment number. */#defineSEG_MASK(0x70)/* Segment field mask. */void delay(s16 period);void led(s16 cnt);void initcodec(void);void flashenable(void);unsigned char data2alaw(s16 pcm_val);int alaw2data(unsigned chara_val);static int search(int val,short*table,int size);HANDLE hHandset;s16 data;s16 data1;u16 i=0;u16 temp1;u16 j=0;u16 k,l=0;u8 temp2;u16 buffer20000;static short seg_end8=0x1F,0x3F,0x7F,0xFF,0x1FF,0x3FF,0x7FF,0xFFF;void main() if (brd_init(100) return; led(2); /闪灯两次 initcodec(); /初始化codec flashenable(); /选择片外FLASH为片外存储器 delay(100); brd_led_toggle(BRD_LED0); for(i=0x9000;i0xefff;i+) REG_WRITE(i,*(volatile u16*)DRR1_ADDR(HANDSET_CODEC); delay(20); brd_led_toggle(BRD_LED1); delay(200); for(i=0x9000;i0xefff;i+) *(volatile u16*)DXR1_ADDR(HANDSET_CODEC)=REG_READ(i); delay(20); brd_led_toggle(BRD_LED2) while (1) while (!MCBSP_RRDY(HANDSET_CODEC) ; /等待接收handset处的采样 brd_led_toggle(BRD_LED0); data = *(volatile u16*)DRR1_ADDR(HANDSET_CODEC); /从handset处读取采样 temp1=data2alaw(data); /对采样进行a律压缩 i=i+1; if(i%2=1) bufferj=(temp1=40000) i=0; if(j=20000) j=0; brd_led_disable(BRD_LED0); brd_led_toggle(BRD_LED1); /点亮二极管1 表示放音开始 /* 放音部分 */ for(k=0;k8)&0x0ff; else temp2=bufferl&0x0ff; l+; if(l=20000) l=0; data1=alaw2data(temp2); / a律解压 while (!MCBSP_XRDY(HANDSET_CODEC) ; *(volatile u16*)DXR1_ADDR(HANDSET_CODEC) = data1;/将数据写入D/A转换器 /* 放音结束 */ brd_led_toggle(BRD_LED0); brd_led_toggle(BRD_LED1); /主程序结束 /*延时子程序*/void delay(s16 period) int i, j; for(i=0; iperiod; i+) for(j=0; j1; j+); /*闪灯*/void led(s16 cnt)while ( cnt- )brd_led_toggle(BRD_LED0); /切换LED指示灯0的显示状态delay(1000);brd_led_toggle(BRD_LED1);delay(1000);brd_led_toggle(BRD_LED2);delay(1000);/*初始化codec*/void initcodec(void)/* Open Handset Codec 获取设置codec的句柄*/ hHandset = codec_open(HANDSET_CODEC); / Acquire handle to codec codec_dac_mode(hHandset, CODEC_DAC_15BIT); / DAC in 15-bit mode codec_adc_mode(hHandset, CODEC_ADC_15BIT); / ADC in 15-bit mode codec_ain_gain(hHandset, CODEC_AIN_6dB); / 6dB gain on analog input to ADC codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB); / -6dB gain on analog output from DAC codec_sample_rate(hHandset,SR_8000); / 8KHz sampling rate /*设置flash*/void flashenable(void)CPLD_CTRL2_REG|=0x0010;CPLD_DMCTRL_REG|=0x0040;/*a律压缩*/unsigned char data2alaw(s16 pcm_val) intmask;intseg;unsigned charaval;if (pcm_val = 0) mask = 0xD5; / 标记 (7th) bit = 1 else mask = 0x55; / 标记 bit = 0 pcm_val = -pcm_val;seg = search(pcm_val, seg_end, 8); if (seg = 8) / out of range, 返回最大数. return (0x7F mask);else aval = seg SEG_SHIFT;if (seg 1) & QUANT_MASK;elseaval |= (pcm_val seg) & QUANT_MASK;return (aval mask);/*alaw的子程序*/static int search(int val,short*table,int size)inti;for (i = 0; i size; i+) if (val = *table+)return (i);return (size);/*a律解压*/int alaw2data(unsigned chara_val) intt;intseg;a_val = 0x55; t = (a_val & QUANT_MASK) SEG_SHIFT;if(seg=0)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论