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 дБ или достигает конечной точки.

пример

[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 которого напоминает частотную характеристику полосно-пропускающей конечной импульсной характеристики 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++ с помощью Coder™ MATLAB ®

.

См. также

| | | |

Введенный в R2015a