正弦信号发生器设计Word文档下载推荐.docx
- 文档编号:16768489
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:26
- 大小:167.46KB
正弦信号发生器设计Word文档下载推荐.docx
《正弦信号发生器设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《正弦信号发生器设计Word文档下载推荐.docx(26页珍藏版)》请在冰豆网上搜索。
输出接到有效值检测电路上,反馈给单片机。
单片机根据反馈调节衰减器,实现自动调节增益。
但增益动态范围有限。
采用方案二。
(3)功率放大模块
程控放大器AD603。
AD603的电压控制端加上控制电压,即可控制该放大器的增益。
采用此方案的放大倍数控制灵活,甚至可以通过AGC比较容易实现设计要求中的输出电压范围。
但是使用该方案费用比较高,而且调试比较复杂。
使用高带宽运放进行放大。
使用AD811等高带宽放大器直接进行放大。
由于方案二能实现要求的功能,电路简单,操作方便,故采用方案二。
(4)模拟幅度调制(AM)模块
采用软件技术实现。
先用A/D转换芯片对调制信号进行采样,将采样的结果经过相应的大小处理后D/A转换输出到外部的程控放大器的增益控制端。
从而控制输出信号的幅度,也即实现了AM调制。
由于程控放大器输入控制电压范围较小,A/D转换后的数据处理复杂而难以精确控制增益大小,且外围电路比较复杂难调试。
采用模拟乘法器MC1496。
MC1496实现将两个输入信号的相乘运算,通过相乘实现模拟调制,采用MC1496容易实现频谱搬移,且输出结果稳定性好,通过改变加给其调制信号的直流电平可以改变其调制深度。
(5)ASK、PSK调制模块
直接采用软件方法实现。
用程序直接控制DDS输出二进制PSK和ASK信号,根据码序列中的'
0'
或'
1'
直接控制DDS的相移,便可以实现PSK调制功能,而控制DDS的工作与否即可实现ASK调制。
本方案直接用软件来实现产生二进制ASK,PSK信号,基本不用硬件电路,比较方便,但输出的信号不稳定。
故不采用。
采用模拟开关。
将调制信号经过反向作一路输出,通过控制模拟开关选择输出原信号或反向信号从而实现PSK,而通过模拟开关选择输出信号的有无即实现ASK。
使用此方法的原理简单,软件硬件都容易实现,且稳定性良好。
(6)控制系统的选择
使用FPGA作为控制系统。
对FPGA器件编程,使其
实现对液晶,AD9851和模拟开关等的控制。
但是由于本系统中对液晶的控制需要专业的模组工具才能更方便地使用,所以不采用此方案。
使用凌阳单片机作为控制系统。
由于凌阳单片机具有
自己的液晶显示模组,可以方便地对其编程实现人机接口。
且其系统板内部有10位的A/D和D/A转换器,方便使用,完全能实现本系统的要求。
二、硬件设计
1.DDS信号源设计
电路图如图二所示。
AD9851是ADI公司的可编程控制的直接数字频率合成的芯片。
它内部包含可编程DDS系统,高性能D/A和高速比较器。
外接上精密时钟源后,对其进行编程可控制输出相应的频谱纯净的正弦波。
A/D9851的数据接入可采用串行或者并行。
图二DDS信号产生电路原理图
根据DDS芯片AD9851的工作原理,若累加器时钟为
,累加器位数为N,累加器值为
,频率控制字
,外部参考时钟频率为20MHZ,经内部6倍频后,可得到AD9851内部工作频率
为120MHZ,最终合成信号的频率和相位由下式决定。
2.低通滤波模块
电路图如图三所示。
由于AD9851的输出信号中带有120mV的直流偏置电压和高次谐波分量,本设计在AD9851输出端加上了隔直电容和低通滤波电路。
图三低通滤波电路原理图
3.AGC模块
如下图所示,AGC电路有可控增益放大器AD603和三极管2N3906、2N3904构建。
AD603采用双电源供电方式,其控制范围为80db(-20db~+60db),可满足题目要求设计要求。
经试验调试,该AGC电路在输入信号峰峰值为
情况下,可实现
范围内稳定输出峰峰值为2.2V无失真正弦信号。
图四AGC电路图
4.功率放大模块
功率放大部分采用电压反馈型宽带运放AD811。
供电,增益为+10情况下,-3db带宽达100MHZ,完全满足题意,且输出电流达100mA以上,满足输出峰峰值为6V的要求。
电路图如图五所示。
图五功率放大原理图
5.幅度调制(AM模块)
幅度调制的核心器件选用模拟乘法器MC1496,将载波信号和被调制信号相乘即可得到AM调制波。
通过改变被调制信号的直流偏置而达到改变调制度的效果。
其电路图如六所示。
图六幅度调制原理图
6.ASK、PSK模块
基带信号可以自行产生,用AD9851产生100KHz的正弦信号作为载波,如果用两个单片机控制就用单片机产生基带信号,否则可以用信号发生器产生,使之产生固定频率10KHz,从而可以达到二进制基带序列码速率固定为10kbps的要求。
可用AD7502模拟开关来实现选通产生ASK信号;
将载波经过反相器后产生的反相信号与载波信号通过基带信号控制选通,形成PSK信号。
三、系统软件设计
程序流程图如图七所示(程序见附录)。
图七程序流程图
四、测试数据及分析
1.调试与使用仪器
(1)RIGOLDM3051的
万用表;
(2)RIGOLDS1062C数字示波器;
(3)EE1461DDS合成信号发生器。
2.测试方法
(1)模块测试
将系统各模块先分开测试,调试成功后在整机调试。
(2)将硬件模块和相应的软件进行整机测试。
(示波器输出波形截图见附录)
依据设计要求,分别对输出波形、输出电压峰峰值、输出频率和功率放大器输出测试。
测试输出电压的峰峰值时,对放大电路和AGC电路参数适当调整,使输出频率在1KHz~13MHZ之间变化时能够满足
=6V
1V。
3.测试数据
(1)基本要求测试
1)正弦波频率范围测试
接50
负载,对输出电压进行测试,测量结果如表一。
表一:
设置频率
实测频率
输出幅值
功放后
(V)
100Hz
100.0Hz
1.00V
6.04V(有微小失真)
1KHz
1.000KHz
6.05V(有微小失真)
10KHz
10.00KHz
6.06V
20KHz
20.00KHz
6.08V
50KHz
50.00KHz
6.0V
100KHz
100.00KHz
500KHz
500.00KHz
5.88V
1.0MHz
1.000MHz
5.60V
1.5MHz
1.500MHz
5.2V
5.0MHz
5.000MHz
999mV
5.95V
10.0MHz
10.000MHz
976mV
5.96V
13.0MHz
13.02MHz
960mV
5.93V
(2)发挥部分测试
采用调制度测量仪对输出信号进行AM信号测试,测试结果如表三。
表三(调制信号幅值为
53mV):
设置调制度
直流输入电压
实际调制度
相对误差
10%
530mV
10.1%
1%
20%
263.7mV
20.1%
0.5%
30%
178.5mV
29.7%
40%
133.7mV
39.6%
50%
106.4mV
49.8%
0.4%
60%
88.1mV
60.15%
0.25%
70%
75.1mV
70.57%
0.81%
80%
66.0mV
80.3%
0.375%
90%
58.0mV
91.37%
1.5%
100%
53.0mV
0%
4.测试结果分析
系统测试指标达到要求,部分指标超过题目要求:
正弦波输出频率:
100Hz~13MHz;
输出信号频率稳定度:
优于
,满足题目要求;
自行产生1KHz正弦调制信号;
产生AM信号在1~10MHz内,调制度
可在10%~100%程控,步进10%。
附录一:
示波器输出波形截图
AM输出波形
ASK输出波形
PSK输出波形
附录二:
单片机程序
#include"
spce061a.h"
splc501user.h"
xhfsq.h"
unsignedintdatax[4];
unsignedintdataz[4];
unsignedintdata1[5];
unsignedintdatam[6];
unsignedlongintdata;
intkeyval;
voidAD9851();
unsignedlongintmplz();
unsignedlongintkplz();
voidaskpsk();
voidpsk();
voidAMchange();
unsignedintkey_scan();
voiddelay(unsignedintcount);
voiddelay1(unsignedintcount);
voiddelay2(unsignedintcount);
unsignedinttable[]={encoding_00,encoding_01,encoding_02,encoding_03,encoding_04,encoding_05,
encoding_06,encoding_07,encoding_08,encoding_09,encoding_0a,encoding_0b,
encoding_0c,encoding_0d,encoding_0e,encoding_0f,encoding_10,encoding_11,
encoding_12,encoding_13,encoding_14,encoding_15,encoding_16,encoding_17,
encoding_18,encoding_19,encoding_1a};
main()
{
*P_IOB_Dir|=0xffff;
//B口(8-15位)作为向AD9851的输出数据端口
*P_IOB_Attrib|=0xffff;
//B口B0--RESET,B1--FQ_uD,B2--W_clk
*P_IOB_Data|=0x0000;
//B口B7产生10KHz的基带信号
while
(1)
{
keyval=key_scan();
*P_Watchdog_Clear=1;
switch(keyval)
{
case13:
LCD501_Init(0x00);
LCD501_Bitmap(0,32,(unsignedint*)table[21]);
//幅
LCD501_Bitmap(12,32,(unsignedint*)table[22]);
//度
LCD501_Bitmap(24,32,(unsignedint*)table[23]);
//调
LCD501_Bitmap(36,32,(unsignedint*)table[24]);
//制
AMchange();
break;
case14:
LCD501_Bitmap(0,32,(unsignedint*)table[10]);
//请
LCD501_Bitmap(12,32,(unsignedint*)table[11]);
//输
LCD501_Bitmap(24,32,(unsignedint*)table[12]);
//入
LCD501_Bitmap(36,32,(unsignedint*)table[26]);
//要
LCD501_Bitmap(48,32,(unsignedint*)table[15]);
//产
LCD501_Bitmap(60,32,(unsignedint*)table[16]);
//生
LCD501_Bitmap(72,32,(unsignedint*)table[13]);
//频
LCD501_Bitmap(84,32,(unsignedint*)table[14]);
//率
AD9851();
case15:
LCD501_Bitmap(0,32,(unsignedint*)table[15]);
LCD501_Bitmap(12,32,(unsignedint*)table[16]);
LCD501_Bitmap(24,32,(unsignedint*)table[17]);
//基
LCD501_Bitmap(36,32,(unsignedint*)table[18]);
//带
LCD501_Bitmap(48,32,(unsignedint*)table[19]);
//信
LCD501_Bitmap(60,32,(unsignedint*)table[20]);
//号
LCD501_Bitmap(12,48,(unsignedint*)table[1]);
//1
LCD501_Bitmap(24,48,(unsignedint*)table[0]);
//0
LCD501_PutChar(36,48,'
K'
);
LCD501_PutChar(48,48,'
H'
LCD501_PutChar(60,48,'
z'
askpsk();
default:
}
}
}
voidAD9851()
{
inti=5;
doubletem;
intkeyval;
unsignedlongintpk;
inth;
data=1000;
while
(1)
while(key_scan()==16)
{
*P_Watchdog_Clear=1;
}
loop:
*P_IOB_Dir=0xf0ff;
*P_IOB_Attrib=0xf0ff;
*P_IOB_Data=0;
delay
(1);
keyval=key_scan();
switch(keyval)
case13:
mplz();
break;
case12:
kplz();
case10:
if(data<
1000000)
data=data+100;
datax[0]=data/100000%10;
datax[1]=data/10000%10;
datax[2]=data/1000%10;
datax[3]=data/100%10;
LCD501_Init(0x00);
LCD501_Bitmap(12,24,table[datax[0]]);
LCD501_Bitmap(24,24,table[datax[1]]);
LCD501_Bitmap(36,24,table[datax[2]]);
LCD501_PutChar(48,21,'
.'
LCD501_Bitmap(60,24,table[datax[3]]);
LCD501_PutChar(84,24,'
LCD501_PutChar(96,24,'
LCD501_PutChar(104,24,'
if(data>
=1000000)
datam[0]=data/10000000%10;
datam[1]=data/1000000%10;
datam[2]=data/100000%10;
datam[3]=data/10000%10;
datam[4]=data/1000%10;
datam[5]=data/100%10;
LCD501_Bitmap(12,24,table[datam[0]]);
LCD501_Bitmap(24,24,table[datam[1]]);
LCD501_PutChar(36,21,'
LCD501_Bitmap(48,24,table[datam[2]]);
LCD501_Bitmap(60,24,table[datam[3]]);
LCD501_Bitmap(72,24,table[datam[4]]);
LCD501_Bitmap(84,24,table[datam[5]]);
LCD501_PutChar(84,36,'
M'
LCD501_PutChar(96,36,'
LCD501_PutChar(104,36,'
case11:
data=data-100;
default:
tem=(4294967296/120000000.0)*data;
if((longint)(tem*10)%10>
=5)tem++;
pk=tem;
while(i!
=1)
h=pk&
0x00ff;
pk=pk>
>
8;
i--;
data1[i]=h;
*P_IOB_Data=0x0001;
delay
(1);
*P_IOB_Data=0x0000;
//RESET置零
i=0;
data1[0]=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 正弦 信号发生器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)