湖州师范学院“大学生创新创业训练
计划”实验室开放项目总结报告
申报实验室
项目负责人 项目名称 《认识图形》Flash游戏化学习软件的设计
联系电话 结题日期 年
湖州师范学院教务处制
一、实验项目概况
二、项目负责人总结报告
20##年实验室开放项目总结报告
微弱信号检测电路设计
学生姓名:
学 号:
电子与信息工程学院
20##年11月12日
摘 要
微弱信号检测是发展高新技术,探索及发现新的自然规律的重要手段,对推动很多领域的发展具有重要的应用价值。将淹没在强背景噪声中的微弱信号,运用电子学和近代信号处理手段抑制噪声,进而从噪声中提取和回复有用信号。锁定放大器的设计采用精密放大器,仪用放大器等新型电子元器件实现小信号高倍放大。本系统是基于锁相放大器的微弱信号检测装置,用来检测在强噪声背景下已知频率的微弱正弦波信号的幅度值。该系统由加法器、纯电阻分压网络、微弱信号检测电路和显示电路组成。其中加法器和纯电阻分压网络生成微小信号,微弱信号检测电路和显示电路完成微小信号的检测和显示在液晶屏上。本系统是以相敏检波器为核心,将参考信号经过移相器后,接着通过比较器产生方波去驱动开关乘法器CD4053,最后通过低通滤波器输出直流信号检测出微弱信号,将该直流信号送入单片机处理后,液晶显示出来。经最终的测试,本系统能较好地完成微小信号的检测。
关键词:多级交流放大器;微弱信号;相敏检测
目 录
第1章 方案论证.............................................................................................................. 1
1.1微信号检测电路................................................................................................... 1
1.2移相网络设计...................................................................................................... 1
1.3总体系统设计...................................................................................................... 1
第2章 分模块电路的工作原理分析及电路图.................................................................... 3
2.1电阻分压衰减网络............................................................................................... 3
2.2加法电路............................................................................................................. 3
2.4带通滤波器.......................................................................................................... 4
2.5相敏检波器.......................................................................................................... 4
2.6低通滤波器.......................................................................................................... 5
2.7直流放大器.......................................................................................................... 5
2.8移相器电路.......................................................................................................... 6
2.9方波形成电路...................................................................................................... 7
2.10 电源部分........................................................................................................... 7
2.11 显示电路........................................................................................................... 7
第3章 程序设计.............................................................................................................. 8
3.1单片机检测电路设计流程图................................................................................. 8
3.2部分程序代码...................................................................................................... 8
第4章 测试结果与分析................................................................................................. 23
4.1 指标参数........................................................................................................... 23
4.2测试仪表............................................................................................................ 23
4.3指标测试............................................................................................................ 24
4.4系统误差分析..................................................................................................... 25
第5章 设计总结............................................................................................................ 26
参考文献........................................................................................................................ 27
附录I:元器件清单........................................................................................................ 28
附录II:微弱信号检测电路的实物.................................................................................. 29
方案一:采用滤波电路检测微小信号,通过滤波电路将微小信号从强噪声中检测出来,但滤波电路中心频率是固定的,而信号的频率是可变的,无法达到要求,所以该方案不可行。
方案二:采用取样积分电路检测小信号,利用取样技术,在重复信号出现的期间取样,并重复N次,则测量结果的信噪比可改善倍,但这种方法取样效率低,不利于重复频率的信号恢复。
方案三:采用锁相放大器检测小信号,锁相放大器由信号通道、参考通道、和相敏检波器等组成,其中相敏检波器(PSD)是锁相放大器的核心,PSD把从信号通道输出的被测交流信号进行相敏检波转换成直流,只有当同频同相时,输出电流最大,具有很好的检波特性。由于该测试信号的频率是指定的且噪声强、信号弱,正好适合于锁相放大器的工作情况,故选择方案三。
因为检测电路选择了锁相放大器,而移相网络是锁相放大器中的一部分,在此进行分析。
方案一:采用全通滤波器模拟移相电路,一阶全通滤波器的移相范围接近180度,所以通过设计两级滤波则可使移相范围达到360度。
方案二:采用数字移相方法,数字移相可以在4个象限内进行0~89°的调节,合起来即实现了0~360°的移相,由集成芯片控制频率和相位预值,如用CD4046锁相环组成。
方案一与方案二相比,电路简单可靠,且方案二增加了电路的复杂度,成本也很高。
故选择方案一。
锁定放大器的设计采用精密放大器,仪用放大器等新型电子元器件实现小信号高倍放大。整个放大器结构由INA826构成的多级交流放大器、OP07构成的带通滤波器、MPY634构成的相敏检波器、OP07构成的参考信号移相器、方波驱动器、低通滤波器、直流放大器等构成。显示电路由MSP430单片机、TLV5618、ADS1115、液晶显示器等构成实现对信号的有效值显示。
电阻分压衰减网络的原理主要是电阻串联分压的知识,输入电路由信号源入信号R(t)输出信号S(t)和两个220KΩ和220Ω的电阻组成,经过计算可得。从公式可以看出,由于分母R1+R2大于R2,所以输出电压小于入电压。也就是说分压电路是一个对输入信号进行衰减的电路。我们可以通过改变R1或R2的大小来改变输入电压R(t)的大小。通过计算本次设计衰减约1000倍。
加法电路的原理是同相放大电路,利用运算放大器来实现加法放大器的功能,输入信号S(t)通过电阻R1加到运算放大器的前一端,输入信号N(t)两个电阻加到运算放大器的同相端,输出电压V0通过电阻R3和R4的分压作用,得V0=S(t)+N(t)。R3为接地电阻,R4为反馈电阻。如图2.1所示
图2.1 加法电路
2.3前置放大电路
前置放大电路运用两个集成运算放大器INA826的级联,达到对不同信号幅度放大倍数不同的作用。是由前置放大器放大输入的信号,需要先被放大到一定的电平才可以到其它级上。通常前置具有较高的电压增益,可以将小信号放大到标准电平上。利用三个集成运算放大器,我们可以得到在三部分的增益As=A1*A2*A3,Am=A1*A2,AL=A1*A3,放大倍数依次增大,所得到的输出信号依次减小,变化为10μV,100μV,到1mV。
帯通滤波器输入正弦波信号,先通过低通滤波器滤除频率为1100Hz以上信号,再进过高通滤波器滤除频率为900Hz以下信号。实现频率在900Hz—1100Hz的频率能够通过,即通频带为900Hz—1100Hz。如图2.2所示为通频带为900Hz—1100Hz的带通滤波器。所用芯片为OP07运算放大器,其中,R1=47kΩ为前端电阻,C2、C4并联等效电容为90nF,与R3构成低通滤波器。C1、C3并联与R2构成高通滤波器。R4、R5并联与Rf构成反馈网络实现增益放大。如图2.2所示。
图2.2 带通滤波器
相敏检波器采用MPY634芯片,能够实现函数的乘积的作用,原理图如下:MPY634为Ti专用乘法器芯片,。
当开路时SF=10,A为可调增益。如图2.3所示。
图2.3 相敏检波器
此低通滤波器为两个TI公司的op07构成的有源四阶巴特沃斯滤波器,C2、C4、C5、C7为电源旁路电容,滤除干扰作用。 截止频率有电阻电容参数决定。如图2.4所示。
图2.4 低通滤波器
这一部分,我们运用了同向比例放大的原理,输入信号加到同相端,输出信号通过两个电阻R1 和R2的分压作用,得到Vn=Vf=R1Vo/(R1+R2),作用于反相输入端。由于Vn是由输出电压V0经过反馈元件R1和R2送回到运放的反相输入端。我们这里选取的是R1=10kΩ 和R2= 10kΩ。如图2.5所示。
图2.5 直流放大器
利用op07运算放大器构成移相电路,其中为了防止衰减过大R1与Rf取47KΩ。滑动变阻器R2可调,其作用使输入正弦波滞后移相0°~180°可调。如图2.6所示。
图2.6 移相电路
通过OP07构成的过零比较器实现正弦波到方波的变换。如图2.7所示。
图2.7 方波形成电路
电源电路由电源变压器、整流电路、滤波电路、稳压电路等构成。出于对电路的选择,考虑到放大器的特性,我们选择用电源电路输出的电压用来给各个运算放大器供电。采用220V市电供电,经变压器变压为±18V电压,经整流滤波后接LM317、LM337,再进行滤波后得到稳定的±12V电源给运算放大器供电。
显示电路由MSP430单片机、TLV5618、ADS1115、液晶显示器等构成实现对信号的有效值显示。
系统软件任务主要有A/D转换、D/A转换、液晶显示等实现。系统加电后,主程序首先完成系统初始化,其中包括I/O接口、中断系统、定时器、计数器等工作状态的设置以及系统变量赋值等工作,完成系统初始化后检测输入电压,通过液晶显示输出电压有效值。
本程序是通过AD采样后经过快速傅里叶变换后,当达到最大检测频率信号后,接入带阻滤波器,最后经DA输出,实现了啸叫检测与抑制的功能。
图3.1 单片机检测电路流程图
#include <msp430g2553.h>
#define uint unsigned int
#define uchar unsigned char
/**********12864引脚定义********************/
#define LCD_CS_H P2OUT|=BIT3//片选
#define LCD_CS_L P2OUT&=~BIT3
#define LCD_SID_H P2OUT|=BIT4//串行数据
#define LCD_SID_L P2OUT&=~BIT4
#define LCD_SCLK_H P2OUT|=BIT5//时钟
#define LCD_SCLK_L P2OUT&=~BIT5
/***********ADS_1115引脚定义*****************/
#define SCL 0x01
#define SDA 0x20
#define SCL_SEL P2SEL &= ~SCL
#define SCL_DDR_OUT P2DIR |= SCL
#define SCL_OUT P2OUT
#define SCL_H SCL_OUT |= SCL
#define SCL_L SCL_OUT &= ~SCL
#define SDA_SEL P1SEL &= ~SDA
#define SDA_DDR_OUT P1DIR |= SDA
#define SDA_DDR_IN P1DIR &= ~SDA
#define SDA_OUT P1OUT
#define SDA_IN P1IN
#define SDA_H SDA_OUT |= SDA
#define SDA_L SDA_OUT &= ~SDA
/************************************
* ADDR---> GND
* VDD ---> 3.3V
* SCL ---> P2.6
* SDA ---> P2.7
* AINp=AIN0, AINn=GND
************************************/
/**********ADDR宏定义***************/
#define ADDRESS_0 0x90 //ADDR PIN ->GND
#define ADDRESS_1 0x92 //ADDR PIN ->VDD
#define ADDRESS_2 0x94 //ADDR PIN ->SDA
#define ADDRESS_3 0x96 //ADDR PIN ->SCL
/************POINTER REGISTER*****************/
#define Pointer_0 0x00 //Convertion register
#define Pointer_1 0x01 //Config register
#define Pointer_2 0x02 //Lo_thresh register
#define Pointer_3 0x03 //Hi_thresh register
/************CONFIG REGISTER*****************/
#define OS_0 0x0000
#define OS_1 0x8000
#define MUX_0 0x4000 //AINp=AIN0, AINn=GND
#define MUX_1 0x5000 //AINp=AIN1, AINn=GND
#define MUX_2 0x6000 //AINp=AIN2, AINn=GND
#define MUX_3 0x7000 //AINp=AIN3, AINn=GND
#define MUX_4 0x0000 //AINp=AIN0, AINn=AIN1
#define MUX_5 0x1000 //AINp=AIN0, AINn=AIN3
#define MUX_6 0x2000 //AINp=AIN1, AINn=AIN3
#define MUX_7 0x3000 //AINp=AIN2, AINn=AIN3
#define PGA_0 0x0000 //FS=6.144V
#define PGA_1 0x0200 //FS=4.096V
#define PGA_2 0x0400 //FS=2.048V
#define PGA_3 0x0600 //FS=1.024V
#define PGA_4 0x0800 //FS=0.512V
#define PGA_5 0x0A00 //FS=0.256V
#define PGA_6 0x0C00 //FS=0.256V
#define PGA_7 0x0E00 //FS=0.256V
#define MODE_0 0x0000
#define MODE_1 0x0100
#define DR_0 0x0000 //Data Rate = 8
#define DR_1 0x0020 //Data Rate = 16
#define DR_2 0x0040 //Data Rate = 32
#define DR_3 0x0060 //Data Rate = 64
#define DR_4 0x0080 //Data Rate = 128
#define DR_5 0x00A0 //Data Rate = 250
#define DR_6 0x00C0 //Data Rate = 475
#define DR_7 0x00E0 //Data Rate = 860
#define COMP_MODE_0 0x0000
#define COMP_MODE_1 0x0010
#define COMP_POL_0 0x0000
#define COMP_POL_1 0x0008
#define COMP_LAT_0 0x0000
#define COMP_LAT_1 0x0040
#define COMP_QUE_0 0x0000
#define COMP_QUE_1 0x0001
#define COMP_QUE_2 0x0002
#define COMP_QUE_3 0x0003
#define TRUE 1
#define FALSE 0
/*************ADDR Initial********************/
#define ADDRESS ADDRESS_0 //ADDR PIN ->GND
#define ADDRESS_W ADDRESS |0x00 //写地址
#define ADDRESS_R ADDRESS|0x01 //读地址
/*************Config Initial*********************/
#define OS OS_1 //0X8000
#define MUX MUX_1 //AINp=AIN0, AINn=GND
#define PGA PGA_1 //FS=6.144V
#define DR DR_0 //Data Rate = 860
#define COMP_QUE COMP_QUE_3
unsigned char t_DAS;
int Format[5];
float VIN_DAS;
unsigned int Config;
unsigned char Writebuff[4],Readbuff[3];
unsigned int Result[2];
int D_ADS; //转换的数字量
float VIN_DAS; //输入的电压值
unsigned char t_DAS;
int Format[5]={0}; //转换的数字量转换成十进制
/*******************************************
函数名称:delay
功 能:延时约15us的时间
参 数:无
返回值 :无
********************************************/
void Delay(void)
{
unsigned char i;
for(i = 0;i < 15;i++)
_NOP();
}
/******************延时1ms的时间*********************/
void Delay_1ms(void)
{
unsigned char i;
for(i = 150;i > 0;i--)
_NOP();
}
/*******************************************
函数名称:Start
功 能:完成IIC的起始条件操作
参 数:无
返回值 :无
********************************************/
void Start(void)
{
SCL_H;
SDA_H;
Delay();
SDA_L;
Delay();
SCL_L;
Delay();
}
/*******************************************
函数名称:Stop
功 能:完成IIC的终止条件操作
参 数:无
返回值 :无
********************************************/
void Stop(void)
{
SDA_L;
Delay();
SCL_H;
Delay();
SDA_H;
Delay();
}
/*******************************************
函数名称:ACK
功 能:完成IIC的主机应答操作
参 数:无
返回值 :无
********************************************/
void ACK(void)
{
SDA_L;
_NOP();
_NOP();
SCL_H;
Delay();
SCL_L;
_NOP();
_NOP();
SDA_H;
Delay();
}
/*******************************************
函数名称:NACK
功 能:完成IIC的主机无应答操作
参 数:无
返回值 :无
********************************************/
void NACK(void)
{
SDA_H;
_NOP();
_NOP();
SCL_H;
Delay();
SCL_L;
_NOP();
_NOP();
SDA_L;
Delay();
}
/**********检查应答信号函数******************/
/*如果返回值为1则证明有应答信号,反之没有*/
/*******************************************
函数名称:Check
功 能:检查从机的应答操作
参 数:无
返回值 :从机是否有应答:1--有,0--无
********************************************/
unsigned char Check(void)
{
unsigned char slaveack;
SDA_H;
_NOP();
_NOP();
SCL_H;
_NOP();
_NOP();
SDA_DDR_IN;
_NOP();
_NOP();
slaveack = SDA_IN&SDA; //读入SDA数值
SCL_L;
Delay();
SDA_DDR_OUT;
if(slaveack)
{
return FALSE;
}
else
{
return TRUE;
}
}
/***************Write a Byte****************/
void Write_1_Byte(unsigned char DataByte)
{
int i;
for(i=0;i<8;i++)
{
if(DataByte&0x80) //if((DataByte<<i)&0x80)
SDA_H;
else
SDA_L;
Delay();
SCL_H;
Delay();
SCL_L;
Delay();
DataByte <<= 1;
}
SDA_H;
_NOP();
}
/***************Write N Byte****************/
unsigned char Write_N_Byte(unsigned char *writebuffer,unsigned char n)
{
int i;
for(i=0;i<n;i++)
{
Write_1_Byte(*writebuffer);
if(Check())
{
writebuffer ++;
}
else
{
Stop();
return FALSE;
}
}
Stop();
return TRUE;
}
/***************Read a Byte****************/
unsigned char Read_1_Byte(void)
{
unsigned char data=0,FLAG, i;
for(i=0;i<8;i++)
{
SDA_H;
Delay();
SCL_H;
SDA_DDR_IN; //端口为输入
Delay();
FLAG=SDA_IN& SDA;
data <<= 1;
if( FLAG)
data |= 0x01;
SDA_DDR_OUT;
SCL_L;
Delay();
}
return data;
}
/***************Read N Byte****************/
void Read_N_Byte(unsigned int*readbuff,unsigned char n)
{
unsigned char i;
for(i=0;i<n;i++)
{
readbuff[i]=Read_1_Byte();
if(i==n-1)
NACK(); //不连续读字节
else
ACK(); //连续读字节
}
Stop();
}
/*****************初始化******************/
void InitADS1115(void)
{
SCL_SEL;
SDA_SEL;
SCL_DDR_OUT;
SDA_DDR_OUT;
SDA_H;
Config = OS+MUX+PGA+DR+COMP_QUE;
Writebuff[0]=ADDRESS_W;//0x90
Writebuff[1]=Pointer_1;//0x01
Writebuff[2]=Config/256;
Writebuff[3]=Config%256;
Readbuff[0]=ADDRESS_W;//0x90
Readbuff[1]=Pointer_0;//0x00
Readbuff[2]=ADDRESS_R;//0x91
}
/***************Write a Word***********************/
void WriteWord(void)
{
int t;
Start(); //写入4个字节
do
{
t=Write_N_Byte(Writebuff,4);
}while(t==0);
}
/***************Read Word***********************/
void ReadWord(void)
{
int t;
Start(); //写入2个字节
do
{
t=Write_N_Byte(Readbuff,2);
}while(t==0);
Start(); //写入2个字节
do
{
t=Write_N_Byte(&Readbuff[2],1);
}while(t==0);
Read_N_Byte(Result,2); //读出2个字节
}
//用递归方法将正整数x转换为10进制格式
void ShowInt(long int x)
{
if(x)
{
Format[t_DAS]= x%10;
t_DAS ++;
ShowInt(x/10);
}
}
/***************ADS1115********************/
void ADS1115(void)
{
// InitADS1115();
WriteWord();
Delay_1ms();
ReadWord();
D_ADS=Result[0]*256+Result[1]; //转换的数字量
t_DAS=0;
ShowInt(D_ADS); //转换的数字量转换成十进制
VIN_DAS=4.096*D_ADS/32768; //输入的电压值
}
void int_port(void)
{
P2SEL&=~BIT3; //P1.4模拟SID
P2DIR|=BIT3;
P2SEL&=~BIT4; //P1.4模拟SID
P2DIR|=BIT4;
P2SEL&=~BIT5; //P1.5模拟SCLK
P2DIR|=BIT5;
P1SEL &=BIT6;
P1DIR |=BIT6;
P1OUT |=BIT6;
P1SEL &=BIT7;
P1DIR |=BIT7;
P1OUT |=BIT7;
SDA_OUT;
}
/***************************************************************************
** Function name: delay
** Descriptions: 延时函数
****************************************************************************/
void delayX(uint z)
{
uint x,y;
for(x=0; x<z; x++)
for(y=0; y<10; y++);
}
/***************************************************************************
** Function name: sendbyte
** Descriptions: 按照液晶的串口通信协议发送数据
****************************************************************************/
void sendbyte(unsigned char send_dat)
{
unsigned int i;
for(i=0; i<8; i++)
{
if((send_dat << i) & 0x80)
{
LCD_SID_H;
}
else
{
LCD_SID_L;
}
LCD_SCLK_L;
LCD_SCLK_H;
}
}
/***************************************************************************
** Function name: write_com
** Descriptions: 写串口指令
****************************************************************************/
//串口控制格式(11111AB0)
//A数据方向控制,A=H时读, A=L时写
//B数据类型选择,B=H时显示数据,B=L时显示命令
void write_com(uchar com)
{
LCD_CS_H;
sendbyte(0xf8); //MCU向LCD发命令 A=0 B=0
sendbyte(com & 0xf0); //发高四位数据(数据格式D7D6D5D4_0000)
sendbyte((com << 4) & 0xf0); //发低四位数据(数据格式D3D2D1D0_0000)
delayX(2); //延时等待
LCD_CS_L;
}
/***************************************************************************
** Function name: write_dat
** Descriptions: 写串口数据
****************************************************************************/
void write_dat(uchar dat)//写数据函数
{
LCD_CS_H;
sendbyte(0xfa);
sendbyte(dat & 0xf0); //发高四位数据
sendbyte((dat << 4) & 0xf0); //发低四位数据
delayX(2);
LCD_CS_L;
}
/***************************************************************************
** Function name: lcd_init
** Descriptions: 液晶初始化
****************************************************************************/
void lcd_init(void)
{
write_com(0x0c); //整体显示,关游标
delayX(50);
write_com(0x01); //清屏
delayX(50);
write_com(0x06); //入口设置
delayX(50);
}
/***************************************************************************
** Function name: print_string
** Descriptions: 显示字符串
****************************************************************************/
void print_string(uchar *s) //发送字符串
{
while(*s > 0) //C语言里字符串末尾自动加“\0”(ASCII码值为0)
{
write_dat(*s); //发送字符对应的ASCII码,12864指针可设置自动指向下一个显示地址
s++;
delayX(50);
}
}
/***************************************************************************
** Function name: LCD_12864_address_set
** Descriptions: 地址坐标设置
****************************************************************************/
void LCD_12864_address_set( uchar x,uchar y )
{
uchar Address ;
switch( y )
{
case 1 : Address = 0x80 + (x - 1); break;
case 2 : Address = 0x90 + (x - 1); break;
case 3 : Address = 0x88 + (x - 1); break;
case 4 : Address = 0x98 + (x - 1); break;
default : break;
}
write_com(Address);
}
/***************************************************************************
** Function name: LCD_12864_string
** Descriptions: 显示函数
****************************************************************************/
void LCD_12864_string( uchar y, uchar x, uchar *pData )
{
LCD_12864_address_set(x,y);
while( *pData != '\0' )
{
write_dat(*pData++);
}
}
void display_channel(void)
{
switch(MUX)
{
case 0x4000: LCD_12864_string(3,1,"通道:0");break;
case 0x5000: LCD_12864_string(3,1,"通道:1");break;
case 0x6000: LCD_12864_string(3,1,"通道:2");break;
case 0x7000: LCD_12864_string(3,1,"通道:3");break;
case 0x0000: LCD_12864_string(3,1,"通道:4");break;
case 0x1000: LCD_12864_string(3,1,"通道:5");break;
case 0x2000: LCD_12864_string(3,1,"通道:6");break;
case 0x3000: LCD_12864_string(3,1,"通道:7");break;
default: break;
}
}
void main()
{
int i,temp,num[4];
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)
{
while(1); // If calibration constants are erased // do not load, trap CPU!!
}
BCSCTL1 = CALBC1_1MHZ; // Set DCO
DCOCTL = CALDCO_1MHZ;// P1DIR |=BIT6;// P1OUT |=BIT6;
int_port();
lcd_init();
LCD_12864_string(1,2,"ADS_1115测量");
LCD_12864_string(2,1,"电压值: V");
InitADS1115();
display_channel();//
while(1)
{
ADS1115();
write_com(0x98);
for(i=t_DAS -1;i>=0; i--)
{
write_dat(Format[i]+'0');
}
temp=(int)(VIN_DAS*1000);
num[0]=temp/1000;
num[1]=temp%1000/100;
num[2]=temp%100/10;
num[3]=temp%10;
write_com(0x94);
write_dat(num[0]+'0');
write_dat('.');
for(i=1;i<4; i++)
{
write_dat(num[i]+'0');
}
// delayX(250); //注意延时
}
}
(1)外接信号源提供频率为1kHz的正弦波信号,幅度自定,输入至参考信号R(t)端。R(t)通过自制电阻分压网络降压接至被测信号S(t)端,S(t)端幅度有效值为 10μV~1mV。
(2)参考通道的输出r(t)为方波信号,r(t)的相位相对参考信号R(t)可连续或步进移相180度,步进间距小于10度。
(3)信号通道的3dB频带范围为900Hz~1100Hz。误差小于20%。
(4)在锁定放大器输出端,设计一个能测量并显示被测信号S(t)幅度有效值的电路。所测量的显示值与S(t)有效值的误差小于10%。
(5)在锁定放大器信号S(t)输入端增加一个运放构成的加法器电路,实现S(t)与干扰信号n(t)的1:1叠加,如图4.1所示。
(6)用另一信号源产生一个频率为1050~2100Hz的正弦波信号作为n(t),将其叠加在锁定放大器的输入端,信号幅度等于S(t)。n(t)亦可由与获得S(t)同样结构的电阻分压网络得到。锁定放大器应尽量降低n(t)对S(t)信号有效值测量的影响,测量误差小于10%。
(7)增加n(t)幅度,使之等于10S(t),锁定放大器对S(t)信号有效值的测量误差小于10%。
为了确定系统与题目要求的符合程度,对系统中的关键部分进行了实际测试。使用仪器设备见表4.2。
表4.2 测试使用的仪器设备
1、交流放大器放大倍数测试
根据选择的元器件交流放大器由两极构成,两级放大倍数相同,均为34.13,整体放大倍数1165,实测为1236。误差为5.5%。
2、带通滤波器性能测试
测试条件V+ =12v,V- =-12v,带通滤波器的输入电压Vinp-p =4v测试结果如表4.2。
中心频率990Hz,带宽910Hz-1050Hz。满足设计要求。
表4.2 带通滤波器测试数据
3、四阶低通滤波器性能测试
低通滤波器输入信号Vinp-p =2v,对应不同频率输出电压如表4.3。通带电压放大倍数约5倍。截止频率约770Hz。相敏检波器输出的交流信号最低频率2000Hz。低通滤波器满足设计要求。
表4.3四阶低通滤波器测试数据
4、移相器特性测试
用Vinp-p=2V,信号测试,方波相移可以从0°~180°连续可调。输出信号频率幅值不变。
测试结果表明,在软硬件结合下,锁定放大器的性能满足题目要求的大部分性能指标,由于时间紧张和水平有限部分电路不完善。测试指标不理想。产生测试误差。
系统误差产生原因主要有以下几方面:
(1) 由于测试信号属于微弱小信号,电源噪声以及电路布局不理想引入的干扰,对测试结果产生影响。
(2) 由于时间原因电路设计采用多功能板连接,因此干扰严重。
(3) 元器件精度引入的误差。
(4) 单片机显示引入的量化误差。
本实验项目设计主要有锁定放大器的设计采用精密放大器,仪用放大器等新型电子元器件实现小信号高倍放大。整个放大器结构由TLV826构成的多级交流放大器、OP07构成的带通滤波器、MPY634构成的相敏检波器、OP07构成的参考信号移相器、方波驱动器、低通滤波器、直流放大器等构成。显示电路由MSP430单片机、TLV5618、ADS1115、液晶显示器等构成实现对信号的有效值显示。测试结果基本符合设计要求,实现绝大部分性能指标。在本次设计的过程中,遇到了许多困难,开始设计进度比较慢,但通过仔细的分析和进行多方面的调整后解决了问题,从中我们对电子专业知识与技能得到了更多的理解与提高。比赛中三个人分工明确,积极配合,最终完成了设计,这使我们深刻地体会到了共同协作和团队精神的重要性。总之,这次比赛对我们每个人都影响非常深刻。
[1] 高晋占主编《微弱信号检测》清华大学出版 2004
[2] 阎石主编《数字电子技术基础》高等教育出版社 2012.3
[3] 张毅刚主编《单片机原理与应用设计》电子工业出版社 2008.4
[4] 陈永真主编《全国大学生电子设计竞赛试题精讲选》电子工业出版社 2006.1
[5] 王昊主编《通用电子元器件的选用与检测》电子工业出版社 2006.1
[6] 全国大学生电子设计竞赛组委会编《第九届全国大学生电子设计竞赛获奖作品选编》北京理工大学出版社 2008.11
[7] 华成英主编《模拟电子技术基本教程》清华大学出版社 2009.8.
[8] 李杰等编著《电子技术基础》清华大学出版社 2008.
[9] 郑家龙主编《集成电子技术基础教程》高等教育出版社 2002.
[10]张金主编《电子设计与制作100例》北京电子工业出版社,20##年
[11]陈汝全主编《电子技术常用器件应用手册》北京理工大学出版社1991.
[12]王振宇主编《实验电子技术》 电子工业出版社,2004
图 Ⅳ-1
图 Ⅳ-2
实验室开放工作总结当前我们的实验教学发生了不少的变化。若实验教学能够让学生在活动中主动地学习、积极的思考,充分发挥他们的主体作用,…
湖州师范学院大学生创新创业训练计划实验室开放项目总结报告项目名称基于51单片机的可调数控电源申报实验室项目负责人联系电话结题日期年…
摘要初中生物进行开放式实验教学的探讨随着课程标准改革的慢慢展开当前我们的实验教学发生了不少的变化若实验教学能够让学生在活动中主动地…
湖州师范学院大学生创新创业训练计划实验室开放项目总结报告申报实验室项目负责人项目名称认识图形Flash游戏化学习软件的设计联系电话…
20xx20xx年物理实验室课外开放活动总结在过去的一年里为了推动普实工作向纵深发展促进学生素质全面提高在实验教学活动中我们坚持认…
xxx家长半日开放活动总结为了使家长能更全面地了解幼儿在园的游戏、学习、生活情况,20xx-1-22日下午,我们进行了家长开放日半…
黄泥河二小学20xx-20xx学年度第一学期教学开放日活动总结为了进一步加强家校互动与联系,更好地发挥家庭教育对学校工作的支持力度…
我校于20xx年x月x日进行了第27个教师节开放日活动。本次活动学校高度重视,在全体教师的精心准备、家长们的大力支持下,本次开放日…
家长开放日活动总结(大2班)家长开放日活动已经结束,而我的心情却久久不能平复,对一个国家来说孩子是希望和未来,对一个家庭来说同样如…
相公中心幼儿园家长开放日活动总结(大班)家长开放日活动已经结束,而我的心情却久久不能平复,对一个国家来说孩子是希望和未来,对一个家…
经历了项目立项之初大家确定项目立意点的思考,到确定项目,立项审查的波折,然后是项目中期检查的慌乱,而后是后期分析整理与最终项目结题…