数字化语音录放系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include "config.h" #define ADIN0 1<<22 #define LEDred 1<<10 #define LEDgreen 1<<9 //ADINO 是 P0.27 引脚,由 PINSEL1 的 22,23 位控制
volatile uint8 ADnum=0; volatile uint32 ADsum=0; volatile uint32 record=0; volatile uint32 play=0; volatile uint8 ad_data,last_byte; volatile uint8 finish,ad_new; volatile uint8 da_data; /******************************************************************************************* **ADC 采用中断方式,由外部中断 EINT0 控制器启动 *******************************************************************************************/ void inital_adc(void) {PINSEL1=(PINSEL1&(~(0x03<<22)))|ADIN0; AD0CR=(1<<0) (Fpclk/4000000-1)<<8 (0<<16) (0<<17) (1<<21) (0<<22) (5<<24) (0<<27); } | // select channel_0 | // clkdiv 32kB/s | //BURST=0 | //CLKS=000 | //PDN=1 | //MAT0.3 CHOOSE 11 CLKS WHIT 10 ACCURATES NORMAL MODE 启动
1.2 方案论证 1.2Leabharlann Baidu1 系统总体方案论证
由一片可编程逻辑器件为中心完成语音数据采集与回放。采用可编程逻辑器件 的优点是可以将数字电路部分都在可编程逻辑器件中实现,可以使数字电路简 单可靠,缺点是在模拟电路为主且控制逻辑不很复杂时,偏内资源利用率不高, 且成本较高。 (2) 使用微控制器作为系统的控制部件,优点是灵活性高,成本低。缺点是在控制 逻辑复杂时软件的编制较困难。 由于设计要求中所设计的数字控制逻辑相对较少,因此本设计采用第二种方案。 系统的总体框架如下: 话筒输出 前级放大电路 带通滤波电路 (1)
数字化语音录放系统 1.系统设计
1.1 设计要求
设计并制作一个数字化语音录放系统。 基本要求: (1) 在使用 32kByteRAM 的情况下, 要能够录制 4 秒钟的语音信号 (8bit/8kHz 采样) 。 (2) 语音信号通过驻极体话筒采集,回放时,需用扬声器或耳机放出,输出功率不 小于 100mW。 扩展要求: (1) 使用 A 率/μ率变换提高语音信号中小信号的质量。 (2) 增加 AGC 电路和高频补偿电路,提高语音清晰度。 (3) 在 32kByteRAM 中存放超过 4 秒的语音信号。 (4) 整个系统采用单电源供电。 系统的框架图如下
5.3 待改进的部分
可以扩展 AGC 电路,采用更好的压缩算法可以存储更长时间的语音。但由于时间较 紧,这些部分电路及算法复杂,被迫放弃。
6.附录
数字式语音录放系统完整控制程序:
/****************************************Copyright(c)***************************************** /* 声明部分 *******************************************************************************************/
1.2.5 后级滤波电路方案论证
(1) 采用无源滤波网络。 (2) 采用有源滤波电路。 各方案的优缺点如前 1.2.3 所述。基于同样的理由,本系统采用有源二阶低通滤波电 路。
1.2.6 后级功率放大电路方案论证
(1) 采用分立元件搭建功率放大电路。优点是成本较低。但缺点是电路复杂,不易调试, 可靠性及功率放大性能都不理想。 (2) 采用专门的音频功率放大器 LM386 构成功放电路。优点是电路的频率响应特性较 好,电路简单,可靠性高。缺点是成本较高。 本设计中采用后一种方案。
4.1 前级滤波放大部分电路调试
连接上驻极体话筒,调整可变电阻的阻值,改变放大电路的放大倍数,使得语音信号
经放大及滤波后尽量保持在 0V~3.3V 之间。 并且用示波器观察信号经放大滤波后的频谱,在 300Hz~3.4kHz 频段被正常放大,其 他频率信号得到抑制。
4.2 后级滤波功放部分电路调试
1.2.4 语音数据存取方案论证
(1) 采用专用数据地址总线结构扩展外部存储器 62256。与具有专门的地址总线和数据 总线的微控制器扩展使用很方便,存取速度快。但缺点是与不具备专门数据总线和 地址总线的微控制器操作困难。 (2) 采用具有 SPI 接口的串行存储器 AT45DB041B。 优点是占用系统 IO 口较少。 缺点是 速度较并行存储慢。 由于本方案采用的微控制器是 LPC2132, 没有专用地址总线, 不适宜扩展并行存储器, 而 AT45DB041B 具有的 SPI 接口可以很方便的与 LPC2132 相连,存储速度可达 4Mbps,完 全可以满足设计要求。
R2 = 10 R3
第二级选取R4=1k,R1为 10k可变电阻,起到调整放大倍数的作用。
2.2 前级滤波电路设计
带通滤波电路如下:
图二、带通滤波电路
由 于 语 音 信 号 的 频 率 在 300Hz~3.4kHz 之 间 , 因 此 带 通 滤 波 器 的 高 通 滤 波 部 分 取 C3=C4=50nF,R5=R6=10k,则其下限截止频率为
3.软件设计
3.1 控制流程
微控制器在上电复位后,首先初始化 GPIO 设定,按键中断向量及定时器中断,SPI 接 口设定。 程序中设立了两个全局变量 recode 和 play,分别表示录音和放音状态,这样在按键中 断处理中只需要相应的改变 recode 或 play 的值,使中断处理简单化。在主程序中循环查询 recode 与 play 的值,作出相应操作。 程序流程图如下:
有信号发生器替代 DA 转换器提供信号,连接至输入端。调整功率放大电路的放大倍 数。 由于信号发生器提供的信号为正弦波信号,频带与实际不符。因此在调试中选取有代 表性的 100Hz,400Hz,2kHz,4kHz 信号分别测试放大倍数,测得的放大滤波特性满足设 计要求。
4.3 整体电路调试
将整个系统连接起来,实际操作。 只要 4.1 及 4.2 的调试通过,这一部分没有太大困难。关键是控制程序的调试。
1.2.3 前级滤波电路方案论证
(1) 采用无源滤波电路。优点是电路构成简单,使用元件少。缺点是信号衰减严重,并 且后级电路的输入阻抗对通带放大倍数影响较大。 (2) 采用运放构成有源滤波电路。优点是可以消除信号衰减,并且是负载对通带放大倍 数无影响。但是会增加电路的复杂性。 本设计中滤波电路采又有一种方案。
2.4 后级滤波电路设计
后级滤波电路如下
图三、后级滤波电路 电路的主要作用是滤除DA输出带来的高频噪声,取R1=R2=470,C1=C2=100n,则低通截 止频率为
fp =
1 = 3.4kHz 2πR1C1
2.5 功率放大电路设计
后级放大电路及耳机输出如下
图四、功率放大电路
R3取 10k可变电阻,总功率增益为 34dB。
5.设计总结 5.1 设计完成的基本功能
本设计输出才用 8Ω阻抗的扬声器, 输出功率大于 100mW。 在 512kB 的存储空间完成 了超过 60 秒的语音录放。
5.2 设计完成的扩展功能
由于设计中采用的 LM324 及 LM386 都可以但电源供电,因此在单电源时,稍微更改 。 电路的一些参数,即可正常工作在+15V 电压下。完成扩展要求(4) 输出增加了高频补偿电路,缓解了回放信号的高频衰减。
f p1 =
1 = 318 Hz 2πR3 C 5
高通滤波部分取C1=C2=50nF,R1=R2=1k,则上限截止频率为
f p2 =
基本满足语音信号的滤波要求。
1 = 3.2kHz 2πR1C1
2.3 与微控制器接口设计
语音数据存取单元以 LPC2132 为中心构成,使用内部的 AD 转换器和 DA 转换器。 在语音采集过程中,语音信号以 32kHz 的频率被采集进入 LPC2132 内部 AD,经过 LPC2132 处理后再以 8kHz 的采样率以增量编码的方式存储在 AT45DB041B 中,LPC2132 与 AT45DB041B 之间通过 SPI 相连。这样在 AT45DB041B 中 4Mbit 的空间中就能存储 60 秒的语音。 回放时,存储在 AT45DB041B 的语音数据经 SPI 接口传输到 LPC3132,经解码后置 DA 输出,在经滤波和功率放大驱动扬声器发声。 在本设计中经放大滤波后的语音信号连接至 LPC2132 的 P0.27,表示录音和回放的两 种状态的指示灯分别连接至 P0.10 和 P0.9。使用 P0.16 和 P0.20 作为控制录音与回放的案件 接口,分别使用外部中断 EINT0 和外部中断 EINT3。
| //TEST=00 NORMAL MODE //falling edge begined
/******************************************************************************************* **timer0 的初始化,它负责产生 32kB/s 的 **但是 TIMER0 不产生中断 *******************************************************************************************/ void inital_timer0(void) MAT0.1 ~~ P0.5 的匹配,用于启动 ADC 的转换
{ T0TC=0; T0PR=0; T0MCR=1<<10; T0EMR=3<<10; T0TCR=0x03; T0TCR=0x01; } //设置 MR1 匹配后复位定时器 T0MR3=Fpclk/64000;
语音数据存取单元 (LPC2132 构成)
耳机输入
后级放大电路
低通滤波电路
系统总体框架图
1.2.2 前级放大电路方案论证
(1) 采用低噪声、低偏置电压的运放构成同向比例放大电路。优点是附加一定的调整电 路可以精确放大微弱型号。但缺点是电路复杂性提高,成本增加。多用于仪表等放 大电路。
(2) 采用通用型运放构成同向比例放大电路。优点是电路简单,易于调试,成本低。但 由于运放自身参数,不适宜用于放大微弱型号。 由于本系统中驻极体话筒采集的语音信号经测量在几个毫伏左右。一般通用的运放足 以完成信号的放大, 并且采用两级同步比例放大电路也是放大电路的输入阻抗足够大, 对信 号的影响可以忽略。因此本设计中采用了很通用运放 LM324。
开始
GPIO 初始化
按键中断初始化
定时器初始化
SPI 初始化
查询 recode
recode=1
recode=0
采集语音数据
查询 play play=0
play=1
播放语音
图五、数字语音录放系统控制程序流程图
3.2 控制程序实现
完整的控制程序见附录。
4.电路调试
基于系统的结构和各部分功能,将系统分为前级放大滤波部分,数据处理控制部分及 调试通过后在整体调试。 其中数据处理控制部分对其他两部分 后级滤波功放部分分开调试, 有较大的依赖性,因此在最后调试。
2.单元电路设计
2.1 前级放大电路设计
前级放大电路如下:
图一、前级放大电路
在本设计中由于驻极体话筒输出信号约为 5mV,而LPC2132 内含的AD的转换电压范围 为 0V~3.3V。因此设计两级放大电路的增益约为 35dB~37dB,图中取R3=1k,R2=10k,第一 级电压放大倍数为
A = 1+