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

Figure contains an axes. The axes contains 4 objects of type line, stem. These objects represent Channel 1, pspectrum, Channel 2, pspectrum, Channel 1, fft, Channel 2, fft.

Сгенерируйте синусоидальный сигнал, дискретизированный с частотой 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')

Figure contains an axes. The axes with title Default Frequency Resolution contains an object of type line.

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

pspectrum(xTable,'FrequencyResolution',25)

Figure contains an axes. The axes with title Fres = 25 Hz contains an object of type line.

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

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 к true.

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

Figure contains an axes. The axes with title Fres = 2.9304 Hz contains an object of type line.

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

[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])

Figure contains an axes. The axes contains an object of type patch.

Сгенерируйте двухканальный сигнал, дискретизированный на частоте 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)

Figure contains an axes. The axes contains 2 objects of type line.

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

pspectrum(x,t)

Figure contains an axes. The axes with title Fres = 1.2898 Hz contains 2 objects of type line.

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

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

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

Figure contains an axes. The axes with title Fres = 737.8446 mHz contains 2 objects of type line.

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

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

Figure contains an axes. The axes with title Fres = 502.5146 mHz contains 2 objects of type line.

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

Сгенерируйте щебет, дискретизированный с частотой дискретизации 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)

Figure contains an axes. The axes with title Fres = 3.9101 Hz, Tres = 1 s contains an object of type image.

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

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

Figure contains an axes. The axes with title Fres = 976.801 mHz contains an object of type line.

Вычислите спектр стойкости сигнала. Теперь четко видны оба компонентов сигнала.

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

Figure contains an axes. The axes with title Fres = 3.9101 Hz, Tres = 1 s contains an object of type image.

Сгенерируйте квадратичный щебет, выбранный с частотой дискретизации 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)')

Figure contains an axes. The axes contains an object of type surface.

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

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

Figure contains an axes. The axes with title Fres = 10.0263 Hz, Tres = 256 ms contains an object of type image.

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

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

Figure contains an axes. The axes with title Fres = 12.8337 Hz, Tres = 200 ms contains an object of type image.

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

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

Figure contains an axes. The axes with title Fres = 12.8337 Hz, Tres = 200 ms contains an object of type image.

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

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

Figure contains an axes. The axes with title Fres = 15.6403 Hz, Tres = 500 ms contains an object of type image.

Спектрограмма показывает, что каждая клавиша нажата полсекунды, с полсекундными молчаливыми паузами между клавишами. Первый тон имеет содержимое, сконцентрированное около 697 Гц и 1209 Гц, соответствующее цифре '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 массив, или duration скаляр, представляющий временной интервал между выборками.

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 'power' или 'spectrogram'pspectrum устанавливает эти элементы p таким образом 10 лог10 (p) ≤ <reservedrangesplaceholder0> в нуль. Задайте 'MinThreshold' в децибелах.

  • 'persistence'pspectrum устанавливает эти элементы p меньше 'MinThreshold' в нуль. Задайте 'MinThreshold' от 0 до 100%.

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

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

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

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

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

  • Если эта опция trueфункция вычисляет центрированные двусторонние оценки спектра по [- π, π]. Если вход имеет информацию о времени, оценки вычисляются по [- f s/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 pwr  × N f, где N pwr - длина pwr и N f - длина f.

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

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

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

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

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

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

Подробнее о

свернуть все

Спектральные Расчеты

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

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

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

Спектральное оконцевание

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

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

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

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

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

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

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

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

51-точечное окно Ханна и 51-точечное окно Кайзера с β = 5,7 во временном интервале51-точечное окно Ханна и 51-точечное окно Кайзера с β = 5,7 в частотный диапазон

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

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

RBWtheory=ENBWtmaxtmin.

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

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

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

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

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

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

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

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

      Segment length=fNyquist×ENBWRBW,

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

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

      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 и Spectrum Computation для получения дополнительной информации.

Указанное разрешение по времени

  • Если сигнал не имеет информации о времени, задайте разрешение по времени (длину сегмента) в выборках. Разрешение по времени должно быть целым числом, большим или равным 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 выборки - N выборки128128 выборки - ⌈ 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 zero заполняет сигнал, если последний сегмент выходит за пределы конечной точки сигнала. Функция возвращается t, вектор моментов времени, соответствующих центрам сегментов.

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

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

RBWperformance=4×fspan10241.

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

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

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

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

Чтобы вычислить спектр стойкости, pspectrum выполняет следующие шаги:

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

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

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

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

Степени

Гистограммы

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

Ссылки

[1] harris, fredric j. «Об использовании окон для гармонического анализа с дискретным преобразованием Фурье». Материалы IEEE®. Том 66, январь 1978, с. 51-83.

[2] Welch, Peter D. «Использование быстрого преобразования Фурье для оценки спектров степени: метод, основанный на усреднении времени по коротким, измененным периодограммам». Транзакции IEEE по аудио и электроакустике. Том 15, июнь 1967, с. 70-73.

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

.

См. также

Приложения

Функции

Введенный в R2017b