上采样与插值滤波器

其实这个问题一般的数字信号处理书里面都有,但是会放到“多采样数字信号处理”这一章里面讲,而这一章一般上课时,是讲不到的,所以我才迷惘了很久。首先澄清一个问题,upsample到底是什么,与差值到底是什么关系?

回答其实很简单,对于采样下来的数字信号,时间一定,采样速率一定,那么采样点的个数就定了。我们是无法获取采样点之间的模拟信号的值的。而在有些情况下,我们又必须获取它们,比如:.两个数字系统的速率不同,或者需要更加精确的模拟值的时候,你唯一能做的,就是在这些数字信号间差值了。(前提是你已经拿到的是数字信号,不能对原来的模拟信号重新以更高的采样率采样)。差值是一门古老的学问,最简单的办法就是线性插值,但是这样的效果却不一定很好。插值滤波器的作用也是这样,它其实就是设计了一种算法,在离散的数字信号点之间插值。

具体的做法·也很简单,分为2步:

1.在原先的数字信号之间补0.

2.将补0的结果通过一个合适的低通滤波器。(通带要大于原信号带宽*插值倍数)

下面举一个matlab例子:

Nx = 32;
Tx = 16;
nx = 0:Nx-1;
x = sin(2*pi*nx/Tx);
L = 4;
Ny = L * Nx;
ny = 0:Ny-1;
yi = zeros(1,Ny);
yi(1:L:Ny) = x;
F0 = 1/(2*L);
M = 4;
Ap = 0.1;
[b,a] = cheby1(M,Ap,F0,'low');
y = filter(L*b,a,yi);
y1 =sin(2*pi*ny/(L*Tx));
stem(nx,x)
figure
stem(ny,y)
figure;
stem(ny,y1)

大家可以通过效果图看明白。

至于为什么这样做是可以的,大家还是自己看书吧,公式打出来特别不方便。

推荐的书目是姚天任老师编写的《数字信号处理》,清华大学出版社。这里的程序就是他书中的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值