bandpower

Синтаксис

p = bandpower(x)
p = bandpower(x,fs,freqrange)
p = bandpower(pxx,f,'psd')
p = bandpower(pxx,f,freqrange,'psd')

Описание

пример

p = bandpower(x) возвращает среднюю степень во входном сигнале, x. Если x является матрицей, то bandpower вычисляет среднюю степень в каждом столбце независимо.

пример

p = bandpower(x,fs,freqrange) возвращает среднюю степень в частотном диапазоне, freqrange, заданном как двухэлементный вектор. Необходимо ввести частоту дискретизации, fs, чтобы возвратить степень в заданном частотном диапазоне. bandpower использует измененную периодограмму, чтобы определить среднюю степень в freqrange.

пример

p = bandpower(pxx,f,'psd') возвращает среднюю степень, вычисленную путем интеграции оценки степени спектральной плотности (PSD), pxx. Интеграл аппроксимирован прямоугольным методом. Вход, f, является вектором частот, соответствующих оценкам PSD в pxx. Опция 'psd' указывает, что вход является оценкой PSD и не данными временных рядов.

пример

p = bandpower(pxx,f,freqrange,'psd') возвращает среднюю степень, содержавшуюся в интервале частоты, freqrange. Если частоты в freqrange не совпадают со значениями в f, самые близкие значения используются. Средняя степень вычисляется путем интеграции оценки степени спектральной плотности (PSD), pxx. Интеграл аппроксимирован прямоугольным методом. Опция 'psd' указывает, что вход является оценкой PSD и не данными временных рядов.

Примеры

свернуть все

Создайте сигнал, состоящий из синусоиды на 100 Гц в дополнении N (0,1) белый Гауссов шум. Частота дискретизации составляет 1 кГц. Определите среднюю степень и сравните ее с 2 норма.

t = 0:0.001:1-0.001;
x = cos(2*pi*100*t)+randn(size(t));

p = bandpower(x)
p = 1.5264
l2norm = norm(x,2)^2/numel(x)
l2norm = 1.5264

Определите процент общей степени в заданном интервале частоты.

Создайте сигнал, состоящий из синусоиды на 100 Гц в дополнении N (0,1) белый Гауссов шум. Частота дискретизации составляет 1 кГц. Определите процент общей степени в интервале частоты между 50 Гц и 150 Гц. Сбросьте генератор случайных чисел для восстанавливаемых результатов.

rng('default')

t = 0:0.001:1-0.001;
x = cos(2*pi*100*t)+randn(size(t));

pband = bandpower(x,1000,[50 150]);
ptot = bandpower(x,1000,[0 500]);
per_power = 100*(pband/ptot)
per_power = 51.9591

Определите среднюю степень первым вычислением оценки PSD с помощью периодограммы. Введите оценку PSD к bandpower.

Создайте сигнал, состоящий из синусоиды на 100 Гц в дополнении N (0,1) белый Гауссов шум. Частота дискретизации составляет 1 кГц. Получите периодограмму и используйте флаг 'psd', чтобы вычислить среднюю степень с помощью оценки PSD. Сравните результат со средней степенью, вычисленной во временном интервале.

t = 0:0.001:1-0.001;
Fs = 1000;
x = cos(2*pi*100*t)+randn(size(t));

[Pxx,F] = periodogram(x,rectwin(length(x)),length(x),Fs);
p = bandpower(Pxx,F,'psd')
p = 1.5264
avpow = norm(x,2)^2/numel(x)
avpow = 1.5264

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

Создайте сигнал, состоящий из синусоиды на 100 Гц в дополнении N (0,1) белый Гауссов шум. Частота дискретизации составляет 1 кГц. Получите периодограмму и соответствующий вектор частоты. Используя оценку PSD, определите процент общей степени в интервале частоты между 50 Гц и 150 Гц.

Fs = 1000;
t = 0:1/Fs:1-0.001;
x = cos(2*pi*100*t)+randn(size(t));

[Pxx,F] = periodogram(x,rectwin(length(x)),length(x),Fs);
pband = bandpower(Pxx,F,[50 100],'psd');
ptot = bandpower(Pxx,F,'psd');
per_power = 100*(pband/ptot)
per_power = 42.0767

Создайте многоканальный сигнал, состоящий из трех синусоид в дополнении N (0,1) белый Гауссов шум. Частоты синусоид составляют 100 Гц, 200 Гц и 300 Гц. Частота дискретизации составляет 1 кГц, и сигнал имеет длительность 1 с.

Fs = 1000;

t = 0:1/Fs:1-1/Fs;

f = [100;200;300];

x = cos(2*pi*f*t)'+randn(length(t),3);

Определите среднюю степень сигнала и сравните его с 2 норма.

p = bandpower(x)
p = 1×3

    1.5264    1.5382    1.4717

l2norm = dot(x,x)/length(x)
l2norm = 1×3

    1.5264    1.5382    1.4717

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

свернуть все

Введите данные временных рядов, заданные как строка или вектор-столбец или как матрица. Если x является матрицей, то ее столбцы обработаны как независимые каналы.

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

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

Типы данных: double | single
Поддержка комплексного числа: Да

Частота дискретизации для входных данных временных рядов, заданных как положительная скалярная величина.

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

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

  • [0, fs/2], если x с действительным знаком и N ровен

  • [0, (N – 1) fs / (2N)], если x с действительным знаком и N нечетен

  • [– (N – 2) fs / (2N), fs/2], если x с комплексным знаком и N ровен

  • [– (N – 1) fs / (2N), (N – 1) fs / (2N)], если x с комплексным знаком и N нечетен

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

Один - или двухсторонние оценки PSD, заданные как вектор-столбец с действительным знаком или матрица с неотрицательными элементами.

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

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

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

Вектор частоты, заданный как вектор-столбец. Вектор частоты, f, содержит частоты, соответствующие оценкам PSD в pxx.

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

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

свернуть все

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

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

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

|

Введенный в R2013a