DSP硬件实现的优化(二)—复数乘法中出现共轭时的资源优化方法
时间:10-13 14:22 阅读:2635次
*温馨提示:点击图片可以放大观看高清大图
简介:在数字信号处理中,有时候会出现两个复数相乘,而其中一个被乘数为原始输入数的共轭的情况
在数字信号处理中,有时候会出现两个复数相乘,而其中一个被乘数为原始输入数的共轭的情况。举个例子: 有两个输入信号: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),将此结果的虚部当成实部,实部当成虚部即可 。