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 или спектр мощности в окне текущей фигуры и аннотирует пропускную способность.

Примеры

свернуть все

Сгенерируйте 1 024 выборки щебета, произведенного на уровне 1 024 кГц. Щебет имеет начальную частоту 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)

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

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

obw([x x2],Fs);

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

obw(x+x2,Fs);

Сгенерируйте 1 024 выборки синусоиды на 100,123 кГц, произведенной на уровне 1 024 кГц. Добавьте белый Гауссов шум, таким образом, что отношение сигнал-шум составляет 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);

Сгенерируйте другую синусоиду, этого с частотой 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

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

obw(Pyy,f);

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

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

obw(Pzz,f);

Сгенерируйте сигнал, 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);

Выведите занимаемую полосу, ее нижние и верхние границы и занятую мощность полосы. Определение частоты дискретизации 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);

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

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++ с помощью MATLAB® Coder™.

Смотрите также

| | | |

Представленный в R2015a
Для просмотра документации необходимо авторизоваться на сайте