一文理解matlab的成型滤波器设计 您所在的位置:网站首页 滤波器输出波形图 一文理解matlab的成型滤波器设计

一文理解matlab的成型滤波器设计

2024-07-16 21:50| 来源: 网络整理| 查看: 265

一文理解matlab的成型滤波器设计 成型滤波器 是在发送端将信号经过成形滤波器进行带限,使信号带宽匹配信道带宽。 (如果没有成型滤波。时域上0、1信号是矩形信号,频域得无限宽才能传输,没有这样的信道;而信号带限就会引入码间串扰,会导致接收信号波形失真。所以成型滤波)

rcosdesign

b = rcosdesign(beta,span,sps,shape) 用来模拟升余弦滤波器(成型滤波器) beta:滚降系数,取值范围(0,1) span:实际升余弦滤波器拖尾无限长,而matlab无限长时数据量很多,而且拖尾远处的值均接近于0,故截取一定长度,span是表示模拟的拖尾所能够影响的数据长度(原始数据的长度,未经采样的数据的长度) sps:每个数据的采样点数 shape:可选参数。选择根升余弦sqrt还是升余弦normal eg:

fir=rcosdesign(1,128,4); fvtool(fir,'Analysis','impulse');%滤波器可视化 %拖尾影响的数据长度为128位,即左右各64位,每位数据采样点数为4,再加上本位数据,所以一共128*4+1=513个点数 upfirdn up上采样 fir滤波 dn下采样

x = upfirdn(data, fir, p,q); data:原始数据 fir:滤波器 p:上采样q:下采样 上采样就是内插或插值 下采样就是一般意义上的采样,隔几个取一个值 upfirdn(xn,hn,length) 作用为把xn中的每个值乘以序列hn,然后移位相加,length表示了移位的长度。其中xn、hn的点数分别为N1、N2,输出点数为 N2+(N1-1)×length 。(不用下采样的话,可以不写q,或写1) 注意upfirden和upsample的区别。 VDB_burst_ups=upsample(VDB_burst,4);是原数据之间插入三个0.

fir=rcosdesign(1,128,4); data = 2 * randi([0 1], 200, 1) - 1; x = upfirdn(data, fir, 4,1);%因为fir中sps是4,所以这里p也设置为4,q默认1,或不写 plot(x);

代码里,N1=200,N2=513,length=4. 我自己写matlab爱细抠,比如这里的经过成型滤波器后数据点数怎样变化的,我觉着此文就可以解释清楚,关键是知道1设计的升余弦滤波器点数是怎样的,和span,sps的关系,2经过upfirdn后点数变化是怎样的(输出点数为 N2+(N1-1)×length)或者是N1*length+N2-length. 参考:https://blog.csdn.net/lanluyug/article/details/80401943

补充2020.2.11:对比GPS接收机与D8PSK系统的一点理解 GPS扩频信号为什么不用成型滤波? 答:GPS一个数据码长度20ms,包含20个CA码周期,一个CA码周期1023个码,为保障1.023Mb/s的伪码速率,采样速率也得几倍于伪码速率。也就是说一个数据码得几千个数据点,那么有码间干扰就有吧,干扰相邻的一些点也没关系了。一累加再判决这点干扰也就不算什么了。 GPS接收机没有用到定时同步也是基于这个原因,点数太多了,也不用在最佳判决点上进行采样,况且后面有载波同步。 2021.5.2 就这么个滤波器,没想到两年后还又加深理解。 老版本matlab 升余弦函数为rcosfir B = rcosfir(R, N_T, RATE, T) N_T是span的一半,所以N_T是0.5的整数倍。 当N_T=7.5,RATE=4时,左右影响各7.5个,滤波器阶数为60阶,61个系数。输入数据为15个。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有