RaisedCosineTransmitFilter是一个MATLAB通信工具箱中的函数,用于上采样和滤波输入信号。它可以使用正常的升余弦FIR滤波器或平方根升余弦FIR滤波器。通过使用升余弦FIR插值信号来应用脉冲整形滤波器。系统对通过使用升余弦有限脉冲响应(FIR)滤波器对输入信号进行插值来实现脉冲整形。FIR滤波器有x+1的抽头系数
通过使用升余弦FIR滤波器插值输入信号来应用脉冲整形:
1. 创建对象并设置它的属性
2. 使用参数调用对象,就像调用函数一样。
txfilter = comm.RaisedCosineTransmitFilter
txfilter = comm.RaisedCosineTransmitFilter(Name,Value)
txfilter = com . raisedcosinetransmitfilter返回一个升余弦发射FIR滤波器系统对象,它使用升余弦FIR滤波器插值输入信号。该滤波器采用高效多相FIR插值结构,具有单位能量。
txfilter = com . raisedcosinetransmitfilter (Name,Value)使用一个或多个名称-值对设置属性。将每个属性名用引号括起来。例如,com . raisedcosinetransmitfilter ('FilterSpanInSymbols',15)配置一个升余弦传输过滤系统对象,过滤范围设置为15个符号。
进一步的可以表示为
txfilter =
comm.RaisedCosineTransmitFilter with properties:
Shape: 'Square root'
RolloffFactor: 0.2000
FilterSpanInSymbols: 10
OutputSamplesPerSymbol: 8
Gain: 1
其中,Shape属性表示滤波器的形状,RolloffFactor属性表示滚降因子,FilterSpanInSymbols属性表示滤波器的符号跨度,OutputSamplesPerSymbol属性表示每个符号的输出样本数,Gain属性表示增益。具体解释如下:
Shape
过滤形状,可设置为Square root 或者 Normal
RolloffFactor
滚转因子,指定为范围[0,1]中的标量。默认为0.2
FilterSpanInSymbols
筛选符号范围,指定为正整数。该对象将理想的升余弦滤波器的无限脉冲响应(IIR)截断为跨越此属性指定的符号数量的脉冲响应。
OutputSamplesPerSymbol
每个符号输出样本,指定为正整数。
Gain
线性滤波器增益,指定为正标量。设计了一个具有单位能量的升余弦滤波器,然后应用线性滤波器增益得到最终的抽头系数值。
y = txfilter(x)
对于一个ki × N矩阵输入x,对象将输入矩阵的列处理为N个独立的通道。
利用平方根增余弦(SRRC)发射滤波对象对信号进行插值,并显示滤波后信号的频谱。
首先以每秒1e6个符号的符号速率创建随机双极符号。
data = 2*randi([0 1],1e6,1) - 1;
创建SRRC传输筛选器对象。默认设置过滤器为平方根形状,每个符号的样本数量为8。
txfilter = comm.RaisedCosineTransmitFilter
txfilter =
comm.RaisedCosineTransmitFilter with properties:
Shape: 'Square root'
RolloffFactor: 0.2000
FilterSpanInSymbols: 10
OutputSamplesPerSymbol: 8
Gain: 1
使用SRRC过滤器过滤数据
filteredData = txfilter(data);
创建一个采样率为8e6的频谱分析仪对象。该采样率与滤波信号的采样率相匹配
spectrumAnalyzer = spectrumAnalyzer(SampleRate=8e6);
使用频谱分析仪对象查看滤波后信号的频谱
spectrumAnalyzer(filteredData)
release(spectrumAnalyzer)
FilterSpanInSymbols参数设置的越高,滤波器越好,但是消耗计算资源