脉冲型滤波器用成型脉冲即数字1用矩形脉冲表示用升余弦脉冲或高斯脉冲表示主要用于基带数据处理。
在数字通信系统中,基带信号进入调制器前,波形是矩形脉冲,突变的上升沿和下降沿包含高频成分较丰富,信号的频谱一般比较宽。从本质上说,脉冲成形就是一种滤波。数字通信系统的信号都必须在一定的频带内,但是基带脉冲信号的频谱是一个Sa函数,在频带上是无限宽的,单个符号的脉冲将会延伸到相邻符号码元内产生码间串扰,这样就会干扰到其他信号,这是不允许的。为了消除干扰,信号在发射之前要进行脉冲成形滤波,把信号的频率约束在带内。因此在信道带宽有限的条件下,要降低误码率,提升信道频带利用率,需要在信号传输前,对其进行脉冲成形处理,改善其频谱特,产生适合信道传输的波形。符号/秒代表单位波特(Baud),波特率是符号信息的比特率。一般的脉冲成型是要过采样的,不然没有意义,因为成型滤波会扩展带宽,过采样是为了减少频谱混叠。
常用的脉冲成型滤波器有RC成型(升余弦)、Gaussian成型等。
Matlab作为一个强大的仿真工具,在通信信号处理中有着广泛的应用。新版的Matlab(2014a)中关于滤波器设计,很多API都做了更新,下面个根据文档仿真和对比几个成型滤波器。
早些版本的firrcos函数用来设计升余弦滤波器的函数,现在已经更改成了rcosdesign函数。
例如:设计一个16阶升余弦滤波器,载波频率Fc = 1KHz,滚降系数0.25,采样率为8KHz。
N = 16; Fc = 1000; R = 0.25; Fs = 8000; h = firrcos(N, Fc, R, Fs, ‘rolloff‘, ‘normal‘); figure();plot(h) 下图是滤波器的抽头系数,阶数为16共有17个抽头。
如果用rcosdesign函数来设计这个滤波器,那么要用下面的调用方法来实现。
h1 = rcosdesign(R, N/(Fs/Fc/2), Fs/Fc/2,‘normal‘);
h1 = h1 / max(h1) / (Fs/Fc/2); %重新量化一下系数
figure;plot(h1)
同样进行绘图,结果同上面的相同。