当前位置:首页 > 电科综合性大实验之基于DSP的语音处理实验指导书
sumE=sum(e.*e);
s_n_r=10*log10(sumX/sumE); (5)
function qplot(s, nbits, mu, ncases)
%QPLOT for plotting dependence of signal-to-noise ratio %----- on decreasing signal level %
% Usage: qplot(s, nbits, mu, ncases) %
% s : input test signal
% nbits : number of bits in quantizer % mu : mu-law compression parameter % ncases : number of cases to plot %
% NOTE: assumes ROUNDING for quantizer
% and requires user-written MULINV and SNR %
% see also MULAW and FXQUANT
%--------------------------------------------------------------- % copyright 1994, by C.S. Burrus, J.H. McClellan, A.V. Oppenheim, % T.W. Parks, R.W. Schafer, & H.W. Schussler. For use with the book % \% (Prentice-Hall, 1994).
%---------------------------------------------------------------
P = zeros(ncases,2); x = s;
for i=1:ncases
sh = fxquant(x, nbits, 'round', 'sat'); P(i) = snr(sh,x); y = mulaw1(x, mu);
yh = fxquant(y, nbits, 'round', 'sat'); xh =mulawinv(yh, mu); Q(i) = snr(xh,x); x = x/2; end
plot(P); hold on; plot(Q,'r'); hold off;
title(['SNR for ', num2str(nbits), '-bit Uniform and ',... num2str(mu), '-Law Quantizers'])
xlabel('power of 2 divisor'); ylabel('SNR in dB')
实验六、基于AD50的语音采集播放实验
一、实验目的
1、熟悉ADC/DAC的性能及TLC320AD50C的接口和使用。 2、熟悉MCBSP多通道缓冲串口通信的应用。 3、了解掌握语音的编解码和压缩码算法。
4、了解掌握一个完整的语音输入、输出系统的设计。
二、实验设备
计算机、ZY13DSP12BC2实验箱。
三、实验原理
1、TLC320AD50C介绍
TLC320AD50C是TI生产的一种模拟接口电路(AIC),它是一个音频段的处理器,使用过采样的Sigma-Delta技术提供从数字至模拟(D/A)和模拟至数字(A/D)的高分辨率低速信号转换。该芯片包括两个串行同步转换通道(用于各自的数据方向),在DAC之前有一个插入滤波器和ADC之前有一个抽取滤波器。内部电路的配置以及性能参数的设置都是通过设置4个控制寄存器,控制寄存器的设置可通过串行接口的编程。
芯片的引脚图如下图所示:
AD50芯片是带同步缓冲串口的16位A/D&D/A处理器,各引脚功能如下所示: (1)REFP、REFM:分别为电压基准滤波器的正输入端和负输入端,一般连接0.1uF的陶瓷电容;
(2)AUXP、AUXM:分别为辅助模拟输入放大器的同向输入端和反向输入端; (3)INP、INM:分别为模拟调制器的同向和反向输入端,该引脚需要一个外部的RC抗混叠滤波器;
(4)AVDD(PLL)、AVSS(PLL):分别用于内部PLL电路的模拟通道电源和地;
(5)DVDD、DVSS:分别为数字电源和数字地;
(6)DOUT、DIN:分别为数据输出端和数据输入端,和SCLK的同步信号配合使用。其中DOUT引脚从信号源接收模拟信号,从而转换成数字信号输出。DIN引脚从处理器接收数字信号,从而转换成模拟信号输出;
(7)FLAG:输出标志。在电话方式中,FLAG的内容是Control2寄存器所设置的值;
(8)ALTDATA:交换数据。当AD50二次通信时,如果该引脚处于使能状态,则可以使用Control2寄存器将此引脚的信号发送到DOUT引脚;
(9)FILT:带隙滤波器,一般接01uF的陶瓷电容; (10)AVDD、AVSS:分别为模拟AD通道的电源和地;
(11)OUTM、OUTP:分别为DA的同向和反向输入端,可以接成差分或单端600欧姆电阻;
(12)M/#S:主从方式选择输入端。当该引脚为高电平时,器件是主器件,为低电平时,器件是从器件;
(13)#FSD:帧同步信号延迟输出。该引脚用于从设备与主设备的帧同步时序同步。#FSD连接到从器件的#FS引脚,它与主器件#FS信号具有相同的宽度,但在时间上延迟#FSD寄存器中所编程的移位时钟个数;该引脚用于多个AD50设备;
(14)#FS:帧同步信号。主机方式时,该引脚为输出引脚;从机方式时,该引脚为输入引脚。当#FS变低,DIN开始接收数据且DOUT开始发送数据。在主机方式中,数据传输过程中,#FS保持低电平状态。在从机方式,#FS由外部产生,该引脚至少保持一个SCLK时间的低电平状态以便启动数据传送;
(15)SCLK、MCLK:分别为移位时钟和主机时钟。在帧同步时间间隔内,SCLK使数据在其同步下从DIN或者DOUT引脚读写数据。当配置为输出状态时(M/#S为高电平),SCLK在内部将帧同步信号频率乘上256倍产生采样时钟,当配置为输入状态时(M/#S为低电平),SCLK信号由外部设备产生,但必须与主时钟和帧同步信号同步;MCLK输出模拟接口电路的内部时钟;
(16)FC:二次通信请求信号。如果该引脚为高,第一次通信之后,立即进行第二次通信,从而可实现处理器和AD50之间的通信。此时,也可以从FC写入一些控制字。AD50在第一次通信后的#FS上升沿读取FC的状态,以便确认是否进行第二次通信;
(17)#PWRDWN:省电控制位。
ADC和DAC数据的发送和接收使用首次串行通信,读出和写入器件的选项和电路的配置这两者的控制字使用二次通信。 2、语音处理原理
语音信号经MIC(麦克风)进入系统,进行放大和滤波后,经过DSP与TLC320AD50C之间的串行通信实现数据的处理和数据的交换,经过转换输出,最后通过功率放大从SPEAKER输出。
参考原理图见附录。该电路一共包括三个部分:
(1)前置放大器。麦克风进来的模拟信号经过前置放大器放大。由于单纯的积分电路很容易饱和,因此要在电容两端并联上大电阻,这样可以防止小误差
电流的影响。前置放大器输送给下一级的信号是差分信号INP和INM,采用差分输入可以达到更好的信号处理效果。
(2)A/D、D/A转换器。该电路采用一块芯片TLC320AD50C,可同时完成A/D、D/A转换。
(3)后处理部分。将DA转换得到的结果放大后驱动扬声器。 3、McBSP多通道缓冲串口介绍
对McBSP的操作主要是设置它的寄存器。设置McBSP寄存器采用子地址寻址的方式。其使用原理和操作方法见教材的6.4节
四、实验步骤 1、先关闭软件,再关闭电源按钮S1、S2 ,硬件连接如下表:
计算机并口 DSP控制板P1 CH25 S12 CH26 S11 CH29 S10,S16 CH28 S15,S17 CH27 GND 语音模块-12 电源模块-12 语音模块+12 电源模块+12 硬件连接图: 2、打开CCS,并运行GEL-C54x-C5402_Init将DSP的内部存储器复位,把程序指针指向FF80,如果一次复位没有成功就重复运行该5402gel程序,直到程序指针复位到FF80,紧接着FF80后面****指令代码必须为0000。
3、新建一个文件夹,取名为TEST20,把REG5402.h拷贝到该文件夹下面。新建一个项目,取名为test20,加入源文件test20.c和vector20.c,再加入test20.cmd文件,编译连接,然后下载可执行文件test20.out。从MIC中输入语音信号,听SPEAKER中的输出信号,听输入输出是否一致。
五、实验报告要求
1、简述语音处理的实验原理。 2、尝试修改语音处理部分的程序,听是否语音信号输入和输出与你的程序一
共分享92篇相关文档