- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分段式压缩
基于分段非线性函数近似的直接数字频率合成器
张 鹏 时间:2009年07月20日????????字 体: 大 中 小
关键词:
摘? 要: 对直接数字频率合成器(DDS)中的相位幅度转换模块提出了一种基于分段非线性函数近似的的设计方法。这种方法取代了传统的ROM查找表的方法,可以避免因采用大容量的ROM而带来的成本高、功耗大、可靠性下降等缺点。此方法对正弦函数的第一象限进行分段,在每一段内用非线性函数近似,然后再根据正弦函数的对称性质,重构完整的正弦函数。此法可以获得较好的压缩效果,并且结构简单,易于实现。 关键词: 直接数字频率合成(DDS);分段非线性函数近似;ROM容量
?
直接数字频率合成(DDS)是第三代频率合成技术,具有频率分辨率高、频率切换时间短、相位变化连续、易于集成等优点,被广泛地应用在通信、雷达、仪器仪表等领域。目前,在采用ROM查表方式的DDS中,为了提高频谱纯度和分辨率需要增加ROM容量(ROM容量为2W×D,W是对ROM寻址的相位位数,D是ROM的输出位数)。但大容量的ROM会使成本提高、功耗增大、速度降低且可靠性下降,因此在一定频谱纯度和分辨率的前提下研究sin存储表的压缩算法,对于降低DDS的存储容量非常有意义。本文介绍了DDS的工作原理、1/4周期压缩,提出了用分段非线性函数近似的方法代替大容量的ROM,并给出了此法在QuartusII开发环境下的原理图及时序仿真图。1 DDS的工作原理 DDS的基本结构如图1所示,它由相位累加器、相位幅度转换器(常用的相位幅度转换方法是ROM查表法)、D/A和低通滤波器构成。在时钟周期的控制下,相位累加器对频率控制字K进行累加得到N位的相位累加值。N位累加值作为ROM查表的寻址地址,但在实际应用中,相位累加器输出的N位累加值,并不是全部都用来对ROM寻址,而是截取高W位对其寻址,这样可以降低对ROM容量的要求。查表输出它所对应的数字化幅度值,再经过D/A变换完成离散信号到连续信号的转变,最后经低通滤波器滤波即可得到信号输出。输出信号频率为fo=kfc/2N。
?
2 正弦函数1/4周期压缩 由于正弦函数sin(x)在0~2π上关于x=π奇对称,即0~π和π~2π区间相比,其对应位置的幅度值的绝对值相等,符号相反。故将π~2π区间的相位编码减去π,求出其幅度值后再加一负号,就相当于直接对π~2π区间的相位求正弦值。同时,在0~π区间,sin(x)函数关于x=π/2偶对称,故可用0~π/2区间的幅度值来表示0~π整个区间的波形。继而0~2π之间的幅度值完全可以由0~π/2区间的幅度值来实现,这样大大降低了查表的存储容量。图2表示了这种方法的实现框图。
?
两个最高有效相位位作解码象限位,其余的W-2位用来寻址第一象限的正弦查表。最高有效位(MSB)确定结果符号,第二最高有效位确定幅度是增加还是减少。对于第一和第三象限相位,累加器的输出在第二个MSB(此时其值为0)的控制下“保持原状”,对于第二和第四象限相位,累加器的输出在第二个MSB(此时其值为1)的控制下进行二进制求补,从图形上可以看出此时锯齿波斜率在第二和第四象限是反转的。这样就形成了一个周期的正弦波[1]。 在采用1/4周期压缩的基础上,常用的相位幅度转换方法有ROM查表法、sunderland结构、sinθ-θ法、CORDIC、线性插值、泰勒近似等[3-9]。3 分段非线性函数近似算法3.1 算法提出 当x∈[0,1],对sin(xπ/2)进行连续等距离的M分段,在每一段内用一个二次函数近似sin(xπ/2)。a、b、c分别为二次项、一次项、常数项系数,i表示所在分段。分段数越大,近似误差就越小,但所需的ROM容量也越大,本文是在M=8的基础上展开设计的。 目前常用的非线性近似函数为泰勒二阶近似,在Matlab中对八分段的泰勒二阶近似和拟合比较,拟合方式的误差绝对值范围在1.2×10-4内,泰勒二阶级数方式的误差绝对值范围在1.8×10-4内,虽然两者相差不大,但是当对正弦函数扩大一个较大的倍数如228后,它们之间的差距就很大了,因此本文采用的是拟合方式近似正弦函数。 将x在[0,1]均匀八分段,利用Matlab中提供的拟合函数对sin(xπ/2)进行拟合,得到各段的系数如表1所示。
本文取W-2=14,也即对x扩大了214倍,那么对于x2就扩大228倍,为了对表达式中的三项扩大相同的倍数,将一次项系数b扩大214、常数项系数c扩大228,则此时各段系数如表2所示(其中L=214)。
??? 由于最大幅度误差和无杂散动态范围成反向关系,为使每段的最大幅度误差下降,调整常数项系数后各段系数情况如表3所示。
??? 这时每段
文档评论(0)