全国电子设计大赛一等奖论文

题目名称:音频信号分析仪(A题)

华南理工大学电子与信息学院 参赛队员:陈旭 张洋 林士明

摘要: 本音频信号分析仪由32位MCU为主控制器,通过AD转换,对音频信号进行采样,把连续信号离散化,然后通过FFT快速傅氏变换运算,在时域和频域对音频信号各个频率分量以及功率等指标进行分析和处理,然后通过高分辨率的LCD对信号的频谱进行显示。该系统能够精确测量的音频信号频率范围为20Hz-10KHz,其幅度范围为5mVpp-5Vpp,分辨力分为20Hz和100Hz两档。测量功率精确度高达1%,并且能够准确的测量周期信号的周期,是理想的音频信号分析仪的解决方案。

关键词: FFT MCU 频谱 功率

Abstract: The audio signal analyzer is based on a 32-bit MCU controller, through the AD converter for audio signal sampling, the continuous signal discrete, and then through the FFT fast Fourier transform computing, in the time domain and frequency domain of the various audio frequency signal weight and power, and other indicators for analysis and processing, and then through the high-resolution LCD display signals in the spectrum. The system can accurately measure the audio signal frequency range of 20 Hz-10KHz, the range of 5-5Vpp mVpp, resolution of 20 Hz and 100 Hz correspondent. Power measurement accuracy up to 1%, and be able to accurately measuring the periodic signal cycle is the ideal audio signal analyzer solution.

Keyword: FFT MCU Spectrum Power

1 方案论证与比较 ................................................................................................................................ 3 1.1 采样方法方案论证 ..................................................................................................................... 3 1.2 处理器的选择方案论证 ........................................................................... 错误!未定义书签。 1.3 周期性判别与测量方法方案论证 ........................................................... 错误!未定义书签。 2 系统设计 ............................................................................................................................................ 5 2.1 总体设计 ..................................................................................................................................... 5 2.2 单元电路设计 ............................................................................................................................. 5 2.2.1 前级阻抗匹配和放大电路设计 .......................................................................................... 5 2.2.2 AD转换及控制模块电路设计 ............................................................................................ 6 2.2.3 功率谱测量单元电路设计 .................................................................................................. 6 3 软件设计 ............................................................................................................................................ 7 4 系统测试............................................................................................................................................ 8 5 结论 .................................................................................................................................................... 9 参考文献: .............................................................................................................................................. 9 附录: ...................................................................................................................................................... 9 附1:元器件明细表: ....................................................................................................................... 9 附2:仪器设备清单 ........................................................................................................................... 9 附3:电路图图纸 ............................................................................................................................. 10 附4:程序清单 ................................................................................................................................. 11

1 方案论证与比较

1.1 采样方法比较与选择

方案一、用DDS芯片配合FIFO对信号进行采集,通过DDS集成芯片产生一个频率稳

定度和精度相当高的信号作为FIFO的时钟,然后由FIFO对A/D转换的结果进行采集和存储,最后送MCU处理。

方案二、直接由32位MCU的定时中断进行信号的采集,然后对信号分析。

由于32位MCU -LPC2148是60M的单指令周期处理器,所以其定时精确度为16.7ns,已经远远可以实现我们的40.96KHz的采样率,而且控制方便成本便宜,所以我们选择由MCU直接采样。

1.2 处理器的比较与选择

系统方案一:基于ARMST710的专用芯片的体统方案。基于ARM ST710音频频谱分析

该方案采用DSP专用芯片ARM ST710进行控制和FFT计算,速度快,且具有波形存储和处理后的波形可以重放功能。还配有输出接口与示波器销量。可以从时域和频域观察波形,非常直观、实用。 系统方案四:基于单片机C8051F060+FPGA构成信号分析仪,该系统原理方框图如图所示。单片机C8051F060独立完成4096点FFT运算和信号的失真度分析。虽然这种方案在速度上不及采用专用DPS芯片快,但采用优化的FFT,并将优化后的FFT再单片机内做实验,利用外扩的128KB RAM运算4096点FFT计算幅度谱,利用FPGA进行测频和控制。其运算时间也不超过4S。能够达到设计要求。

最终方案选择:由于快速傅立叶变换FFT算法设计大量的浮点运算,由于一个浮点占用四个字节,所以要占用大量的内存,同时浮点运算时间很慢,所以采用普通的8位MCU一般难以在一定的时间内完成运算,所以综合内存的大小以及运算速度,我们采用Philips 的32位的单片机LPC2148,它拥有32K的RAM,并且时钟频率高达60M,所以对于浮点运算不论是在速度上还是在内存上都能够很快的处理。

1.3 周期性判别与测量方法比较与选择

对于普通的音频信号,频率分量一般较多,它不具有周期性。测量周期可以在时域测

量也可以在频域测量,但是由于频域测量周期性要求某些频率点具有由规律的零点或接近零点出现,所以对于较为复杂的,频率分量较多且功率分布较均匀且低信号就无法正确的分析其周期性。

而在时域分析信号,我们可以先对信号进行处理,然后假定具有周期性,然后测出频率,把采样的信号进行周期均值法和定点分析法的分析后即可以判别出其周期性。

综上,我们选择信号在时域进行周期性分析和周期性测量。对于一般的音频信号,其时域变化是不规则的,所以没有周期性。而对于单频信号或者由多个具有最小公倍数的频率组合的多频信号具有周期性。这样我们可以在频域对信号的频谱进行定量分析,从而得出其周期性。而我们通过先假设信号是周期的,然后算出频率值,然后在用此频率对信号进行采样,采取连续两个周期的信号,对其值进行逐次比较和平均比较,若相差太远,则认为不是周期信号,若相差不远(约5%),则可以认为是周期信号。

2 系统设计

2.1 总体设计

音频信号经过一个由运放和电阻组成的50 Ohm阻抗匹配网络后,经由量程控制模块进行处理,若是一般的100mV-5V的电压,我们选择直通,也就是说信号没有衰减或者放大,但是若信号太小,12位的A/D转换器在2.5V参考电压的条件下的最小分辨力为1mV左右,所以如果选择直通的话其离散化处理的误差将会很大,所以若是采集到信号后发现其值太小,在20mV-250mV之间的话,我们可以将其认定为小信号,从而选择信号经过20倍增益的放大器后再进行A/D采样。

经过12位A/D转换器ADS7819转换后的数字信号经由32位MCU进行FFT变换和处理,分析其频谱特性和各个频率点的功率值,然后将这些值送由Atmega16进行显示。信号由32 位MCU分析后判断其周期性,然后由Atmegal6进行测量,然后进行显示。

总体设计框架图

2.2 单元电路设计

2.2.1 前级阻抗匹配和放大电路设计

信号输入后通过R5,R6两个100Ohm的电阻和一个高精度仪表运放AD620实现跟随作用,由于理想运放的输入阻抗为无穷大,所以输入阻抗即为:R5//R6=50Ohm,阻抗匹配后的通过继电器控制是对信号直接送给AD转换还是放大20倍后再进行AD转换。

在这道题目里,需要检测各频率分量及其功率,并且要测量正弦信号的失真度,这就要求在对小信号进行放大时,要尽可能少的引入信号的放大失真。正弦信号的理论计算失真度为零,对引入的信号失真非常灵敏,所以对信号的放大,运放的选择是个重点。

我们选择的运放是TI公司的低噪声、低失真的仪表放大器INA217,其失真度在频率为1KHz,增益为20dB(100倍放大)时仅为0.004%,其内部原理图如下图所示。

其中放大器A1的输出电压计算公式为

OUT1=1+(R1/RG)*VIN+

同理, OUT2=1+(R2/RG)*VIN-- R3、R4、R5、R6及A3构成减法器,最后得到输出公式

VOUT=(VIN2-VIN1)*[1+(R1+R2)/RG]

R1=R2=5K,取RG=526,从而放大倍数为20。

2.2.2 AD转换及控制模块电路设计

采用12位AD转换器ADS7819进行转换,将转换的数据送32位控制器进行处理。

2.2.3 功率谱测量

功率谱测量主要通过对音频信号进行离散化处理,通过FFT运算,求出信号各个离散频率点的功率值,然后得到离散化的功率谱。

由于题目要求频率分辨力为100Hz和20Hz两个档,这说明在进行FFT运算前必须通过调整采样频率(fK)和采样的点数(N),使其基波频率f为100Hz和20Hz。

根据频率分辨率与采样频率和采样点数的关系:

f=fk/N;

可以得知, fk=N*f;

又根据采样定理,采样频率fk必须不小于信号频率fm的2倍,即: fk>=2fm;

题目要求的最大频率为10KHz,所以采样频率必须大于20KHz,考虑到FFT运算在2的次数的点数时的效率较高,所以我们在20Hz档时选择40.96KHz采样率,采集2048个点,而在100档时我们选择51.2KHz采样率,采集512个点。

通过FFT 分析出不同的频率点对应的功率后,就可以画出其功率谱,并可以在频域计算其总功率。

3 软件设计

主控制芯片为LPC2148,测量周期为Atmega16实现,由于处理器速度较快,所以采用c语言编程方便简单.软件流程图如下:

主流程图

周期性分析和测量流程图

4 系统测试

4.1 总功率测量(室温条件下)

结果分析: 由于实验室提供的能够模仿音频信号的且能方便测量的信号只有正弦信号,所以我们用一款比较差点的信号发生器产生信号,然后进行测量,发现误差不达,在+-5%以内。我们以音频信号进行测量,由于其实际值无法测量,所以我们只能根据时域和频域以及估计其误差,都在5%以内。

4.2 单个频率分量测量(室温条件下)

结果分析:我们首先以理论上单一频率的正弦波为输入信号,在理想状况下,其频谱只在正弦波频率上有值,而由于有干扰,所以在其他频点也有很小的功率。

音频信号由于有多个频点,所以没有一定的规律性。由于音频信号波动较大,没有一定的规律,且实验室没有专门配置测量仪器,所以我们只好以正弦波和三角波作为信号进行定量分析测量,以及对音频信号进行定性的分析和测量。我们发现其数字和用电脑模拟的结果符合得很近。

5 结论

由于系统架构设计合理,功能电路实现较好,系统性能优良、稳定,较好地达到了题目要求的各项指标。

参考文献:

《信号与系统》,ALAN V.OPPENHEIM著,西安:西安交通大学出版社,1997年; 《数字图像处理学》,元秋奇著,北京:电子工业出版社,2000年; 《模拟电子线路基础》,吴运昌著,广州:华南理工大学出版社,2004年; 《数字电子技术基础》,阎石著,北京:高等教育出版社,1997年; 《数据结构与算法》,张晓丽等著,北京:机械工业出版社,2002年; 《ARM&Linux嵌入式系统教程》,马忠梅等著,北京:北京航空航天大学出版社,2004年; 《单片机原理及应用》,李建忠著,西安:西安电子科技大学,2002年;

附录:

附1:元器件明细表:

1、 LPC2148 2、 ATMEGA16 3、 AD620 4、 ADS7819 5、 液晶320*240

附2:仪器设备清单

1、 低频信号发生器 2、 数字万用表 3、 失真度测量仪 4、 数字示波器 5、 稳压电源

附3:电路图图纸

电源系统

前级放大和AD转换

Atmega16控制板

附4:程序清单

/*/////////////////////////////////////////////////////////////////////////////////////////////////

FFT转换函数,dataR:实部,datai:虚部,

////////////////////////////////////////////////////////////////////////////////////////////////*/

void FFT(float *dataR,float *dataI,int n)

{

int i,L,j,k,b,p,xx,qq;

int x[11]={0};

float TR,TI,temp;

float QQ;

//////////////////////////////////位倒置////////////////////////////////////////////////////

for(i=0;i

{ xx=0;

for(j=0;j

x[j]=0;

for(j=0;j

{x[j]=(i/count[j])&0x01;}

for(j=0;j

{xx=xx+x[j]*count[n-j-1];}

dataI[xx]=dataR[i];

}

for(i=0;i

{ dataR[i]=dataI[i];

dataI[i]=0;

////////////////////////////////////蝶形运算////////////////////////////////////////

for(L=1;L

{

b=1; i=L-1;

while(i>0)

{ b=b*2;

i--;

}

for(j=0;j

{ p=1; i=n-L;

while(i>0)

{ p=p*2; i--;}

p=p*j;

for(k=j;k

{

TR=dataR[k];

TI=dataI[k];

temp=dataR[k+b];

QQ=2*pi*p/count[n];

qq=p*count[11-n];

dataR[k]=dataR[k]+dataR[k+b]*cos_tab[qq]+dataI[k+b]*sin_tab[qq];

dataI[k]=dataI[k]-dataR[k+b]*sin_tab[qq]+dataI[k+b]*cos_tab[qq];

dataR[k+b]=TR-dataR[k+b]*cos_tab[qq]-dataI[k+b]*sin_tab[qq]; //查表运算

dataI[k+b]=TI+temp*sin_tab[qq]-dataI[k+b]*cos_tab[qq];

}

}

}

for(i=0;i

{

w[i]=sqrt(dataR[i]*dataR[i]+dataI[i]*dataI[i]);

w[i]=w[i]/count[n-1];

}

w[0]=w[0]/2;

}

///////////////////////////回放数据/////////////////////////

void viewdata(void)

{

unsigned int key,page,i;

page=0;

LCD_PenColor=0x1F; //红色

LCD_WriteChineseString(font5,2,40,0);

LCD_PenColor=0xFC; //蓝色

while(1){

key=getkey();

if(key!=0xFF)

{

if(key==4) {SystemState=fft_mode;return;} //返回

if(key==2) {

LCD_ClearScreen();

LCD_WriteChineseString(font3,2,10,0);LCD_WriteChineseString(font4,2,60,0);

i=page*4+1;

p3510(Re[i],0,15); print3510(Im[i]*mode,50,15);

p3510(Re[i+1],0,26); print3510(Im[i+1]*mode,50,25);

p3510(Re[i+2],0,38); print3510(Im[i+2]*mode,50,35);

p3510(Re[i+3],0,50); print3510(Im[i+3]*mode,50,50);

if(page>0) page--;

delay_nms(8000000);

} //上翻页

if(key==1) {

LCD_ClearScreen();

LCD_WriteChineseString(font3,2,10,0);LCD_WriteChineseString(font4,2,60,0);

i=page*4+1;

p3510(Re[i],0,15); print3510(Im[i]*mode,50,15);

p3510(Re[i+1],0,26); print3510(Im[i+1]*mode,50,25);

p3510(Re[i+2],0,38); print3510(Im[i+2]*mode,50,35);

p3510(Re[i+3],0,50); print3510(Im[i+3]*mode,50,50);

page++;if(page>=SampleNum/4) page=0;

delay_nms(8000000);

} //下翻页

}

}

}

////////////////////////////失真度计算///////////////////////

void distortion(void)

{

LCD_ClearScreen();

LCD_WriteChineseString(font6,3,10,20);

unsigned int key;

int fr;

while(1)

{

////////////获取频率////////////////////

log_2_N=11;SampleNum=SampleTab[log_2_N];

reset_timer(0);

init_timer0(40960);

New_Flag=0;

enable_timer(0);

////////////////////等待采样完成///////////////////////////

while(!FFT_Flag);

disable_timer(0); //关定时器0

//////////////////////FFT运算/////////////////////////////////

FFT(Re,Im,log_2_N);

////////////////频域功率////////////////////////////////////

for(i=1;i

////////////////////总功率/////////////////////////////////

Fp=0;

for(i=1;i

sort(&Re[1],&Im[1],SampleNum/2-1);

fr=1000000/fre;

if(Tflag) {LCD_WriteChineseString(font7,1,50,20);LCD_WriteEnglishString(

else

{LCD_WriteEnglishString(

////////////////////按键扫描/////////////////////////////

key=getkey();

if(key!=0xFF)

{

if(key==1) {SystemState=fft_mode;mode=20;break;} //返回 if(key==2) {SystemState=fft_mode;mode=100;break;} //返回 }

}

}

/////////////////按键扫描//////////////////////////////

unsigned char getkey(void)

{

if(IO1PIN_bit.P1_21==0) {

delay_nms(200000);

if(IO1PIN_bit.P1_21==0) return 1;

}

if(IO1PIN_bit.P1_22==0) {

delay_nms(2000000);

if(IO1PIN_bit.P1_22==0) return 2;

}

if(IO1PIN_bit.P1_23==0) {

delay_nms(2000000);

if(IO1PIN_bit.P1_23==0) return 3;

}

if(IO1PIN_bit.P1_24==0) {

delay_nms(2000000);

if(IO1PIN_bit.P1_24==0) return 4;

}

return 0xFF;

}

//////////////////排序处理//////////////////////////////

void sort(float *a,float *b,int n) //a为待排序的量,b为起位置 {

int i,j,temp;

for(i=0;i

for(j=0;j

{

for (i=0;i

if (a[i]

{

temp=a[i];

a[i]=a[i+1];

a[i+1]=temp;

temp=b[i];

b[i]=b[i+1];

b[i+1]=temp;

}

}

}

//////////////////////显示/////////////////// void p3510(int v,int x,int y) {

int x0;

x0=v*157;

x0=x0/100000000;

LCD_WriteEnglishChar(x0+'0',x,y); x0=v*157;

x0=x0/100;

x0+=1000000;

print3510(x0,x+6,y);

LCD_WriteEnglishChar('.',x+6,y); }

题目名称:音频信号分析仪(A题)

华南理工大学电子与信息学院 参赛队员:陈旭 张洋 林士明

摘要: 本音频信号分析仪由32位MCU为主控制器,通过AD转换,对音频信号进行采样,把连续信号离散化,然后通过FFT快速傅氏变换运算,在时域和频域对音频信号各个频率分量以及功率等指标进行分析和处理,然后通过高分辨率的LCD对信号的频谱进行显示。该系统能够精确测量的音频信号频率范围为20Hz-10KHz,其幅度范围为5mVpp-5Vpp,分辨力分为20Hz和100Hz两档。测量功率精确度高达1%,并且能够准确的测量周期信号的周期,是理想的音频信号分析仪的解决方案。

关键词: FFT MCU 频谱 功率

Abstract: The audio signal analyzer is based on a 32-bit MCU controller, through the AD converter for audio signal sampling, the continuous signal discrete, and then through the FFT fast Fourier transform computing, in the time domain and frequency domain of the various audio frequency signal weight and power, and other indicators for analysis and processing, and then through the high-resolution LCD display signals in the spectrum. The system can accurately measure the audio signal frequency range of 20 Hz-10KHz, the range of 5-5Vpp mVpp, resolution of 20 Hz and 100 Hz correspondent. Power measurement accuracy up to 1%, and be able to accurately measuring the periodic signal cycle is the ideal audio signal analyzer solution.

Keyword: FFT MCU Spectrum Power

1 方案论证与比较 ................................................................................................................................ 3 1.1 采样方法方案论证 ..................................................................................................................... 3 1.2 处理器的选择方案论证 ........................................................................... 错误!未定义书签。 1.3 周期性判别与测量方法方案论证 ........................................................... 错误!未定义书签。 2 系统设计 ............................................................................................................................................ 5 2.1 总体设计 ..................................................................................................................................... 5 2.2 单元电路设计 ............................................................................................................................. 5 2.2.1 前级阻抗匹配和放大电路设计 .......................................................................................... 5 2.2.2 AD转换及控制模块电路设计 ............................................................................................ 6 2.2.3 功率谱测量单元电路设计 .................................................................................................. 6 3 软件设计 ............................................................................................................................................ 7 4 系统测试............................................................................................................................................ 8 5 结论 .................................................................................................................................................... 9 参考文献: .............................................................................................................................................. 9 附录: ...................................................................................................................................................... 9 附1:元器件明细表: ....................................................................................................................... 9 附2:仪器设备清单 ........................................................................................................................... 9 附3:电路图图纸 ............................................................................................................................. 10 附4:程序清单 ................................................................................................................................. 11

1 方案论证与比较

1.1 采样方法比较与选择

方案一、用DDS芯片配合FIFO对信号进行采集,通过DDS集成芯片产生一个频率稳

定度和精度相当高的信号作为FIFO的时钟,然后由FIFO对A/D转换的结果进行采集和存储,最后送MCU处理。

方案二、直接由32位MCU的定时中断进行信号的采集,然后对信号分析。

由于32位MCU -LPC2148是60M的单指令周期处理器,所以其定时精确度为16.7ns,已经远远可以实现我们的40.96KHz的采样率,而且控制方便成本便宜,所以我们选择由MCU直接采样。

1.2 处理器的比较与选择

系统方案一:基于ARMST710的专用芯片的体统方案。基于ARM ST710音频频谱分析

该方案采用DSP专用芯片ARM ST710进行控制和FFT计算,速度快,且具有波形存储和处理后的波形可以重放功能。还配有输出接口与示波器销量。可以从时域和频域观察波形,非常直观、实用。 系统方案四:基于单片机C8051F060+FPGA构成信号分析仪,该系统原理方框图如图所示。单片机C8051F060独立完成4096点FFT运算和信号的失真度分析。虽然这种方案在速度上不及采用专用DPS芯片快,但采用优化的FFT,并将优化后的FFT再单片机内做实验,利用外扩的128KB RAM运算4096点FFT计算幅度谱,利用FPGA进行测频和控制。其运算时间也不超过4S。能够达到设计要求。

最终方案选择:由于快速傅立叶变换FFT算法设计大量的浮点运算,由于一个浮点占用四个字节,所以要占用大量的内存,同时浮点运算时间很慢,所以采用普通的8位MCU一般难以在一定的时间内完成运算,所以综合内存的大小以及运算速度,我们采用Philips 的32位的单片机LPC2148,它拥有32K的RAM,并且时钟频率高达60M,所以对于浮点运算不论是在速度上还是在内存上都能够很快的处理。

1.3 周期性判别与测量方法比较与选择

对于普通的音频信号,频率分量一般较多,它不具有周期性。测量周期可以在时域测

量也可以在频域测量,但是由于频域测量周期性要求某些频率点具有由规律的零点或接近零点出现,所以对于较为复杂的,频率分量较多且功率分布较均匀且低信号就无法正确的分析其周期性。

而在时域分析信号,我们可以先对信号进行处理,然后假定具有周期性,然后测出频率,把采样的信号进行周期均值法和定点分析法的分析后即可以判别出其周期性。

综上,我们选择信号在时域进行周期性分析和周期性测量。对于一般的音频信号,其时域变化是不规则的,所以没有周期性。而对于单频信号或者由多个具有最小公倍数的频率组合的多频信号具有周期性。这样我们可以在频域对信号的频谱进行定量分析,从而得出其周期性。而我们通过先假设信号是周期的,然后算出频率值,然后在用此频率对信号进行采样,采取连续两个周期的信号,对其值进行逐次比较和平均比较,若相差太远,则认为不是周期信号,若相差不远(约5%),则可以认为是周期信号。

2 系统设计

2.1 总体设计

音频信号经过一个由运放和电阻组成的50 Ohm阻抗匹配网络后,经由量程控制模块进行处理,若是一般的100mV-5V的电压,我们选择直通,也就是说信号没有衰减或者放大,但是若信号太小,12位的A/D转换器在2.5V参考电压的条件下的最小分辨力为1mV左右,所以如果选择直通的话其离散化处理的误差将会很大,所以若是采集到信号后发现其值太小,在20mV-250mV之间的话,我们可以将其认定为小信号,从而选择信号经过20倍增益的放大器后再进行A/D采样。

经过12位A/D转换器ADS7819转换后的数字信号经由32位MCU进行FFT变换和处理,分析其频谱特性和各个频率点的功率值,然后将这些值送由Atmega16进行显示。信号由32 位MCU分析后判断其周期性,然后由Atmegal6进行测量,然后进行显示。

总体设计框架图

2.2 单元电路设计

2.2.1 前级阻抗匹配和放大电路设计

信号输入后通过R5,R6两个100Ohm的电阻和一个高精度仪表运放AD620实现跟随作用,由于理想运放的输入阻抗为无穷大,所以输入阻抗即为:R5//R6=50Ohm,阻抗匹配后的通过继电器控制是对信号直接送给AD转换还是放大20倍后再进行AD转换。

在这道题目里,需要检测各频率分量及其功率,并且要测量正弦信号的失真度,这就要求在对小信号进行放大时,要尽可能少的引入信号的放大失真。正弦信号的理论计算失真度为零,对引入的信号失真非常灵敏,所以对信号的放大,运放的选择是个重点。

我们选择的运放是TI公司的低噪声、低失真的仪表放大器INA217,其失真度在频率为1KHz,增益为20dB(100倍放大)时仅为0.004%,其内部原理图如下图所示。

其中放大器A1的输出电压计算公式为

OUT1=1+(R1/RG)*VIN+

同理, OUT2=1+(R2/RG)*VIN-- R3、R4、R5、R6及A3构成减法器,最后得到输出公式

VOUT=(VIN2-VIN1)*[1+(R1+R2)/RG]

R1=R2=5K,取RG=526,从而放大倍数为20。

2.2.2 AD转换及控制模块电路设计

采用12位AD转换器ADS7819进行转换,将转换的数据送32位控制器进行处理。

2.2.3 功率谱测量

功率谱测量主要通过对音频信号进行离散化处理,通过FFT运算,求出信号各个离散频率点的功率值,然后得到离散化的功率谱。

由于题目要求频率分辨力为100Hz和20Hz两个档,这说明在进行FFT运算前必须通过调整采样频率(fK)和采样的点数(N),使其基波频率f为100Hz和20Hz。

根据频率分辨率与采样频率和采样点数的关系:

f=fk/N;

可以得知, fk=N*f;

又根据采样定理,采样频率fk必须不小于信号频率fm的2倍,即: fk>=2fm;

题目要求的最大频率为10KHz,所以采样频率必须大于20KHz,考虑到FFT运算在2的次数的点数时的效率较高,所以我们在20Hz档时选择40.96KHz采样率,采集2048个点,而在100档时我们选择51.2KHz采样率,采集512个点。

通过FFT 分析出不同的频率点对应的功率后,就可以画出其功率谱,并可以在频域计算其总功率。

3 软件设计

主控制芯片为LPC2148,测量周期为Atmega16实现,由于处理器速度较快,所以采用c语言编程方便简单.软件流程图如下:

主流程图

周期性分析和测量流程图

4 系统测试

4.1 总功率测量(室温条件下)

结果分析: 由于实验室提供的能够模仿音频信号的且能方便测量的信号只有正弦信号,所以我们用一款比较差点的信号发生器产生信号,然后进行测量,发现误差不达,在+-5%以内。我们以音频信号进行测量,由于其实际值无法测量,所以我们只能根据时域和频域以及估计其误差,都在5%以内。

4.2 单个频率分量测量(室温条件下)

结果分析:我们首先以理论上单一频率的正弦波为输入信号,在理想状况下,其频谱只在正弦波频率上有值,而由于有干扰,所以在其他频点也有很小的功率。

音频信号由于有多个频点,所以没有一定的规律性。由于音频信号波动较大,没有一定的规律,且实验室没有专门配置测量仪器,所以我们只好以正弦波和三角波作为信号进行定量分析测量,以及对音频信号进行定性的分析和测量。我们发现其数字和用电脑模拟的结果符合得很近。

5 结论

由于系统架构设计合理,功能电路实现较好,系统性能优良、稳定,较好地达到了题目要求的各项指标。

参考文献:

《信号与系统》,ALAN V.OPPENHEIM著,西安:西安交通大学出版社,1997年; 《数字图像处理学》,元秋奇著,北京:电子工业出版社,2000年; 《模拟电子线路基础》,吴运昌著,广州:华南理工大学出版社,2004年; 《数字电子技术基础》,阎石著,北京:高等教育出版社,1997年; 《数据结构与算法》,张晓丽等著,北京:机械工业出版社,2002年; 《ARM&Linux嵌入式系统教程》,马忠梅等著,北京:北京航空航天大学出版社,2004年; 《单片机原理及应用》,李建忠著,西安:西安电子科技大学,2002年;

附录:

附1:元器件明细表:

1、 LPC2148 2、 ATMEGA16 3、 AD620 4、 ADS7819 5、 液晶320*240

附2:仪器设备清单

1、 低频信号发生器 2、 数字万用表 3、 失真度测量仪 4、 数字示波器 5、 稳压电源

附3:电路图图纸

电源系统

前级放大和AD转换

Atmega16控制板

附4:程序清单

/*/////////////////////////////////////////////////////////////////////////////////////////////////

FFT转换函数,dataR:实部,datai:虚部,

////////////////////////////////////////////////////////////////////////////////////////////////*/

void FFT(float *dataR,float *dataI,int n)

{

int i,L,j,k,b,p,xx,qq;

int x[11]={0};

float TR,TI,temp;

float QQ;

//////////////////////////////////位倒置////////////////////////////////////////////////////

for(i=0;i

{ xx=0;

for(j=0;j

x[j]=0;

for(j=0;j

{x[j]=(i/count[j])&0x01;}

for(j=0;j

{xx=xx+x[j]*count[n-j-1];}

dataI[xx]=dataR[i];

}

for(i=0;i

{ dataR[i]=dataI[i];

dataI[i]=0;

////////////////////////////////////蝶形运算////////////////////////////////////////

for(L=1;L

{

b=1; i=L-1;

while(i>0)

{ b=b*2;

i--;

}

for(j=0;j

{ p=1; i=n-L;

while(i>0)

{ p=p*2; i--;}

p=p*j;

for(k=j;k

{

TR=dataR[k];

TI=dataI[k];

temp=dataR[k+b];

QQ=2*pi*p/count[n];

qq=p*count[11-n];

dataR[k]=dataR[k]+dataR[k+b]*cos_tab[qq]+dataI[k+b]*sin_tab[qq];

dataI[k]=dataI[k]-dataR[k+b]*sin_tab[qq]+dataI[k+b]*cos_tab[qq];

dataR[k+b]=TR-dataR[k+b]*cos_tab[qq]-dataI[k+b]*sin_tab[qq]; //查表运算

dataI[k+b]=TI+temp*sin_tab[qq]-dataI[k+b]*cos_tab[qq];

}

}

}

for(i=0;i

{

w[i]=sqrt(dataR[i]*dataR[i]+dataI[i]*dataI[i]);

w[i]=w[i]/count[n-1];

}

w[0]=w[0]/2;

}

///////////////////////////回放数据/////////////////////////

void viewdata(void)

{

unsigned int key,page,i;

page=0;

LCD_PenColor=0x1F; //红色

LCD_WriteChineseString(font5,2,40,0);

LCD_PenColor=0xFC; //蓝色

while(1){

key=getkey();

if(key!=0xFF)

{

if(key==4) {SystemState=fft_mode;return;} //返回

if(key==2) {

LCD_ClearScreen();

LCD_WriteChineseString(font3,2,10,0);LCD_WriteChineseString(font4,2,60,0);

i=page*4+1;

p3510(Re[i],0,15); print3510(Im[i]*mode,50,15);

p3510(Re[i+1],0,26); print3510(Im[i+1]*mode,50,25);

p3510(Re[i+2],0,38); print3510(Im[i+2]*mode,50,35);

p3510(Re[i+3],0,50); print3510(Im[i+3]*mode,50,50);

if(page>0) page--;

delay_nms(8000000);

} //上翻页

if(key==1) {

LCD_ClearScreen();

LCD_WriteChineseString(font3,2,10,0);LCD_WriteChineseString(font4,2,60,0);

i=page*4+1;

p3510(Re[i],0,15); print3510(Im[i]*mode,50,15);

p3510(Re[i+1],0,26); print3510(Im[i+1]*mode,50,25);

p3510(Re[i+2],0,38); print3510(Im[i+2]*mode,50,35);

p3510(Re[i+3],0,50); print3510(Im[i+3]*mode,50,50);

page++;if(page>=SampleNum/4) page=0;

delay_nms(8000000);

} //下翻页

}

}

}

////////////////////////////失真度计算///////////////////////

void distortion(void)

{

LCD_ClearScreen();

LCD_WriteChineseString(font6,3,10,20);

unsigned int key;

int fr;

while(1)

{

////////////获取频率////////////////////

log_2_N=11;SampleNum=SampleTab[log_2_N];

reset_timer(0);

init_timer0(40960);

New_Flag=0;

enable_timer(0);

////////////////////等待采样完成///////////////////////////

while(!FFT_Flag);

disable_timer(0); //关定时器0

//////////////////////FFT运算/////////////////////////////////

FFT(Re,Im,log_2_N);

////////////////频域功率////////////////////////////////////

for(i=1;i

////////////////////总功率/////////////////////////////////

Fp=0;

for(i=1;i

sort(&Re[1],&Im[1],SampleNum/2-1);

fr=1000000/fre;

if(Tflag) {LCD_WriteChineseString(font7,1,50,20);LCD_WriteEnglishString(

else

{LCD_WriteEnglishString(

////////////////////按键扫描/////////////////////////////

key=getkey();

if(key!=0xFF)

{

if(key==1) {SystemState=fft_mode;mode=20;break;} //返回 if(key==2) {SystemState=fft_mode;mode=100;break;} //返回 }

}

}

/////////////////按键扫描//////////////////////////////

unsigned char getkey(void)

{

if(IO1PIN_bit.P1_21==0) {

delay_nms(200000);

if(IO1PIN_bit.P1_21==0) return 1;

}

if(IO1PIN_bit.P1_22==0) {

delay_nms(2000000);

if(IO1PIN_bit.P1_22==0) return 2;

}

if(IO1PIN_bit.P1_23==0) {

delay_nms(2000000);

if(IO1PIN_bit.P1_23==0) return 3;

}

if(IO1PIN_bit.P1_24==0) {

delay_nms(2000000);

if(IO1PIN_bit.P1_24==0) return 4;

}

return 0xFF;

}

//////////////////排序处理//////////////////////////////

void sort(float *a,float *b,int n) //a为待排序的量,b为起位置 {

int i,j,temp;

for(i=0;i

for(j=0;j

{

for (i=0;i

if (a[i]

{

temp=a[i];

a[i]=a[i+1];

a[i+1]=temp;

temp=b[i];

b[i]=b[i+1];

b[i+1]=temp;

}

}

}

//////////////////////显示/////////////////// void p3510(int v,int x,int y) {

int x0;

x0=v*157;

x0=x0/100000000;

LCD_WriteEnglishChar(x0+'0',x,y); x0=v*157;

x0=x0/100;

x0+=1000000;

print3510(x0,x+6,y);

LCD_WriteEnglishChar('.',x+6,y); }


相关内容

  • 广东科技学院系部介绍
  • 广东科技学院系部介绍 一.机电工程系 2015年机电工程系开设有材料成型及控制工程.汽车服务工程.机械电子工程.电子信息工程.自动化5个本科专业.开设有汽车检测与维修技术.电气自动化技术.应用电子技术等3个专科专业.该系拥有一支结构合理.实践经验丰富.教学效果突出的师资队伍,实验.实训设施完善,现有 ...

  • 第四届全国教师论文大赛指南
  • 附件 2013年第四届"中国移动校讯通杯" 全国教师论文大赛 指 南 "中国移动校讯通杯"全国教师论文大赛组织委员会编 二○一三年三月 目 录 一.参赛人员范围 二.活动时间 三.参赛要求 四.评审方式和报送方式 五.奖项设置和论文发表 六.组织工作 附录:& ...

  • 首届全国中学物理新课程高效课堂教学设计群英大赛的通知
  • 首届全国中学物理新课程高效课堂教学设计群英大赛的通知 中国教育学会物理教学专业委员会主办 中学物理教学参考杂志社承办 首届"全国中学物理新课程高效课堂教学设计群英大赛" 课程改革极大地推动了基础教育的发展,实践证明课程改革是实施素质教育的重要载体.课堂教学是实施素质教育的重要渠道 ...

  • 山东科技大学13年十佳优秀学生
  • 2013年度十大优秀学生简介 王垒,中共党员,博士,现就读于研究生学院:曾获山东省优秀毕业生,校研究生十大科技精英.优秀学生干部.三好学生.优秀共产党员.优秀团支部书记.优秀共青团员等荣誉称号:两次荣获研究生国家奖学金,多次获国家励志奖学金.校董事会奖学金.校一等奖学金等各级奖励:发表学术论文20余 ...

  • 机器人创意精彩实例:电赛作品.毕业设计和开源资料
  • 本聚合贴收集了电路城27个优秀的电子大赛作品.毕业设计和开源资料,内容包含了魔方机器人.六爪机器人和健康监测机器人等设计与制作,项目作品提供了电路图.PCB图及源代码等设计资料,有了它们,全国大学生电子设计竞赛和毕业设计so easy! 推荐项目更多电路>> 解魔方机器人(安卓手机新版) ...

  • 机电首届"创意电子"电子设计大赛策划书
  • 机电首届"创意电子"电子设计大赛策划书 主办单位:机电工程学院 承办单位:机电工程学院科技协会 机电工程学院团委学生会(闭幕式暨颁奖晚会) 一. 大赛背景 互联网科技高速发展的今天,IT领域已经变成了最热门并最有发展前途的高薪行业之一.作为社会主义建设者的接班人,我们有义务担当起 ...

  • 第十九届物华杯评比策划
  • 第十九届物华文化节之"物华杯"评比策划 活动目的及意义: 一年一度的"物华杯"评比是物华文化节的重要环节,旨在通过各项子活动,以班级为单位,综合各个活动的班级参与度和成绩等甄选出优胜班级,并授予"物华杯".随着物华走过十八年的风风雨雨,第十 ...

  • 2014年全国中青年教师论文大赛
  • 2014年全国中青年教师论文大赛.课件教案优质课大赛通知 为推进新时期中小学教师教育教学长足发展,激发中小学教师教学改革热情,同时为基层教师评职称提供更加切实.权威的帮助,经研究举办全国中青年教师论文大赛.课件教案优质课大赛,欢迎全国中小学各学科老师踊跃参赛. 一.参赛对象: 本次活动在全国教育系统 ...

  • 中南民族大学第二课堂活动指南
  • 中南民族大学第二课堂活动指南 1."挑战杯"全国大学生课外学术科技作品竞赛 活动简介:"挑战杯"全国大学生课外师叔科技作品竞赛是由共青团中央.中国科协.教育部.全国学联主办,国内著名大学和承办高校所在省(市)人们政府主办,国内著名大学和新闻单位联合发起的一项具 ...

  • 明确规定拥有国家专利证书可参加自主招生高校名单
  • 明确规定拥有国家专利证书可参加自主招生高校名单 学校名称 清华大学 拥有国家专利参加高校自主招生相关要求 主要招收具有学科特长和创新潜质的优秀高中毕业生, 具备以 下条件者优先: 1.参加省级(含)以上各类学科竞赛并获得奖励: 2.积极参加创新性研究工作或研究性学习并取得一定成果. 学科特长突出.具 ...