原创 DSP硬件实现的优化(二)—复数乘法中出现共轭时的资源优化方法

2013-1-5 15:23 2373 5 7 分类: FPGA/CPLD 文集: DSP硬件实现的优化

    在数字信号处理中,有时候会出现两个复数相乘,而其中一个被乘数为原始输入数的共轭的情况。举个例子:

   有两个输入信号:x1 = a+b*i, x2 = c+d*i;

    y = x1*conj(x2) = (a+b*i)*(c-d*i) = (a*c + b*d) +(b*c - a*d)*i,其中conj(x2)表示为输入信号x2的共轭。

    由于做共轭运算时原始信号x2的d要变成原始d的复数,即conj(x2) = c-d*i,因此一般的做法是先把x2中的d进行取反加一(补码规则)。但是这种做法增加了资源,使组合逻辑路径变长,尽管也是一种方法,但是不算较优方法。

    本人推荐一种优化方法:

    当出现上述情况时,可做适当变通:

    令x1' = a*i+b,即让输入信号x1的实部和虚部互换一下,则变成x1' * x2 = (a*i+b)*(c+d*i) = (a*c + b*d)*i + (b*c - a*d),将此结果的虚部当成实部,实部当成虚部即可 。

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

残弈悟恩 2013-10-5 21:17

呵呵,在别人的唾骂中成长,也是一种生活态度…

用户377235 2013-9-30 13:34

这也太弱了吧,还有2w多点击

用户1501359 2013-7-4 22:24

谢谢你的赞赏,互相学习

用户1669062 2013-6-24 15:24

“由于做共轭运算时原始信号x2的d要变成原始d的复数”里的“复数”改为“相反数”,可能意思会表达得更准确。我刚刚认真拜读了您的博文,因为我也在用FPGA做通信相关的东西,看了您的文章,感觉受益良多,对思路的理清很有帮助。学习了。

用户403664 2013-6-3 16:59

好文都要参加博客大赛!让更多人受益啦!
相关推荐阅读
用户1501359 2015-06-15 00:19
小弟编写的FPGA设计经验总结感悟书籍:FPGA深度解析 准备上架销售,北航出版社出版
全书目录如下,从第九章开始为笔者对FPGA常用模块设计思想的深度阐述和解析,为作者从事逻辑设计之经验感悟与总结,希望大家多多指教 目录   第1章FPGA简介   1.1什么是...
用户1501359 2013-01-27 18:56
DSP硬件实现的优化(八)— saturation, rounding的原理和实现
    在数字信号处理系统中,大部分情况下数据都是用定点表示。但是由于DSP经常使用到乘法器,那么两个定点数相乘后的数的位宽将是两个操作数位宽之和。比如说A*B,A的位宽是(1,7,4),B的位宽是(...
用户1501359 2013-01-24 21:26
DSP硬件实现的优化(七)—硬件实现中的定点表示
    用硬件实现DSP基本上是基于定点的算法。什么叫做定 点呢?定点的意思就是小数点的位置是确定的,这是跟浮 点不同的地方。比如说,有一种常用的表示定点的方法, 比如说一个数的定点方...
用户1501359 2013-01-21 22:27
DSP硬件实现的优化(六)—多个M比特有符号数做累加运算时符号位的优化处理方法
    在通信系统中,经常会遇到多个数进行累加的情况。一般情况下,在更好的掌控时序的目标下,我们会选择用基于CSA结构的Wallace tree进行加法树压缩。基本上,参加运算的数都是有符号数,在这种...
用户1501359 2013-01-19 22:54
DSP硬件实现的优化(五)—输入数据带缺口时反馈环路的优化
    在通信数字信号处理中,经常会遇到带有反馈环路的设计。例如数字时钟恢复或者自适应均衡滤波器。该类设计的基础都是对输入数据进行滤波或者均衡,调相,而进行上述计算所用到的系数来自于该滤波器或者均...
用户1501359 2013-01-14 20:30
FPGA实践笔记(七)—verilog组合逻辑描述用assign或者always@(*)的区别和值得注意之处
    verilog描述组合逻辑一般常用的有两种:assign赋值语句和always@(*)语句。两者之间的差别有:     1. 被assign赋值的信号定义为wire型,被always@...
EE直播间
更多
我要评论
2
5
×
广告
关闭 站长推荐上一条 /3 下一条