天天看点

信号处理常用matlab之成形滤波1 成形滤波

文章目录

  • 1 成形滤波
    • 1.1 矩形脉冲成形
    • 1.2 升余弦成形滤波器生成 rcosdesign
    • 1.3 升余弦成形滤波器生成 rcosine
    • 1.3.1 num= rcosine(Fd,Fs)
    • 1.3.1 num= rcosine(Fd,Fs,type_flag,r,delay)
    • 1.4 升余弦成形滤波器生成 rcosfir
    • 1.5 成形滤波upfirdn
    • 1.6 成形滤波rcosflt

1 成形滤波

在实际的基带传输系统中对在信道中传输的基带信号波形要求:高频分量尽量少;不含直流分量,低频分量尽量少;能提取位定时信号,在接收端再进行抽样判决,输出信号码元。

1.1 矩形脉冲成形

基带信号波形最常见的是矩形脉冲,因为矩形脉冲易于形成和变换,但是表示信息码元的单个脉冲的波形并非一定是矩形的,根据实际信道情况,还可以是三角波、高斯脉冲、升余弦脉冲等其它形式。

rectpulse

y = rectpulse(x,nsamp) 对向量x的每个元素重复nsamp。

1.2 升余弦成形滤波器生成 rcosdesign

b = rcosdesign(beta,span,sps,shape)

beta: 滚降系数,取值0~1之间,决定频宽和陡峭程度。取值一般大于0.2。

span: 表示截断的符号范围。

sps: 单个符号范围的采样个数。

shape:可选参数。可不加,可加上’normal’,可加上’sqrt’。

当选择’sqrt’时,返回一个平方根升余弦滤波器。

这个函数生成升余弦或根升余弦滤波器,生成原理是采用窗函数法设计滤波器。生成的滤波器阶数是spansps,滤波器长度是spansp+1。

升余弦滤波器是线性相位FIR滤波器,因此对输入信号进行滤波后,输入信号延迟了span/2个符号,对应点数为span/2*sps。

1.3 升余弦成形滤波器生成 rcosine

1.3.1 num= rcosine(Fd,Fs)

Fd:码速率

Fs:采样率 ,Fs/Fd必须是整数

默认滚降系数0.5,滤波器延迟3/Fd,单位:秒

num :生成的滤波器系数,系数长度:2delay(Fs/Fd)+1,默认delay=3

1.3.1 num= rcosine(Fd,Fs,type_flag,r,delay)

Fd:码速率

Fs:采样率 ,Fs/Fd必须是整数

默认滚降系数0.5,滤波器延迟3/Fd,单位:秒

type_flag:可选参数。可不加,可加上’normal’,可加上’sqrt’

r:可选参数,滚降系数,取值0~1之间

delay;滤波器延迟,delay/Fd是以秒为单位的滤波器延迟

num :生成的滤波器系数,系数长度2delay(Fs/Fd)+1

说明:现在的matlab版本一般都不推荐使用rcosine生成升余弦滤波器。

1.4 升余弦成形滤波器生成 rcosfir

B = rcosfir(R, N_T, RATE, T, FILTER_TYPE) designs and returns a square root raised cosine filter if FILTER_TYPE == ‘sqrt’. The default value of FILTER_TYPE, ‘normal’, returns a normal raised cosine filter.

R表示滚降因子

N_T表示截断长度

RATE表示每个码元的采样个数

T表示采样周期:T=1/fs

FILTER_TYPE表示滤波器类型

说明:现在的matlab版本一般都不推荐使用rcosfir来生成升余弦滤波器。

1.5 成形滤波upfirdn

x = upfirdn(data, fir, p,q); up上采样 fir滤波 dn下采样

data:原始数据

fir:滤波器

p:对data进行p倍上采样(插入零)

q:下采样 上采样就是内插或插值 下采样就是一般意义上的采样,隔几个取一个值

upfirdn(xn,hn,p,q) 假设xn、hn的点数分别为N1、N2,输出点数为ceil((N2+(N1-1)×p)/q) 。

1.6 成形滤波rcosflt

Y = rcosflt(X, Fd, Fs, TYPE_FLAG, R, DELAY) 对输入信号X进行升余弦滤波

Fd (Hz):X的输入频率

Fs (Hz):Y的输出频率【Fs必须是Fd的整数倍】

TYPE_FLAG指定滤波器的选型或者设计

R :roll-off factor 指定滤波器的过渡频带

DELAY :从滤波器的开始到脉冲响应峰值的时间延迟

Y :对输入信号X进行升余弦滤波之后的输出,

长度为:(Fs/Fd)length(X)+2DELAY*(Fs/Fd)+1-1=(Fs/Fd)(length(X)+2DELAY)

说明:现在的matlab版本一般都不推荐使用rcosflt

码间串扰是由于系统传输总特性(包括收、发滤波器和信道)不理想,导致前后码元的波形畸变、展宽,并使前面波形出现很长的拖尾,蔓延到当前码元的抽样时刻上,从而对当前码元的抽样判决造成干扰。若将收、发滤波器和信道看成一个系统,输入经过该系统,希望实现无码间串扰,系统需要满足一定的条件。这个条件就是奈奎斯特第一准则。

继续阅读