本文来自于HELLODSP。
看见有朋友问起DSP如何实现移相,我想软件实现的方法应当比硬件实现来的简单,而且也能节约成本,一时兴起,详细研究了一下,在这里和大家分享,也希望大家能够批评指正。
我们从下面的图讲起,有两个波形,y1和y2,y2是在y1的基础上移动了B度。由于不知道如何输入角度,就用A和B来代替图中的角度标示。
假定y1在进行傅立叶变换后表示为:y1=y1.R+jy1.X 假定y2在进行傅立叶变换后表示为:y2=y2.R+jy2.X
而同时,我们知道,y1可以表示为: y1=Ye^(jA) y2可以表示为: y2=Ye^(j(A-B))
因此, y1=Y(sinA+jcosA) 与前面的对照之后,我们可以得到: y1.R=YsinA y1.X=YcosA
同理, y2=Y[sin(A-B)+jcos(A-B)],这样 y2.R=Ysin(A-B)=YsinAcosB-YcosAsinB y2.X=Ycos(A-B)=YcosAcosB+YsinAsinB
这样,我们将y1代人,就会有 y2.R=y1.R*cosB-y1.X*sinB y2.X=y1.R*sinB+y1.X*cosB
至此,我们就实现将y1移相B度了。值得注意的是移动的方向。
在实际操作的过程中,用采样点计算出傅立叶变换,然后再用上述的公式变换就可以了。
不知道我有没有讲明白:)
本贴地址:http://www.hellodsp.com/bbs/viewthread.php?tid=5163 转载请注明出自DSP交流网 DSP学习第一论坛 DSP技术应用与推广平台 DSP开发服务平台 http://www.hellodsp.com/bbs/,本贴地址:http://www.hellodsp.com/bbs/viewthread.php?tid=8616
|