ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:265.10KB ,
资源ID:3360152      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3360152.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(频谱分析仪模拟式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

频谱分析仪模拟式.docx

1、频谱分析仪模拟式2011年电子设计竞赛暑期培训试题频谱分析仪(仪器仪表类)作者:辅导教师:摘 要本系统是采用外差式原理设计并实现的频谱分析仪。系统实现功能为在输入信号幅值为时对其频率测量范围为1020MHz的信号进行频谱分析,信号经前置放大器AD603处理,与利用DDS芯片(AD9850)信号合成技术和倍频来获得10KHz步进的扫频信号相乘,用AD835做混频器,通过滤波器取出各个频点的值,再进行放大、有效值转换、AD采样送至ATmega16单片机处理并由LCD320*240的大显示频谱图及其相关参数。关键字:频谱分析仪 混频 DDS 滤波 有效值转换1.系统方案选择和论证1.1 方案论证与选

2、择方案一:快速傅里叶变换(FFT)。这种频谱分析仪采用数字方案直接由模数转换器对输入信号采样,再经过FFT变换处理后获得频谱分布图。它的频率范围受到ADC采样速率的FFT的运算速度的限制。为获得良好的一起线性度和分辨率,ADC的采样速率至少为输入信号的两倍。对FFT运算器件也有很高的要求,一般采用数字信号处理器件(DSP)。这种方法的优点是硬件电路简洁,主要依靠软件运算,可以提高分辨率,但是高速AD和高速FFT运算器件,价格昂贵。方案二:扫频法。这种频谱分析仪采用外差原理,由本机振荡器产生一定步进频率的扫频信号与输入信号相乘,然后由适当的滤波器将差频分量滤出以代表相应频点的幅度。这种方法的特点

3、是扫频范围大,较数字方法成本较低廉,但是这种方法对硬件电路要求高,各个模块的性能需要精心设计,整体调试难度大。根据现有的水平的成本上考虑,我们采用方案二实现频谱分析仪的设计。1.2系统基本方案系统设计基本框图如图1所示:图1 系统设计基本框图1.3各模块方案选择与论证(1)前置放大器基于对前置放大器增益带宽积的考虑:因为输入信号频率为10MHz20MHz,峰峰值为,而混频器的输入要求信号峰峰值为1V,故需要前置放大器将输入信号放大2934dB。经过对不同型号的带宽放大器分析比较,选择AD公司的可变增益带宽放大器AD603作为前置放大器:当其带宽取040MHz时,增益在040dB间可调,满足题目

4、要求。(2)混频电路混频电路采用以乘法器AD835为主要器件的电路构成,AD835可以实现250MHz带宽内的混频,这能够完全满足题目的要求,而且其输出幅度在不同频率时幅度相对稳定,外围电路相对比较简单,不需要进行复杂的调试,只需要对Z输入的直流信号进行相对调制即可。(3)本振电路 采用直接数字合成器件AD9850,AD9850稳定度高,输出频率精确,内部包含输入寄存器、数据存储器、数字合成器(DDS)、10位高速DA转换器和高速比较器,在外接125MHz晶振是最大输出信号70MHz的正弦信号。本题妖气的输入信号频率为10MHz-20MHz,AD9850产生的信号能够满足扫频信号的频率(10M

5、Hz-20MHz)要求。AD9850直接通过单片机控制,产生范围频率为9.995MHz20.005MHz、步进为10kHz的扫频信号。(4)滤波电路1.本设计要求的频谱分辨率为10KHz,所以每个扫描点的间隔为10KHz。以此为频率中心点,左右各5KHz范围内为有效值,所以每个滤波器需要5KHz的带宽。MAX297为8阶开关电容滤波器,可以实现截止频率为0.150KHz的可调,能够满足题目要求。2.扫频信号的滤波,经过试验发现对本系统有影响的噪声有DDS输出信号中的噪声,因此在扫频信号后面加以滤波器截止频率为30MHz。(5)有效值检测 有效值检测采样高精度的有效值检测器件AD637,先将峰值

6、转换为有效值,再进行采样。AD637的误差为0.5mV+0.1%读数,在电源供电条件下最大输入信号可达4V,能够满足本题的要求。(6)控制电路为减少系统的复杂程度和可靠性,我们采用ATmega16单片机作为控制电路,它内部自带AD,速度快。(7)显示电路 由于设计方案中需要显示信号的频谱,所以用LCD320*240大屏作显示。2.系统的设计与实现2.1系统的硬件组成部分2.1.1本振电路扫频信号部分采用专用DDS芯片AD9850。AD9850输出频率的计算公式为其中为32位控制字, =125MHz。由于,故其输出频率范围,本设计考虑到高频噪声,在扫频信号后面加以截止频率为30MHz的低通滤波器

7、,故最终AD9850输出频率范围为原理图如图2所示:图2 AD9850电路2.1.2 前级放大电路根据前面对题目的分析以及受运算放大器的带宽限制,决定采用两级放大电路对输入信号进行放大,使其达到预定的要求。第一级放大电路采用300MHz带宽的运放AD8011对输入信号进行放大,放大10倍。第二级采用可控增益放大器AD603进行放大,放大5倍。题目要求系统的输入阻抗为50欧姆,根据要求设计的具体电路如图3所示:图3 前级放大电路由图可知:其中为运放的输入电阻一般为,、为平衡电阻。通过调节电位器是为10倍,为5倍,这样两级一共放大即34dB。2.1.3 混频电路混频电路采用的是以AD835为核心器

8、件而搭建的电路,AD835最高工作频谱为250MHz,外围电路简单,可靠性高。具体电路如图4所示:图4 混频电路输出信号其中。将扫频信号加在8脚端,输入信号加在1脚端,而且输入信号的幅值不宜过大,需要控制在-1+1V直接。为了能使AD835能够更好的工作,在正负电源两端加电容去耦,同时加0欧姆电阻,防止高频信号干扰。图中有Z=X2=Y2=0;设输入信号Y1为,扫频信号X1为,则输出信号一般希望得到一个中频信号,通常采用带通滤波器取出所需要的边带,即可得到中频电压对于本系统而言,希望得到的中频信号频率为10K。2.1.4 滤波电路题目要求频谱的分辨率为10KHz,所以每个扫描点的间隔为10KHz

9、,一次频率点为中心,左右各5KHz范围内位有效值,所以滤波器需要5KHz的带宽。MAX297是一个8阶低通椭圆型快关电容滤波器,采用输入时钟频率控制输出截止频率的方法实现模拟信号和数字信号的滤波。MAX297的截止频率和时钟的比为,由截止频率为5KHz以及,可得实际取。经测试器截止频率为5.6KHz。设计的电路如图所示5。图5 低通滤波电路2.1.5 有效值检测电路 有效值检测电路时采用AD637为主要器件所搭建的电路,其典型接法如图6所示。图6 有效值检测电路AD637转换建立时间,转换出信号纹波,转换出信号的直流误差,对于转换要求是建立时间短,纹波小,误差小,最终考虑取,即。2.1.5 控

10、制、显示电路控制电路选择C8051f120单片机作为主控器件,其最小系统如附录所示。显示电路使用LCD800*600液晶屏作为显示界面,通过单片机控制显示内容。3.软件设计控制DDS产生扫频信号,DDS每输出一个频率与输入信号进行相乘,将相乘的结果用滤波器取出,处理,经AD采样送至单片机。系统软件流程如下:图7 系统软件流程图4.系统测试4.1测试条件和测试仪器设备系统容易受到温度、高频信号和强磁场的干扰,测试时必须在室温、无高频信号源及无强磁场干扰的条件下进行,并要确保供电电源的稳定性,测试仪器设备如下表1所示。表1 测试使用的仪器设备序号名称、型号、规格数量备注出厂编号1Tektronix

11、示波器1TektronixC0390702函数信号发生器 EE164281南京新联电子设备有限公司0013983数字万用表 UT58E1UNI-T30500306334.2测试方法和结果(1)频谱测试测试方法:用高频信号源输出信号信号幅值为,频率在1MHz20MHz范围内任意频率,将信号接入频谱仪,然后简易频谱仪对信号进行标定见下表:表2:频谱标定带宽数据表序号带宽/MHz序号带宽/MHz10.9952.245910.99512.24522.2453.4951012.24513.49533.4954.7451113.49514.74544.7455.9951214.74515.99555.99

12、57.24511315.99517.24567.2458.4951417.24518.49578.4959.7451518.49519.74589.74510.9951619.74520.995观察大屏,测试结果如表3所示。表3:频谱测试数据表输入信号频率(MHz)输入信号幅值(mV)实测信号频率(MHz)误差1.068.21.020.20%3.068.23.010.33%5.068.25.030.60%7.068.27.040.57%9.068.29.030.33%11.068.211.040.36%13.068.213.050.38%15.068.215.050.33%17.068.217

13、.060.35%19.068.219.070.36%20.068.220.070.35%5.结论这个题目感觉比较难,之前一直没有彻底搞通原理,就按照现成的方案制作各个模块,在调前置放大器AD811时也遇到了问题,发现放大增益不好控制。现在改用AD603。在各个模块调试好后,在一起联调时,又不能工作了,后来发现滤波电路也存在问题,又改用两级滤波,这时又出现有效值处理后的幅值太小。经过两级反向放大后,终于出来正常的频谱了!经过三天的努力,虽然整个系统仍有许多不足之处,但我们基本上完成了题目要求的基本部分和发挥部分,而且分辨率5K带宽还超出了题目的要求。能在液晶上显示操作提示等,提供了较好的人机界面

14、。限于时间短暂,显示平均噪声电平功能和指标没有时间实现。参考文献:谢自美电子线路设计实验测试武汉:华中科技大学出版社,2006谭浩强C语言程序设计(第三版)北京:清华大学出版社,2008高吉祥全国大学生电子设计竞赛培训系列教程北京:电子工业出版社,2007黄智伟全国大学生电子设计系统设计北京:北京航空航天大学出版社,20065张洪润,张亚凡单片机原理及应用北京:清华大学出版社2005.6赵亮,侯国锐. 单片机C语言编程与实例,北京:人民邮电出版社2003.7康华光电子技术基础(模拟部分)北京:高等教育出版社,2006附录:附件1 :系统主程序/*/*工程说明:控制DDS扫频信号,与模拟硬件电路

15、进行共振产生混频信号,AD进行实时采样 通过320_240显示对应频谱波形*/*编写时间:2011-08-09*/*/#include #include #include #include 320_240.h#include ADC.h#include DDS.h#define Uint unsigned int#define Uchar unsigned char#define key0 PINC4#define key1 PINC5#pragma interrupt_handler TIME_0_PIPEI:20/定时器0比较匹配中断序号Uchar flag; /标志位Uint admax

16、,admin,adpp; /最大值,最小值,峰峰值;Uint xx,yy; /用来显示坐标的参数 Uint a0,a1;double v0; /AD采样变量unsigned long int freq,freq1;unsigned int getdata250; /存储采样点数/extern flag_AD;/void Delay_ms(Uint z);void delay_us(unsigned int tt);void jiemian(void); /界面静态显示void sao_pin(void);void display_Xzuobiao(); /显示频率void display_Yz

17、uobiao(); /显示幅值void timer0();void display_Fdds(void); /显示DDS频率/void main(void) float a,b; Uint i,j; freq1=995000; /0.995MHz xx=0;yy=0; /xx,yy赋初值 /admax=65535;admin=0; DDRB|=BIT(0)|BIT(1)|BIT(2)|BIT(3); /DDS的控制及数据口 DDRC&=BIT(4); PORTC|=BIT(4); TCCR0=0x04; /1024分频设置 TCNT0=0x00;/寄存器初始值设置 OCR0=0xff;/比较匹

18、配值的设置(但是最大不能超过0xff,因为T/C0是8位定时器) TIMSK|=BIT(OCIE0);/开启T/C0输出比较匹配中断使能 SREG|=BIT(7);/开启总中断允许位 ad9850_reset_serial(); Delay_ms(50); LcmInition(); /液晶屏初始化 LcmClear(); /清屏 jiemian(); /界面静态显示 while(1) if(PINC & (1key0)=0) /在下降沿 边沿触发 Delay_ms(50); while(PINC & (1key0)=0); freq1=freq1+1250000; freq=freq1-12

19、50000; if(freq1=20005000) freq1=995000; /*/ /ad9850_wr_serial(0x00,freq); /freq=freq+5000; getdataxx=mega16_ad0(); /Delay_ms(30); /xx+; Linexy(xx,190-getdataxx*0.04884,xx,190-getdataxx+1*0.04884,1,2); / / Delay_ms(10); /display_Yzuobiao(getdataxx); /*if(freq=freq1) freq=9995000; if(xx = 249) xx = 0;

20、 /Delay_ms (30); LcmClear2 ();/用来清除已显示的波形 */ / display_Yzuobiao(); display_Fdds(); /显示DDS频率 /* ad9850_wr_serial(0x00,3000); if(xx999 & yy999) xx+;yy+; display_Xzuobiao(xx); display_Yzuobiao(yy); Delay_ms(100); ad9850_wr_serial(0x00,freq); Delay_ms(10); freq=freq+10000; if(freq=20005000) freq=9995000

21、; */ void TIME_0_PIPEI() ad9850_wr_serial(0x00,freq); freq=freq+5000; xx+; if(xx=249) freq=freq1-1250000; xx = 0; /Delay_ms (30); LcmClear2 ();/用来清除已显示的波形 /*if(xx = 249) xx = 0; /Delay_ms (30); LcmClear2 ();/用来清除已显示的波形 */ TCNT0=0x00;/寄存器初始值重新设置 void Delay_ms(Uint z) Uint x,y; for(x=0;xz;x+) for(y=0;

22、y1141;y+);void delay_us(unsigned int tt) while(tt-);void jiemian(void) /界面静态显示 Uint x,y; Linexy(0, 0, 252, 0, 1,1); Linexy(0, 239, 252, 239, 1,1); Linexy(0, 240, 253, 240, 1,1); Linexy(0, 0, 0, 240, 1,1); Linexy(252, 1, 252, 239, 1,1); Linexy(253, 0, 253, 240, 1,1); for(y=0;y240;y=y+30)/画8条横线 Linexy

23、(0, y, 253, y, 1,1); for(x=0;x250;x=x+25)/画10条竖点线 Linexy(x, 0, x, 239, 1,1); circle(314,5,5,8,1);/8画圆 0擦圆 circle(314,234,5,8,1);/ PutWordInGraph_zuo(); PutWordInGraph_you();void sao_pin(void) ad9850_wr_serial(0x00,freq); Delay_ms(10); freq=freq+10000; if(freq=20005000) freq=995000; void display_Xzuo

24、biao(void) /显示频率 displaynumber( 29,64,a1/100); displaynumber( 30,64,a1%100/10); displaynumber( 31,64,a1%10);void display_Yzuobiao(void) /显示幅值 double temp0; temp0=adpp*2.56/1024; a0=temp0*100; displaynumber( 32,80,a0/100); displaynumber( 33,80,a0%100/10); displaynumber( 34,80,a0%10);void display_Fdds

25、(void) /显示DDS频率 Uint temp; temp=freq/1000; displaynumber( 32,128,temp/10000); displaynumber( 33,128,temp%10000/1000); displaynumber( 34,128,temp%1000/100); displaynumber( 35,128,temp%100/10); displaynumber( 36,128,temp%10);/* for(xx=0;xx250;xx+) a=sin(4*xx*0.0175); yy=190-a*50;/ Point(xx,yy,1);/ Linexy(xx,yy,xx,yy,1); Delay_ms(1);*/

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

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