功率bw
功率带宽。
库::`工程师`
语法
函数调用
-
[参数:bw],[参数:flofhi],[参数:power]=powerbw(___)-还返回功率带宽的下限和上限以及这些限值内的功率。
-
功率(___)-在没有输出参数的情况下,在当前图形窗口中绘制SPM或功率谱,并注释带宽。
争论
输入参数
# x — 输入信号
+
向量资料 | 矩阵
Details
指定为矢量或矩阵的输入信号。 如果 x -矢量,它被认为是一个单一的通道。 如果 x -矩阵,然后是函数 功率 独立计算每列的功率带宽。 x 它必须是有限值的。
| 数据类型 |
|
#
财政司司长 —
抽样调查
费率+
正实标量
Details
的采样频率,设置为正实标量。 采样率是单位时间内的样本数。 如果时间以秒为单位,则采样频率以赫兹表示。
| 数据类型 |
|
# pxx — 光谱功率密度
+
向量资料 | 矩阵
Details
频谱功率密度(SPM)的估计值,定义为矢量或矩阵。 如果 pxx的 -片面评估,那么它必须与实际信号相对应。 如果 pxx的 -矩阵,然后 功率 计算每列的带宽 pxx的 无论如何。
功率谱密度应以线性单位表示,而不是以分贝表示。 使用功能 db2pow 以将分贝值转换为功率值。
| 数据类型 |
|
# f — 频率
+
向量资料
Details
指定为矢量的频率。 如果第一个元素是 f 等于 0 然后 功率 假设频谱是真实信号的单向频谱。 换句话说,该函数将零频率仓中的功率值加倍,瞄准点 3 分贝。
| 数据类型 |
|
# sxx — 功率谱估计
+
向量资料 | 矩阵
Details
功率谱的估计值,指定为矢量或矩阵。 如果 sxx的 -矩阵,然后 功率 计算每列的带宽 sxx的 无论如何。
功率谱应以线性单位表示,而不是以分贝表示。 使用功能 db2pow 以将分贝值转换为功率值。
| 数据类型 |
|
# rbw — 分辨率波段
+
正标量
Details
的分辨率带,设置为正标量。 分辨率带是两个量的乘积:离散傅立叶变换的频率分辨率和用于计算SPM的窗口的等效噪声带。
| 数据类型 |
|
# freqlims — 频率限制
+
二元素向量
Details
频率限制设置为实数值的双元向量。 如果论点是 [医]freqlims 如果设置,则参考电平将是参考频带中的平均功率电平。 如果论点是 [医]freqlims 如果没有指定,参考电平将是频谱中的最大功率电平。 意义 [医]freqlims 必须在目标频段内。
| 数据类型 |
|
例子:
带宽受限的信号
Details
我们将生成一个信号,其SPM类似于带通FIR滤波器的频率响应。 88-具有归一化截止频率的th阶 rad/倒计时和 rad/倒计时。
import EngeeDSP.Functions: fir1
d = fir1(88, [0.25 0.45])
的电平计算占用的信号频带 3 分贝。 我们将指定范围内的平均功率作为参考电平。 rad/倒数至 rad/倒计时。 让我们为SPM建立一个时间表.
import EngeeDSP.Functions: powerbw
powerbw(d, [], [0.2 0.6]*pi, 3, out=:plot)

我们将输出带宽,其下限和上限以及带宽功率。 指定采样率 这相当于让它无法识别。
bw, flo, fhi, power = powerbw(d, 2π, [0.2, 0.6] * π)
println([" bw"; "flo"; "fhi"] .* " = " .* string.([bw; flo; fhi] / π) .* "π")
[" bw = 0.20047359178514887π", "flo = 0.24995529776303813π", "fhi = 0.450428889548187π"]
import EngeeDSP.Functions: bandpower
println("power = ", round((power/bandpower(d)*100)[1], digits=1), "% of total")
power = 96.9% of total
添加具有归一化截止频率的第二通道 rad/倒计时和 rad/count和第一通道振幅的十分之一的振幅。
d = [d fir1(88, [0.5 0.8])/10]
让我们计算一个双通道信号的带宽的水平 6 分贝。 我们将指定频谱的最大功率电平作为参考电平。
powerbw(d, [], [], 6, out=:plot)

让我们输出每个通道的带宽水平 6 dB,以及下限和上限。
bw, flo, fhi = powerbw(d, [], [], 6)
bds = [bw[1] bw[2]; flo[1] flo[2]; fhi[1] fhi[2]]
labels = [" bw", "flo", "fhi"]
for channel in 1:2
for i in 1:3
println(labels[i] * " (ch_$channel) = $(round(bds[i, channel] / π, digits=5))π")
end
end
bw (ch_1) = 0.19794π
flo (ch_1) = 0.25176π
fhi (ch_1) = 0.44971π
bw (ch_2) = 0.29418π
flo (ch_2) = 0.50271π
fhi (ch_2) = 0.79689π
算法
以确定在水平的带宽 3 dB函数 功率 使用矩形窗口计算周期图功率谱的估计值,并使用最高估计值作为参考电平。 带宽是频谱至少下降的点之间的频率差 3 dB相对于参考电平。 如果信号在下降到之前到达其端点之一 3 dB,函数 功率 使用此端点计算差异。
直接从信号 |
|
从信号的周期图 |
|
从信号的频谱功率(SPM Welch)的估计 |
|
因为 功率 它使用中间表示将输入信号从时域转换到频域。 返回功率的带宽可能因信号转换方法、DFT点的数量和窗口大小而异。
|