Engee 文档

rcos设计

具有"升余弦"型特性的FIR脉冲整形滤波器的设计。

库::`工程师`

语法

函数调用

  • [参数:b]=rcosdesign(<参数:beta>>,<参数:span>>,<参数:sps>>,<参数:形状>>) -如果指定参数,则使用平方根方法返回FPC [参数:形状] 平等的 "sqrt",和正常的FIR-FPC,如果指定参数 [参数:形状] 平等的 "正常".

争论

输入参数

# 贝塔 — 下降的陡峭程度

+ 一个真正的非负标量

Details

下降的斜率,作为真正的非负标量给出,不超过 1. 下降的陡度决定了滤波器的多余带宽。 下降的零斜率对应于具有窄轮廓的滤波器,而单斜率对应于纯升高的余弦。

数据类型

漂浮64, 漂浮物32</无翻译>

# 跨度 — 字符数

+ 正整数标量

Details

指定为正整数的字符数。

数据类型

漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64</无翻译>

# sps — 每个符号的计数数

+ 正整数标量

Details

每个符号周期的采样数(过采样系数),设为正整数。

数据类型

漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64</无翻译>

# 形状 — 凸起余弦窗口的形状

+ "sqrt" (默认情况下)| "正常"

Details

凸起余弦窗口的形状,定义为 "正常""sqrt".

输出参数

# b — FIR滤波器系数

+ 向量字符串

Details

具有"升余弦"类型特征的FIR滤波器系数,作为字符串向量返回。

数据类型

漂浮64</无翻译>

例子:

使用平方根法设计具有"凸起余弦"类型特征的滤波器

Details

我们将指出下降的陡峭程度等于 0.25. 将过滤器截断为 6 让我们代表每个字符 4 通过倒计时。 让我们确保 "sqrt" -这是参数的值 形状 默认情况下。

import EngeeDSP.Functions: rcosdesign

h = rcosdesign(0.25, 6, 4)
mx = maximum(abs.(h - rcosdesign(0.25, 6, 4, "sqrt")))
0.0
n_max = 6 * 4 + 1
n = collect(1:n_max)

情节(n,impz(h),
     seriestype=:茎,
     标记=:圆,
     标题="冲动反应",
     xlabel="n(样本)",
     ylabel="振幅",
     传说=错误)

rcosdesign 1

使用平方根法的正常FPC和fpc的脉冲特性

Details

让我们比较一个普通滤波器与"凸起余弦"类型(FPC)和使用平方根方法的FPC的特征。 一个理想的(无限长)正常脉冲产生FPC相当于两个理想的级联Fpc。 因此,正常FIR滤波器的脉冲响应应类似于使用自卷积平方根方法的滤波器的脉冲响应。

让我们创建一个陡峭下降的正常FPC 0.25. 让我们指出这个过滤器复盖 4 po符号 3 每个符号计数。

import EngeeDSP.Functions: rcosdesign

rf = 0.25
span = 4
sps = 3

h1 = rcosdesign(rf, span, sps, "normal");

n_max = span * sps + 1
n = collect(1:n_max)

plot(n, impz(h1),
     seriestype = :stem,
     marker = :circle,
     title = "Impulse Responce",
     xlabel = "n (samples)",
     ylabel = "Amplitude",
     legend = false)

rcosdesign 2

对于整数值的整数值,正常筛选器的交点为零。 [参数:sps]. 因此,它满足零码间干扰的奈奎斯特准则。 但是,使用平方根法的滤波器不满足:

h2 = rcosdesign(rf, span, sps, "sqrt")

plot(n, impz(h2),
     seriestype = :stem,
     marker = :circle,
     title = "Impulse Responce",
     xlabel = "n (samples)",
     ylabel = "Amplitude",
     legend = false)

rcosdesign 2 1

让我们使用平方根方法折叠过滤器本身。 我们将从最大值截断脉冲响应,使其长度与 h1. 我们使用最大值对特征进行归一化。 让我们比较使用平方根方法的折叠过滤器和普通过滤器。

import EngeeDSP.Functions: conv

h3 = conv(h2, h2, "same")

y = [h1/maximum(abs.(h1)) h3/maximum(abs.(h3))]'

n_max = (span * sps + 1) * 2
n = collect(1:n_max)

plot!(n, y,
     seriestype = :stem,
     fillrange = 0,
     marker = :circle,
     xlabel = "Samples",
     ylabel = "Normalized Amplitude",
     label = "h2 * h2")

rcosdesign 2 2

折叠滤波器由于长度有限而与普通滤波器不匹配。 增加价值 [参数:span] 以获得响应之间的更精确匹配以及与奈奎斯特准则的更好匹配。

将信号通过具有"凸起余弦"类型特征的滤波器

Details

此示例演示如何使用平方根方法通过FPC传递信号。

指定筛选器参数。

rolloff = 0.25      # Rolloff factor
span = 6            # Filter span in symbols
sps = 4             # Samples per symbol

让我们使用平方根法生成FPC系数。

import EngeeDSP.Functions: rcosdesign

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)

文学作品

  1. Tranter,William H.,K.Sam Shanmugan,Theodore S.Rappaport和Kurt L.Kosbar。 通信系统仿真与无线应用的原理。_上鞍河,NJ:普伦蒂斯霍尔,2004.