重采样原理及仿真

您所在的位置:网站首页 栅格数据重采样的方法有 重采样原理及仿真

重采样原理及仿真

2023-12-25 12:53| 来源: 网络整理| 查看: 265

一、前言

​ 重采样分为上采样和下采样,下采样时需要对信号进行抽取,上采样时需要对信号进行插值,下面将介绍一种简单的重采样方式。

二、定义

​ 减少抽样率以去掉过多数据的过程称为信号的抽取(decimatim )”,增加抽样率以增加数据的过程称为信号的“插值(interpolation)。抽取、插值及其二者相结合的使用便可实现信号抽样率的转换。

三、算法 1、信号的抽取

​ 设 x ( n ) x(n) x(n)为数字信号,欲使 f s f_s fs​减少 M M M倍,最简单的方法是将 x ( n ) x(n) x(n)中的每个点中抽取一个,依次组成一个新的序列 y ( n ) y(n) y(n),即 y ( n ) = x ( M n ) n ≥ 0 (式1) y(n)=x(Mn)\quad n\geq 0\tag{式1} y(n)=x(Mn)n≥0(式1) 此时, y ( n ) y(n) y(n)和 x ( n ) x(n) x(n)的DTFT有如下关系(详见附A): Y ( e j w ) = 1 M ∑ k = 0 M − 1 X ( e j ( w − 2 π k ) / M ) (式2) Y(e^{jw})=\frac{1}{M}\sum_{k=0}^{M-1}X(e^{j(w-2\pi k)/M})\tag{式2} Y(ejw)=M1​k=0∑M−1​X(ej(w−2πk)/M)(式2) 其含义是,将信号 x ( n ) x(n) x(n)做 M M M倍的抽取后,所得信号 y ( n ) y(n) y(n)的频谱等于原信号 x ( n ) x(n) x(n)的频谱先做 M M M倍的扩展,再在 w w w轴上做 2 π M ( k = 1 , 2 , . . . , M − 1 ) \frac{2\pi}{M}\quad (k=1,2,...,M-1) M2π​(k=1,2,...,M−1)的移位后再迭加。如下图所示。

在这里插入图片描述

​ 由抽样定理,在由 x ( t ) x(t) x(t)抽样变成 x ( n ) x(n) x(n)时,若保证 f s ≥ 2 f c f_s\geq 2f_c fs​≥2fc​,那么抽样的结果不会发生频谱混迭。对 x ( n ) x(n) x(n)做 M M M倍抽取得到 y ( n ) y(n) y(n),必须满足 f s ≥ 2 M f c f_s \geq 2Mf_c fs​≥2Mfc​。

​ 为了防止抽取后在 Y ( e j w ) Y(e^{jw}) Y(ejw)中出现混迭的方法是在对 x ( n ) x(n) x(n)抽取前先做低通滤波,压缩其频带。

​ 令 h ( n ) h(n) h(n)为一理想低通滤波器,即 H ( e j w ) = { 1 ∣ w ∣ ≤ 2 π M 0 o t h e r s H(e^{jw})=\begin{cases}1&|w|\leq \frac{2\pi}{M}\\0&others\end{cases} H(ejw)={10​∣w∣≤M2π​others​ ​ 令滤波后的输出为 v ( n ) v(n) v(n),则 v ( n ) = ∑ k = 0 ∞ h ( k ) x ( M n − k ) v(n)=\sum_{k=0}^{\infty}h(k)x(Mn-k) v(n)=k=0∑∞​h(k)x(Mn−k) = ∑ k = 0 ∞ x ( k ) h ( M n − k ) =\sum_{k=0}^{\infty}x(k)h(Mn-k) =k=0∑∞​x(k)h(Mn−k) ​ 得出 Y ( z ) = 1 M ∑ k = 0 M − 1 X ( z 1 M W M k ) H ( z 1 M W M k ) Y(z)=\frac{1}{M}\sum_{k=0}^{M-1}X(z^{\frac{1}{M}}W_M^k)H(z^{\frac{1}{M}}W_M^k) Y(z)=M1​k=0∑M−1​X(zM1​WMk​)H(zM1​WMk​) Y ( e j w ) = 1 M ∑ k = 0 M − 1 X ( e j ( w − 2 π k ) / M ) H ( e j ( w − 2 π k ) / M ) Y(e^{jw})=\frac{1}{M}\sum_{k=0}^{M-1}X(e^{j(w-2\pi k)/M})H(e^{j(w-2\pi k)/M}) Y(ejw)=M1​k=0∑M−1​X(ej(w−2πk)/M)H(ej(w−2πk)/M)

2、信号的插值

​ 将 x ( n ) x(n) x(n)的采样率 f s f_s fs​增加 L L L倍,即 L f s Lf_s Lfs​,最简单的方法就是将 x ( n ) x(n) x(n)每两个点之间补上 L − 1 L-1 L−1个零。设补零后的信号为 v ( n ) v(n) v(n),则 v ( n ) = { x ( n / L ) n = 0 , ± L , ± 2 L , . . . 0 o t h e r s v(n)=\begin{cases}x(n/L)&n=0, \pm L, \pm 2L,...\\0&others\end{cases} v(n)={x(n/L)0​n=0,±L,±2L,...others​ 由于 V ( e j w ) = ∑ n = 0 ∞ v ( n ) e − j w n = ∑ n = 0 ∞ x ( n / L ) e − j w n V(e^{jw})=\sum_{n=0}^{\infty}v(n)e^{-jwn}=\sum_{n=0}^{\infty}x(n/L)e^{-jwn} V(ejw)=n=0∑∞​v(n)e−jwn=n=0∑∞​x(n/L)e−jwn = ∑ k = 0 ∞ x ( k ) e − j w k L =\sum_{k=0}^{\infty}x(k)e^{-jwkL} =k=0∑∞​x(k)e−jwkL 即 V ( e j w ) = X ( e j w L ) V(e^{jw})=X(e^{jwL}) V(ejw)=X(ejwL) 同理 V ( z ) = X ( z L ) V(z)=X(z^L) V(z)=X(zL) ​ X ( e j w ) X(e^{jw}) X(ejw)的周期是 2 π 2\pi 2π, X ( e j w L ) X(e^{jwL}) X(ejwL)的周期是 2 π / L 2\pi /L 2π/L, V ( e j w ) V(e^{jw}) V(ejw)周期也是 2 π / L 2\pi /L 2π/L。上式的含义是在 − π ∼ π -\pi \sim \pi −π∼π的范围内, X ( e j w ) X(e^{jw}) X(ejw)的宽带被压缩了 L L L,因此, V ( e j w ) V(e^{jw}) V(ejw)在 − π ∼ π -\pi \sim \pi −π∼π内包含了 L L L个 X ( e j w ) X(e^{jw}) X(ejw)的压缩样本(详见仿真)。多余的 L − 1 L-1 L−1个周期称为 X ( e j w ) X(e^{jw}) X(ejw)的映像,我们要设法去除这些映像。

​ 实际上,用塞进零的方法实现上采样是毫无意义的,因为补零是不可能增加信息的。需要对用 x ( n ) x(n) x(n)中的点对这些零点作出插值,实现插值的方式是用 v ( n ) v(n) v(n)和一低通滤波器做卷积。

​ 令 H ( e j w ) = { C ∣ w ∣ ≤ π L 0 o t h e r s H(e^{jw})=\begin{cases}C&|w|\leq \frac{\pi}{L}\\0&others\end{cases} H(ejw)={C0​∣w∣≤Lπ​others​ ​ 其中,C是标定因子。令 v ( n ) v(n) v(n)通过 h ( n ) h(n) h(n)后的输出为 y ( n ) y(n) y(n),这样滤波器的作用是去除了 V ( e j w ) V(e^{jw}) V(ejw)中多余的映像,另一方面,也实现了对 v ( n ) v(n) v(n)中的零值点插值。

​ 因为 Y ( e j w ) = H ( e j w ) = c X ( e j w ) ∣ w ∣ ≤ π L Y(e^{jw})=H(e^{jw})=cX(e^{jw})\quad |w|\leq \frac{\pi}{L} Y(ejw)=H(ejw)=cX(ejw)∣w∣≤Lπ​ ​ 及 y ( 0 ) = 1 2 π ∫ − π π Y ( e j w ) d w y(0)=\frac{1}{2\pi}\int_{-\pi}^{\pi}Y(e^{jw})dw y(0)=2π1​∫−ππ​Y(ejw)dw ​ 所以 y ( 0 ) = c 2 π ∫ − π / L π / L X ( e j w ) d w y(0)=\frac{c}{2\pi}\int_{-\pi/L}^{\pi/L}X(e^{jw})dw y(0)=2πc​∫−π/Lπ/L​X(ejw)dw = c 2 π L ∫ − π π X ( e j w ) d w = c L x ( 0 ) =\frac{c}{2\pi L}\int_{-\pi}^{\pi}X(e^{jw})dw=\frac{c}{L}x(0) =2πLc​∫−ππ​X(ejw)dw=Lc​x(0) 这样,若取 c = L c=L c=L,则可以保证 y ( 0 ) = x ( 0 ) y(0)=x(0) y(0)=x(0)。 y ( n ) = v ( n ) ∗ h ( n ) = ∑ k v ( k ) h ( n − k ) y(n)=v(n)*h(n)=\sum_{k}v(k)h(n-k) y(n)=v(n)∗h(n)=k∑​v(k)h(n−k) = ∑ k x ( k / L ) h ( n − k ) =\sum_{k}x(k/L)h(n-k) =k∑​x(k/L)h(n−k) 即 y ( n ) = ∑ k = 0 ∞ x ( k ) h ( n − k L ) y(n)=\sum_{k=0}^{\infty}x(k)h(n-kL) y(n)=k=0∑∞​x(k)h(n−kL)

3、python仿真 实验方式:

​ 对5Hz的正弦信号进行抽取和插值实验,倍数M=2

(01)抽值

从上到下依次是:

01、5Hz正弦信号 & 频谱

02、对01隔一置零 & 频谱

03、对01隔一抽值 & 频谱

04、对03低通滤波 & 频谱

在这里插入图片描述

(02)插值

从上到下依次是:

01、5Hz正弦信号 & 频谱

02、对01隔一插零 & 频谱

03、对02低通滤波 & 频谱 在这里插入图片描述

(3)失真初探

对同一段音频,进行重复的下采样上采样,在100次时,高频部分出现失真,不过不明显。

在这里插入图片描述

4、总结

简单的总结一下:

​ 本文档介绍的是一种简单的信号下采样和上采样的算法。下面对上采样和下采样步骤进行简单的概括:

下采样:

​ 01、低通

​ 02、抽值

上采样:

​ 01、插值

​ 02、低通

参考文献

https://blog.csdn.net/shenziheng1/article/details/53373807

附 A

推导公式: y ( n ) = x ( M n ) (A.1) y(n)=x(Mn)\tag{A.1} y(n)=x(Mn)(A.1) 其中的 y ( n ) y(n) y(n)和 x ( n ) x(n) x(n)在DTFT有如下关系: Y ( e j w ) = 1 M ∑ k = 0 M − 1 X ( e j ( w − 2 π k ) / M ) (A.2) Y(e^{jw})=\frac{1}{M}\sum_{k=0}^{M-1}X(e^{j(w-2\pi k)/M})\tag{A.2} Y(ejw)=M1​k=0∑M−1​X(ej(w−2πk)/M)(A.2) 证明: y ( n ) y(n) y(n)的 z z z变换为 Y ( z ) = ∑ n = 0 ∞ y ( n ) z − n = ∑ n = 0 ∞ x ( M n ) z − n (A.3) Y(z)=\sum_{n = 0}^{\infty}y(n)z^{-n}=\sum_{n=0}^{\infty}x(Mn)z^{-n}\tag{A.3} Y(z)=n=0∑∞​y(n)z−n=n=0∑∞​x(Mn)z−n(A.3) 定义一个中间变量 x 1 ( n ) x_1(n) x1​(n): x 1 ( n ) = { x ( n ) n = 0 , ± M , ± 2 M , . . . 0 o t h e r s (A.4) x_1(n)=\begin{cases}x(n)&n=0,\pm M,\pm 2M,...\\0&others\end {cases}\tag{A.4} x1​(n)={x(n)0​n=0,±M,±2M,...others​(A.4) x 1 ( n ) x_1(n) x1​(n)的采样率为 f s f_s fs​,而 y ( n ) y(n) y(n)的采样率是 f s / M f_s/M fs​/M。

显然, y ( n ) = x ( M n ) = x 1 ( M n ) y(n)=x(Mn)=x_1(Mn) y(n)=x(Mn)=x1​(Mn),有 Y ( z ) = ∑ n = 0 ∞ x 1 ( M n ) z − n = ∑ n = 0 ∞ x 1 ( n ) z − n / M (A.5) Y(z)=\sum_{n=0}^{\infty}x_1(Mn)z^{-n}=\sum_{n=0}^{\infty}x_1(n)z^{-n/M}\tag{A.5} Y(z)=n=0∑∞​x1​(Mn)z−n=n=0∑∞​x1​(n)z−n/M(A.5) 即 Y ( z ) = X 1 ( z 1 / M ) (A.6) Y(z)=X_1(z^{1/M})\tag{A.6} Y(z)=X1​(z1/M)(A.6) 现接下来是找到 x 1 ( z ) x_1(z) x1​(z)和 x ( z ) x(z) x(z)之间的关系。

​ 令 p ( n ) = ∑ i = 0 ∞ σ ( n − M i ) p(n)=\sum_{i=0}^{\infty}\sigma(n-Mi) p(n)=∑i=0∞​σ(n−Mi)为一脉冲序列,它在 M M M的整数倍处的值为1,其余皆为0,其抽样频率为 f s f_s fs​,由Possion和公式及DFS理论, p ( n ) p(n) p(n)可以表示为 p ( n ) = 1 M ∑ k = 0 M − 1 W M − k n , W M = e − j 2 π / M (A.7) p(n)=\frac{1}{M}\sum_{k=0}^{M-1}W_M^{-kn},\quad W_M=e^{-j2\pi /M}\tag{A.7} p(n)=M1​k=0∑M−1​WM−kn​,WM​=e−j2π/M(A.7) 因为 x 1 ( n ) = x ( n ) p ( n ) x_1(n)=x(n)p(n) x1​(n)=x(n)p(n),所以 X 1 ( z ) = ∑ n = 0 ∞ x ( n ) p ( n ) z − n = 1 M ∑ n = 0 ∞ x ( n ) ∑ k = 0 M − 1 ( W M ) − k n z − n (A.8) X_1(z)=\sum_{n=0}^{\infty}x(n)p(n)z^{-n}=\frac{1}{M}\sum_{n=0}^{\infty}x(n)\sum_{k=0}^{M-1}(W_M)^{-kn}z^{-n}\tag{A.8} X1​(z)=n=0∑∞​x(n)p(n)z−n=M1​n=0∑∞​x(n)k=0∑M−1​(WM​)−knz−n(A.8) 整理得 X 1 ( z ) = 1 M ∑ k = 0 M − 1 X ( z W M k ) (A.9) X_1(z)=\frac{1}{M}\sum_{k=0}^{M-1}X(zW_M^k)\tag{A.9} X1​(z)=M1​k=0∑M−1​X(zWMk​)(A.9) 将上式带入A.6中得 Y ( z ) = 1 M ∑ k = 0 M − 1 X ( z 1 M W M k ) (A.10) Y(z)=\frac{1}{M}\sum_{k=0}^{M-1}X(z^{\frac{1}{M}}W_M^k)\tag{A.10} Y(z)=M1​k=0∑M−1​X(zM1​WMk​)(A.10) 令 z = e j w z=e^{jw} z=ejw,带入上式,即A.2,证毕。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3