简易频率特性测试仪最终分析方案.docx

上传人:b****7 文档编号:23467377 上传时间:2023-05-17 格式:DOCX 页数:19 大小:283.49KB
下载 相关 举报
简易频率特性测试仪最终分析方案.docx_第1页
第1页 / 共19页
简易频率特性测试仪最终分析方案.docx_第2页
第2页 / 共19页
简易频率特性测试仪最终分析方案.docx_第3页
第3页 / 共19页
简易频率特性测试仪最终分析方案.docx_第4页
第4页 / 共19页
简易频率特性测试仪最终分析方案.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

简易频率特性测试仪最终分析方案.docx

《简易频率特性测试仪最终分析方案.docx》由会员分享,可在线阅读,更多相关《简易频率特性测试仪最终分析方案.docx(19页珍藏版)》请在冰豆网上搜索。

简易频率特性测试仪最终分析方案.docx

简易频率特性测试仪最终分析方案

 

2018年全国大学生电子设计竞赛

 

简易频率特性测试仪

 

 

2018年9月7日

 

摘要

该频率特性测量仪采用DDS控制核心外加乘法电路、滤波电路、AD转换电路、以及测量电路。

主要由正交扫频信号发生器、乘法器、低通滤波器、AD转换、显示等功能模块组成。

在本系统中利用51单片机控制DDS芯片AD9854实现信号发生,从而达到输出频率、相位、幅度可控的正交扫频信号。

然后,制作一个频率特性测试仪,用来测量产生的扫频信号的有关信息,并正确显示。

为了了解检测电路的特性,最后做一个RLC被测网络。

使用测量电路测量被测网络的有关电器参数,同时可以通过对电路优化来提高该测量仪的测量精度。

 

关键字:

DDSAD9854正交扫频

 

目录

1系统方案1

1.1正交扫频信号源的论证与选择1

1.2相频特性的论证与选择2

1.3幅频特性的论证与选择3

2系统理论分析与计算4

2.1系统总体方案的分析4

2.1.1采用DSP方式4

2.1.2直接利用已有信号源给系统,比较输入输出5

2.2有关零中频原理的计算5

3电路与程序设计6

3.1电路的设计6

3.1.1系统总体框图6

3.1.2扫频信号子系统框图与电路原理图7

3.2程序的设计8

3.2.1程序功能描述与设计思路8

3.2.2程序流程图9

4测试方案与测试结果10

附录1:

电路原理图11

附录2:

源程序12

参考文献17

 

简易频率特性测试仪

【本科组】

1系统方案

本系统主要由信号发生器模块、乘法电路模块、解调模块、显示测量模块组成,下面分别论证这几个模块的选择。

1.1正交扫频信号源的论证与选择

方案一:

单片函数发生器

利用单片函数发生器配合外部分立元件输出频率,通过调整外部元件可改变输出频率。

缺点:

发生器输出频率稳定度差、精度低、抗干扰能力低、灵活性差,成本也高。

方案二:

锁相环频率合成技术

图1.1PPL原理图

通过改变程序分频器的分频比,则可改变压控振荡器的输出频率fo,从而获得大量可供利用的频率稳定度等同于参考频率的频率点,这里输出频率fo只能以参考频率fr为步长进行变化。

缺点:

现有集成PLL的VCO一般都产生方波,而不是正弦波,而且在不改变VCO电容的情况下,要达到1MHZ~40MHZ的频率范围有很大困难,所以我们不予采用。

方案三:

DDS产生编程控制的信号源

图1.2.DDS原理图

将输出波形的一个完整周期幅度值按相位步进顺序量化存储于EEPROM中,利用相位累加技术生成地址查询高速存储器中存储的波形幅值,再以均匀速率把这些样本输出到数模转换器变换成模拟信号,由一个周期输出样本个数决定输出频率的大小。

缺点:

DDS可以高精度与高纯度的频率信号,理论上只要累加器的位数足够多,可以实现任意小的频率步进。

频率分辨率很高,离散输出已十分接近连续变化。

对相位累加器预置累加初值可以很方便地实现精密相位调节。

综合以上三种方案,选择方案三。

1.2相频特性的论证与选择

方案一:

积分法

将异或鉴相器的异或输出脉冲送至积分器积分,当积分电压达到一定值时再通过一个回路放电,并测量充放电的时间T1,T2。

根据其比值算出其相位差。

缺点:

这种方案测量精度高且与被测信号的频率关系不大,可以测量高频信号间的相位差。

但这种方法对积分电路和充放电时间的要求较高,因此不采用。

方案二:

计数法

将输入和输出信号分别经过过零比较器后对其输出方波进行异或操作。

所得脉冲的占空比既能反映被测信号相位大小。

测量异或脉冲的周期为T,假设其高点平时间为Th,给一个基准高频脉冲,T与Th内基准脉冲的数目分别为M、N,则信号的相位差则为ψ=(N/M>*360°。

该方案实现电路简单,易于ARM编程实现。

方案三:

低通滤波器

将输入和输出信号分别经过过零比较器后对其输出方波进行异或操作。

将此异或输出信号微分得到两个对应被测信号负向过零瞬间的尖脉冲,利用非饱和型高速双稳态电路被这两组负脉冲所触发,输出周期为T、宽度为TX的方波,若方波幅度为Ug,则此方波的平均值即直流分量可得。

用低通滤波器将方波中的基波和谐波分量全部滤除后,输出电压即直流电压。

上式中T为被测信号的周期,TX由两信号的相位差

决定。

TX与

的关系为:

若A/D的量化单位取为Ug/3600,则A/D转换结果即为

的度数。

最终我们选择方案三

1.3幅频特性的论证与选择

方案一:

二极管峰值检测法

图1.3二极管峰值检测电路图

由电压跟随器和二极管电路组成,其工作原理为:

当输入电压正半周通过时,检波管导通,对电容C充电,使电容上的电压逐渐趋近于峰值电压。

只要RC足够大,可以认为其输出的直流电压数值上十分接近于交流电压的峰值。

而在其它时段电容C上的电压将对电阻R放电。

利用检波二极管对输出信号检测,得到与信号峰值成比例关系的直流信号,在经过运算放大器调整比例系数以便于单片机采样。

方案说明:

此法检测的信号范围小,但精度高,能够满足该系统的幅频特性的测试要求。

并且电路简单,经典易用。

但是本题由于经过带阻网络,并且扫频变化很快,所以要求检测能够很快跟随,这点很难实现。

方案二:

基于AD637的有效检测

图1.4基于AD637的有效值检测电路

采用集成真有效值变换芯片,测量被测信号的真有效值,然后换算为幅值这样可以实现对正弦波的幅值测量。

AD637是一块高精度单片真有效值转换器,计算各种复杂波形的真有效值,采用了峰值系数补偿,量程在0~7V范围内可调,在测量峰值系数高达10的信号时附加误差仅为1%。

而且外围元件少,频带宽,频带宽度在2V输入时可达8MHZ。

方案说明:

芯片AD637精度很高,稳定性好,快速变化能力比方案一强。

综合以上两种方案,选择方案二。

2系统理论分析与计算

2.1系统总体方案的分析

2.1.1采用DSP方式

首先给被测网络一个能量脉冲信号X

当输入为单位冲击函数

时,则输出为系统的单位冲激响应

,由于

恒等于1,于是就有

由此可得幅频特性和相频特性完整的信息。

方案说明:

采用这种方法时要制作冲激响应

,并对输出响应进行数据采集,再对采集的数据进行FFT以得到

但在实际应用中,不可能得到理想的

脉冲,虽然脉冲信号足够窄的信号可以代替

,但是比较难以获得。

而且此测试方法对软件的计算能力要求比较高,必须采用微机系统,故不采用。

2.1.2直接利用已有信号源给系统,比较输入输出

首先设计一个扫描信号源,输出频率可步进的正弦信号,作为被测网络的输入信号Vi,网络的输出信号为Vo,信号源输出的频率按步进值递增,在各个频率点上,通过对幅度有效值的测量和A/D就可以得到Vo和Vi的有效值,两者之比就是该点的频率响应;对Vo和Vi进行过零比较、整形,再进行相位差的测量。

Vi的上升沿启动计数,Vo的上升沿停止计数,得到的时间值比上信号的周期,就是该点的相位响应。

方案说明:

该方案可利用ARM工具,减少了硬件电路,并且频率可调的信号易于得到,可实现性明显比方案一高。

所以,综合比较,最终选择方案二。

2.2有关零中频原理的计算

1非零中频解调器所遇到的问题

非零中频接收机又称超外差式接收机

在这种接收机的设计中存在以下几个主要问题:

1.1镜像频率的抑制

下变频过程中会产生有关位于fc-2fi的镜像频率,在混频之前必须把它抑制掉。

这要采用高频滤波器实现。

只有当中频很高,镜像与载波相隔很远时才能实现。

但这时,却不能把临频道干扰有效地抑制掉。

即临频道干扰的抑制和镜频抑制互为矛盾。

即使镜频与载波相隔很近<例如:

fc/fi=10),对高频滤波器的要求也很高,一般要有很高的Q值<接近50),而且阶数也很高<6阶才可以达到60-70dB的镜频抑制度)。

1.2镜频的抑制

镜频的抑制可以用I/Q正交结构实现,但是要求I/Q幅度一致,相位正交,例如%5的幅度不平衡和3度的相位不正交时,镜频抑制度约在26dB,要达到60dB的镜频抑制度,相位不正交性要小于0.3度,一般集成电路很难实现。

1.3集成度低

混频器之后的临频道干扰抑制滤波器也要很高的Q值和阶数,这样的镜频抑制和临频道抑制滤波器难以集成。

一般要用分离元件构成。

造成体积大,费用较高。

1.4阻抗匹配困难

由于镜频滤波器难以集成,低噪声放大器后面要跟一个50Ω的负载,这又要在噪声与线性度之间进行权衡。

2零中频解调的优点

零中频

这时中频为零,镜频和信

号自身重叠一起,此时要采用I/Q正交结构来抑制镜频。

图2.1零中频解调的基本原理

零中频解调的主要优点是:

·临频道抑制不须要高Q的滤波器,低通滤波器可以用模拟集成电路实现;

零中频解调器与非中频解调器的比较3

·低噪声放大器后不须要50Ω的负载;

·I/Q支路可以直接A/D,用DSP实现解调器;

·硬件消耗少,集成度高。

3电路与程序设计

3.1电路的设计

3.1.1系统总体框图

本系统采用单片机驱动AD8954DDS芯片,产生两路信号、一路正弦一路余弦。

配合后边的乘法电路,调制解调电路、低通滤波电路、ADC模数转换电路最后运用程序驱动配合外围电路和示波器进行幅频特性的分析。

系统总体框图如图6所示

 

图3.1系统总体框图

3.1.2扫频信号子系统框图与电路原理图

图3.2扫频信号子系统框图与电路原理图

3.2程序的设计

3.2.1程序功能描述与设计思路

通过51单片机控制AD9854,对51单片机编写程序,从而使AD9854在单片机的控制下分别产生一路频率、振幅、相位相同的正弦波和余弦波。

3.2.2程序流程图

图3.3程序流程图

4测试方案与测试结果

图4.1频率为3MHz的正弦波

通过一段时间的努力,我们终于能够运用51单片机控制AD9854产生我们想要得到的正弦波形,紧接着我们进行正交扫频信号的产生实验。

但是却始终不能够产生稳定、精确的正交扫频信号波形。

剩下的大多数时间都在为产生非常稳定的正交扫频信号波形而努力。

软件编程工作基本完成<完整的源程序附于附录中),但是产生的正交扫频信号在稳定相位差、等振幅和等频率的问题上总是不能很好的解决。

开始时对程序进行优化,可产生的信号总是受到很大的干扰,后来查阅一些资料了解到我们的外部所布线路完全是由自己用焊锡手工焊接,裸露在外部的焊锡电路没有绝缘层的保护在上电时很容易受到干扰,这可能是波形不稳定的原因。

本想从做一个AD9854的外围电路,可是时间以及来不及,这就是我没目前的实验进度情况。

附录1:

电路原理图

整体电路图

 

附录2:

源程序

#include

#include

#defineuintunsignedint

#defineucharunsignedchar

#defineulongunsignedlong

ucharFreqWord[6]。

//6个字节频率控制字

#defineCLK_Set6

constulongFreq_mult_ulong=2345625。

constdoubleFreq_mult_doulle=2345624.80592213。

 

#defineAD9854_DataBusP0

#defineAD9854_AdrBusP2

sbitAD9854_RST=P3^7。

//AD9854复位端口

sbitAD9854_UDCLK=P3^6。

//AD9854更新时钟

sbitAD9854_WR=P3^5。

//AD9854写使能,低有效

sbitAD9854_RD=P3^4。

//AD9854读使能,低有效

sbitAD9854_FDATA=P3^3。

//AD9854FSK,PSK控制

sbitAD9854_OSK=P3^2。

//AD9854OSK控制端

 

//====================================================================================

//函数名称:

voidAD9854_WR_Byte(ucharaddr,uchardat>

//函数功能:

AD9854并行口写入数据

//入口参数:

addr6位地址

//dat写入的数据

//出口参数:

//====================================================================================

voidAD9854_WR_Byte(ucharaddr,uchardat>

{

AD9854_AdrBus=(addr&0x3f>|(P2&0xc0>。

AD9854_DataBus=dat。

AD9854_WR=0。

AD9854_WR=1。

}

//====================================================================================

//函数名称:

voidAD9854_Init(void>

//函数功能:

AD9854初始化

//入口参数:

//出口参数:

//====================================================================================

voidAD9854_Init(void>

{

AD9854_WR=1。

//将读、写控制端口设为无效

AD9854_RD=1。

AD9854_UDCLK=0。

AD9854_RST=1。

//复位AD9854

AD9854_RST=0。

AD9854_WR_Byte(0x1d,0x10>。

//关闭比较器

AD9854_WR_Byte(0x1e,CLK_Set>。

//设置系统时钟倍频

AD9854_WR_Byte(0x1f,0x00>。

//设置系统为模式0,由外部更新

AD9854_WR_Byte(0x20,0x60>。

//设置为可调节幅度,取消插值补偿

AD9854_UDCLK=1。

//更新AD9854输出

AD9854_UDCLK=0。

}

//====================================================================================

//函数名称:

voidFreq_convert(longFreq>

//函数功能:

正弦信号频率数据转换

//入口参数:

Freq需要转换的频率,取值从0~SYSCLK/2

//出口参数:

无但是影响全局变量FreqWord[6]的值

//说明:

该算法位多字节相乘算法,有公式FTW=(DesiredOutputFrequency×2N>/SYSCLK

//得到该算法,其中N=48,DesiredOutputFrequency为所需要的频率,即Freq,SYSCLK

//为可编程的系统时钟,FTW为48Bit的频率控制字,即FreqWord[6]

//====================================================================================

voidFreq_convert(longFreq>

{

ulongFreqBuf。

ulongTemp=Freq_mult_ulong。

ucharArray_Freq[4]。

//将输入频率因子分为四个字节

Array_Freq[0]=(uchar>Freq。

Array_Freq[1]=(uchar>(Freq>>8>。

Array_Freq[2]=(uchar>(Freq>>16>。

Array_Freq[3]=(uchar>(Freq>>24>。

FreqBuf=Temp*Array_Freq[0]。

FreqWord[0]=FreqBuf。

FreqBuf>>=8。

FreqBuf+=(Temp*Array_Freq[1]>。

FreqWord[1]=FreqBuf。

FreqBuf>>=8。

FreqBuf+=(Temp*Array_Freq[2]>。

FreqWord[2]=FreqBuf。

FreqBuf>>=8。

FreqBuf+=(Temp*Array_Freq[3]>。

FreqWord[3]=FreqBuf。

FreqBuf>>=8。

FreqWord[4]=FreqBuf。

FreqWord[5]=FreqBuf>>8。

}

//====================================================================================

//函数名称:

voidAD9854_SetSine(ulongFreq,uintShape>

//函数功能:

AD9854正弦波产生程序

//入口参数:

Freq频率设置,取值范围为0~(1/2>*SYSCLK

//Shape幅度设置.为12Bit,取值范围为(0~4095>,取值越大,幅度越大

//出口参数:

//====================================================================================

voidAD9854_SetSine(ulongFreq,uintShape>

{

ucharcount。

ucharAdress。

Adress=0x04。

//选择频率控制字地址的初值

Freq_convert(Freq>。

//频率转换

for(count=6。

count>0。

>//写入6字节的频率控制字

{

AD9854_WR_Byte(Adress++,FreqWord[--count]>。

}

AD9854_WR_Byte(0x21,Shape>>8>。

//设置I通道幅度

AD9854_WR_Byte(0x22,(uchar>(Shape&0xff>>。

AD9854_WR_Byte(0x23,Shape>>8>。

//设置Q通道幅度

AD9854_WR_Byte(0x24,(uchar>(Shape&0xff>>。

AD9854_UDCLK=1。

//更新AD9854输出

AD9854_UDCLK=0。

}

 

//=================================================================

//函数名称:

voiddelay(uintus>

//函数功能:

us级延时,大概2~4us

//入口参数:

us延时时间的长短

//出口参数:

//=================================================================

voiddelay(uintus>

{

uinti。

for(i=0。

i

i++>

_nop_(>。

}

//测试正弦波,采用120MHZSYSCLK时,出来10MHZ波形,波形很好,测试成功

//当采用300MHZSYSCLK时,测试50MHZ波形时,DDS发热厉害,且波形衰减严重,幅度在35mV左右

intmain(>

{

uinti。

AD9854_Init(>。

for(i=0。

i<400。

i++>

{

AD9854_SetSine(1000000+i*100000,4000>。

}

delay(1>。

while(1>。

}

 

参考文献

[1]林立.单片机原理及应用.2018第二版.北京:

电子工业出版社出版.2018.1

[2]华成英.模拟电子技术基础教程.2006年二月第一版.北京:

清华大学出版社,2018.10

[3]阎石.数字电子技术基础.2009第五版.北京:

高等教育出版社,2004.1.

[4]郭天祥.51单片机C语言教程.2018第三版.北京:

电子工业出版社出版,2009.1.

[5]樊昌信曹丽娜.通信原理.第六版.北京:

国防工业出版社,2018.1.

 

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1