信号处理常用matlab之成形滤波
Posted 一只学习的猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信号处理常用matlab之成形滤波相关的知识,希望对你有一定的参考价值。
文章目录
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
1.7 filter
filter函数是一维的数字滤波器,主要的应用语法:y = filter(b,a,X)
b和a分别为滤波器传递函数H(z)的分子多项式和分母多项式系数;
X是输入信号
y = filter(b,a,X)完成对输入信号X的滤波,y与x的大小相同
1.8 filtfilt
y = filtfilt(b,a,X) 对输入信号X进行零相位数字滤波
b和a分别为滤波器传递函数H(z)的分子多项式和分母多项式系数;
以上是关于信号处理常用matlab之成形滤波的主要内容,如果未能解决你的问题,请参考以下文章