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

上传人:b****7 文档编号:15799491 上传时间:2023-07-07 格式:DOCX 页数:23 大小:425.99KB
下载 相关 举报
全国电子设计大赛一等奖论文.docx_第1页
第1页 / 共23页
全国电子设计大赛一等奖论文.docx_第2页
第2页 / 共23页
全国电子设计大赛一等奖论文.docx_第3页
第3页 / 共23页
全国电子设计大赛一等奖论文.docx_第4页
第4页 / 共23页
全国电子设计大赛一等奖论文.docx_第5页
第5页 / 共23页
全国电子设计大赛一等奖论文.docx_第6页
第6页 / 共23页
全国电子设计大赛一等奖论文.docx_第7页
第7页 / 共23页
全国电子设计大赛一等奖论文.docx_第8页
第8页 / 共23页
全国电子设计大赛一等奖论文.docx_第9页
第9页 / 共23页
全国电子设计大赛一等奖论文.docx_第10页
第10页 / 共23页
全国电子设计大赛一等奖论文.docx_第11页
第11页 / 共23页
全国电子设计大赛一等奖论文.docx_第12页
第12页 / 共23页
全国电子设计大赛一等奖论文.docx_第13页
第13页 / 共23页
全国电子设计大赛一等奖论文.docx_第14页
第14页 / 共23页
全国电子设计大赛一等奖论文.docx_第15页
第15页 / 共23页
全国电子设计大赛一等奖论文.docx_第16页
第16页 / 共23页
全国电子设计大赛一等奖论文.docx_第17页
第17页 / 共23页
全国电子设计大赛一等奖论文.docx_第18页
第18页 / 共23页
全国电子设计大赛一等奖论文.docx_第19页
第19页 / 共23页
全国电子设计大赛一等奖论文.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《全国电子设计大赛一等奖论文.docx》由会员分享,可在线阅读,更多相关《全国电子设计大赛一等奖论文.docx(23页珍藏版)》请在冰点文库上搜索。

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

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

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

Administrator

[键入文档副标题]

 

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的专用芯片的体统方案。

基于ARMST710音频频谱分析仪系统原理图如下

信号输入

该方案采用DSP专用芯片ARMST710进行控制和FFT计算,速度快,且具有波形存储和处理后的波形可以重放功能。

还配有输出接口与示波器销量。

可以从时域和频域观察波形,非常直观、实用。

系统方案四:

基于单片机C8051F060+FPGA构成信号分析仪,该系统原理方框图如图所示。

单片机C8051F060独立完成4096点FFT运算和信号的失真度分析。

虽然这种方案在速度上不及采用专用DPS芯片快,但采用优化的FFT,并将优化后的FFT再单片机内做实验,利用外扩的128KBRAM运算4096点FFT计算幅度谱,利用FPGA进行测频和控制。

其运算时间也不超过4S。

能够达到设计要求。

 

 

信号输入

整形信号

 

最终方案选择:

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

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

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

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

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

综上,我们选择信号在时域进行周期性分析和周期性测量。

对于一般的音频信号,其时域变化是不规则的,所以没有周期性。

而对于单频信号或者由多个具有最小公倍数的频率组合的多频信号具有周期性。

这样我们可以在频域对信号的频谱进行定量分析,从而得出其周期性。

而我们通过先假设信号是周期的,然后算出频率值,然后在用此频率对信号进行采样,采取连续两个周期的信号,对其值进行逐次比较和平均比较,若相差太远,则认为不是周期信号,若相差不远(约5%),则可以认为是周期信号。

 

2系统设计

2.1总体设计

音频信号经过一个由运放和电阻组成的50Ohm阻抗匹配网络后,经由量程控制模块进行处理,若是一般的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.2AD转换及控制模块电路设计

采用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总功率测量(室温条件下)

输入信号

频率

幅度

测量时域总功率(w)

测量频域总功率(w)

理论值

估算误差

正弦波

100Hz

1Vpp

0.127

0.129

0.125

1.2%

1KH

1Vpp

0.126

0.129

0.125

1.3%

音频信号

20Hz-10KHz

20mVpp-5Vpp

0.783

0.761

X

《5%

1.803

1.777

X

《5%

结果分析:

由于实验室提供的能够模仿音频信号的且能方便测量的信号只有正弦信号,所以我们用一款比较差点的信号发生器产生信号,然后进行测量,发现误差不达,在+-5%以内。

我们以音频信号进行测量,由于其实际值无法测量,所以我们只能根据时域和频域以及估计其误差,都在5%以内。

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

输入信号

频率

幅度

最大功率频点

最大功率频点功率

次大功率频点

次大功率频点功率

正弦波

500Hz

100mVpp

500Hz

1.20mw

520Hz

0.04mW

正弦波

5KHz

1Vpp

5KHz

120mw

5.02KHz

3.56mw

音频信号

20Hz-10K

X

880Hz

23mw

600Hz

4.3mw

结果分析:

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

音频信号由于有多个频点,所以没有一定的规律性。

由于音频信号波动较大,没有一定的规律,且实验室没有专门配置测量仪器,所以我们只好以正弦波和三角波作为信号进行定量分析测量,以及对音频信号进行定性的分析和测量。

我们发现其数字和用电脑模拟的结果符合得很近。

 

5结论

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

参考文献:

《信号与系统》,ALANV.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:

虚部,

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

voidFFT(float*dataR,float*dataI,intn)

{

inti,L,j,k,b,p,xx,qq;

intx[11]={0};

floatTR,TI,temp;

floatQQ;

 

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

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<=n;L++)

{

b=1;i=L-1;

while(i>0)

{b=b*2;

i--;

}

for(j=0;j<=b-1;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;

}

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

voidviewdata(void)

{

unsignedintkey,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);

}//下翻页

}

}

}

 

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

voiddistortion(void)

{

LCD_ClearScreen();

LCD_WriteChineseString(font6,3,10,20);

unsignedintkey;

intfr;

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("",0,38);print3510(fr,10,38);LCD_WriteEnglishString("US",58,38);}

else

{LCD_WriteEnglishString("",0,38);LCD_WriteChineseString(font8,1,50,20);}

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

key=getkey();

if(key!

=0xFF)

{

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

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

}

}

}

 

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

unsignedchargetkey(void)

{

if(IO1PIN_bit.P1_21==0){

delay_nms(200000);

if(IO1PIN_bit.P1_21==0)return1;

}

if(IO1PIN_bit.P1_22==0){

delay_nms(2000000);

if(IO1PIN_bit.P1_22==0)return2;

}

if(IO1PIN_bit.P1_23==0){

delay_nms(2000000);

if(IO1PIN_bit.P1_23==0)return3;

}

if(IO1PIN_bit.P1_24==0){

delay_nms(2000000);

if(IO1PIN_bit.P1_24==0)return4;

}

return0xFF;

}

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

voidsort(float*a,float*b,intn)//a为待排序的量,b为起位置

{

inti,j,temp;

for(i=0;i

for(j=0;j<=n-1;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;

}

}

}

//////////////////////显示///////////////////

voidp3510(intv,intx,inty)

{

intx0;

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);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2