24第2章波表与采样器
输入
输出
图2.波表查找的示意图。输入信号是以样点形式输入的,其范围大概从0到波表的尺寸N,这取决于所采取的内插方法
这引发了两个问题。首先,输入信号y【n】的值可能超出了0...,N-1的范围,此时波表x【n】将无值可取,因此输出z【n】的表达式也就无法定义。在这种情况下,我们可以选择对输入进行限幅(Clip),即用0来替代任何负值,而用N-1替代任何大于等于N的数值。作为另一种选择,我们可能更喜欢对输入信号进行折回,让其首尾相连。在这里,我们将采用传统的方式,即对任何超出范围的样点进行限幅;当需要折回时,我们会引入另外一种信号处理操作来完成此项工作。
第2个问题是输入信号并非必须是整数,换句话说它们可能会落在波表的样点之间。一般来说,这可以通过在波表样点之间进行某种方式的内插来解决。不过,在这里,我们仅仅将其向下舍入到不大于输入的最近整数上。这被称为非内插(non-interpolating)波表查找,其完整定义为:
【x【LyXaJ】如果0≤【n】
|xN-1】如果【n】≥N-1
(式中|y【n】|表示"不超过y【n】的最大整数")。
从图形上说,我们把y【0】(一个数字)当作图2.1所示波表的横轴上的某一个位置,其输出z【0】则是我们在纵轴上得到的数值;对于y】和z【】来说同样如此,依此类推。输入y【n】
的"自然"范围是0≤【n】