MATLAB函数——rcosdesign

rcosdesign:升余弦 FIR 脉冲整形滤波器设计


语法

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


说明

b = rcosdesign(beta,span,sps) 返回系数 b,该系数对应于具有由 beta 指定的衰减因子的平方根升余弦 FIR 滤波器。滤波器被截断在 span 个符号范围内,并且每个符号周期都包含 sps 个样本。 滤波器的阶次,也即 sps * span 必须是偶数。滤波器的能量为 1。举例

b = rcosdesign(beta,span,sps,shape) 当将 shape 设置为 sqrt 时,将返回根升余弦滤波器;当将 shape 设置为 normal 时,将返回升余弦 FIR 滤波器。举例


示例


设计根升余弦滤波器

假定滚降系数为 0.25。将过滤器截断为 6 个符号,并用 4 个样本表示每个符号。 验证 sqrtshape 参数的默认值。

h = rcosdesign(0.25,6,4);
mx = max(abs(h-rcosdesign(0.25,6,4,'sqrt')))
mx = 0
fvtool(h,'Analysis','impulse')

设计根升余弦滤波器


升余弦和根升余弦滤波器的脉冲响应

将升余弦滤波器与根升余弦滤波器进行比较。一个理想的(无限长)升余弦脉冲整形滤波器等效于两个级联的理想的根升余弦滤波器。 因此,FIR 升余弦滤波器的脉冲响应应类似于与其自身卷积的根升余弦滤波器的脉冲响应。

设计一个衰减为 0.25 的升余弦滤波器。指定此过滤器跨越 4 个符号,每个符号 3 个样本。

rf = 0.25;
span = 4;
sps = 3;

h1 = rcosdesign(rf,span,sps,'normal');
fvtool(h1,'impulse')

升余弦滤波器
升余弦滤波器在 sps 的整数倍处具有零值点。因此,它满足无码间串扰(ISI)的 Nyquist 准则。但是,根升余弦滤波器没有这样的特性:

h2 = rcosdesign(rf,span,sps,'sqrt');
fvtool(h2,'impulse')

根升余弦滤波器
将根升余弦滤波器与自身进行卷积。在最大值处截断脉冲响应,使其长度与 h1 相同。使用最大值归一化响应。然后,将卷积后的根升余弦滤波器与升余弦滤波器进行比较。

h3 = conv(h2,h2);
p2 = ceil(length(h3)/2);
m2 = ceil(p2-length(h1)/2);
M2 = floor(p2+length(h1)/2);
ct = h3(m2:M2);

stem([h1/max(abs(h1));ct/max(abs(ct))]','filled')
xlabel('Samples')
ylabel('Normalized amplitude')
legend('h1','h2 * h2')

升余弦和根升余弦滤波器的脉冲响应比较
卷积响应的长度是有限的,因此根升余弦滤波器与自身进行卷积得到的结果会与升余弦滤波器不一致。增加 span 可以在响应之间获得更紧密的一致,并更好地符合 Nyquist 准则。


将信号通过升余弦滤波器

本例说明如何使信号通过根升余弦滤波器。

指定过滤器参数。

rolloff = 0.25;     % 滚降因子
span = 6;           % 滤波器宽度(符号数)
sps = 4;            % 每个符号的样本数

生成根升余弦滤波器的系数。

b = rcosdesign(rolloff, span, sps);

生成双极性数据向量。

d = 2*randi([0 1], 100, 1) - 1;

上采样并过滤数据以进行脉冲整形。

x = upfirdn(d, b, sps);

添加噪声。

r = x + randn(size(x))*0.01;

对接收到的信号进行滤波和下采样以进行匹配滤波。

y = upfirdn(r, b, 1, sps);

有关如何使用根升余弦滤波器对信号进行插值和抽取的信息,请参见使用 RRC 滤波器进行插值和抽取(Communications Toolbox)。


输入参数


beta - 滚降因子

滚降系数,指定为为不大于 1实非负标量。滚降系数决定滤波器的多余带宽。 滚降因子为 0 时为矩形滤波器(brick-wall filter), 滚降因子为 1 时为纯升余弦滤波器。

数据类型double | single


span - 符号数

符号数,指定为正整数标量

数据类型double | single


sps - 每个符号的样本数

每个符号的样本数(上采样因子),指定为正整数标量

数据类型double | single


shape - 升余弦窗的形状

升余弦窗的形状,指定为 normalsqrt


输出参数


b - FIR 滤波器系数

升余弦滤波器的系数,以列向量的形式返回。

数据类型double | single


提示

  • 如果您拥有 Communications Toolbox™ 软件的许可证,则可以执行具有流传输行为的多速率升余弦滤波。为此,请使用 System object™ 滤波器——comm.RaisedCosineTransmitFiltercomm.RaisedCosineReceiveFilter

参考

[1] Tranter, William H., K. Sam Shanmugan, Theodore S. Rappaport, and Kurt L. Kosbar. Principles of Communication Systems Simulation with Wireless Applications. Upper Saddle River, NJ: Prentice Hall, 2004.


扩展功能


C/C++ 代码生成

使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

用法说明和限制:

所有输入必须为常数。 如果表达式或变量的值不变,则也允许使用。


另请参阅

gaussdesign

主题

用 RRC 滤波器进行插值和抽取(Communications Toolbox)


在 R2013b 中推出


原文参考:https://ww2.mathworks.cn/help/signal/ref/rcosdesign.html

  • 18
    点赞
  • 134
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: rcosine 函数是一个用于生成指数衰减的余弦调制信号的工具。 而 rcosdesign 函数是用于设计满足特定条件的有限长度余弦调制滤波器的工具。 总的来说,rcosine 函数是用于生成余弦调制信号的工具,而 rcosdesign 函数是用于设计余弦调制滤波器的工具。 ### 回答2: MATLAB中的rcosine函数rcosdesign函数都是用于生成根余弦(Raised Cosine)滤波器的函数,但它们在使用方法和功能上有所区别。 首先,rcosine函数主要用于生成根余弦响应的信号波形。它的使用方法通常为rcosine(x, span, sps),其中x是输入的离散点序列,span表示信号中心到信号的边界的间隔,sps表示采样点的间隔。rcosine函数将通过给定的参数计算出相应的根余弦滤波器响应,返回一个与输入序列长度相同的输出序列。 而rcosdesign函数则更加灵活,可以用于生成根余弦滤波器的设计参数。它的使用方法通常为rcosdesign(beta, span, sps),其中beta表示滤波器的形状因子,span表示信号中心到信号的边界的间隔,sps表示采样点的间隔。rcosdesign函数将通过给定的参数计算出根余弦滤波器的设计参数,返回一个包含滤波器设计参数的结构体。这些参数可以用于创建自定义的根余弦滤波器,通过对滤波器响应进行采样和插值可以生成相应的波形。 综上所述,rcosine函数是根据输入序列生成根余弦滤波器响应的函数,而rcosdesign函数是根据给定的参数生成根余弦滤波器设计参数的函数。根据具体需求选择合适的函数来实现相应的功能。 ### 回答3: MATLAB中的rcosine函数rcosdesign函数都与实现滤波器相关,但它们之间有一些区别。 首先,rcosine函数是根据给定的滚降因子来生成一般的RRC(Root Raised Cosine)滤波器响应。该函数会返回滤波器的冲激响应和频率响应,用户可以根据需要自行设置滚降因子,实现自定义的滤波器设计。但是,rcosine函数只能生成信号的单边频谱响应。 相比之下,rcosdesign函数则根据给定的滚降因子、符号间隔和抽样率等参数,直接生成RRC滤波器的冲激响应。用户无需事先指定滚降因子,该函数自动根据输入的参数计算出最佳的滚降因子,并返回滤波器的 impulse response。此外,rcosdesign函数还支持生成信号的双边频谱响应,允许用户在设计滤波器时考虑频谱折叠等问题。 总结来说,rcosine函数是用于自定义RRC滤波器设计,用户需要自行指定滚降因子并手动计算滤波器的冲激响应和频率响应。而rcosdesign函数则是一个更方便且自动化的滤波器设计工具,它根据输入的参数直接生成RRC滤波器的冲激响应,同时还支持生成双边频谱响应。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值