powerbw

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

Описание

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

пример

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

пример

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

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

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

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

пример

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

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

Примеры

свернуть все

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

powerbw(x,Fs)

Figure contains an axes object. The axes object 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 дБ каждого канала.

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

    4.4386    9.2208

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

powerbw([x x2],Fs);

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

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

powerbw(x+x2,Fs)

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

ans = 9.2243e+04

Сгенерируйте 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. Оцените полосу пропускания на 3 дБ сигнала и аннотируйте его на графике PSD.

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

powerbw(Pxx,f);

Figure contains an axes object. The axes object 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 дБ.

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

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

    3.1753    3.3015

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

powerbw(Pyy,f);

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

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

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

powerbw(Pzz,f);

Figure contains an axes object. The axes object 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 дБ сигнала. Задайте как контрольный уровень средняя степень в полосе между 0.2π рад/отсчет и 0.6π рад/отсчет. Постройте PSD и аннотируйте полосу пропускания.

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

Figure contains an axes object. The axes object with title 3 blank d B blank B a n d w i d t h : blank 2 0 0 . 4 2 1 blank times blank pi blank m r a d / s a m p l e 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 дБ двухканального сигнала. Задайте как контрольный уровень уровень максимальной мощности спектра.

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

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

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

[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 дБ.

Типы данных: 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 дБ, powerbw вычисляет оценку спектра мощности периодограммы с помощью прямоугольного окна и берет максимум оценки как контрольный уровень. Полоса пропускания является различием в частоте между точками, где спектр понижается на по крайней мере 3 дБ ниже контрольного уровня. Если сигнал достигает одной из своих конечных точек прежде, чем понизиться на 3 дБ, то powerbw использует конечную точку, чтобы вычислить различие.

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

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

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

| | | |

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