exponenta event banner

powerbw

Полоса пропускания питания

Описание

bw = powerbw(x) возвращает 3-dB (половинную мощность) полосу пропускания, bw, входного сигнала, x.

пример

bw = powerbw(x,fs) возвращает ширину полосы пропускания 3-dB в терминах частоты дискретизации, fs.

пример

bw = powerbw(pxx,f) возвращает 3-dB полосу пропускания оценки спектральной плотности мощности (PSD), pxx. Частоты, f, соответствуют оценкам в pxx.

bw = powerbw(sxx,f,rbw) вычисляет 3-dB полосу пропускания оценки спектра мощности, sxx. Частоты, f, соответствуют оценкам в sxx. rbw - пропускная способность разрешения, используемая для интеграции каждой оценки мощности.

bw = powerbw(___,freqrange,r) задает интервал частоты, по которому вычисляется опорный уровень. Этот синтаксис может включать любую комбинацию входных аргументов из предыдущих синтаксисов, если второй входной аргумент либо fs или f. Если второй вход пропускается как пустой, предполагается нормированная частота. freqrange должен находиться в пределах целевой полосы.

Если также указать r, функция вычисляет разность частот между точками, где спектр падает ниже опорного уровня на r dB или достигает конечной точки.

пример

[bw,flo,fhi,power] = powerbw(___) также возвращает нижнюю и верхнюю границы полосы пропускания мощности и мощность в пределах этих границ.

powerbw(___) без выходных аргументов отображает PSD или спектр мощности в окне текущего рисунка и аннотирует полосу пропускания.

Примеры

свернуть все

Генерируют 1024 выборки чирпа, дискретизированные на частоте 1024 кГц. Чирп имеет начальную частоту 50 кГц и достигает 100 кГц в конце выборки. Добавьте белый гауссов шум, чтобы отношение сигнал/шум было 40 дБ.

nSamp = 1024;
Fs = 1024e3;
SNR = 40;

t = (0:nSamp-1)'/Fs;

x = chirp(t,50e3,nSamp/Fs,100e3);
x = x + randn(size(x))*std(x)/db2mag(SNR);

Оцените 3-dB полосу пропускания сигнала и аннотируйте его на графике спектральной плотности мощности (PSD).

powerbw(x,Fs)

Figure contains an axes. The axes with title 3 dB Bandwidth: 44.386 kHz contains 4 objects of type line, patch.

ans = 4.4386e+04

Создайте еще одну чирп. Укажите начальную частоту 200 кГц, конечную частоту 300 кГц и амплитуду, в два раза превышающую амплитуду первого сигнала. Добавьте белый гауссов шум.

x2 = 2*chirp(t,200e3,nSamp/Fs,300e3);
x2 = x2 + randn(size(x2))*std(x2)/db2mag(SNR);

Соедините чирпы, чтобы создать двухканальный сигнал. Оцените 3-dB полосу пропускания каждого канала.

y = powerbw([x x2],Fs)
y = 1×2
104 ×

    4.4386    9.2208

Аннотирование 3-dB полос пропускания двух каналов на графике PSD.

powerbw([x x2],Fs);

Figure contains an axes. The axes with title 3 dB Bandwidth contains 8 objects of type line, patch.

Добавьте два канала для формирования нового сигнала. Постройте график PSD и аннотируйте полосу пропускания 3-dB.

powerbw(x+x2,Fs)

Figure contains an axes. The axes with title 3 dB Bandwidth: 92.243 kHz contains 4 objects of type line, patch.

ans = 9.2243e+04

Генерация 1024 выборок синусоиды 100,123 кГц, отобранных на частоте 1024 кГц. Добавьте белый гауссов шум, чтобы отношение сигнал/шум было 40 дБ. Сбросьте генератор случайных чисел для воспроизводимых результатов.

nSamp = 1024;
Fs = 1024e3;
SNR = 40;
rng default

t = (0:nSamp-1)'/Fs;

x = sin(2*pi*t*100.123e3);
x = x + randn(size(x))*std(x)/db2mag(SNR);

Используйте periodogram функция для вычисления спектральной плотности мощности (PSD) сигнала. Укажите окно Кайзера с той же длиной, что и сигнал, и коэффициентом формы 38. Оцените 3-dB полосу пропускания сигнала и аннотируйте его на графике PSD.

[Pxx,f] = periodogram(x,kaiser(nSamp,38),[],Fs);

powerbw(Pxx,f);

Figure contains an axes. The axes with title 3 dB Bandwidth: 3.175 kHz contains 4 objects of type line, patch.

Генерируйте другую синусоиду, эту с частотой 257,321 кГц и амплитудой, в два раза превышающей амплитуду первой синусоиды. Добавьте белый гауссов шум.

x2 = 2*sin(2*pi*t*257.321e3);
x2 = x2 + randn(size(x2))*std(x2)/db2mag(SNR);

Соединяют синусоиды для получения двухканального сигнала. Оцените PSD каждого канала и используйте результат для определения полосы пропускания 3-dB.

[Pyy,f] = periodogram([x x2],kaiser(nSamp,38),[],Fs);

y = powerbw(Pyy,f)
y = 1×2
103 ×

    3.1753    3.3015

Аннотирование 3-dB полос пропускания двух каналов на графике PSD.

powerbw(Pyy,f);

Figure contains an axes. The axes with title 3 dB Bandwidth contains 8 objects of type line, patch.

Добавьте два канала для формирования нового сигнала. Оцените PSD и аннотируйте полосу пропускания 3-dB.

[Pzz,f] = periodogram(x+x2,kaiser(nSamp,38),[],Fs);

powerbw(Pzz,f);

Figure contains an axes. The axes with title 3 dB Bandwidth: 3.302 kHz contains 4 objects of type line, patch.

Создайте сигнал, PSD которого напоминает частотную характеристику полосового FIR-фильтра 88-го порядка с нормированными частотами отсечения 0.25δ рад/выборка и 0.45δ рад/выборка.

d = fir1(88,[0.25 0.45]);

Вычислите 3-dB занимаемую полосу пропускания сигнала. Укажите в качестве опорного уровня среднюю мощность в полосе от 0,2δ рад/образец до 0,6δ рад/образец. Постройте график PSD и аннотируйте полосу пропускания.

powerbw(d,[],[0.2 0.6]*pi,3);

Figure contains an axes. The axes with title 3 dB Bandwidth: 200.421 \times \pi mrad/sample contains 4 objects of type line, patch.

Вывод полосы пропускания, ее нижней и верхней границ и мощности полосы. Задание частоты дискретизации в 2δ эквивалентно тому, чтобы оставить скорость неснятой.

[bw,flo,fhi,power] = powerbw(d,2*pi,[0.2 0.6]*pi);

fprintf('bw = %.3f*pi, flo = %.3f*pi, fhi = %.3f*pi \n', ...
    [bw flo fhi]/pi)
bw = 0.200*pi, flo = 0.250*pi, fhi = 0.450*pi 
fprintf('power = %.1f%% of total',power/bandpower(d)*100)
power = 96.9% of total

Добавьте второй канал с нормализованными частотами отсечения 0.5δ рад/выборка и 0.8δ рад/выборка и амплитудой, которая равна одной десятой амплитуды первого канала.

d = [d;fir1(88,[0.5 0.8])/10]';

Вычислите 6-dB полосу пропускания двухканального сигнала. Укажите в качестве опорного уровня максимальный уровень мощности спектра.

powerbw(d,[],[],6);

Figure contains an axes. The axes with title 6 dB Bandwidth contains 8 objects of type line, patch.

Вывод 6-dB полосы пропускания каждого канала и нижней и верхней границ.

[bw,flo,fhi] = powerbw(d,[],[],6);
bds = [bw;flo;fhi];

fprintf('One: bw = %.3f*pi, flo = %.3f*pi, fhi = %.3f*pi \n',bds(:,1)/pi)
One: bw = 0.198*pi, flo = 0.252*pi, fhi = 0.450*pi 
fprintf('Two: bw = %.3f*pi, flo = %.3f*pi, fhi = %.3f*pi \n',bds(:,2)/pi)
Two: bw = 0.294*pi, flo = 0.503*pi, fhi = 0.797*pi 

Входные аргументы

свернуть все

Входной сигнал, заданный как вектор или матрица. Если x является вектором, он обрабатывается как один канал. Если x является матрицей, то powerbw вычисляет полосу пропускания мощности независимо для каждого столбца. x должен иметь конечное значение.

Пример: cos(pi/4*(0:159))+randn(1,160) - одноканальный строково-векторный сигнал.

Пример: cos(pi./[4;2]*(0:159))'+randn(160,2) является двухканальным сигналом.

Типы данных: single | double

Частота выборки, заданная как положительный действительный скаляр. Частота выборки - это количество выборок в единицу времени. Если время измеряется в секундах, то частота выборки составляет в герцах.

Типы данных: single | double

Оценка спектральной плотности мощности (PSD), заданная как вектор или матрица. Если pxx является односторонней оценкой, то она должна соответствовать реальному сигналу. Если pxx является матрицей, то powerbw вычисляет пропускную способность каждого столбца pxx независимо.

Спектральная плотность мощности должна быть выражена в линейных единицах, а не децибелах. Использовать db2pow для преобразования децибел в значения мощности.

Пример: [pxx,f] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2)) определяет оценку пародограммы PSD шумной двухканальной синусоиды, дискретизированной при 2δ Гц, и частоты, на которых она вычисляется.

Типы данных: single | double

Частоты, заданные как вектор. Если первый элемент f равно 0, то powerbw предполагает, что спектр является односторонним спектром реального сигнала. Другими словами, функция удваивает значение мощности в блоке с нулевой частотой при поиске точки 3-dB.

Типы данных: single | double

Оценка спектра мощности, заданная как вектор или матрица. Если sxx является матрицей, то obw вычисляет пропускную способность каждого столбца sxx независимо.

Спектр мощности должен быть выражен в линейных единицах, а не децибелах. Использовать db2pow для преобразования децибел в значения мощности.

Пример: [sxx,w] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2),'power') задает оценку спектра мощности периодограммы двухканальной синусоиды, внедренной в белый гауссов шум, и нормированные частоты, на которых она вычисляется.

Типы данных: single | double

Пропускная способность разрешения, заданная как положительный скаляр. Полоса пропускания разрешения является произведением двух значений: частотного разрешения дискретного преобразования Фурье и эквивалентной полосы пропускания шума окна, используемого для вычисления PSD.

Типы данных: single | double

Частотный диапазон, определяемый как двухэлементный вектор вещественных значений. При указании freqrangeтогда опорный уровень является средним уровнем мощности в опорной полосе. Если не указать freqrange, то опорный уровень - это максимальный уровень мощности спектра.

Типы данных: single | double

Падение уровня мощности, определяемое как положительный действительный скаляр, выраженный в дБ.

Типы данных: single | double

Выходные аргументы

свернуть все

Пропускная способность мощности, возвращаемая как скаляр или вектор.

  • Если вы указываете частоту выборки, то bw имеет те же единицы, что и fs.

  • Если частота выборки не указана, то bw содержит единицы рад/образец.

Частотные границы полосы пропускания, возвращаемые в виде скаляров.

Мощность, хранимая в полосе пропускания, возвращаемая как скаляр или вектор.

Алгоритмы

Для определения пропускной способности 3-dB, powerbw вычисляет оценку спектра мощности периодограммы с использованием прямоугольного окна и принимает максимум оценки в качестве опорного уровня. Полоса пропускания представляет собой разность частот между точками, в которых спектр падает, по меньшей мере, на 3 дБ ниже опорного уровня. Если сигнал достигает одной из своих конечных точек перед падением на 3 дБ, то powerbw использует конечную точку для вычисления разницы.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

| | | |

Представлен в R2015a