DSP

关于增采样和减采样

2019-07-13 16:53发布

增采样与减采样

普通DSP课本里可能没有增采样和减采样的内容。有些大学的DSP课程内容比较深。相信,很多包括通信专业的学生对于信号处理的精髓不是很明白。下面分析一下这个增采样过程。
大家知道采样的原理是:X(n)=Xc(t)|t=nT =Xc(nT). Xc(t)是连续时间信号。x(n)是相应的离散时间信号。T是采样率。Xc(Ω)是Xc(t)的连续时间傅里叶变换。 XΩT)=1T(k=0Xc(Ωk2πT)) X(w)=1T(k=0Xc(wTk2πT))

The truth of sampling

采样的实质是什么?模拟频率Ω到数字频率w。
数字频率w,指的是采样点之间的弧度,一般|w|<=π。若采用w,exp(jw)在单位圆上,光于2π的周期性离散信号周期为2π。由此我们不用计算就可以证明就能得到奈奎斯特定理。y(t) = sin(Ωt),w = Ω/T; 对于信号y(t)的最大频域截止Ω = π/T。为了不尝生混迭, Ωs = 2π/T。故Ωs = 2Ω ;

upsampling

在没有经过滤波器之前是这样的: xi[n]=xc(nT);T=T/L;xi[n]=x[n/L]=xc(nT/L) n=kL(k),xe[n]=x[n/L]=k=x[k]δ[nkL] xe[n]=0; Xe(ejw)=n=(k=x[k]δ[nkL])ejwn=k=x[k]ejwkL=X(ejwL) 维基百科有这样的说明。点此进入查看upsampling;
类似的推导之后:

downsampling

点此进入查看downsampling Xdejw)=1M(i=0M1X(ewM2πiM) 这是奥本海默的DSP里的一张图
[这是奥本海默的DSP里的一张图] 然而有些人可能不明白为什么这里的增采样之后,只是填充零,为什么会在幅度上引起L的变化。根据帕斯瓦尔定理,能量是不变的,因为0是没有能量的。采样导致频率周期性,低通滤波器,把频域上中间那段取出来了,能量降低为1/I*I ,为了恢复想x(0),低通滤波器增益为I。下面是MATLAB的仿真说明。 增采样在经过低通滤波器的图形变化 增采样之后滤波后的幅度变化。。
matlab代码: F = [0 0.250 0.500 0.7500 1]; A = [1.0000 0.5000 0 0 0]; Order = 511; B = fir2(Order,F,A); [Hx,W] = freqz(B,1,8192,'whole'); Hx = [Hx(4098:end) ; Hx(1:4097)]; omega = -pi+(2*pi/8192):(2*pi)/8192:pi; plot(omega,abs(Hx)) xlim([-pi pi]) xlabel('Radians/Sample') ylabel('Magnitude') 这里写图片描述 F = [0 0.250 0.500 0.7500 1]; A = [1.0000 0.5000 0 0 0]; Order = 511; B = fir2(Order,F,A); [Hx,W] = freqz(B,1,8192,'whole'); Hx = [Hx(4098:end) ; Hx(1:4097)]; omega = -pi+(2*pi/8192):(2*pi)/8192:pi; plot(omega,abs(Hx)) xlim([-pi pi]) xlabel('Radians/Sample') ylabel('Magnitude') y = interp(B,2); [Hy,W] = freqz(y,1,8192,'whole'); Hy = [Hy(4098:end) ; Hy(1:4097)]; hold on plot(omega,abs(Hy),'r','linewidth',2) legend('Original Signal','Upsampled Signal') 这里写图片描述
“`