- 第七章FIR设计-资料.pptVIP

  • 6
  • 0
  • 约7.91千字
  • 约 58页
  • 2019-04-22 发布于湖北
  • 举报
  这就是Goertzel算法。每输入一个样值,分别用迭代法计算出各个vk(n),每次计算只需进行两次实数乘和两次实数加。 当n=N时,用式(8-3)计算出各yk(n)的值,这些值就是所要求的各点的DFT值。   另外,考虑到最后对信号进行判断时需要幅度值|X(k)|或幅度的平方值|X(k)|2,因此对式(8-3)进行变换: 这样, 算法中就避免了复数运算,最后对每个值点再进行四次乘法和二次加法运算即可。   3. DTMF信号产生与检测算法的实现   在检测信号时,为避免信号前后的0值带来的对DFT计算的影响,同时考虑到 DTMF 信号的高频和低频分量的最小间隔为73 Hz, 故选取每200点为一段, 分别用Goertzel算法计算每一段的8个频率点的DFT的平方值,然后设定一个阈值对得到的值进行判断(若某一频率点的幅度平方值大于阈值, 判为有效,否则为无效),再根据有效频率点的组合给出最后检测到的数字。   为了模拟接收到DTMF信号在数据流中的开始位置的检测效果,可以在产生的采样数据前加上不同个数的0。   具体的程序如下(首先输入要产生和检测的信号个数, 然后输入加在抽样数据前的0的个数,最后输入单个数字): function DTMF %用来模拟产生和检测DTMF信号 s=input(′请输入检测的数字个数: \n′); l=input(′请输入加在数据

文档评论(0)

1亿VIP精品文档

相关文档