12年A题实验报告微弱信号检测装置.docx
- 文档编号:23951360
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:24
- 大小:264.35KB
12年A题实验报告微弱信号检测装置.docx
《12年A题实验报告微弱信号检测装置.docx》由会员分享,可在线阅读,更多相关《12年A题实验报告微弱信号检测装置.docx(24页珍藏版)》请在冰豆网上搜索。
12年A题实验报告微弱信号检测装置
2012年全国大学生电子设计竞赛
【本科组】
微弱信号检测装置(A题)
摘要:
本系统是基于锁相放大器的微弱信号检测装置,用来检测在强噪声背景下已知频率的微弱正弦波信号的幅度值。
该系统由加法器、纯电阻分压网络、微弱信号检测电路和显示电路组成。
其中加法器和纯电阻分压网络生成微小信号,微弱信号检测电路和显示电路完成微小信号的检测和显示在液晶屏上。
本系统是以相敏检波器为核心,将参考信号经过移相器后,接着通过比较器产生方波去驱动开关乘法器CD4053,最后通过低通滤波器输出直流信号检测出微弱信号,将该直流信号送入单片机处理后,液晶显示出来。
经最终的测试,本系统能较好地完成微小信号的检测。
关键词:
微弱信号强噪声相敏检测
Abstract:
Thesystemisofweaksignaldetectionbasedonlock-inamplifierdevice,usedforthedetectionofknownweaksinusoidalsignalunderstrongnoisebackgroundfrequencyamplitude.Thesystemconsistsofanadder,pureresistordividernetwork,weaksignaldetectioncircuitanddisplaycircuit.Theadderandthepureresistordividernetworktoproducesmallsignal,weaksignaldetectioncircuitanddisplaycircuittocompletethedetectionoftinysignalanddisplayedontheLCDscreen.Thesystemisbasedonaphasesensitivedetectorasthecore,thereferencesignalthroughthephaseshifter,thenthroughthecomparatorproducesFangBotodriveswitchmultiplierCD4053,finallythroughthelowpassfilteroutputDCsignaldetectionofweaksignal,theDCsignalintothemicrocontrollerprocessing,liquidcrystaldisplay.Thefinaltest,thesystemcanachievethetinysignal.
KeyWord:
weaksignalstrongnoisephasesensitivedetection
目录
摘要:
1
1.系统设计3
1.1设计要求3
1.1.1设计任务3
1.1.2技术指标3
1.2方案比较与选择4
1.2.1微弱信号检测模块方案比较4
1.2.2移相网络模块方案比较4
1.2.3电阻分压模块方案比较4
1.3方案论证4
2.单元电路设计及参数计算5
2.1加法器电路5
2.4带通滤波电路6
2.5相敏检波电路7
2.7低通滤波电路8
3.软件设计9
3.1程序总体流程图9
3.2程序清单(见附录2)9
4.系统测试9
4.1测试仪器9
4.2测试结果10
5.结束语10
参考文献10
附录10
附录1主要元器件清单10
附录2程序清单11
1.系统设计
1.1设计要求
1.1.1设计任务
设计并制作一套微弱信号检测装置,用以检测在强噪声背景下已知频率的微弱正弦波信号的幅度值,并数字显示出该幅度值。
为便于测评比较,统一规定显示峰值。
整个系统的示意图如图1.1.1所示。
正弦波信号源可以由函数信号发生器来代替。
噪声源采用给定的标准噪声(wav文件)来产生,通过PC机的音频播放器或MP3播放噪声文件,从音频输出端口获得噪声源,噪声幅度通过调节播放器的音量来进行控制。
图中A、B、C、D和E分别为五个测试端点。
图1.1.1微弱信号检测装置示意
1.1.2技术指标
(1)基本要求
1 噪声源输出VN的均方根电压值固定为1V0.1V;加法器的输出VC=VS+VN,带宽大于1MHz;纯电阻分压网络的衰减系数不低于100。
2 微弱信号检测电路的输入阻抗Ri≥1M。
3 当输入正弦波信号VS的频率为1kHz、幅度峰峰值在200mV~2V范围内时,检测并显示正弦波信号的幅度值,要求误差不超过5%。
(2)发挥部分
1 当输入正弦波信号VS的幅度峰峰值在20mV~2V范围内时,检测并显示正弦波信号的幅度值,要求误差不超过5%。
2 扩展被测信号VS的频率范围,当信号的频率在500Hz~2kHz范围内,检测并显示正弦波信号的幅度值,要求误差不超过5%。
3 进一步提高检测精度,使检测误差不超过2%。
4 其它(例如,进一步降低VS的幅度等)。
1.2方案比较与选择
1.2.1微弱信号检测模块方案比较
方案一:
采用滤波电路检测微小信号,通过滤波电路将微小信号从强噪声中检测出来,但滤波电路中心频率是固定的,而信号的频率是可变的,无法达到要求,所以该方案不可行。
方案二:
采用取样积分电路检测小信号,利用取样技术,在重复信号出现的期间取样,并重复N次,则测量结果的信噪比可改善
倍,但这种方法取样效率低,不利于重复频率的信号恢复。
方案三:
采用锁相放大器检测小信号,锁相放大器由信号通道、参考通道、和相敏检波器等组成,其中相敏检波器(PSD)是锁相放大器的核心,PSD把从信号通道输出的被测交流信号进行相敏检波转换成直流,只有当同频同相时,输出电流最大,具有很好的检波特性。
由于该测试信号的频率是指定的且噪声强、信号弱,正好适合于锁相放大器的工作情况,故选择方案三。
1.2.2移相网络模块方案比较
方案一:
模拟法
由于电路用的是锁相放大,故要保持在开关型鉴相器的输入端信号的相位保持一致,故需要对参考信号做移相处理,移相的最佳方案是全通滤波器,一介全通滤波器的相移范围为0-180度,二阶则可实现0-360的相移。
方案二:
数字法
采用数字相移的方法势必增加电路的难度,于是我们采用模拟电路全通滤波器做移相电路。
1.2.3电阻分压模块方案比较
电阻分压网络有串联分压和
型网络,
型网络性能较好,适合在高频的条件下工作,而本题目要求的电压范围较小,故采用简单电路串联来作为分压网络既可以达到要求。
1.3方案论证
该系统由加法器、分压网络、微弱信号检测电路和显示电路组成。
其中微弱信号检测电路由前置放大、带通滤波、鉴相器、移相器、比较器、低通滤波、放大器构成。
同相放大电路构成的加法器将噪声信号加到待测信号中,使信号淹没在噪声中,然后经过衰减器衰减100倍以上,送到微弱信号检测电路中。
微弱信号检测以相敏检波器为核心,将参考信号经过移相电路和比较器输出方波驱动开关管乘法器,输出直流信号经单片机ADC转换,最终在液晶显示屏上显示出来。
2.单元电路设计及参数计算
2.1加法器电路
采用同相加法器,放大倍数为1。
图2.1加法器电路
2.2纯电阻衰减电路
图2.2纯电阻衰减电路
2.3前置放大电路
采用INA128芯片,放大倍数
图2.3前置放大电路
2.4带通滤波电路
带通滤波器采用低通和高通滤波器级联而成,通带范围200Hz—8.6KHZ,能很好的滤除通带外的噪声。
图2.4带通滤波电路
2.5相敏检波电路
图2.5相敏检波电路
2.6移相比较电路
图2.6移相比较电路
2.7低通滤波电路
图2.7低通滤波电路
3.软件设计
3.1程序总体流程图
图3.1程序总体流程框图
---------(平方平均)
3.2程序清单(见附录2)
4.系统测试
4.1测试仪器
台式万用表,型号:
UT802
程控直流电源,型号:
MPD-3303
任意波形发生器,型号:
YB32020
示波器,型号:
DXO-X2002A
4.2测试结果
基本要求部分
a.B点噪声源输出
的有效值输出为1.01V。
b.C点加法器的波形:
带宽:
1.86MHz。
c.D点衰减系数为:
101。
d.D点的电路输入阻抗为:
3.07MΩ。
5.结束语
本系统能够很好地完成基础部分和大部分发挥部分,系统电路中相敏检波器能够工作在信号频率缓慢变化时有效检测出有用信号。
通过做实验我们信心倍增,学习到了很多理论与实际的知识,对参加竞赛越来越有信心。
参考文献
[1]童诗白,华成英.模拟电子技术基础(第四版)[M].北京:
高等教育出版社,2006
[2]肖看,李群芳.单片机原理、接口及应用——嵌入式系统技术基础(第二版)[M].北京:
清华大学出版社,2010
[3]黄智伟,王彦,陈文光,朱卫华.全国大学生电子设计竞赛训练教程(修订版).北京:
电子工业出版社,2010
附录
附录1主要元器件清单
(1)OPA22273片
(2)OPA2271片
(3)OPA21341片
(4)CD40531片
(5)LM3111片
(6)C8051F0201片
(7)电阻电容若干
(8)LCD及矩阵键盘1个
附录2程序清单
main.c
/****************************************************************
优化算法:
1、按键1---直接显示;
2、按键2---去掉最大最小值,再求几何平均;
3、按键3---去掉最大最小值,再求算术平均;
*****************************************************************/
#include"C8051F020.h"
#include"stdlib.h"
#include"math.h"
#include"stdio.h"
#include"datatype.h"
#include"key.h"
#include"LCD.h"
INT8UUART0_BUSY=0;
#defineSYSCLK22118400//Externalcrystaloscillatorfrequency
#defineSAR_CLK2500000
INT8UADC_END_FLAG=0;
doubleADC0_Value=0;
doubleSUM=0;
doubleADC0_sqrt=0;
doublesample[256]={0};
#defineW_CMD0xf8//写命令
#defineW_DAT0xfa//写数据
sfr16ADC0=0xBE;
unsignedinti_ADC0=0;
bitflag_ADC0_OK=0;//表示ADC0是否已经转换完成一个数据
voidADC0_LCD(void);
voidADC0_LCD1(void);
voidADC0_LCD2(void);
voidKeyPressedHandler();
//**********************************************************
//系统时钟初始化
//**********************************************************
voidOSCILLATOR_Init(void)
{
inti;//delaycounter
OSCXCN=0x67;//startexternaloscillatorwith
//22.1184MHzcrystal
for(i=0;i<256;i++);//waitforoscillatortostart
while(!
(OSCXCN&0x80));//Waitforcrystalosc.tosettle
OSCICN=0x88;//selectexternaloscillatorasSYSCLK
//sourceandenablemissingclock
//detector
}
//**********************************************************
//-----------------------------------------------------------------------------
//ADC0_Init
//-----------------------------------------------------------------------------
voidADC_EINT()
{
EIE2|=BIT1;//允许ADC转换结束中断
EA=1;
}
voidADC0_Init(void)
{
AMX0CF&=~(BIT2+BIT1+BIT0);//配置AIN0AIN1AIN2AIN3位单通道输入
ADC0CF|=BIT4+BIT5;//
ADC0CF&=~(BIT7+BIT6);//设置AD转换时钟为2MHz(系统时钟为16MHz时)
//ADC0CF=(SYSCLK/SAR_CLK)<<3;//ADCconversionclock=2.5MHz
ADC0CF&=~(BIT2+BIT1+BIT0);//PGA增益为1
ADC0CN&=~(BIT6+BIT3+BIT2+BIT0);//向BUSY写1启动AD转换数据右对齐
ADC0CN|=BIT7;//使能AD
REF0CN&=~BIT4;//参考电压取自VREF0
REF0CN|=BIT1+BIT0;//
ADC_EINT();
}
//选择AIN0通道
voidSC_ADC_Port0()
{
AMX0SL&=~(BIT3+BIT2+BIT1+BIT0);
}
//选择AIN1通道
voidSC_ADC_Port1()
{
AMX0SL&=~(BIT3+BIT2+BIT1);
AMX0SL|=BIT0;
}
//选择AIN2通道
voidSC_ADC_Port2()
{
AMX0SL&=~(BIT3+BIT2+BIT0);
AMX0SL|=BIT1;
}
//选择AIN3通道
voidSC_ADC_Port3()
{
AMX0SL&=~(BIT3+BIT2);
AMX0SL|=BIT1+BIT0;
}
//-----------------------------------------------------------------------------
//ADC转换
//-----------------------------------------------------------------------------
voidStart_ADC(INT8SAIN_Index)
{
ADC0CN&=~BIT5;//清除转换结束标志
ADC_END_FLAG=0;
switch(AIN_Index)
{
case0:
SC_ADC_Port0();break;
case1:
SC_ADC_Port1();break;
case2:
SC_ADC_Port2();break;
case3:
SC_ADC_Port3();break;
}
ADC0CN|=BIT4;//启动ADC转换
}
//-----------------------------------------------------------------------------
//ADC0转换结束中断服务程序
//-----------------------------------------------------------------------------
voidADC0_INT_ISR()interrupt15
{
if(AD0INT==1)
{
AD0INT=0;
ADC_END_FLAG=1;
flag_ADC0_OK=1;
Start_ADC(0);
}
}
voidmain(void)
{
WDTCN=0xde;//Disablewatchdogtimer
WDTCN=0xad;
OSCILLATOR_Init();//Initializeoscillator
LCD_Init();
LCD_ClearScreen();
LCD_DispStrAt("微弱信号检测装置",1,1);
ADC0_Init();//InitADC
Start_ADC(0);
while
(1)
{
KeyPressedHandler();
}
}
voidKeyPressedHandler()
{
switch(KeyScan())
{
case1:
while
(1)
{
ADC0_LCD();
if(KeyScan()==4)
gotoK3_ADDRESS;
}
break;
case2:
while
(1)
{
ADC0_LCD1();
if(KeyScan()==4)
gotoK3_ADDRESS;
}
break;
case3:
while
(1)
{
ADC0_LCD();
if(KeyScan()==4)
gotoK3_ADDRESS;
}
break;
case4:
K3_ADDRESS:
LCD_ClearScreen();
LCD_DispStrAt("微弱信号检测装置",1,1);
break;
case5:
LCD_DispStrAt("KEY05",2,1);
break;
case6:
LCD_DispStrAt("KEY06",2,1);
break;
case7:
LCD_DispStrAt("KEY07",2,1);
break;
case8:
LCD_DispStrAt("KEY08",2,1);
break;
case9:
LCD_DispStrAt("KEY09",2,1);
break;
case10:
LCD_DispStrAt("KEY10",2,1);
break;
case11:
LCD_DispStrAt("KEY11",2,1);
break;
case12:
LCD_DispStrAt("KEY12",2,1);
break;
case13:
LCD_DispStrAt("KEY13",2,1);
break;
case14:
LCD_DispStrAt("KEY14",2,1);
break;
case15:
LCD_DispStrAt("KEY15",2,1);
break;
case16:
LCD_DispStrAt("KEY16",2,1);
break;
default:
break;
}
}
/********************************************************
直接输出
*********************************************************/
voidADC0_LCD(void)
{
inti,j;
for(i=0;i<1000;i++);
LCD_ClearScreen();
for(i=0;i<1000;i++);
LCD_DispStrAt("微弱信号检测装置",1,1);
LCD_DispStrAt("峰峰值:
",3,1);
for(i=0;i<1000;i++);
ADC0_Value=(ADC0H<<8)+ADC0L;
LCD_DispFloatNumberAt(ADC0_Value*2.4210/4095,3,3,5);//3表示保留三位小数
for(j=0;j<50;j++)
{
for(i=0;i<30000;i++);
}
}
/********************************************************
几何平均
*********************************************************/
voidADC0_LCD1(void)
{
inti=0,j=0;
floatMAX,MIN;
if(i_ADC0<256&&flag_ADC0_OK)
{
ADC0_sqrt=2.4210*ADC0/4095;
sample[i_ADC0++]=(double)pow(ADC0_sqrt,2);
flag_ADC0_OK=0;
}
if(i_ADC0>=256)
{
SUM=0;
i_ADC0=0;
MAX=sample[0];
MIN=sample[0];
for(i=0;i<256;i++)
{
if(MAX<=sample[i])
MAX=sample[i];
if(MIN>=sample[i])
MIN=sample[i];
}
for(i=0;i<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 12 实验 报告 微弱 信号 检测 装置
![提示](https://static.bdocx.com/images/bang_tan.gif)