全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
更新自动建库工具PCB Footprint Expert 2023.13 Pro / Library Expert 破解版

基于FPGA的两种DDS实现

[复制链接]
1100 0

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
引言
      DDS(Direct DIGItal Freqiaency Synthesizers)广泛应用于雷达系统、数字通信、电子对抗、电子测量等民用军用设备中。它是随着半导体技术和数字技术的快速发展而发展起来的新型的频率合成技术,与传统的VCO+PLL的模拟方式产生所需频率相比,DDS技术具有频率分辨率高,相位噪声低,带宽较宽,频谱纯度好等优点。这些技术指标在一个系统中是至关重要的,决定着一个系统的成败。
      1 DDS的基本原理
      1.1 频率合成方式的基本原理
      DDFS是根据余弦函数相位和幅值的对应关系,从相位出发,由不同的相位给出不同的电压幅值,再经过D/A变换和滤波最后得到一定频率和调频率的模拟信号。由此可见,DDS有很多功能模块组成,如图1所示。
      若相位累加器有N位,时钟频率为fclk,频率控制字为FCW。N位的相位累加器可以对时钟频率进行2N分频,所以DDS的精度可以达到:
      频率控制字是用来控制累加器的步进的,累加器的步进为。假设初始的相位偏移△φ=0,则经过N个时钟周期后相位累加器的输出θ=2π*FCW*N*(1/2N)。在相位步进△0时,完成2π的相位变化即为完成一个输出周期,所以20/△θ*Tclk=T0,即:
      可见调节FCW可以任意地按照要求改变输出频率,这就达到了频率合成的目的。
      1.2 直读方式DDS的原理
      直读法(DDWS)工作流程是,把所需要的DDS的波形,直接用Matlab抽样量化,然后把量化的数据直接存储到FPGA的BlockRAM中,再在时钟频率的控制下直接从BlockRAM中读取数据,D/A后输出原来波形。
      2 数字实现
      2.1 DDFS的数字实现
      由于D/A之前都是数字部分,为了分析其原理数字控制的实现过程,参考如图2所示结构。
      相位累加器是由一个加法器和一个寄存器构成,假设累加器位数N=6,那么000000代表0弧度,000001代表弧度,相应的000010代表(2π/64)*2弧度,111111代表(2π/64)*63弧度。若频率控制字FCW=000011,并且累加器中的初始相位为O,则经过N=21个时钟周期后形成的二进制序列为000000,000011,…,111111,对应的相位分别为O,(2π/64)*3,…,(2π/64)*63。当第22个时钟周期到来时,加法器溢出,所有位数重置为0,另一个循环周期开始。查找表可以用FPGA中BlockRAM做成,前面的二进制序列作为地址,相位对应的幅度值作为地址对应的值存储起来,这样在时钟频率的控制下通过二进制序列可从BlockRAM中读取相应的幅值,经过D/A后就为所需要的模拟波形。图3为FPGA综合后的RTL级电路图。

举报

回复
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

打开支付宝扫一扫,最高立得1212元红包
搜索

图文热点

更多

社区学堂

更多

客服中心

QQ:187196467 服务时间:周一至周日 8:30-20:30

关注我们

关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
快速回复 返回顶部 返回列表