网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> 服务导航 >> 帮助中心 >> C5000 >> 文章正文
  Frequency Shifter (频率偏移器)           ★★★ 【字体:
Frequency Shifter (频率偏移器)
作者:Free    文章来源:本站原创    点击数:    更新时间:2008-2-29    

在阅读啸叫消除算法的文章中,提到一种办法叫做frequency shift。所谓frequency shift就是把输入信号的频率增加或者减少df,这样一来在音箱和麦克风之间就不可能出现某个固定的频率的增益总是大于1,因此也就消除了啸叫声。下面 来简单看看frequency shift的算法。

假设我们的输入信号是频率为f的正弦波:sin(Wf*t),其中Wf=2*PI*f。我们想通过某种算法将其频率增加df。也就是说输出的信号应该是:sin(Wf*t+Wdf*t)。这个问题不太困难,马上就让我们回想起高中的三角公式:

sin( a + b) = sin(a)*cos(b) + cos(a)*sin(b)
sin(Wf*t+Wdf*t) = sin(Wf*t) * cos(Wdf*t) + cos(Wf*t) * sin(Wdf*t) (1)

其中,sin(Wf*t)是输入信号,cos(Wdf*t)和sin(Wdf*t)是我们可以产生的信号,就只有cos(Wf*t)需要计算。

那 么下面的问题就是如何通过sin(Wf*t)计算出cos(Wf*t)。这种变换叫做Hilbert transformer。Hilbert transformer将输入信号的相位延时90度,而振幅不变。精确的Hilbert transformer是不可能的,可以用FIR滤波器来近似,滤波器的系数可以用matlab来计算,也可以到这个地址来计算系数:http://www-users.cs.york.ac.uk/~fisher/mkfilter 。经过FIR滤波器之后产生的信号会产生延时,因此需要把原始信号sin(Wf*t)也经过相同的延时之后,再用公式(1)进行计算。
我们知道任何信号都可以表达成许多正弦波的叠加,因此上面频率偏移算法对于任意的波形都是适用的。

由 于这种偏移是固定的,也就是说对于所有的频率都偏移df,因此得到的结果会破坏原始声音信号的成分,听上去会怪怪的,音乐上的变调是不能用 Frequency Shifter来实现的。因为变调是把所有的频率都扩大或缩小某个固定的值a,也就是把sin(Wf*t)变成sin(a*Wf*t)。
               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号