基于FPGA的2FSK调制器的实现实验报告.doc
文本预览下载声明
XX 大 学 实 验 报 告
课程名称: 可编程ASIC设计
实验名称: 基于FPGA的2FSK调制器的实现
学院: 电子科学与技术学院
专业:电子科学与技术 班级:
提交时间: 指导教师:
报告人: 学号:
实验地点
基于FPGA的2FSK调制器的实现
2FSK调制原理
2FSK信号是用载波频率的变化来表征被传信息的状态的,被调载波的频率随二进制序列0、1状态而变化,即载频为时代表传0,载频为时代表传1。显然,2FSK信号完全可以看成两个分别以和为载频、以和为被传二进制序列的两种2ASK信号的合成。2FSK信号的典型时域波形如图1所示,其一般时域数学表达式为
图1 2FSK信号的典型时域波形
(10-1)
式中,,,是的反码,即
2、用FPGA实现2FSK调制器的方案
采用键控法实现2FSK,功能模块设计如图所示。通过不同的分频器,产生频率分别为f1和f2的基频。基带信号为“1”时,
图2 用FPGA实现2FSK调制器方案
频率号为“1”时,频率f1的信号通过;当基带信号为“0”时,频率f2的信号通过。f1和f2作为正弦表的地址发生器的时钟,正弦表输出正弦波的样点数据,经过D/A数模转换,得到连续的2FSK信号。
3、将开发板上的50MHz的晶振分频成1MHz和200KHz基频来作为f1信号和f2信号;将27MHz的晶振分频成1KHz的基带信号。
module fsk(clk_50MHz,clk_27MHz,wave);//两个晶振输入,wave作为波形输出
output[7:0] wave;
input clk_50MHz,clk_27MHz;
reg[13:0] count1,count2,count3;//分别是三个分频器的计数
reg clk_1MHz,clk_200KHz,clk_1KHz,clk; //clk是最终输出波形
reg[6:0] addr;//波形地址
reg[7:0] wave;
initial //把一些中间变量设定初值
begin
count1=0;
count2=0;
count3=0;
clk_1MHz=0;
clk_200KHz=0;
clk_1KHz=0;
clk=0;
addr=0;
end
//--------------1MHz分频-------------------------
always@(posedge clk_50MHz)
begin
if(count1==24)
begin
count1=0;
clk_1MHz=~clk_1MHz;
end
else count1=count1+1;//计数
end
//--------------200KHz分频-------------------------
always@(posedge clk_50MHz)
begin
if(count2==124)
begin
count2=0;
clk_200KHz=~clk_200KHz;
end
else count2=count2+1;//计数
end
//--------------1KHz分频-------------------------
always@(posedge clk_27MHz)
begin
if(count3==13499)
begin
count3=0;
clk_1KHz=~clk_1KHz;
end
else count3=count3+1;//计数
end
always@(clk_1KHz)//基带信号控制逻辑
begin
if(clk_1KHz==0)//为0,选择200KHz信号
clk=clk_200KHz ;
else //为1,选择1MHz信号
clk=clk_1MHz;
end
always@(posedge clk)//正弦表
begin
case(addr)
0:wave=100;
1:wave=110;
2:wave=120;
3:wave=130;
4:wave=140;
显示全部