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

[复制链接]
 楼主| tianli1980 发表于 2014-9-14 21:42 | 显示全部楼层 |阅读模式
在数字信号处理中,有时候会出现两个复数相乘,而其中一个被乘数为原始输入数的共轭的情况。举个例子:有两个输入信号:

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)
,将此结果的虚部当成实部,实部当成虚部即可 。

小木欧尼 发表于 2014-9-14 23:31 | 显示全部楼层
原来这样啊
edishen 发表于 2014-9-14 23:36 | 显示全部楼层
厉害
long009 发表于 2014-11-30 13:56 | 显示全部楼层
:handshake
您需要登录后才可以回帖 登录 | 注册

本版积分规则

482

主题

2214

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部