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

2019-07-29 16:06发布

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

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

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
小木欧尼
1楼-- · 2019-07-29 19:43
原来这样啊
edishen
2楼-- · 2019-07-30 00:39
厉害
long009
3楼-- · 2019-07-30 05:44
:handshake

一周热门 更多>