- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FM信号调制器的设计与实现精选
设计选题及技术要求设计选题 FM信号调制器的设计与实现基础指标:实现FM信号产生,可配置载波和调制信号频率、调频频偏。(1)载波频率范围:100kHz-20MHz,精度优于5%。(2)音频(调制信号)频率范围:10Hz-10kHz,精度优于5%。调频频偏:10kHz-100kHz,步进1kHz,精度优于5%。将FM调制器封装成IP核,测试其功能。增加指标:(1)实现多种波形的调制信号(2)可设置输入外部载波信号方案设计及原理分析(一)原理分析由题目要求可知,需要输入的基本控制字有载波频率控制字和调制信号频率控制字、调频频偏控制字。时域表达式:则,其中:K是频率控制字,,是调制指数。从波形产生的角度,可以把公式分成两部分来设计,第一部分是调制信号产生部分,第二部分是FM信号产生部分。而信号的产生可以运用DDS原理实现,直接数字式频率合成DDS技术的基本原理是将波形数据先存储起来,然后在频率控制字的作用下,通过相位累加器从存储器中读出波形数据,最后经过数模转换和低通滤波后输出频率合成。调制信号频率控制字控制调制信号的频率,由DDS产生的调制信号和调频频偏控制字相乘后再与载波频率控制字相加,得到的就是FM频率控制字,这个控制字通过DDS控制FM信号的产生。(二)总体方案设计硬件部分:图1硬件原理框图1、外部控制部分:通过实验硬件平台具有的外部控制(按键、开关等)实现对FM模块的控制字输入2、基于FPGA的FM信号发生部分:通过FPGA实现FM信号输出,同时输出调制信号作为参考3、数模转换器:将已经合成的波形数字量转化成模拟量。4、低通滤波器:滤除高频成分,恢复所要合成的波形。由于实验平台缺少数模转换器和低通滤波器,故本报告没有介绍这两个部分。软件部分:图2软件原理框图方案论证:系统设计方案:方案一:各模块代码自己编写,优点是代码灵活,可根据需要增加功能。缺点是设计中无法充分考虑时序因素。方案二:各模块通过调用IP核实现,优点是实现方便,IP核已通验证,性能优越。缺点是灵活性低,不能随意修改内部代码。时钟方案:方案一:所有模块共用同一时钟源,设计方便,不必考虑时钟选择问题。硬件调试时,时钟域单一,可以减少时钟域选择造成的错误。但时钟频率低,可能导致DDS输出波形失真。方案二:DDS高频部分时钟源为系统时钟倍频得到,其他部分共用系统时钟。优点是所有模块理论上可达到题目指标要求。缺点是倍频过高可能导致系统最终不满足时序约束。方案分析:需要输入的基本控制字有载波频率控制字和调制信号频率控制字、调频频偏控制字。在此基础上,该设计又增加了调制信号波形控制部分,总体软件原理框图如图2所示,模块较多,但各部分功能较简单,故不必考虑代码灵活与否,而需要考虑整体性能,则系统设计选择方案二,而部分无IP核可实现的模块通过代码编写。调制信号频率控制字控制DDSIP核,在100MHz时钟源的条件下,DDS核通过查找余弦ROM表生成调制信号,由于增加了三角波、方波和外部信号等波形,故将DDSIP核产生的相位信号作为外部ROM表的输入,ROM表的输出则通过一个波形选择器来控制,波形选择器通过波形控制字决定哪种信号输出,将输出的调制信号与调频频偏控制字相乘,得到的数据再与载波频率控制字相加,结果可作为另一个DDSIP和的输入,DDSIP核的输出即为生成的FM信号。需要注意的是,系统时钟100MHz,而载波最高为20MHz,则当载波为最高时,DDSIP核输出的波形有一定程度的失真,所以产生FM信号的DDSIP核所用的时钟源应该经过系统时钟倍频,时钟方案选择方案二,考虑到系统稍复杂,如果倍频太高,可能导致所设计硬件不能满足时序约束,综合以上情况考虑,将系统时钟倍频到200MHz,作为产生FM信号的DDS核的时钟源。程序分析及设计图3总体流程图倍频模块图4Clocking Wizard配置结果将100MHz时钟倍频到200MHz,通过调用Clocking Wizard IP核实现(见图4)。wire clk_200M;//定义输出已倍频时钟信号 clk_wiz_0 instance_name(.clk_in1(clk), // 系统时钟接入.clk_out1(clk_200M), // 输出已倍频时钟.reset(~cpu_resetn), // 复位信号取反后与其连接.locked() // locked输出不接信号); 内部调制信号模块通过DDS CompilerIP核实现,设置相位可编程,PhaseWidth设置28位,,满足10Hz时5%的精度,输出数据设置16位(见图5)。 图5DDS Compiler配置结果wire [31:0]mod_data_reg;wire [31:0]mod_ph_data;dds_moddds_m
文档评论(0)