Анализируйте сигналы в частотной и частотно-временной областях
возвращает степень спектр p
= pspectrum(x
)x
.
Если x
является вектором или расписанием с вектором данных, затем рассматривается как один канал.
Если x
является матрицей, расписанием с матричной переменной или расписанием с несколькими векторными переменными, затем спектр вычисляется независимо для каждого канала и хранится в отдельном столбце p
.
задает дополнительные опции, используя аргументы пары "имя-значение". Опции включают пропускную способность частотного разрешения и процент перекрытия между смежными сегментами.p
= pspectrum(___,Name,Value
)
Сгенерируйте 128 выборок двухканальной комплексной синусоиды.
Первый канал имеет единичную амплитуду и нормированную синусоидальную частоту рад/образец
Второй канал имеет амплитуду и нормированную частоту рад/образец.
Вычислите степень спектр каждого канала и постройте его абсолютное значение. Масштабирование частотной области значений от рад/образец рад/образец. 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 Гц до 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)
Вычислите спектрограмму второго сигнала. Для сложных сигналов спектрограмма по умолчанию двусторонняя. Отобразите спектрограмму как график водопада.
[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 секунд.
Первый канал состоит из тонального сигнала 20 Гц и тонального сигнала 21 Гц. Оба тона имеют единичную амплитуду.
Второй канал также имеет два тональных сигнала. Один тон имеет единичную амплитуду и частоту 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, что приблизительно эквивалентно оконной обработке данных окном Ханна.
pspectrum(S,'spectrogram', ... 'TimeResolution',0.5,'OverlapPercent',0,'Leakage',0.85)
Спектрограмма показывает, что каждая клавиша нажата полсекунды, с полсекундными молчаливыми паузами между клавишами. Первый тон имеет содержимое, сконцентрированное около 697 Гц и 1209 Гц, соответствующее цифре '1'
в стандарте DTMF.
x
- Входной сигналВходной сигнал, заданный как вектор, матрица или MATLAB®
timetable
.
Если x
является расписанием, тогда оно должно содержать увеличивающиеся конечные строки времени.
Примечание
Если расписание имеет отсутствующие или повторяющиеся точки времени, можно исправить его с помощью советов в разделе «Чистое расписание с пропущенными, повторяющимися или неоднородными временами».
Если x
является расписанием, представляющим многоканальный сигнал, тогда он должен иметь либо одну переменную, содержащую матрицу, либо несколько переменных, состоящих из векторов.
Если x
неоднородно дискретизируется, pspectrum
интерполирует сигнал в однородную сетку для вычисления спектральных оценок. Функция использует линейную интерполяцию и принимает шаг расчета, равное медиане различий между смежными временными точками. Для неоднородно выбранного сигнала , которого поддерживается медианы временного интервала и средний временной интервал должны подчиняться
Пример: 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
Поддержка комплексного числа: Да
fs
- Частота дискретизацииЧастота дискретизации, заданная как положительный числовой скаляр.
t
- Значения времениdatetime
массивы направленности | duration
массивы направленности | duration
скалярЗначения времени, заданные как вектор, a datetime
или duration
массив, или duration
скаляр, представляющий временной интервал между выборками.
Пример: seconds(0:1/100:1)
является
массив, представляющий 1 секунду дискретизации при 100 Гц.duration
Пример: seconds(1)
является
скаляр, представляющий 1-секундное временное различие между последовательными выборками сигнала.duration
type
- Тип спектра для вычисления'power'
(по умолчанию) | 'spectrogram'
| 'persistence'
Тип спектра для вычисления, заданный как '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'
- Пределы полосы частот[0 fs/2]
(по умолчанию) | двухэлементный числовой векторПределы полосы частот, заданные как разделенная разделенными запятой парами, состоящая из 'FrequencyLimits'
и двухэлементный числовой вектор:
Если вход содержит информацию о времени, то полоса частот выражается в Гц.
Если вход не содержит информацию о времени, то полоса частот выражается в нормированных модулях рад/выборка.
По умолчанию, pspectrum
вычисляет спектр по всей области значений Найквиста:
Если заданная полоса частот содержит область, которая падает за пределы области значений Nyquist, то pspectrum
обрезает полосу.
Если заданная полоса частот лежит полностью вне области значений Nyquist, то pspectrum
выдает ошибку.
Смотрите «Расчеты спектра» для получения дополнительной информации о области значений Найквиста.
Если x
неоднородно дискретизируется, pspectrum
линейно интерполирует сигнал в однородную сетку и задает эффективную частоту дискретизации, равную обратной медиане различий между смежными временными точками. Экспресс- 'FrequencyLimits'
с точки зрения эффективной частоты дискретизации.
Пример: [0.2*pi 0.7*pi]
вычисляет спектр сигнала без информации о времени от 0,2 π
в 0,7 π
рад/образец.
'FrequencyResolution'
- Полоса пропускания частотного разрешенияШумовая полоса с разрешением частот, заданная как разделенная разделенными запятой парами, состоящая из 'FrequencyResolution'
и действительный числовой скаляр, выраженный в Гц, если вход содержит информацию о времени, или в нормированных модулях рад/отсчета, если нет. Этот аргумент не может быть задан одновременно с 'TimeResolution'
. Значение по умолчанию этого аргумента зависит от размера входных данных. Для получения дополнительной информации смотрите Расчет Spectrogram.
Пример: pi/100
вычисляет спектр сигнала без информации о времени с разрешением частоты π
/ 100 рад/образец.
'Leakage'
- Спектральные утечки0.5
(по умолчанию) | действительный числовой скаляр между 0 и 1Спектральные утечки, заданные как разделенная запятыми пара, состоящая из 'Leakage'
и действительный числовой скаляр между 0 и 1. 'Leakage'
управляет ослаблением бокового колеса окна Кайзера относительно ширины майнлоба, ставя под угрозу между улучшением разрешения и уменьшением утечек:
Большое значение утечек разрешает тесно расставленные тона, но маскирует рядом слабые тона.
Небольшое значение утечки находит небольшие тона в окрестностях больших тонов, но замазывает близкие частоты вместе.
Пример: 'Leakage',0
уменьшает утечки до минимума за счет спектрального разрешения.
Пример: 'Leakage',0.85
аппроксимирует оконную обработку данных окном Ханна.
Пример: 'Leakage',1
эквивалентно оконной обработке данных прямоугольным окном, максимизируя утечки, но улучшая спектральное разрешение.
'MinThreshold'
- нижняя граница для ненулевых значений-Inf
(по умолчанию) | действительный скалярНижняя граница для ненулевых значений, заданная как разделенная разделенными запятой парами, состоящая из 'MinThreshold'
и настоящий скаляр. pspectrum
реализует 'MinThreshold'
по-разному на основе значения type
аргумент:
'power'
или 'spectrogram'
— pspectrum
устанавливает эти элементы p
таким образом 10 лог10 (p
) ≤ <reservedrangesplaceholder0>
в нуль. Задайте 'MinThreshold'
в децибелах.
'persistence'
— pspectrum
устанавливает эти элементы p
меньше 'MinThreshold'
в нуль. Задайте 'MinThreshold'
от 0 до 100%.
'NumPowerBins'
- Количество степеней для спектра стойкости256
(по умолчанию) | целое число от 20 до 1024Количество степеней для спектра стойкости, заданное как разделенная разделенными запятой парами, состоящая из 'NumPowerBins'
и целое число от 20 до 1024.
'OverlapPercent'
- Перекрытие между смежными сегментамиПерекрытие между смежными сегментами для спектрограммы или спектра стойкости, заданное как разделенная разделенными запятой парами, состоящая из 'OverlapPercent'
и действительный скаляр в интервале [0, 100). Значение по умолчанию этого аргумента зависит от спектрального окна. Для получения дополнительной информации смотрите Расчет Spectrogram.
'Reassign'
- Опция переназначенияfalse
(по умолчанию) | true
Опция переназначения, заданная как разделенная разделенными запятой парами, состоящая из 'Reassign'
и логическое значение. Если для этой опции задано значение true
, затем pspectrum
обостряет локализацию спектральных оценок, выполняя временное и частотное переназначение. Метод переназначения производит периодограммы и спектрограммы, которые легче считать и интерпретировать. Этот метод переназначает каждую спектральную оценку центру энергии его интервала вместо геометрического центра интервала. Метод обеспечивает точную локализацию щебета и импульсов.
'TimeResolution'
- Разрешение по времени спектрограммы или спектра стойкостиРазрешение по времени спектрограммы или спектра стойкости, заданное как разделенная разделенными запятой парами, состоящая из 'TimeResolution'
и действительный скаляр, выраженный в секундах, если вход содержит информацию о времени, или в виде целого числа выборок, если нет. Этот аргумент управляет длительностью сегментов, используемых для вычисления кратковременных спектров степени, которые образуют оценки спектрограммы или спектра стойкости. 'TimeResolution'
не может быть задан одновременно с 'FrequencyResolution'
. Значение по умолчанию этого аргумента зависит от размера входных данных и, если он был задан, от разрешения частоты. Для получения дополнительной информации смотрите Расчет Spectrogram.
'TwoSided'
- Двусторонняя спектральная оценкаДвусторонняя спектральная оценка, заданная как разделенная разделенными запятой парами, состоящая из 'TwoSided'
и логическое значение.
Если эта опция true
функция вычисляет центрированные двусторонние оценки спектра по [- π, π]. Если вход имеет информацию о времени, оценки вычисляются по [- f s/2, f s/2], где f s - эффективная частота дискретизации.
Если эта опция false
функция вычисляет односторонние оценки спектра в области значений Найквиста [0, π]. Если вход имеет информацию о времени, оценки вычисляются по [0, f s/2], где f s - эффективная частота дискретизации. Чтобы сохранить полную мощность, функция умножает степень на 2 на всех частотах, кроме 0 и частоты Найквиста. Эта опция действительна только для реальных сигналов.
Если не указано, 'TwoSided'
по умолчанию является false
для действительных входных сигналов и для true
для комплексных входных сигналов.
p
- СпектрСпектр, возвращенный как вектор или матрица. Тип и размер спектра зависят от значения 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
- Спектральные частотыСпектральные частоты, возвращенные как вектор. Если входной сигнал содержит информацию о времени, то f
содержит частоты, выраженные в Гц. Если входной сигнал не содержит информацию о времени, то частоты находятся в нормированных модулях рад/выборка.
t
- Временные значения спектрограммыdatetime
массивы направленности | duration
массивЗначения времени спектрограммы, возвращенные как вектор значений времени в секундах или a duration
массив. Если на входе нет временной информации, то t
содержит номера образцов. t
содержит значения времени, соответствующие центрам сегментов данных, используемых для вычисления краткосрочных оценок спектра степени.
Если вход в pspectrum
является расписанием, тогда t
имеет тот же формат, что и временные значения входа timetable.
Если вход в pspectrum
- числовой вектор, дискретизированный в множество моментов времени, заданных числом, duration
, или datetime
массив, затем t
имеет тот же тип и формат, что и входные значения времени.
Если вход в pspectrum
является числовым вектором с заданным временным различием между последовательными выборками, затем t
является duration
массив.
pwr
- Значения степени спектра стойкостиЗначения степени спектра стойкости, возвращенные как вектор.
Для вычисления спектров сигналов, 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, которая измеряет, насколько близко могут быть и все еще могут быть разрешены два тональных сигнала. Шумовая полоса разрешения имеет теоретическое значение
t max - t мин, record length, является длительностью во временной области выбранной области сигнала.
ENBW является equivalent noise bandwidth спектрального окна. Посмотрите enbw
для получения дополнительной информации.
Используйте 'Leakage'
Пара "имя-значение" для управления ENBW. Минимальное значение аргумента соответствует окну Кайзера с β = 40. Максимальное значение соответствует окну Кайзера с β = 0.
Однако на практике pspectrum
может снизить разрешение. Уменьшение разрешения позволяет вычислить спектр за разумное количество времени и отобразить его с конечным количеством пикселей. По этим практическим причинам самая низкая шумовая полоса разрешения pspectrum
может использовать is
где f диапазон - ширина диапазона частот, заданного с помощью 'FrequencyLimits'
. Если 'FrequencyLimits'
не задан, тогда pspectrum
использует частоту дискретизации как f диапазон. Не удается настроить RBWperformance.
Чтобы вычислить спектр сигнала, функция выбирает большее из двух значений, называемых target resolution bandwidth:
Если шумовая полоса разрешения является RBWtheory, то pspectrum
вычисляет одну modified periodogram для всего сигнала. Функция использует окно Кайзера с масштабным фактором, управляемым 'Leakage'
Пара "имя-значение". Посмотрите periodogram
для получения дополнительной информации.
Если пропускная способность разрешения является RBWperformance, то pspectrum
вычисляет Welch periodogram для сигнала. Функция:
Разделяет сигналы на перекрывающиеся сегменты.
Окрашивает каждый сегмент отдельно с помощью окна Кайзера с заданным масштабным фактором.
Усредняет периодограммы всех сегментов.
Процедура Уэлча предназначена для уменьшения отклонения оценки спектра путем усреднения различных «реализаций» сигналов, заданных перекрывающимися секциями, и использования окна для удаления избыточных данных. Посмотрите pwelch
для получения дополнительной информации.
Длина каждого сегмента (или, эквивалентно, окна) вычисляется с помощью
где f Найквист - Nyquist frequency. (Если нет сглаживания, частота Найквиста является половиной эффективной частоты дискретизации, заданной как обратная медиана различий между смежными временными точками. Это Nyquist range [0, f Nyquist] для действительных сигналов и [- f Nyquist, f Nyquist] для сложных сигналов.)
Длина шага определяется путем корректировки начальной оценки,
так что первое окно начинается точно с первой выборки первого сегмента, а последнее окно заканчивается точно с последней выборки последнего сегмента.
Чтобы вычислить зависящий от времени спектр нестационарного сигнала, pspectrum
разделяет сигнал на перекрывающиеся сегменты, окрашивает каждый сегмент окном Кайзера, вычисляет кратковременное преобразование Фурье, а затем конкатенирует преобразования для формирования матрицы.
Нестационарный сигнал является сигналом, содержимое частоты изменяется со временем. spectrogram нестационарного сигнала является оценкой временного развития его содержимого. Чтобы создать спектрограмму нестационарного сигнала, pspectrum
выполните следующие шаги:
Разделите сигнал на сегменты равной длины. Сегменты должны быть достаточно короткими, чтобы содержимое частоты сигнала не изменялось заметно в сегменте. Сегменты могут перекрываться или не перекрываться.
Окрашивайте каждый сегмент и вычисляйте его спектр, чтобы получить short-time Fourier transform.
Используйте спектры сегментов, чтобы создать спектрограмму:
Если вызывается с выходными аргументами, конкатенируйте спектры, чтобы сформировать матрицу.
При вызове без выходных аргументов отобразите степень каждого спектра в сегменте децибелов по сегментам. Изобразите величины один за другим как изображение с зависящей от амплитуды палитрой.
Функция может вычислять спектрограмму только для одноканальных сигналов.
Разделите сигнал на сегменты
Чтобы создать спектрограмму, сначала разделите сигнал на возможно перекрывающиеся сегменты. С pspectrum
функция, можно управлять длиной сегментов и количеством перекрытия между смежными сегментами, используя 'TimeResolution'
и 'OverlapPercent'
Аргументы пары "имя-значение". Если вы не задаете длину и перекрытие, функция выбирает длину на основе всей длины сигнала и процента перекрытия, заданного как
где ENBW - equivalent noise bandwidth спектрального окна. Посмотрите enbw
и Spectrum Computation для получения дополнительной информации.
Указанное разрешение по времени
Если сигнал не имеет информации о времени, задайте разрешение по времени (длину сегмента) в выборках. Разрешение по времени должно быть целым числом, большим или равным 1 и меньшим или равным длине сигнала.
Если сигнал имеет информацию о времени, задайте разрешение времени в секундах. Функция преобразует результат в количество выборок и округляет его до ближайшее целого числа, которое меньше или равно количеству, но не меньше 1. Разрешение по времени должно быть меньше или равным длительности сигнала.
Задайте перекрытие в процентах от длины сегмента. Функция преобразует результат в количество выборок и округляет его до ближайшее целого числа, которое меньше или равно количеству.
Разрешение по умолчанию по времени
Если вы не задаете разрешение по времени, то pspectrum
использует длину всего сигнала, чтобы выбрать длину сегментов. Функция устанавливает разрешение по времени как ⌈ N/ d ⌉ выборок, где ⌈ ⌉ символы обозначают функцию потолка, N является длиной сигнала, и d является делителем, который зависит от N:
Длина сигнала (N) | Делитель (d) | Длина сегмента |
---|---|---|
2 выборки - 63 выборки | 2 | 1 выборка - 32 выборки |
64 выборки - 255 выборки | 8 | 8 выборки - 32 выборки |
256 выборки - 2047 выборки | 8 | 32 выборки - 256 выборки |
2048 выборки - 4095 выборки | 16 | 128 выборки - 256 выборки |
4096 выборки - 8191 выборки | 32 | 128 выборки - 256 выборки |
8192 выборки - 16383 выборки | 64 | 128 выборки - 256 выборки |
16384 выборки - N выборки | 128 | 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
zero заполняет сигнал, если последний сегмент выходит за пределы конечной точки сигнала. Функция возвращается t
, вектор моментов времени, соответствующих центрам сегментов.
Оконные сегменты и вычислительные спектры
После pspectrum
разделяет сигнал на перекрывающиеся сегменты, функции окон каждый сегмент с окном Кайзера. Масштабные факторы β окна, и, следовательно, утечки, могут быть скорректированы с помощью 'Leakage'
Пара "имя-значение". Функция затем вычисляет спектр каждого сегмента и конкатенирует спектры, чтобы сформировать матрицу спектрограмм. Чтобы вычислить спектры сегментов, pspectrum
следовать процедуре, описанной в Spectrum Computation, за исключением того, что нижний предел полосы пропускания разрешения равен
Отобразите степень спектра
Если вызов происходит без выходных аргументов, функция отображает степень кратковременного преобразования Фурье в децибелах с помощью цветовой панели с палитрой MATLAB по умолчанию. Цветовой брус содержит полную область значений степени спектрограммы.
persistence spectrum сигнала является частотно-временным представлением, которое показывает процент времени, в течение которого данная частота присутствует в сигнале. Спектр стойкости является гистограммой в пространстве частота-мощность. Чем больше конкретная частота сохраняется в сигнале, когда сигнал развивается, тем выше его временной процент и, таким образом, более яркий или «горячий» его цвет в отображении. Используйте спектр стойкости, чтобы идентифицировать сигналы, скрытые в других сигналах.
Чтобы вычислить спектр стойкости, pspectrum
выполняет следующие шаги:
Вычислите спектрограмму с помощью заданных утечек, временного разрешения и перекрытия. Для получения дополнительной информации смотрите Расчет.
Разделите значения степени и частоты на 2-D интервалы. (Используйте 'NumPowerBins'
Пара "имя-значение" для определения количества степени интервалов.)
Для каждого временного значения вычислите двухмерную гистограмму логарифма спектра степени. Для каждого интервала частоты мощности, где в этот момент существует энергия сигнала, увеличьте соответствующий элемент матрицы на 1. Суммируйте гистограммы для всех значений времени.
Постройте график накопленной гистограммы относительно степени и частоты с цветом, пропорциональным логарифму отсчётов гистограммы, выраженным в нормированных процентах. Чтобы представлять нулевые значения, используйте половину наименьшей возможной величины.
Степени |
|
Гистограммы |
|
Накопленная гистограмма |
|
[1] harris, fredric j. «Об использовании окон для гармонического анализа с дискретным преобразованием Фурье». Материалы IEEE®. Том 66, январь 1978, с. 51-83.
[2] Welch, Peter D. «Использование быстрого преобразования Фурье для оценки спектров степени: метод, основанный на усреднении времени по коротким, измененным периодограммам». Транзакции IEEE по аудио и электроакустике. Том 15, июнь 1967, с. 70-73.
Указания и ограничения по применению:
Расписания не поддерживаются для генерации кода.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.