MATLAB与根升余弦滚降低通滤波器

您所在的位置:网站首页 升余弦滤波器的设计 MATLAB与根升余弦滚降低通滤波器

MATLAB与根升余弦滚降低通滤波器

2024-03-20 18:58| 来源: 网络整理| 查看: 265

MATLAB与脉冲成型滤波器&匹配滤波器

在基带系统中,上采样之后,是脉冲成型滤波器,然后是载波调制等等,经过信道,然后是载波解调,之后匹配滤波器,然后下采样。比如,脉冲成型与匹配滤波均是平方根升余弦滚降滤波器。此时,平方根升余弦滤波器与匹配滤波器的表达式为: 可以看出,传递函数g(t)的表达式与要处理的基带信号的符号速率fs有关系。但是我们在使用计算机模拟这个滤波器的时候,只能对滤波器进行采样来使用,因为计算机只能处理和生成离散的信号。也就是说,t用nTs来代替,Ts是一个脉冲(即一个符号)的时间周期,这样,传递函数里分子分母的Ts就约分约掉了,这就是为什么MATLAB的rcosdesign函数不需要参数fs的原因。 b=rcosdesign(a,span,sps,shape),a是滚降系数,shape取‘sqrt’,span是滤波器截断的符号范围,sps是每个符号采几个点,b是生成的滤波器时域离散点(总共span*sps个点)。滤波器在时域是无限延伸的,要想进行处理,我们必须对其进行截断。滤波器的连续传递函数与Ts有关,且决定了滤波器时域波形中间的某个宽度必须对应着被处理基带脉冲信号的周期Ts,所以span的意思是对滤波器取了几个Ts的长度,sps是每个Ts采了几个点。比如基带信号是0101001,每个符号占得时间长度就是Ts,总共5Ts。 upfirdn(x,b,sps1)对x先进行sps倍的上采样,然后与滤波器b进行卷积。upfirdn(x,b,sps1,sps2)函数的话还要进行sps1倍的下采样。 先来看一个错误的例子:sps1不等于sps(这里sps1=1,即不进行上采样)。lv其实是span=4个符号,但是总共16个采样点。x是5个符号。但是这样写的话,MATALB会把lv当成是16个符号,而与x的5个符号平级,直接进行卷积,得到16+5=21个点。错就错在,x要想直接与lv卷积,他俩必须是平级的,即x中的每个符号必须也有4个采样点,这样MATLAB就不会错级了!

lv=rcosdesign(0.5,4,4,'sqrt'); fvtool(lv,'Analysis','impulse'); x=ones(1,5); y=upfirdn(x,lv,1); fvtool(y,'Analysis','impulse');

错误的结果为 滤波器为在这里插入图片描述 1倍上采样,然后滤波以后的基带信号在这里插入图片描述 要想得到正确的结果,sps与sps1的值必须相等!!!正确结果为:

lv=rcosdesign(0.5,4,4,'sqrt'); fvtool(lv,'Analysis','impulse'); x=ones(1,5); y=upfirdn(x,lv,4); fvtool(y,'Analysis','impulse');

44=16,54=20,16+20=36个点???还应该减去3!!!因为4倍的上采样是补零内插,也就是在5个符号中的每个符号后面插入3个值为0的点。上采样以后的序列为20个符号!是符号!!!不是采样点哦!每个符号占得时间长度为一个符号周期Ts。因为这20个符号的最后3个是0,对滤波器没有任何影响,对结果没有任何影响,所以相当于是17个符号。16+17=33个点!! 在这里插入图片描述 接收端要进行匹配滤波器,然后下采样。一般上采样倍数与下采样倍数相等。

lv=rcosdesign(0.5,4,4,'sqrt'); %%fvtool(lv,'Analysis','impulse'); x=ones(1,5); y=upfirdn(x,lv,4); fvtool(y,'Analysis','impulse'); z=upfirdn(y,lv,1,4); fvtool(z,'Analysis','impulse');

在这里插入图片描述 基带信号经过上采样、脉冲成型、匹配滤波、下采样之后,又恢复出了原基带信号。 为了限制基带信号的带宽,发送端必须对基带信号哦进行滤波,这个滤波器恰恰使基带信号有了自己的波形状,也使得有了码间串扰。为了减少码间串扰,使发送端滤波器与接收端滤波器配合使用共同组成一个升余弦滚降低通滤波器。接收端的匹配滤波器顺便设计成那种,可以在最佳采样点进行采样的滤波器。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3