powerbw
Полоса пропускания мощности.
| Библиотека |
|
Синтаксис
Вызов функции
-
bw = powerbw(___,freqlims,r)— определяет частотный интервал, в котором вычисляется опорный уровень. Этот синтаксис может включать любую комбинацию входных аргументов из предыдущих вариантов, при условии, что второй входной аргумент равен либоFs, либоf. Если второй входной аргумент передан как пустой,powerbwпредполагает нормализованную частоту. Функция вычисляет разность частот между точками, в которых спектр опускается ниже опорного уровня наrдБ или достигает конечной точки.
-
powerbw(___)— без выходных аргументов строит СПМ или спектр мощности в текущем окне графиков и аннотирует полосу пропускания.
Аргументы
Входные аргументы
#
x —
входной сигнал
вектор | матрица
Details
Входной сигнал, заданный как вектор или матрица. Если x — вектор, он рассматривается как одиночный канал. Если x — матрица, то функция powerbw вычисляет полосу пропускания мощности независимо для каждого столбца. x должен быть конечнозначным.
| Типы данных |
|
#
Fs —
частота дискретизации
положительный вещественный скаляр
Details
Частота дискретизации, заданная как положительный вещественный скаляр. Частота дискретизации — это количество отсчетов в единицу времени. Если время измеряется в секундах, то частота дискретизации указывается в герцах.
| Типы данных |
|
#
pxx —
спектральная плотность мощности
вектор | матрица
Details
Оценка спектральной плотности мощности (СПМ), заданная как вектор или матрица. Если pxx — односторонняя оценка, то она должна соответствовать действительному сигналу. Если pxx — матрица, то powerbw вычисляет полосу пропускания каждого столбца pxx независимо.
Спектральная плотность мощности должна быть выражена в линейных единицах, а не в децибелах. Используйте функцию db2pow для преобразования значений в децибелах в значения мощности.
| Типы данных |
|
#
f —
частоты
вектор
Details
Частоты, заданные как вектор. Если первый элемент f равен 0, то powerbw предполагает, что спектр является односторонним спектром вещественного сигнала. Другими словами, функция удваивает значение мощности в бине нулевой частоты, стремясь к точке 3 дБ.
| Типы данных |
|
#
sxx —
оценка спектра мощности
вектор | матрица
Details
Оценка спектра мощности, заданная как вектор или матрица. Если sxx — матрица, то powerbw вычисляет полосу пропускания каждого столбца sxx независимо.
Спектр мощности должен быть выражен в линейных единицах, а не в децибелах. Используйте функцию db2pow для преобразования значений в децибелах в значения мощности.
| Типы данных |
|
#
rbw —
полоса разрешения
положительный скаляр
Details
Полоса разрешения, заданная как положительный скаляр. Полоса разрешения является произведением двух величин: частотного разрешения дискретного преобразования Фурье и эквивалентной шумовой полосы окна, используемого для вычисления СПМ.
| Типы данных |
|
#
freqlims —
пределы частоты
двухэлементный вектор
Details
Пределы частоты, заданные как двухэлементный вектор вещественных значений. Если аргумент freqlims задан, то опорным уровнем будет средний уровень мощности в опорной полосе. Если аргумент freqlims не задан, то опорным уровнем будет максимальный уровень мощности в спектре. Значение freqlims должно находиться в пределах целевой полосы.
| Типы данных |
|
#
r —
падение уровня мощности
10*log10(2) (по умолчанию) | положительный вещественный скаляр
Details
Падение уровня мощности, заданное как положительный вещественный скаляр, выраженный в дБ.
| Типы данных |
|
Входные аргументы «имя-значение»
#
out —
тип выходных данных
:data (по умолчанию) | :plot
Details
Тип выходных данных:
-
:data— функция возвращает данные; -
:plot— функция возвращает график.
Выходные аргументы
#
flo,fhi —
границы полосы пропускания частоты
скаляры | векторы
Details
Границы полосы пропускания частоты, возвращаемые в виде скаляров или векторов.
#
power —
мощность, сохраняемая в полосе пропускания
скаляр | вектор
Details
Мощность, сохраняемая в полосе пропускания, возвращаемая в виде скаляра или вектора.
Примеры
Полоса пропускания сигналов с ограниченной полосой пропускания
Details
Сгенерируем сигнал, СПМ которого напоминает частотную характеристику полосового КИХ-фильтра 88-го порядка с нормированными частотами среза рад/отсчет и рад/отсчет.
import EngeeDSP.Functions: fir1
d = fir1(88, [0.25 0.45])
Рассчитаем занимаемую полосу сигнала на уровне 3 дБ. Укажем в качестве опорного уровня среднюю мощность в диапазоне от рад/отсчет до рад/отсчет. Построим график СПМ.
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
Добавим второй канал с нормализованными частотами среза рад/отсчет и рад/отсчет и амплитудой, составляющей одну десятую от амплитуды первого канала.
d = [d fir1(88, [0.5 0.8])/10]
Рассчитаем полосу пропускания двухканального сигнала на уровне 6 дБ. В качестве опорного уровня укажем максимальный уровень мощности спектра.
powerbw(d, [], [], 6, out=:plot)

Выведем полосу пропускания каждого канала на уровне 6 дБ, а также нижнюю и верхнюю границы.
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 дБ функция powerbw вычисляет оценку спектра мощности периодограммы с помощью прямоугольного окна и использует наивысшую оценку в качестве опорного уровня. Полоса пропускания — это разность частот между точками, где спектр опускается как минимум на 3 дБ относительно опорного уровня. Если сигнал достигает одной из своих конечных точек до того, как опустится на 3 дБ, функция powerbw использует эту конечную точку для вычисления разности.
Одно и то же значение полосы пропускания на уровне 3 дБ, bw, можно получить из сигнала x с частотой дискретизации Fs тремя способами.
Прямо из сигнала |
|
Из периодограммы сигнала |
|
Из оценки спектральной мощности (СПМ Уэлча) сигнала |
|
Поскольку powerbw использует промежуточное представление для преобразования входного сигнала из временной области в частотную, полоса пропускания возвращенной мощности может меняться в зависимости от метода преобразования сигнала, количества точек ДПФ и размера окна.
|