音频信号采集前端电路
一、实验要求
要求设计一个声音采集系统
信号幅度:0.1mVpp到1Vpp
信号频率:100Hz到16KHz
搭建一个带通滤波器,滤除高频和低频部分
ADC采用套件中的AD7920,转换率设定为96Ksps ;96*16=1536
ADC前端需要一个抗混叠滤波器,需要设计合适的截止频率
二、实验原理
- 拾音器(咪头)
咪头是将声音信号转换为电信号的设备,这里选用电容式驻极体咪头。
驻极体话筒具有体积小、结构简单、电声性能好、价格低的特点,广泛用于盒式录音机、无线话筒及声控等电路中。属于最常用的电容话筒。由于输入和输出阻抗很高,所以要在这种话筒外壳内设置一个场效应管作为阻抗转换器,为此驻极体电容式话筒在工作时需要直流工作电压。
- 小信号放大
咪头输出电信号较小,约数十毫伏,且经过电容隔直后,信号既有正电压也有负电压,为了满足AD采样的要求,需要将小信号放大并增加直流偏置使电压范围在0~5V内。
使用AD8542双运放(5V单电源供电)对信号进行两级放大,在第一级放大中使用模拟开关来控制反馈电阻的接入进而控制第一级放大的增益在1倍与10倍变化,第二级20倍增益,同时在运放同相端用分压电阻提供直流偏置。
示波器捕获的咪头输出的信号:10几个毫伏
LTspice软件模拟输入信号(信号源)10毫伏,频率1Khz
LTspice软件模拟输出信号0.2V到4.4V,适合模数转换器AD7902做信号采集
- 滤波
图中在第一级运放后引入一个一阶RC高通滤波器,下限截止频率为1/(2πRC)理论计算为106HZ,软件模拟为100Hz,图中第二级运放后引入2阶低通有源滤波器,上限截止频率:
等于14.7Khz软件模拟为16Khz
LTspice软件模拟带通滤波:100Hz到16KHz
- 模数转换
本系统中需要将模拟声音波形转换成数字信号,便于单片机做进一步的处理。
由于语音信号频带为100Hz到16KHz,根据奈圭斯特采样定理,至少要32KHz的采样频率才能保证从样本中无失真恢复出原信号,否则信号在频域会有混叠。
ADC采用套件中的AD7920,转换率设定为96Ksps ,96*16=1536,AD7920的时钟信号为1.536MHz,所以不需要再设置抗混叠滤波器。
AD7920的单片机采集C语言程序:
/**
* @brief :AD7920数据采集
* @param :void
* @retval :返回u16类型的采集模拟量数据
* @usage:
*/
u16 AD7920_RD_Halfword(void)
{
u16 dat = 0 ;
u16 i;
AD7920_CS = 1; //AD7920使能
AD7920_SCLK = 1; //AD7920时钟
delay_us(10);
AD7920_CS = 0;
delay_us(10);
for(i=0;i<15;i++)
{
dat = dat <<1;
AD7920_SCLK = 0;
delay_us(10);
AD7920_SCLK = 1;
dat = dat + AD7920_SDIN; //AD7920数据
delay_us(10);
}
AD7920_CS = 1;
return dat;
}
三、实验验证
使用面包板搭建电路验证电路的原理。
四、问题与总计
感觉模拟仿真与实际电路还是有很大的区别,就越学习越感觉问题越多,而且暂时找不到答案。
1.不知道是不是面包板的原因,USB直接供电的话,输出有很多噪声,信号输出到喇叭后,有时候会有啸叫,尝试使用电容给USB供电滤波,在USB供电端加两个电容,1个220uf的电解电容,1个0.1uf的陶瓷电容,效果不明显。
2.AD7920 ADC采集电压也存在噪声不知道怎么去除的问题,在AD792采集一个固定电压信号,比如3.3V ,0V, 1.2V都实现了,没有任何问题,但是在采集音频信号时,噪声太大,处理不了,不知道是不是因为使用面包板,和杜邦线连接的问题。还是其他问题,后续做一张PCB板实验一下到底是什么造成的噪声。