问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

线性插值的频域特性

创作时间:
作者:
@小白创作中心

线性插值的频域特性

引用
CSDN
1.
https://blog.csdn.net/u011572784/article/details/139225011

线性插值是数字信号处理中常用的一种插值方法,它在两个已有采样点中间插入若干采样点,使插值后的点数满足特定要求。本文将从抽取和插值的基本概念出发,详细阐述线性插值的频域特性及其在实际应用中的具体实现方法。

抽取和插值的基本概念

抽取和插值是变采样过程中常用的两种手段。其中,抽取的目的是降低数据的采样率,以降低对系统存储深度或计算量的要求;插值的目的是提高数据的采样率,以提高系统的计算精度。

M倍抽取通常是通过每隔M个样点从原始采样序列中取点来实现的(见图1)。M倍插值则通常是在原始采样序列中相邻两个采样点之间插入0,使插值后这两个采样点对应的时间内包含M个采样点(见图2)。


图1. 抽取效果示意图(红色虚线表示连续信号,红色点表示原始采样点,黑x表示降采样点)


图2. 插值效果示意图(蓝色线表示连续信号,红色点表示采样点)

抽取和插值过程中的低通滤波处理

抽取过程中的低通滤波

抽取后采样率降低,可能导致抽取后的数据不满足奈奎斯特采样定理(采样率要≥信号最高速率的2倍),此时会产生频谱混叠(另一种解释是:抽取后信号频谱展宽(从归一化频率的角度理解),导致原来分开的周期延拓的频谱可能重叠到一起)。为此,需要在抽取之前进行低通滤波,保证信号最高频率不大于抽取后采样率的一半(特别注意,这边滤波和抽取的操作是不能调换的,因为滤波是无法将混叠后的频谱分离开的)。

这边,低通滤波过程是在原采样率条件下进行的,可表示为:

$$
\hat{y}(n)=\sum_{k=-(N-1)/2}^{(N-1)/2}h(k)x(n-k) \tag{1}
$$

在(1)式中h(n)表示滤波器冲激响应。需要注意的是,抽取或插值过程中所用到的滤波器通常为FIR类型,且为了保证具有线性相位,要求FIR滤波器系数具有一定的对称性(h(n)=h(-n))。在上式中,N通常取奇数。滤波完成后,需要进行抽样,抽样结果为:

$$
y(n)=\hat{y}(nM)=\sum_{k=-(N-1)/2}^{(N-1)/2}h(k)x(nM-k) \tag{2}
$$

将冲激响应的对称性h(n)=h(-n)代入上式,可进一步得到:

$$
y(n)=\sum_{k=1}^{(N-1)/2}h(k)[x(nM-k)+x(nM+k)]+h(0)x(nM) \tag{3}
$$

从上面的表达式可以看出,滤波器数据并没有全用到,因此可以在滤波过程中就不计算这些值,以减小计算量,此外,利用(3)中对称性也可以进一步降低计算量。不过,计算效率并不在本文考虑范围内,为此不再赘述。

插值过程中的低通滤波

插值后采样升高,从归一化频率的角度理解,插值后信号频谱被压缩,所以采样率内可以容纳更多信号频谱,即原来在不同延拓周期内的频谱都会被包含到新采样率下的同一个延拓周期内,导致在一个采样率范围内,存在多个完全一样的频谱,这些频谱称为镜像频谱,需要用低通滤波器进行滤除。注意,这边滤波和插值的操作同样不能调换顺序。

插值后的系列可表示为:

$$
v(n)=
\begin{cases}
x(n/M), & \text{mod}(n,M)=0 \
0, & \text{others}
\end{cases}
$$

此时,滤波后的数据可表示为:

$$
y(n)=\sum_{k=n-(N-1)/2}^{n+(N-1)/2} v(k)h(n-k)
$$

将v(k)的表达式带入,可得:

$$
y(n)=\sum_{k=n-(N-1)/2}^{n+(N-1)/2} x(k/M)h(n-k)=\sum_{k=n/M-(N-1)/2M}^{n/M+(N-1)/2M} x(k)h(n-kM) \tag{4}
$$

在两个采样点间进行插值,等效于以这两个点为起止点,拟合一条曲线,这条拟合的曲线必须经过这两个已知的点,为此上述插值需要满足一定的条件,具体地:

$$
y(rM)=x(rM/M)=x(r)=\sum_{k=r-(N-1)/2M}^{r+(N-1)/2M} x(k)h(rM-kM)
$$

根据上面的表达式可得,滤波器系数需满足一定条件,具体地:

$$
\begin{cases}
h(0)=1, \
h(n)=0, & n=\pm M, \pm 2M,...
\end{cases}
$$

这边不对上述抽取或插值滤波器的具体实现做过多的说明,仅仅是为后面线性插值的描述做一些铺垫而已。

线性插值的实现方法及其频域特性

线性插值是常用的一种插值方法,在两个已有采样点中间插入若干采样点的原则是:以这两个采样点为起始和终止点,计算一条直线,插值的点均匀地分布在这条直线上。设有两个点x(0)和x(1),两者的时间间隔为T,要在这两个点中间插入一些点,使插值后的点数为M,插值后两点之间的时间间隔为T'=T/M,则第n个插值点可表示为:

$$
y(n)=x(0)+\frac{x(1)-x(0)}{MT'-0}(nT'-0)=x(0)(1-\frac{n}{M})+x(1)(\frac{n}{M}) \tag{5}
$$

令h(n)=1-n/M,则h(n-M)=n/M,则(5)式可表示为:

$$
y(n)=x(0)h(n)+x(1)h(n-M) \tag{6}
$$

所以h(n)可整理为:

$$
h(n)=
\begin{cases}
1-|n|/M, & |n|<M \
0, & \text{others}
\end{cases}
$$

对比(6)式和(4)式,可知线性插值过程可认为是与滤波器h(n)的卷积过程,h(n)对应的频响可表示为:

$$
H(e^{j\omega T'})=\frac{1}{T}[\frac{\sin(\omega M T'/2)}{\sin(\omega T'/2)}]^2 \tag{7}
$$

通过上述分析可以看出,线性插值不仅是一种简单的数值插值方法,更可以看作是一种特殊的滤波处理过程。这种理解有助于我们更好地理解线性插值在数字信号处理中的作用和局限性。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号