首页 > 代码库 > 信号的采样和量化

信号的采样和量化

信号处理有两大任务。一个是信号分析,包括时域和频域。另一个是滤波器设计,包括FIR和IIR。


在matlab中要表示连续的模拟信号,一般用t = 0:dt:tf来表示时间点。虽然matlab中的点是离散的,但只要dt取的足够小比如0.001,就能逼近连续时间。

而表示数字信号,由关系式 x(n) = x(t),t = nT,取n = 0:tf/T作为时间点,T是采样周期。

dt = 0.001;

tf = 6;

t = 0:dt:tf;

xa = sqrt(t)+cos(t);

T = 0.5;

n = 0:tf/T;

xb = sqrt(n*T)+cos(n*T);

matlab实现量化,把数据x变成量化值xq:xq = round(x/deltax)*deltax。

其中deltax为量化步长,round是四舍五入方法取整数。此外取整方法还有向上取整ceil,向下取整floor,向零取整fix。

量化位数越多,量化步长越小,越接近真实值。

这种均与量化的特点是对大数,量化误差小,对小数量化误差大。因此有些场合引入非线性量化器。


在自己电脑上能通过录音采集声音信号,然后导入matlab。

只需将wav文件存于路径下,然后输入[x,Fs,N] = wavread(‘dajiahao‘);

再通过save dajiahao x可以生成mat数据文件,便于matlab工具处理。里面每个数都是双精度格式保存,占八个字节64位。

信号的采样和量化