pspectrum

Анализируйте сигналы в частотной и частотно-временной областях

Описание

пример

p = pspectrum(x) возвращает спектр мощности x.

  • Если x вектор или расписание с вектором из данных, затем они обработаны как один канал.

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

пример

p = pspectrum(x,fs) возвращает спектр мощности векторного или матричного сигнала, произведенного на уровне fs.

пример

p = pspectrum(x,t) возвращает спектр мощности векторного или матричного сигнала, произведенного в то время моменты, заданные в t.

p = pspectrum(___,type) задает вид спектрального анализа, выполняемого функцией. Задайте type как 'power', 'spectrogram', или 'persistence'. Этот синтаксис может включать любую комбинацию входных параметров от предыдущих синтаксисов.

пример

p = pspectrum(___,Name,Value) задает аргументы пары "имя-значение" использования дополнительных опций. Опции включают пропускную способность разрешения частоты и перекрытие процента между смежными сегментами.

пример

[p,f] = pspectrum(___) возвращает частоты, соответствующие спектральным оценкам, содержавшимся в p.

пример

[p,f,t] = pspectrum(___,'spectrogram') также возвращается, вектор моментов времени, соответствуя центрам оконных сегментов использовался для расчета кратковременных оценок спектра мощности.

[p,f,pwr] = pspectrum(___,'persistence') также возвращает вектор из значений степени, соответствующих оценкам, содержавшимся в спектре персистентности.

пример

pspectrum(___) без выходных аргументов строит спектральную оценку в окне текущей фигуры. Для графика функция преобразует p к дБ с помощью 10 log10 (p).

Примеры

свернуть все

Сгенерируйте 128 выборок двухканальной комплексной синусоиды.

  • Первый канал имеет модульную амплитуду и нормированную частоту синусоиды π/4 рад/выборка

  • Второй канал имеет амплитуду 1/2и нормированная частота π/2 рад/выборка.

Вычислите спектр мощности каждого канала и постройте его абсолютное значение. Увеличьте масштаб частотного диапазона от 0.15π рад/выборка к 0.6π рад/выборка. pspectrum масштабирует спектр так, чтобы, если содержимое частоты сигнала падает точно в интервале, его амплитуда в том интервале была истинной средней степенью сигнала. Для комплексной экпоненты средняя степень является квадратом амплитуды. Проверьте путем вычисления дискретного преобразования Фурье сигнала. Для получения дополнительной информации смотрите Степень Меры Детерминированных Периодических Сигналов.

N = 128;
x = [1 1/sqrt(2)].*exp(1j*pi./[4;2]*(0:N-1)).';

[p,f] = pspectrum(x);

plot(f/pi,abs(p))
hold on
stem(0:2/N:2-1/N,abs(fft(x)/N).^2)
hold off
axis([0.15 0.6 0 1.1])
legend("Channel 1, pspectrum","Channel 2, pspectrum", ...
    "Channel 1, fft","Channel 2, fft")
grid

Сгенерируйте синусоидальный сигнал, произведенный на уровне 1 кГц для 296 миллисекунд и встроенный в белый Гауссов шум. Задайте частоту синусоиды 200 Гц и шумовое отклонение 0,1 ². Сохраните сигнал и его информацию времени в расписании MATLAB®.

Fs = 1000;
t = (0:1/Fs:0.296)';
x = cos(2*pi*t*200)+0.1*randn(size(t));
xTable = timetable(seconds(t),x);

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

[pxx,f] = pspectrum(xTable);

plot(f,pow2db(pxx))
grid on
xlabel('Frequency (Hz)')
ylabel('Power Spectrum (dB)')
title('Default Frequency Resolution')

Повторно вычислите спектр мощности синусоиды, но теперь используйте более грубое разрешение частоты 25 Гц. Постройте спектр с помощью pspectrum функция без выходных аргументов.

pspectrum(xTable,'FrequencyResolution',25)

Сгенерируйте два сигнала, каждый произведенный на уровне 3 кГц в течение 1 секунды. Первый сигнал является выпуклым квадратичным щебетом, частота которого увеличивается с 300 Гц до 1 300 Гц во время измерения. Щебет встраивается в белый Гауссов шум. Второй сигнал, также встроенный в белый шум, является щебетом с синусоидально различным содержимым частоты.

fs = 3000;
t = 0:1/fs:1-1/fs;

x1 = chirp(t,300,t(end),1300,'quadratic',0,'convex') + ...
    randn(size(t))/100;

x2 = exp(2j*pi*100*cos(2*pi*2*t)) + randn(size(t))/100;

Вычислите и постройте двухсторонний спектр мощности первого сигнала с помощью прямоугольного окна. Для действительных сигналов, pspectrum строит односторонний спектр по умолчанию. Чтобы построить двухсторонний спектр, установите TwoSided к истине.

pspectrum(x1,fs,'Leakage',1,'TwoSided',true)

Вычислите спектрограмму второго сигнала. Для комплексных сигналов спектрограмма является двухсторонней по умолчанию. Отобразите спектрограмму как график водопада.

[p,f,t] = pspectrum(x2,fs,'spectrogram');

waterfall(f,t,p');
xlabel('Frequency (Hz)')
ylabel('Time (seconds)')
wtf = gca;
wtf.XDir = 'reverse';
view([30 45])

Сгенерируйте двухканальный сигнал, произведенный на уровне 100 Гц в течение 2 секунд.

  1. Первый канал состоит из тона на 20 Гц и тона на 21 Гц. Оба тона имеют модульную амплитуду.

  2. Второй канал также имеет два тона. Один тон имеет модульную амплитуду и частоту 20 Гц. Другой тон имеет амплитуду 1/100 и частоту 30 Гц.

fs = 100;
t = (0:1/fs:2-1/fs)';

x = sin(2*pi*[20 20].*t) + [1 1/100].*sin(2*pi*[21 30].*t);

Встройте сигнал в белый шум. Задайте отношение сигнал-шум 40 дБ. Постройте сигналы.

x = x + randn(size(x)).*std(x)/db2mag(40);

plot(t,x)

Вычислите спектры двух каналов и отобразите их.

pspectrum(x,t)

Значение по умолчанию для спектральной утечки, 0.5, соответствует пропускной способности разрешения приблизительно 1,29 Гц. Два тона в первом канале не разрешены. Тон на 30 Гц во втором канале отображается, несмотря на то, чтобы быть намного более слабым, чем другой.

Увеличьте утечку до 0,85, эквивалентный разрешению приблизительно 0,74 Гц. Слабый тон во втором канале ясно отображается.

pspectrum(x,t,'Leakage',0.85)

Увеличьте утечку до максимального значения. Пропускная способность разрешения составляет приблизительно 0,5 Гц. Два тона в первом канале разрешены. Слабый тон во втором канале маскируется большими боковыми лепестками окна.

pspectrum(x,t,'Leakage',1)

Визуализируйте интерференционный узкополосный сигнал, встроенный в широкополосном сигнале.

Сгенерируйте щебет, произведенный на уровне 1 кГц в течение 500 секунд. Частота щебета увеличивается с 180 Гц до 220 Гц во время измерения.

fs = 1000;
t = (0:1/fs:500)';

x = chirp(t,180,t(end),220) + 0.15*randn(size(t));

Сигнал также содержит синусоиду на 210 Гц. Синусоида имеет амплитуду 0,05 и присутствует только для 1/6 общей длительности сигнала.

idx = floor(length(x)/6);
x(1:idx) = x(1:idx) + 0.05*cos(2*pi*t(1:idx)*210);

Вычислите спектрограмму сигнала. Ограничьте частотный диапазон от 100 Гц до 290 Гц. Задайте разрешение времени 1 секунды. Оба компонента сигнала отображаются.

pspectrum(x,fs,'spectrogram', ...
    'FrequencyLimits',[100 290],'TimeResolution',1)

Вычислите спектр мощности сигнала. Слабая синусоида затенена щебетом.

pspectrum(x,fs,'FrequencyLimits',[100 290])

Вычислите спектр персистентности сигнала. Теперь оба компонента сигнала ясно отображаются.

pspectrum(x,fs,'persistence', ...
    'FrequencyLimits',[100 290],'TimeResolution',1)

Сгенерируйте квадратичный щебет, произведенный на уровне 1 кГц в течение 2 секунд. Щебет имеет начальную частоту 100 Гц, которая увеличивается до 200 Гц в t = 1 секунда. Вычислите спектрограмму с помощью настроек по умолчанию pspectrum функция.

fs = 1e3;
t = 0:1/fs:2;
y = chirp(t,100,1,200,'quadratic');

[sp,fp,tp] = pspectrum(y,fs,'spectrogram');

mesh(tp,fp,sp)
view(-15,60)
xlabel('Time (s)')
ylabel('Frequency (Hz)')

Вычислите переприсвоенную спектрограмму. Задайте разрешение частоты 10 Гц. Визуализируйте результат с помощью pspectrum функция без выходных аргументов.

pspectrum(y,fs,'spectrogram','FrequencyResolution',10,'Reassign',true)

Повторно вычислите спектрограмму с помощью разрешения времени 0,2 секунд.

pspectrum(y,fs,'spectrogram','TimeResolution',0.2)

Вычислите переприсвоенную спектрограмму с помощью того же разрешения времени.

pspectrum(y,fs,'spectrogram','TimeResolution',0.2,'Reassign',true)

Создайте сигнал, произведенный на уровне 4 кГц, который напоминает нажатие всех клавиш цифрового телефона. Сохраните сигнал как расписание MATLAB®.

fs = 4e3;
t = 0:1/fs:0.5-1/fs;

ver = [697 770 852 941];
hor = [1209 1336 1477];

tones = [];

for k = 1:length(ver)
    for l = 1:length(hor)
        tone = sum(sin(2*pi*[ver(k);hor(l)].*t))';
        tones = [tones;tone;zeros(size(tone))];
    end
end

% To hear, type soundsc(tones,fs)

S = timetable(seconds(0:length(tones)-1)'/fs,tones);

Вычислите спектрограмму сигнала. Задайте разрешение времени 0,5 вторых и нулевых перекрытий между смежными сегментами. Задайте утечку как 0,85, который приблизительно эквивалентен работе с окнами данные с окном Hann.

pspectrum(S,'spectrogram', ...
    'TimeResolution',0.5,'OverlapPercent',0,'Leakage',0.85)

Спектрограмма показывает, что у каждого ключа требуют в течение половины секунды с полувторыми тихими паузами между ключами. Первый тон имеет сконцентрированные приблизительно 697 Гц и 1 209 Гц содержимого частоты, соответствуя цифре '1' в стандарте DTMF.

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

свернуть все

Входной сигнал в виде вектора, матрицы или MATLAB® timetable.

  • Если x расписание, затем оно должно содержать увеличивающиеся конечные времена строки.

    Примечание

    Если расписание имеет пропавших без вести или дублирующиеся моменты времени, можно зафиксировать его с помощью советов в Чистом Расписании с Пропавшими без вести, Копией, или Неоднородные Времена.

  • Если x расписание, представляющее многоканальный сигнал, затем это должно иметь или одну переменную, содержащую матрицу или несколько переменных, состоящих из векторов.

Если x неоднородно производится, затем pspectrum интерполирует сигнал к регулярной координатной сетке, чтобы вычислить спектральные оценки. Функция использует линейную интерполяцию и принимает шаг расчета, равный медиане различий между смежными моментами времени. Для неоднородно выбранного сигнала, который поддерживается должны выполняться медиана временного интервала и средний временной интервал

1100<  Медиана временного интервалаСредний  временной интервал<100.

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

Пример: timetable(seconds(0:4)',rand(5,2)) задает двухканальную случайную переменную, произведенную на уровне 1 Гц в течение 4 секунд.

Пример: timetable(seconds(0:4)',rand(5,1),rand(5,1)) задает двухканальную случайную переменную, произведенную на уровне 1 Гц в течение 4 секунд.

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

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

Временные стоимости в виде вектора, a datetime или duration массив или a duration скаляр, представляющий временной интервал между выборками.

Пример: seconds(0:1/100:1) isa duration массив, представляющий 1 секунду выборки на уровне 100 Гц.

Пример: seconds(1) isa duration скаляр, представляющий различие с 1 вторым разом между последовательными выборками сигнала.

Тип спектра, чтобы вычислить в виде 'power', 'spectrogram', или 'persistence':

  • 'power' — Вычислите спектр мощности входа. Используйте эту опцию, чтобы анализировать содержимое частоты стационарного сигнала. Для получения дополнительной информации, Расчет Спектра.

  • 'spectrogram' — Вычислите спектрограмму входа. Используйте эту опцию, чтобы анализировать, как содержимое частоты сигнала изменяется в зависимости от времени. Для получения дополнительной информации смотрите Расчет Спектрограммы.

  • 'persistence' — Вычислите спектр мощности персистентности входа. Используйте эту опцию, чтобы визуализировать часть времени, когда конкретная частотная составляющая присутствует в сигнале. Для получения дополнительной информации смотрите Расчет Спектра Персистентности.

Примечание

'spectrogram' и 'persistence' опции не поддерживают многоканальный вход.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Leakage',1,'Reassigned',true,'MinThreshold',-35 окна данные с помощью прямоугольного окна, вычисляют переприсвоенную оценку спектра и устанавливают все значения, меньшие, чем-35 дБ, чтобы обнулить.

Диапазон частот ограничивает в виде разделенной запятой пары, состоящей из 'FrequencyLimits' и двухэлементный числовой вектор:

  • Если вход содержит информацию времени, то диапазон частот описывается в Гц.

  • Если вход не содержит информацию времени, то диапазон частот описывается в нормированных единицах рад/выборки.

По умолчанию, pspectrum вычисляет спектр в целой области значений Найквиста:

  • Если заданный диапазон частот содержит область, которая выходит за пределы области значений Найквиста, то pspectrum обрезает диапазон частот.

  • Если заданный диапазон частот находится полностью за пределами области значений Найквиста, то pspectrum выдает ошибку.

Смотрите Расчет Спектра для получения дополнительной информации об области значений Найквиста.

Если x неоднородно производится, затем pspectrum линейно интерполирует сигнал к регулярной координатной сетке и задает эффективную частоту дискретизации, равную инверсии медианы различий между смежными моментами времени. Специальный 'FrequencyLimits' в терминах эффективной частоты дискретизации.

Пример: [0.2*pi 0.7*pi] вычисляет спектр сигнала без информации времени от 0.2π к 0.7π рад/выборка.

Пропускная способность разрешения частоты в виде разделенной запятой пары, состоящей из 'FrequencyResolution' и действительный числовой скаляр, описанный в Гц, если вход содержит информацию времени, или в нормированных единицах рад/выборки если нет. Этот аргумент не может быть задан одновременно с 'TimeResolution'. Значение по умолчанию этого аргумента зависит от размера входных данных. Смотрите Расчет Спектрограммы для деталей.

Пример: pi/100 вычисляет спектр сигнала без информации времени с разрешением частоты π/100 рад/выборка.

Спектральная утечка в виде разделенной запятой пары, состоящей из 'Leakage' и действительный числовой скаляр между 0 и 1. 'Leakage' управляет затуханием бокового лепестка окна Кайзера относительно mainlobe ширины, идущей на компромисс между улучшающимся разрешением и уменьшающей утечку:

  • Большое значение утечки разрешает близко расположенные тоны, но маски соседние слабые тоны.

  • Маленькое значение утечки находит маленькие тоны около больших тонов, но порочит близкие частоты вместе.

Пример: 'Leakage',0 уменьшает утечку до минимума за счет спектрального разрешения.

Пример: 'Leakage',0.85 аппроксимирует работу с окнами данные окном Hann.

Пример: 'Leakage',1 эквивалентно работе с окнами данные с прямоугольным окном, максимизируя утечку, но улучшая спектральное разрешение.

Нижняя граница для ненулевых значений в виде разделенной запятой пары, состоящей из 'MinThreshold' и действительный скаляр. pspectrum реализации 'MinThreshold' по-другому на основе значения type аргумент:

  • 'power' или 'spectrogram'pspectrum наборы те элементы p таким образом, что 10 log10 (p) ≤ 'MinThreshold' обнулять. Задайте 'MinThreshold' в децибелах.

  • 'persistence'pspectrum наборы те элементы p меньший, чем 'MinThreshold' обнулять. Задайте 'MinThreshold' между 0 и 100%.

Количество интервалов степени для спектра персистентности в виде разделенной запятой пары, состоящей из 'NumPowerBins' и целое число между 20 и 1024.

Перекройтесь между смежными сегментами для спектрограммы или спектра персистентности в виде разделенной запятой пары, состоящей из 'OverlapPercent' и действительный скаляр в интервале [0, 100). Значение по умолчанию этого аргумента зависит от спектрального окна. Смотрите Расчет Спектрограммы для деталей.

Опция переназначения в виде разделенной запятой пары, состоящей из 'Reassign' и логическое значение. Если эта опция установлена в trueто pspectrum увеличивает резкость локализации спектральных оценок путем выполнения переназначения частоты и времени. Метод переназначения производит периодограммы и спектрограммы, которые легче считать и интерпретировать. Этот метод повторно присваивает каждую спектральную оценку центру энергии его интервала вместо геометрического центра интервала. Метод обеспечивает точную локализацию для щебетов и импульсов.

Разрешение времени спектрограммы или спектра персистентности в виде разделенной запятой пары, состоящей из 'TimeResolution' и действительный скаляр, описанный в секундах, если вход содержит информацию времени, или как целое число выборок если нет. Эти средства управления аргументом длительность сегментов использовалась для расчета кратковременных спектров мощности, которые формируют спектрограмму или оценки спектра персистентности. 'TimeResolution' не может быть задан одновременно с 'FrequencyResolution'. Значение по умолчанию этого аргумента зависит от размера входных данных и, если это было задано, разрешение частоты. Смотрите Расчет Спектрограммы для деталей.

Двухсторонняя спектральная оценка в виде разделенной запятой пары, состоящей из 'TwoSided' и логическое значение.

  • Если этой опцией является true, функция вычисляет сосредоточенные, двухсторонние оценки спектра по [–π, π]. Если вход имеет информацию времени, оценки вычисляются по [–fs/2, f s/2], где f s является эффективной частотой дискретизации.

  • Если этой опцией является false, функция вычисляет односторонние оценки спектра в области значений Найквиста [0, π]. Если вход имеет информацию времени, оценки вычисляются по [0, f s/2], где f s является эффективной частотой дискретизации. Сохранить общую степень, функциональные множители степень 2 на всех частотах кроме 0 и частоте Найквиста. Эта опция допустима только для действительных сигналов.

Если не заданный, 'TwoSided' значения по умолчанию к false для действительных входных сигналов и к true для комплексных входных сигналов.

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

свернуть все

Спектр, возвращенный как вектор или матрица. Тип и размер спектра зависят от значения type аргумент:

  • 'power' P содержит оценку спектра мощности каждого канала x. В этом случае, p имеет размер N f × N ch, где N f является длиной f и N ch является количеством каналов x. pspectrum масштабирует спектр так, чтобы, если содержимое частоты сигнала падает точно в интервале, его амплитуда в том интервале была истинной средней степенью сигнала. Например, средняя степень синусоиды является половиной квадрата амплитуды синусоиды. Для получения дополнительной информации смотрите Степень Меры Детерминированных Периодических Сигналов.

  • 'spectrogram' P содержит оценку краткосрочного, локализованного временем спектра мощности x. В этом случае, p имеет размер N f × N t, где N f является длиной f и N t является длиной t.

  • 'persistence' P содержит, описанный как проценты, вероятности, что сигнал имеет компоненты данного уровня мощности в установленный срок и местоположения частоты. В этом случае, p имеет размер мощность N  × N f, где мощность N является длиной pwr и N f является длиной f.

Частоты спектра, возвращенные как вектор. Если входной сигнал содержит информацию времени, то f содержит частоты, описанные в Гц. Если входной сигнал не содержит информацию времени, то частоты находятся в нормированных единицах рад/выборки.

Временные стоимости спектрограммы, возвращенной как вектор из временных стоимостей в секундах или a duration массив. Если вход не имеет информации времени, то t содержит демонстрационные числа. t содержит временные стоимости, соответствующие центрам использованных для расчета кратковременных оценок спектра мощности сегментов данных.

  • Если вход к pspectrum расписание, затем t имеет тот же формат как временные стоимости входного расписания.

  • Если вход к pspectrum числовой вектор, произведенный в наборе моментов времени, заданных числовым, duration, или datetime массив, затем t имеет тот же тип и формат как входные временные стоимости.

  • Если вход к pspectrum числовой вектор с различием требуемого времени между последовательными выборками, затем t isa duration массив.

Значения степени спектра персистентности, возвращенного как вектор.

Больше о

свернуть все

Расчет спектра

Вычислить спектры сигнала, pspectrum находит компромисс между спектральным разрешением достижимым с целой длиной сигнала и ограничениями эффективности, которые следуют из вычисления больших БПФ:

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

  • Если не возможно вычислить одну модифицированную периодограмму за разумное количество времени, функция вычисляет валлийскую периодограмму: Это делит сигнал на перекрывающиеся сегменты, окна каждый сегмент с помощью окна Кайзера, и составляет в среднем периодограммы сегментов.

Спектральная работа с окнами

Любой реальный сигнал измерим только в течение конечного отрезка времени. Этот факт вводит ненезначительные эффекты в анализ Фурье, который принимает, что сигналы являются или периодическими или бесконечно длинными. Spectral windowing, который присваивает различные веса различным выборкам сигнала, систематически имеет дело с конечными размерными эффектами.

Самый простой путь к окну, сигнал состоит в том, чтобы принять, что это является тождественно нулевым за пределами интервала измерения и что все выборки являются одинаково значительными. Это "прямоугольное окно" имеет прерывистые скачки в обоих концах, которые приводят к спектральному вызову. Все другие спектральные окна заостряются в обоих концах, чтобы уменьшить этот эффект путем присвоения меньших весов выборкам близко к ребрам сигнала.

Процесс работы с окнами всегда включает компромисс между конфликтными целями: улучшение разрешения и уменьшение утечки:

  • Resolution является способностью знать точно, как энергия сигнала распределяется в пространстве частоты. Спектр анализатор с идеальным разрешением может отличить два различных тона (чистые синусоиды) существующий в сигнале, неважно, как близко в частоте. Количественно, эта способность относится к mainlobe ширине преобразования окна.

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

  • Спектр нормирован так, чтобы чистый тон в той пропускной способности, если отлично сосредоточено, имел правильную амплитуду.

Чем лучше разрешение, тем выше утечка, и наоборот. В одном конце области значений прямоугольное окно имеет самый узкий mainlobe и самые высокие боковые лепестки. Это окно может разрешить близко расположенные тоны, если у них есть подобное энергетическое содержимое, но этому не удается найти более слабое, если они не делают. С другой стороны, окно с высоким подавлением бокового лепестка имеет широкий mainlobe, в котором близкие частоты порочат вместе.

pspectrum окна Кайзера использования, чтобы выполнить работу с окнами. Для окон Кайзера часть энергии сигнала, полученной mainlobe, зависит самое главное от корректируемого shape factor, β. pspectrum масштабные факторы использования в пределах от β = 0, который соответствует прямоугольному окну к β = 40, где широкий mainlobe получает по существу всю спектральную энергию, представимую в двойной точности. Промежуточное значение β ≈ 6 аппроксимирует окно Hann вполне тесно. Чтобы управлять β, используйте 'Leakage' пара "имя-значение". Если вы устанавливаете 'Leakage' к затем и β связаны β = 40 (1 – ). Смотрите kaiser для получения дополнительной информации.

Окно Hann с 51 точкой и окно Кайзера с 51 точкой с β = 5.7 во временном интервалеОкно Hann с 51 точкой и окно Кайзера с 51 точкой с β = 5.7 в частотном диапазоне

Параметр и выбор алгоритма

Вычислить спектры сигнала, pspectrum первоначально определяет resolution bandwidth, который измеряется, как близко два тона могут быть и все еще быть разрешены. Пропускная способность разрешения имеет теоретическое значение

RBWtheory=ENBWtmaxtmin.

  • t макс. – min t, record length, является длительностью временного интервала выбранной области сигнала.

  • ENBW является equivalent noise bandwidth спектрального окна. Смотрите enbw для получения дополнительной информации.

    Используйте 'Leakage' пара "имя-значение", чтобы управлять ENBW. Минимальное значение аргумента соответствует окну Кайзера с β = 40. Максимальное значение соответствует окну Кайзера с β = 0.

На практике, однако, pspectrum может понизить разрешение. Понижение разрешения позволяет вычислить спектр за разумное количество времени и отобразить его с конечным числом пикселей. По этим практическим причинам, самой низкой пропускной способности разрешения pspectrum может использовать

RBWperformance=4×fspan40961,

где промежуток f является шириной диапазона частот, заданного с помощью 'FrequencyLimits'. Если 'FrequencyLimits' не задан, затем pspectrum использует частоту дискретизации в качестве промежутка f. RBWperformance не может быть настроен.

Чтобы вычислить спектр сигнала, функция выбирает большие из этих двух значений, названных target resolution bandwidth:

RBW=max(RBWтеория,RBWпроизводительность).

  • Если пропускная способность разрешения является RBWtheory, то pspectrum вычисляет один modified periodogram для целого сигнала. Функция использует окно Кайзера с масштабным фактором, которым управляет 'Leakage' пара "имя-значение" и применяет дополнение нуля, когда ограничения по времени на осях превышают длительность сигнала. Смотрите periodogram для получения дополнительной информации.

  • Если пропускная способность разрешения является RBWperformance, то pspectrum вычисляет Welch periodogram для сигнала. Функция:

    1. Делит сигналы на перекрывающиеся сегменты.

    2. Windows каждый сегмент отдельно с помощью окна Кайзера с заданным масштабным фактором.

    3. Составляет в среднем периодограммы всех сегментов.

    Процедура валлийцев спроектирована, чтобы уменьшать отклонение оценки спектра путем усреднения различной “реализации” сигналов, данных перекрывающимися разделами, и использования окна, чтобы удалить избыточные данные. Смотрите pwelch для получения дополнительной информации.

    • Длина каждого сегмента (или, эквивалентно, окна) вычисляется с помощью

      Segment length=fNyquist×ENBWRBW,

      где f Найквист является Nyquist frequency. (Если нет никакого искажения, частота Найквиста является половиной эффективной частоты дискретизации, заданной как инверсия медианы различий между смежными моментами времени. Nyquist range является [0, f Найквист] для действительных сигналов и [–fNyquist, f Найквист] для комплексных сигналов.)

    • Длина шага найдена путем корректировки первоначальной оценки,

      Stride length Длина сегментаПерекрытие= Длина сегмента2×ENBW1,

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

Расчет спектрограммы

Вычислить зависящий от времени спектр неустановившегося сигнала, pspectrum делит сигнал на перекрывающиеся сегменты, окна каждый сегмент с окном Кайзера, вычисляет кратковременное преобразование Фурье, и затем конкатенирует преобразования, чтобы сформировать матрицу.

Неустановившийся сигнал является сигналом, содержимое частоты которого изменяется со временем. spectrogram неустановившегося сигнала является оценкой эволюции времени его содержимого частоты. Создать спектрограмму неустановившегося сигнала, pspectrum выполняет эти шаги:

  1. Разделите сигнал на сегменты равной длины. Сегменты должны быть достаточно короткими, который содержимое частоты сигнала не изменяет заметно в сегменте. Сегменты могут или не могут перекрыться.

  2. Окно каждый сегмент и вычисляет свой спектр, чтобы получить short-time Fourier transform.

  3. Используйте спектры сегмента, чтобы создать спектрограмму:

    • Если названо выходными аргументами, конкатенируйте спектры, чтобы сформировать матрицу.

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

Функция может вычислить спектрограмму только для одноканальных сигналов.

Разделите сигнал на сегменты

Чтобы создать спектрограмму, сначала разделите сигнал на возможно перекрывающиеся сегменты. С pspectrum функция, можно управлять длиной сегментов и суммой перекрытия между смежными сегментами с помощью 'TimeResolution' и 'OverlapPercent' аргументы в виде пар имя-значение. Если вы не задаете длину и перекрытие, функция выбирает длину на основе целой длины сигнала и процента перекрытия, данного

(112×ENBW1)×100,

где ENBW является equivalent noise bandwidth спектрального окна. Смотрите enbw и Расчет Спектра для получения дополнительной информации.

Разрешение требуемого времени

  • Если сигнал не имеет информации времени, задайте разрешение времени (длина сегмента) в выборках. Разрешение времени должно быть целым числом, больше, чем или равный 1 и меньший, чем или равный длине сигнала.

    Если сигнал имеет информацию времени, задайте разрешение времени в секундах. Функция преобразует результат во многие выборки и округляет его до ближайшего целого числа, которое меньше чем или равно номеру, но не меньше, чем 1. Разрешение времени должно быть меньшим, чем или равным длительности сигнала.

  • Задайте перекрытие как процент длины сегмента. Функция преобразует результат во многие выборки и округляет его до ближайшего целого числа, которое меньше чем или равно номеру.

Разрешение времени по умолчанию

Если вы не задаете разрешение времени, то pspectrum использует длину целого сигнала выбрать длину сегментов. Функция устанавливает разрешение времени как ⌈N/d выборки, где ⌈⌉ символы обозначают функцию потолка, N является длиной сигнала, и d является делителем, который зависит от N:

Длина сигнала (N)Делитель (d)Длина сегмента
2 выборки – 63 выборки21 выборка – 32 выборки
64 выборки – 255 выборки88 выборки – 32 выборки
256 выборки – 2047 выборки832 выборки – 256 выборки
2048 выборки – 4095 выборки16128 выборки – 256 выборки
4096 выборки – 8191 выборки32128 выборки – 256 выборки
8192 выборки – 16383 выборки64128 выборки – 256 выборки
16384 выборки – выборки N128128 выборки – ⌈N / 128Выборки

Можно все еще задать перекрытие между смежными сегментами. Определение перекрытия изменяет количество сегментов. Сегменты, которые расширяют вне конечной точки сигнала, дополнены нулем.

Рассмотрите [s0 s1 s2 s3 s4 s5 s6] сигнала с семью выборками. Поскольку ⌈7/2 ⌉ = ⌈3.5 ⌉ = 4, функция делит сигнал на два сегмента длины четыре, когда нет никакого перекрытия. Количество изменений сегментов как перекрытие увеличивается.

Количество перекрывающихся выборокПолучившиеся сегменты
0
s0 s1 s2 s3
            s4 s5 s6 0
1
s0 s1 s2 s3
         s3 s4 s5 s6
2
s0 s1 s2 s3
      s2 s3 s4 s5
            s4 s5 s6 0
3
s0 s1 s2 s3
   s1 s2 s3 s4
      s2 s3 s4 s5
         s3 s4 s5 s6

pspectrum нулевые клавиатуры сигнал, если последний сегмент расширяет вне конечной точки сигнала. Функция возвращает t, вектор моментов времени, соответствуя центрам сегментов.

Окно сегменты и вычисляет спектры

После pspectrum делит сигнал на перекрывающиеся сегменты, функциональные окна каждый сегмент с окном Кайзера. Масштабный фактор β окна, и поэтому утечка, может быть настроен с помощью 'Leakage' пара "имя-значение". Функция затем вычисляет спектр каждого сегмента и конкатенирует спектры, чтобы сформировать матрицу спектрограммы. Вычислить спектры сегмента, pspectrum выполняет процедуру, описанную в Расчете Спектра, за исключением того, что нижний предел пропускной способности разрешения

RBWperformance=4×fspan10241.

Отобразите степень спектра

Если названо без выходных аргументов, функция отображает степень кратковременного преобразования Фурье в децибелах, с помощью цветной полосы с палитрой MATLAB по умолчанию. Цветная полоса включает область значений полной мощности спектрограммы.

Расчет спектра персистентности

persistence spectrum сигнала является представлением частоты времени, которое показывает процент времени, когда данная частота присутствует в сигнале. Спектр персистентности является гистограммой в пространстве частоты степени. Чем дольше особая частота сохраняется в сигнале, когда сигнал развивается, тем выше его процент времени и таким образом более яркое или "более горячее" его цвет в отображении. Используйте спектр персистентности, чтобы идентифицировать сигналы, скрытые в других сигналах.

Вычислить спектр персистентности, pspectrum выполняет эти шаги:

  1. Вычислите спектрограмму с помощью заданной утечки, разрешения времени и перекрытия. Дополнительную информацию см. в Расчете Спектрограммы.

  2. Разделите степень и значения частоты в 2D интервалы. (Используйте 'NumPowerBins' пара "имя-значение", чтобы задать количество интервалов степени.)

  3. Для каждой временной стоимости вычислите двумерную гистограмму логарифма спектра мощности. Для каждого интервала частоты степени, где существует энергия сигнала в тот момент, увеличьте соответствующий элемент матрицы на 1. Суммируйте гистограммы для все время значений.

  4. Постройте накопленную гистограмму против степени и частоты с цветом, пропорциональным логарифму количеств гистограммы, описанных как нормированные проценты. Чтобы представлять нулевые значения, используйте половину наименьшей величины.

Спектры мощности

Гистограммы

Накопленная гистограмма

Ссылки

[1] harris, fredric j. “На Использовании Windows для Гармонического Анализа с Дискретным преобразованием Фурье”. Продолжения IEEE®. Издание 66, январь 1978, стр 51–83.

[2] Валлийцы, Питер Д. “Использование Быстрого преобразования Фурье для Оценки Спектров мощности: Метод На основе Усреднения во времени По Коротким, Модифицированным Периодограммам”. Транзакции IEEE на Аудио и Электроакустике. Издание 15, июнь 1967, стр 70–73.

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

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

Приложения

Функции

Введенный в R2017b