pspectrum

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

Синтаксис

p = pspectrum(x)
p = pspectrum(x,fs)
p = pspectrum(x,t)
p = pspectrum(___,type)
p = pspectrum(___,Name,Value)
[p,f] = pspectrum(___)
[p,f,t] = pspectrum(___,'spectrogram')
[p,f,pwr] = pspectrum(___,'persistence')
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(___) без выходных аргументов строит спектральную оценку в окне текущей фигуры.

Примеры

свернуть все

Вычислите спектр мощности шумной синусоиды. Задайте частоту синусоиды 200 Гц. Выберите синусоиду на уровне 1 кГц для 296 миллисекунд. Встройте сигнал в белый Гауссов шум отклонения 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)

Сгенерируйте двухканальный сигнал, выбранный на уровне 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 является расписанием, то он должен содержать увеличивающиеся конечные времена строки.

    Примечание

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

  • Если 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
Поддержка комплексного числа: Да

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

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

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

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

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

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

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

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

Примечание

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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' управляет затуханием бокового лепестка окна Kaiser относительно 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'. Значение по умолчанию этого аргумента зависит от размера входных данных и, если это было задано, разрешение частоты. Смотрите Вычисление Спектрограммы для деталей.

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

свернуть все

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

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

  • '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 содержит частоты, выраженные в Гц. Если входной сигнал не содержит информацию времени, то частоты находятся в нормированных единицах рада/выборки.

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

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

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

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

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

Больше о

свернуть все

Вычисление спектра

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

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

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

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

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

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

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

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

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

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

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

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

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

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

RBWтеория=ENBWtmax tmin.

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

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

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

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

RBWпроизводительность=4×fпромежуток40961,

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

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

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

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

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

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

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

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

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

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

       Длина сегмента=fНайквист×ENBWRBW,

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

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

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

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

Вычисление спектрограммы

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

Неустановившийся сигнал является сигналом, содержимое частоты которого изменяется со временем. 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 – выборки 632Выборка 1 – выборки 32
Выборки 64 – выборки 2558Выборки 8 – выборки 32
Выборки 256 – выборки 20478Выборки 32 – выборки 256
Выборки 2048 – выборки 409516Выборки 128 – выборки 256
Выборки 4096 – выборки 819132Выборки 128 – выборки 256
Выборки 8192 – выборки 1638364Выборки 128 – выборки 256
Выборки 16384 – выборки N128Выборки 128 – ⌈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 делит сигнал на перекрывающиеся сегменты, функциональные окна каждый сегмент с окном Kaiser. Форм-фактор β окна, и поэтому утечка, может быть настроен с помощью пары "имя-значение" 'Leakage'. Функция затем вычисляет спектр каждого сегмента и конкатенирует спектры, чтобы сформировать матрицу спектрограммы. Чтобы вычислить спектры сегмента, pspectrum выполняет процедуру, описанную в Вычислении Спектра, за исключением того, что нижний предел пропускной способности разрешения

RBWпроизводительность=4×fпромежуток10241.

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

Если названо без выходных аргументов, функция отображает степень кратковременного преобразования Фурье в децибелах, с помощью цветной полосы с палитрой 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