c++ 计算正弦的近似值_近乎完美的DDS正弦波信号音生成器

2b3e2a1be41d9881f1b02401c45bb1bd.gif 好文章当然要分享啦~如果您喜欢这篇文章,请联系后台添加白名单,欢迎转载哟~ 在测试和验证分辨率高于16位的高精度快速模数转换器(ADC)的交流性能时,需要用到近乎完美的正弦波生成器,该生成器至少支持0kHz至20kHz音频带宽。

通常会使用价格高昂的实验室仪器仪表来执行这些评估和特性表征,例如Audio Precision提供的音频分析仪AP27xx或APx5xx系列。大多数情况下,24位或更高分辨率的现代高速SAR和宽带ADC都采用单电源和全差分输入,因此要求用于DUT的信号源具备准确的直流和交流性能,同时提供全差分输出(180°错相)。

同样,这款交流生成器的噪声和失真水平应该远优于这些ADC的规格,根据大部分供应商提供的规格,其本底噪声水平远低于–140dBc,失真水平低于–120dBc,输入信号音频率为1kHz或2kHz,最高可达20kHz。有关适合高分辨率带宽ADC的典型测试台的典型测试配置,请参考图1。最关键的元件就是正弦波生成器(单信号音或多信号音),其中基于软件的直接数字频率合成器(DDS)可以提供完全的灵活性、极高的频率分辨率和时钟同步性能,利用数据采集系统来执行相干取样,以避免泄漏和FFT窗口滤波。

0a2f040c259c49dee08e7a3bdb866771.png

图1. 基于IEEE 1241标准的典型ADC(ac)测试设置的处理链。DDFS能够让整个测量系统完全实现数字化,具备多种优势,包括完全的灵活性和相干取样采集。

因为成本只有音频精密分析仪的几分之一,所以能够基于直接数字频率合成(DDFS)原理设计非常精准的正弦波生成器,但需要通过软件在SHARC®处理器等浮点DSP处理器上实现。一个相当快的浮点DSP将能满足实时性要求,以及所有算法和处理条件,以达到先进的SAR ADC所设置的失真和噪声性能水平。通过利用SHARC内核架构的全字数据长度(32位或64位定点格式)来实施NCO相位累加,利用专有的40位浮点扩展精度来执行正弦近似函数,以及利用数字滤波器来确定频谱形状,量化效应(回转噪声和截断噪声)得到大幅降低,与用于信号重构的数模转换器(DAC)缺点相比,这种效应可以忽略不计。

a5d2220e38caa85e317040c731050a4c.gif 直接数字频率合成 a5d2220e38caa85e317040c731050a4c.gif

1970年4月,Webb提出了数字信号生成器频率合成器的专利申请,其中描述了有关DDS生成包括正弦波等各种模拟波形的考虑因素,只需使用数个数字逻辑模块即可实现。之后,Tierney等人在1971年初发表了论文(后来成为大家频繁引用的参考文献),阐述了通过深化DDS操作进行正交生成来实现直接数字频率生成,以及采样系统理论相关局限性(相位截断和频率规划)问题。随后出现的实际应用大部分依赖于分立式标准逻辑IC,例如TTL74xx或ECL10K系列。后来在不到10年的时间里,Stanford Telecom、Qualcomm、Plessey和ADI等纷纷推出了完全集成式解决方案,例如ADI的AD9950和AD9955。这些逻辑IC旨在实现速度、功耗和成本之间的最佳平衡,其架构基于查找表(LUT),以确保在有限相位、频率和幅度分辨率下实现相位-正弦幅度转换。如今,ADI公司仍然是DDS独立集成电路的最大供应商,可能也是最独特的供应商,而当前的数控振荡器(NCO)往往都集成到AD9164或AD9174之类RF DAC中。虽然这些器件在多GHz带宽上具备出色的噪声和线性度性能,但它们都不适合测试中等速度、高分辨率ADC,例如LTC2378-20, the AD4020或 AD7768。

与基于PLL的传统频率合成器相比,NCO和DDS的显著优势包括:极高的频率分辨率、快速灵敏性,以及可轻松生成完美正交的正弦/余弦波形。此外,还提供宽带宽范围和高直流精度。其工作原理基于数字信号处理和采样系统理论,数字特性支持对输出信号的相位、频率和幅度实施全数字独立控制。图2所示的框图显示传统DDS的架构,该DDS由三大功能模块组成:

.  N位相位累加器;

.  相位-正弦幅度转换器,由W位截取相位输入字表征特性;

.  D位DAC及其相关重构滤波器。

dafbd0d863007cc811ce3f8d272abf8e.png

图2. NCO的主要功能部分,以及与完整的直接数字频率合成器的区别,其中包括重构DAC和其相关的AAF。NCO部分可用于测试或仿真DAC。

相位累加器由简单的N位加法器结合寄存器构成,寄存器的内容按照采样时钟F CLK以输入相位增量Δθ(通常也称为频率调谐字,FTW)更新。累加器会定期溢出,在采样或参考时钟F CLK和DDS输出频F OUT之间像小数分频器一样运行,或像齿轮箱一样运行,分频比为:

e823496b4c7126a54f2524783c8bd70c.png

溢出速率为生成的波形提供输出频率,使得:

2da3237cf4406d9c0e46867a7b49cb34.png

其中0≤ FTW≤2N–1。因为分频器的原因,NCO输出端的参考或采样fS时钟相位噪声的影响会降低

ac5ff580070b0d4aa8af5e991d04df11.png

相位累加器寄存器的输出表示生成波形的电流相位。每个分立式累加器输出相位值然后通过相位-正弦或相位-余弦映射引擎,被转换成幅度正弦或余弦数据或样本。此功能通常利用存储在LUT(ROM)中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值