脉冲成型滤波器 matlab 仿真 脉冲型滤波器用成型脉冲即数字 1 用矩形脉冲表示用升余弦脉冲或高斯脉冲表示主要用于基带数据处理。 在数字通信系统中,基带信号进入调制器前,波形是矩形脉冲,突变的上升沿和下降沿包含高频成分较丰富,信号的频谱一般比较宽。从本质上说,脉冲成形就是一种滤波。数字通信系统的信号都必须在一定的频带内,但是基带脉冲信号的频谱是一个 Sa 函数,在频带上是无限宽的,单个符号的脉冲将会延伸到相邻符号码元内产生码间串扰,这样就会干扰到其他信号,这是不允许的。为了消除干扰,信号在发射之前要进行脉冲成形滤波,把信号的频率约束在带内。因此在信道带宽有限的条件下,要降低误码率,提升信道频带利用率,需要在信号传输前,对其进行脉冲成形处理,改善其频谱特,产生适合信道传输的波形。符号/秒代表单位波特(Baud),波特率是符号信息的比特率。一般的脉冲成型是要过采样的,不然没有意义,因为成型滤波会扩展带宽,过采样是为了减少频谱混叠。 常用的脉冲成型滤波器有 RC 成型(升余弦)、Gaussian 成型等。 Matlab 作为一个强大的仿真工具,在通信信号处理中有着广泛的应用。新版的Matlab(2025a)中关于滤波器设计,很多 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) 同样进行绘图,结果同上面的相同。 在 Matlab 工具箱中,涉及升余弦滤波器的函数有好几个:rcosflt 使用升余弦滤波器对输入信号进行滤波,rcosine 设计升余弦滤波器,rcosiir 设计升余弦 IIR 滤波器,firrcos 升余弦滤波器设计。他们大部分已经慢慢被 Matlab 抛弃(新版本的 Matlab 将不赞成使用,但是会因为兼容性的历史原因被保留)。 下面重点介绍一下 rcosdesign 函数,这个函...