obw

Занимаемая полоса

Описание

bw = obw(x) возвращает 99% занимаемой полосы, bw, входного сигнала, x.

пример

bw = obw(x,fs) возвращает занимаемую полосу с точки зрения частоты дискретизации, fs.

пример

bw = obw(pxx,f) возвращает 99% занимаемой полосы оценки спектральной плотности степени (PSD), pxx. Частоты, f, соответствуют оценкам в pxx.

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

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

пример

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

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

Примеры

свернуть все

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

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

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

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

Оцените занимаемую полосу сигнала и аннотируйте его на графике степени спектральной плотности (PSD).

obw(x,Fs)

Figure contains an axes. The axes with title 99% Occupied Bandwidth: 55.377 kHz contains 4 objects of type line, patch.

ans = 5.5377e+04

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

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

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

y = obw([x x2],Fs)
y = 1×2
105 ×

    0.5538    1.0546

Аннотируйте занимаемые полосы двух каналов на графике PSD.

obw([x x2],Fs);

Figure contains an axes. The axes with title 99% Occupied Bandwidth contains 8 objects of type line, patch.

Добавьте два канала, чтобы сформировать новый сигнал. Постройте график PSD и аннотируйте занимаемую полосу.

obw(x+x2,Fs);

Figure contains an axes. The axes with title 99% Occupied Bandwidth: 250.015 kHz contains 4 objects of type line, patch.

Сгенерировать 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. Оцените занимаемую полосу сигнала и аннотируйте его на графике PSD.

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

obw(Pxx,f);

Figure contains an axes. The axes with title 99% Occupied Bandwidth: 7.200 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 каждого канала и используйте результат для определения занимаемой полосы.

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

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

    7.2001    7.3777

Аннотируйте занимаемые полосы двух каналов на графике PSD.

obw(Pyy,f);

Figure contains an axes. The axes with title 99% Occupied Bandwidth contains 8 objects of type line, patch.

Добавьте два канала, чтобы сформировать новый сигнал. Оцените PSD и аннотируйте занимаемую полосу.

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

obw(Pzz,f);

Figure contains an axes. The axes with title 99% Occupied Bandwidth: 163.494 kHz contains 4 objects of type line, patch.

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

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

Вычислите 99% занимаемой полосы сигнала между 0.2π рад/образец и 0.6π рад/образец. Постройте график PSD и аннотируйте занимаемую полосу пропускания и интервал измерения.

obw(d,[],[0.2 0.6]*pi);

Figure contains an axes. The axes with title 99% Occupied Bandwidth: 217.416 \times \pi mrad/sample contains 6 objects of type line, patch.

Вывод занимаемой полосы, его нижней и верхней границы и занятых мощностей полосы. Определение частоты дискретизации 2π эквивалентно оставлению ставки отмененной.

[bw,flo,fhi,power] = obw(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.217*pi, flo = 0.240*pi, fhi = 0.458*pi 
fprintf('power = %.1f%% of total',power/bandpower(d)*100)
power = 99.0% of total

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

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

Вычислите 50% занимаемую полосу пропускания сигнала между 0.3π рад/образец и 0.9π рад/образец. Постройте график PSD и аннотируйте занимаемую полосу пропускания и интервал измерения.

obw(d,[],[0.3 0.9]*pi,50);

Figure contains an axes. The axes with title 50% Occupied Bandwidth contains 10 objects of type line, patch.

Вывод занимаемой полосы каждого канала. Разделите на π.

bw = obw(d,[],[0.3 0.9]*pi,50)/pi
bw = 1×2

    0.0705    0.1412

Входные параметры

свернуть все

Входной сигнал, заданный как вектор или матрица. Если x является вектором, он рассматривается как один канал. Если x является матрицей, тогда obw вычисляет занимаемую полосу независимо для каждого столбца. 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 является матрицей, тогда obw вычисляет занимаемую полосу пропускания каждого столбца pxx независимо.

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

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

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

Частоты, заданные как вектор.

Типы данных: 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, затем obw использует всю пропускную способность спектра входного сигнала.

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

Степень процент, заданный как положительная скалярная величина от 0 до 100. obw вычисляет различие частот между точками, где интегрированная степень пересекает ½ ( 100 - p) и ½ ( 100 + p) проценты от общей степени в спектре.

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

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

свернуть все

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

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

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

Ограничения частоты полосы пропускания, возвращенные как скаляры или векторы.

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

Алгоритмы

Чтобы определить занимаемую полосу, obw вычисляет оценку спектральной плотности мощности периодограммой с помощью прямоугольного окна и интегрирует оценку с помощью правила средней точки. Занимаемая полоса пропускания является различием в частоте между точками, где интегрированная степень пересекает 0,5% и 99,5% от общей степени в спектре.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

| | | |

Введенный в R2015a