Engee 文档

功率bw

功率带宽。

库::`工程师`

语法

函数调用

  • [参数:bw]=powerbw(___,[参数:freqlims],[参数:r]) -定义计算参考电平的频率范围。 此语法可以包括来自前面选项的输入参数的任何组合,前提是第二个输入参数是 [参数:Fs],或 [参数:f]. 如果第二个输入参数传递为空, 功率 假定归一化频率。 该函数通过以下方式计算频谱落在参考电平以下的点之间的频率差 [参数:r] dB或到达终点。

  • 功率(___) -在没有输出参数的情况下,在当前图形窗口中绘制SPM或功率谱,并注释带宽。

争论

输入参数

# x — 输入信号

+ 向量资料 | 矩阵

Details

指定为矢量或矩阵的输入信号。 如果 x -矢量,它被认为是一个单一的通道。 如果 x -矩阵,然后是函数 功率 独立计算每列的功率带宽。 x 它必须是有限值的。

数据类型

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

# 财政司司长 — 抽样调查 费率+ 正实标量

Details

的采样频率,设置为正实标量。 采样率是单位时间内的样本数。 如果时间以秒为单位,则采样频率以赫兹表示。

数据类型

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

# pxx — 光谱功率密度

+ 向量资料 | 矩阵

Details

频谱功率密度(SPM)的估计值,定义为矢量或矩阵。 如果 pxx的 -片面评估,那么它必须与实际信号相对应。 如果 pxx的 -矩阵,然后 功率 计算每列的带宽 pxx的 无论如何。

功率谱密度应以线性单位表示,而不是以分贝表示。 使用功能 db2pow 以将分贝值转换为功率值。

数据类型

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

# f — 频率

+ 向量资料

Details

指定为矢量的频率。 如果第一个元素是 f 等于 0 然后 功率 假设频谱是真实信号的单向频谱。 换句话说,该函数将零频率仓中的功率值加倍,瞄准点 3 分贝。

数据类型

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

# sxx — 功率谱估计

+ 向量资料 | 矩阵

Details

功率谱的估计值,指定为矢量或矩阵。 如果 sxx的 -矩阵,然后 功率 计算每列的带宽 sxx的 无论如何。

功率谱应以线性单位表示,而不是以分贝表示。 使用功能 db2pow 以将分贝值转换为功率值。

数据类型

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

# rbw — 分辨率波段

+ 正标量

Details

的分辨率带,设置为正标量。 分辨率带是两个量的乘积:离散傅立叶变换的频率分辨率和用于计算SPM的窗口的等效噪声带。

数据类型

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

# freqlims — 频率限制

+ 二元素向量

Details

频率限制设置为实数值的双元向量。 如果论点是 [医]freqlims 如果设置,则参考电平将是参考频带中的平均功率电平。 如果论点是 [医]freqlims 如果没有指定,参考电平将是频谱中的最大功率电平。 意义 [医]freqlims 必须在目标频段内。

数据类型

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

# r — 功率电平下降

+ 10*log10(2) (默认情况下)| 正实标量

Details

功率电平下降,作为正实标量给出,以dB表示。

数据类型

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

名称-值输入参数

# — 输出数据的类型

+ :数据 (默认情况下)| :剧情

Details

输出数据的类型:

  • :数据 -函数返回数据;

  • :剧情 -函数返回一个图形。

输出参数

# bw — 功率带宽

+ 标量,标量 | 向量资料

Details

作为标量或矢量返回的功率带宽。

  • 如果指定了采样率,则 bw 它的测量单位与 [参数:Fs].

  • 如果未指定采样频率,则 bw 它具有rad/count的测量单位。

# flo,fhi — 频率带宽限制

+ 标量,标量 | 向量资料

Details

作为标量或向量返回的频率带宽边界。

# 电源 — 存储在带宽中的功率

+ 标量,标量 | 向量资料

Details

存储在作为标量或矢量返回的带宽中的功率。

例子:

带宽受限的信号

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)

powerbw 1

我们将输出带宽,其下限和上限以及带宽功率。 指定采样率 这相当于让它无法识别。

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)

powerbw 2

让我们输出每个通道的带宽水平 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,函数 功率 使用此端点计算差异。

每级相同的带宽值 3 分贝, bw,可以从信号中获得 [参数:x] 与采样率 [参数:Fs] 在三个方面。

直接从信号

bw=powerbw(x,Fs)

从信号的周期图

P,F=周期图(x,[],长度(x),Fs); bw=powerbw(P,F)

从信号的频谱功率(SPM Welch)的估计

P,F=pwelch(x,rectwin(length(x)),[],length(x),Fs); bw=powerbw(P,F)

因为 功率 它使用中间表示将输入信号从时域转换到频域。 返回功率的带宽可能因信号转换方法、DFT点的数量和窗口大小而异。