文档详情

基于FPGA的2FSK调制器的实现实验报告.doc

发布:2020-05-20约3千字共7页下载文档
文本预览下载声明
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;
显示全部
相似文档