DSP硬件实现的优化(一)—FPGA中复数乘法器的优化

来源:本站
导读:目前正在解读《DSP硬件实现的优化(一)—FPGA中复数乘法器的优化》的相关信息,《DSP硬件实现的优化(一)—FPGA中复数乘法器的优化》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《DSP硬件实现的优化(一)—FPGA中复数乘法器的优化》的详细说明。
简介:在数字信号处理中,特别是在通信信号处理的应用中,经常会遇到复数乘法器。有些朋友可能会感到奇怪,信号都是实信号,哪来的复数呢?其实在通信信号中,基带信号会被分为I,Q两路,然后用QPSK/DQPSK进行调制。接收端解调后又会得到两路信号。

在数字信号处理中,特别是在通信信号处理的应用中,经常会遇到复数乘法器。有些朋友可能会感到奇怪,信号都是实信号,哪来的复数呢?其实在通信信号中,基带信号会被分为I,Q两路,然后用QPSK/DQPSK进行调制。接收端解调后又会得到两路信号。所以一般来说为了表示和运算方便,一般把I路信号当成实部,Q路信号当成虚部。 打个比方,输入信号(I,Q两路)进行FFT变换为频率信号后(有实部和虚部)表示为a+b*i和另一个复数(cosx+sinx*i,表示为c+d*i)进行相乘,等效为时域上I,Q两路信号的移相。那么此时就用到了复数乘法器。粗浅的看上去,一个复数乘法器需要4个乘法器,3个加法器(减法其实就是补码加法):

(a+b*i)*(c+d*i) = (a*c - b*d) + (b*c + a*d)*i = x + y*i

但是该式子可以化简成:

其中x 可以等效为 a*c - b*d + (b*c - a*d) - (b*c - a*d)

于是化简为a*c - b*c + a*d - b*d + (b*c - a*d) = (c+d)*(a-b) + (b*c - a*d) = x

由于x的计算中已经包含了b*c和a*d的结果,因此只需算出x即可算出y。算出x只需要3个乘法器即可。如此节省了一个乘法器。如果使用了FPGA的DSP48作为乘法器的话,那么这种优化方法是非常有效的,因为省去了其中一个DSP48。当然,如果是使用Xilinx的IPCORE并且use DSP48来实现复数乘法器的话,Xilinx生成的乘法器也是差不多这种架构。但是如果是在ASIC设计或者是使用LUT来实现乘法器,那么这种架构未必节省资源。

提醒:《DSP硬件实现的优化(一)—FPGA中复数乘法器的优化》最后刷新时间 2024-03-14 01:11:29,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《DSP硬件实现的优化(一)—FPGA中复数乘法器的优化》该内容的真实性请自行鉴别。