Анализ сигналов в частотной и временной областях
возвращает спектр мощности p = pspectrum(x)x.
Если x является вектором или расписанием с вектором данных, то он обрабатывается как один канал.
Если x - матрица, расписание с переменной матрицы или расписание с несколькими векторными переменными, затем спектр вычисляется независимо для каждого канала и сохраняется в отдельном столбце p.
задает дополнительные параметры с использованием аргументов пары «имя-значение». Параметры включают пропускную способность частотного разрешения и процентное перекрытие между соседними сегментами.p = pspectrum(___,Name,Value)
Генерировать 128 выборок двухканальной комплексной синусоиды.
Первый канал имеет единичную амплитуду и нормированную синусоидальную частоту рад/образец
Второй канал имеет амплитуду и нормированную частоту рад/образец.
Вычислите спектр мощности каждого канала и постройте график его абсолютного значения. Увеличьте частотный диапазон от до rad/sample. 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 интерполирует сигнал в однородную сетку для вычисления спектральных оценок. Функция использует линейную интерполяцию и предполагает время выборки, равное медиане разностей между соседними моментами времени. Для поддержки неравномерно дискретизированного сигнала медианный временной интервал и средний временной интервал должны подчиняться
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
Поддержка комплексного номера: Да
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' - Вычислить спектр мощности входа. Эта опция используется для анализа частотного содержания стационарного сигнала. Дополнительные сведения см. в разделе Расчет спектра.
'spectrogram' - Вычислить спектрограмму входного сигнала. Эта опция используется для анализа изменения частотного содержания сигнала во времени. Дополнительные сведения см. в разделе Расчет спектрограммы.
'persistence' - Вычислить спектр мощности стойкости входного сигнала. Эта опция используется для визуализации доли времени, в течение которой определенная частотная составляющая присутствует в сигнале. Дополнительные сведения см. в разделе Расчет спектра стойкости.
Примечание
'spectrogram' и 'persistence' опции не поддерживают многоканальный ввод.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'Leakage',1,'Reassigned',true,'MinThreshold',-35 окошивает данные, используя прямоугольное окно, вычисляет переназначенную оценку спектра и устанавливает нулевое значение для всех значений, меньших -35 дБ.'FrequencyLimits' - Пределы полосы частот[0 fs/2] (по умолчанию) | двухэлементный числовой векторПределы полосы частот, определяемые как разделенная запятыми пара, состоящая из 'FrequencyLimits' и двухэлементный числовой вектор:
Если вход содержит временную информацию, то полоса частот выражается в Гц.
Если вход не содержит временной информации, то полоса частот выражается в нормированных единицах рад/выборки.
По умолчанию pspectrum вычисляет спектр по всему диапазону Найквиста:
Если указанная полоса частот содержит область, которая выходит за пределы диапазона Найквиста, то pspectrum усечение полосы частот.
Если указанная полоса частот находится полностью за пределами диапазона Найквиста, то pspectrum выдает ошибку.
Дополнительные сведения о диапазоне Найквиста см. в разделе Расчет спектра.
Если x неравномерно дискретизируется, затем pspectrum линейно интерполирует сигнал в однородную сетку и определяет эффективную частоту дискретизации, равную обратной медиане разностей между соседними временными точками. Экспресс 'FrequencyLimits' с точки зрения эффективной частоты выборки.
Пример: [0.2*pi 0.7*pi] вычисляет спектр сигнала без временной информации от 0,2π к 0,7π рад/образец.
'FrequencyResolution' - Пропускная способность частотного разрешенияПолоса пропускания частотного разрешения, заданная как разделенная запятыми пара, состоящая из 'FrequencyResolution' и вещественный числовой скаляр, выраженный в Гц, если входной сигнал содержит информацию о времени, или в нормализованных единицах rad/sample, если нет. Этот аргумент не может быть указан одновременно с 'TimeResolution'. Значение по умолчанию этого аргумента зависит от размера входных данных. Дополнительные сведения см. в разделе Расчет спектрограмм.
Пример: 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 log10 (p) ≤ 'MinThreshold' до нуля. Определить 'MinThreshold' в децибелах.
'persistence' — pspectrum устанавливает эти элементы p меньше, чем 'MinThreshold' до нуля. Определить 'MinThreshold' от 0 до 100%.
'NumPowerBins' - Количество ячеек питания для спектра стойкости256 (по умолчанию) | целое число между 20 и 1024Количество ячеек мощности для спектра стойкости, определяемого как разделенная запятыми пара, состоящая из 'NumPowerBins' и целое число между 20 и 1024.
'OverlapPercent' - Перекрытие между соседними сегментамиПерекрытие между соседними сегментами для спектрограммы или спектра стойкости, определяемого как разделенная запятыми пара, состоящая из 'OverlapPercent' и действительный скаляр в интервале [0, 100). Значение по умолчанию этого аргумента зависит от спектрального окна. Дополнительные сведения см. в разделе Расчет спектрограмм.
'Reassign' - Возможность переназначенияfalse (по умолчанию) | trueПараметр переназначения, заданный как пара, разделенная запятыми, состоящая из 'Reassign' и логическое значение. Если для этой опции установлено значение true, то pspectrum точит локализацию спектральных оценок путем выполнения временной и частотной переназначения. Метод переназначения дает периодограммы и спектрограммы, которые легче читать и интерпретировать. Этот метод переназначает каждую спектральную оценку центру энергии своего бункера вместо геометрического центра бункера. Методика обеспечивает точную локализацию чирпов и импульсов.
'TimeResolution' - Временное разрешение спектрограммы или спектра стойкостиВременное разрешение спектрограммы или спектра стойкости, определяемое как разделенная запятыми пара, состоящая из 'TimeResolution' и действительный скаляр, выраженный в секундах, если входной сигнал содержит временную информацию, или в виде целого числа выборок, если нет. Этот аргумент управляет длительностью сегментов, используемых для вычисления спектров мощности короткого времени, которые формируют спектрограмму или оценки спектра стойкости. 'TimeResolution' не может быть указан одновременно с 'FrequencyResolution'. Значение по умолчанию этого аргумента зависит от размера входных данных и, если оно было указано, от разрешения частоты. Дополнительные сведения см. в разделе Расчет спектрограмм.
'TwoSided' - Двусторонняя спектральная оценкаДвусторонняя спектральная оценка, указанная как разделенная запятыми пара, состоящая из 'TwoSided' и логическое значение.
Если этот параметр true, функция вычисляет центрированные, двусторонние оценки спектра по [-δ, δ]. Если входные данные содержат информацию о времени, оценки вычисляются по [-fs/2, fs/2], где fs - эффективная частота дискретизации.
Если этот параметр false, функция вычисляет односторонние оценки спектра в диапазоне Найквиста [0, δ]. Если входные данные содержат информацию о времени, то оценки вычисляются по [0, fs/2], где fs - эффективная частота дискретизации. Для сохранения полной мощности функция умножает мощность на 2 на всех частотах, кроме 0 и частоты Найквиста. Эта опция действительна только для реальных сигналов.
Если не указано, 'TwoSided' по умолчанию: false для реальных входных сигналов и true для комплексных входных сигналов.
p - СпектрСпектр, возвращаемый как вектор или матрица. Тип и размер спектра зависит от значения type аргумент:
'power' — p содержит оценку спектра мощности каждого канала x. В этом случае p имеет размер Nf × Nch, где Nf - длина f и Nch - количество каналов x. pspectrum масштабирует спектр таким образом, что, если частотное содержание сигнала находится точно в пределах элемента, его амплитуда в этом элементе является истинной средней мощностью сигнала. Например, средняя мощность синусоиды равна половине квадрата амплитуды синусоиды. Дополнительные сведения см. в разделе Измерение мощности детерминированных периодических сигналов.
'spectrogram' — p содержит оценку краткосрочного, локализованного во времени спектра мощности x. В этом случае p имеет размер Nf × Nt, где Nf - длина f и Nt - длина t.
'persistence' — p содержит, выраженные в процентах, вероятности того, что сигнал имеет компоненты заданного уровня мощности в заданном местоположении времени и частоты. В этом случае p имеет размер Npwr × Nf, где Npwr - длина pwr и Nf - длина f.
f - Частоты спектраЧастоты спектра, возвращаемые в виде вектора. Если входной сигнал содержит временную информацию, то f содержит частоты, выраженные в Гц. Если входной сигнал не содержит временной информации, то частоты находятся в нормированных единицах рад/выборка.
t - Временные значения спектрограммыdatetime массив | duration множествоВременные значения спектрограммы, возвращаемые как вектор временных значений в секундах или duration массив. Если на входе нет временной информации, то t содержит номера образцов. t содержит значения времени, соответствующие центрам сегментов данных, используемых для вычисления краткосрочных оценок спектра мощности.
Если вход в pspectrum является расписанием, то t имеет тот же формат, что и значения времени входного расписания.
Если вход в pspectrum - числовой вектор, дискретизированный в набор моментов времени, заданных цифрой, duration, или datetime массив, затем t имеет тот же тип и формат, что и входные значения времени.
Если вход в pspectrum является числовым вектором с заданной разницей во времени между последовательными выборками, то t является duration массив.
pwr - Значения мощности спектра стойкостиЗначения мощности спектра стойкости, возвращаемые в виде вектора.
Для вычисления спектров сигналов pspectrum находит компромисс между спектральным разрешением, достижимым со всей длиной сигнала, и ограничениями производительности, которые возникают в результате вычисления больших FFT:
Если возможно, функция вычисляет одну измененную периодограмму всего сигнала с помощью окна Кайзера.
Если невозможно вычислить одну модифицированную периодограмму за разумное количество времени, функция вычисляет периодограмму Уэлча: Она делит сигнал на перекрывающиеся сегменты, окошивает каждый сегмент, используя окно Кайзера, и усредняет периодограммы сегментов.
Спектральное окно
Любой реальный сигнал может быть измерен только в течение определенного промежутка времени. Этот факт вносит неиглибилируемые эффекты в анализ Фурье, который предполагает, что сигналы являются либо периодическими, либо бесконечно длинными. Спектральное окно, которое присваивает различные веса различным выборкам сигнала, систематически имеет дело с конечными эффектами.
Самый простой способ отображения сигнала состоит в предположении, что он является идентично нулевым вне интервала измерения и что все выборки одинаково значимы. Это «прямоугольное окно» имеет прерывистые прыжки на обоих концах, которые приводят к спектральному звонку. Все другие спектральные окна сужаются на обоих концах для уменьшения этого эффекта путем назначения меньших весов выборкам вблизи краев сигнала.
Процесс оконной обработки всегда предполагает компромисс между противоречивыми целями: улучшением разрешения и уменьшением утечки:
Разрешение - это способность точно знать, как распределяется энергия сигнала в частотном пространстве. Анализатор спектра с идеальным разрешением может различать два различных тона (чистые синусоиды), присутствующие в сигнале, независимо от того, насколько близка по частоте. Количественно эта способность относится к ширине основного блока преобразования окна.
Утечка - это тот факт, что в конечном сигнале каждая частотная составляющая проецирует содержание энергии на всем частотном диапазоне. Величину утечки в спектре можно измерить по способности обнаруживать слабый тон по шуму при наличии соседнего сильного тона. Количественно эта способность относится к боковому уровню частотного преобразования окна.
Спектр нормализуется таким образом, что чистый тон в пределах этой полосы частот, если он идеально центрирован, имеет правильную амплитуду.
Чем лучше разрешение, тем выше утечка и наоборот. На одном конце диапазона прямоугольное окно имеет самый узкий из возможных мейнлобов и самые высокие боковины. Это окно может разрешить близко расположенные тоны, если они имеют сходное содержание энергии, но оно не может найти более слабый, если они делают это. На другом конце, окно с высоким подавлением сайлоба имеет широкий основной блок, в котором близкие частоты размазываются вместе.
pspectrum использует окна Kaiser для выполнения оконной обработки. Для окон Кайзера доля энергии сигнала, захваченной мейнлобом, зависит наиболее важно от регулируемого коэффициента формы β. pspectrum использует коэффициенты формы в диапазоне от β = 0, что соответствует прямоугольному окну, до β = 40, где широкий основной слой захватывает по существу всю спектральную энергию, представляемую с двойной точностью. Промежуточное значение β ≈ 6 довольно близко аппроксимирует окно Ганна. Для управления β используйте 'Leakage' пара имя-значение. Если установить 'Leakage' к ℓ, то ℓ и β связаны по β = 40 (1 - ℓ). Посмотритеkaiser для получения дополнительной информации.
|
|
| 51-точечное окно Ханна и 51-точечное окно Кайзера с β = 5,7 во временной области | 51-точечное окно Ханна и 51-точечное окно Кайзера с β = 5,7 в частотной области |
Выбор параметров и алгоритмов
Для вычисления спектров сигналов pspectrum первоначально определяет пропускную способность разрешения, которая измеряет, насколько близкими могут быть и по-прежнему разрешаться два тона. Пропускная способность разрешения имеет теоретическое значение
tmin.
tmax - tmin, длина записи, является длительностью во временной области выбранной области сигнала.
ENBW - эквивалентная полоса пропускания шума спектрального окна. Посмотрите enbw для получения дополнительной информации.
Используйте 'Leakage' пара имя-значение для управления ENBW. Минимальное значение аргумента соответствует окну Кайзера с β = 40. Максимальное значение соответствует окну Кайзера с β = 0.
Однако на практике pspectrum может понизить разрешение. Снижение разрешения позволяет вычислять спектр за разумное количество времени и отображать его с конечным числом пикселей. По этим практическим причинам самая низкая пропускная способность pspectrum может использовать
fspan4096 − 1,
где fspan - ширина полосы частот, заданной с помощью 'FrequencyLimits'. Если 'FrequencyLimits' не указан, то pspectrum использует частоту выборки в качестве fspan. Не удается настроить производительность RBW.
Для вычисления спектра сигнала функция выбирает большее из двух значений, называемых целевой пропускной способностью разрешения:
производительность RBWperformance).
Если пропускной способностью разрешения является теория RBWtheory, то pspectrum вычисляет одну модифицированную периодограмму для всего сигнала. Функция использует окно Кайзера с коэффициентом формы, управляемым 'Leakage' пара имя-значение. Посмотрите periodogram для получения дополнительной информации.
Если пропускная способность разрешения равна RBWperformance, то pspectrum вычисляет периодограмму Welch для сигнала. Функция:
Разделяет сигналы на перекрывающиеся сегменты.
Для каждого сегмента отдельно используется окно Кайзера с заданным коэффициентом формы.
Усредняет периодограммы всех сегментов.
Процедура Уэлча предназначена для уменьшения дисперсии спектральной оценки путем усреднения различных «реализаций» сигналов, заданных перекрывающимися секциями, и использования окна для удаления избыточных данных. Посмотрите pwelch для получения дополнительной информации.
Длина каждого сегмента (или, эквивалентно, окна) вычисляется с помощью
ENBWRBW,
где fNyquist - частота Nyquist. (Если нет наложения, частота Найквиста составляет половину эффективной частоты выборки, определяемой как обратная медиане различий между соседними временными точками. Диапазон Найквиста равен [0, fNyquist] для реальных сигналов и [-fNyquist, fNyquist] для сложных сигналов.)
Длина шага определяется путем корректировки начальной оценки.
ENBW − 1,
так что первое окно начинается точно на первом образце первого сегмента, а последнее окно заканчивается точно на последнем образце последнего сегмента.
Для вычисления зависящего от времени спектра нестационарного сигнала, pspectrum делит сигнал на перекрывающиеся сегменты, окует каждый сегмент окном Кайзера, вычисляет кратковременное преобразование Фурье, а затем конкатенирует преобразования с образованием матрицы.
Нестационарный сигнал - это сигнал, частотное содержание которого изменяется со временем. Спектрограмма нестационарного сигнала является оценкой эволюции во времени его частотного содержания. Чтобы построить спектрограмму нестационарного сигнала, pspectrum выполните следующие действия:
Разделите сигнал на сегменты равной длины. Сегменты должны быть достаточно короткими, чтобы частотное содержание сигнала не изменялось заметно внутри сегмента. Сегменты могут перекрываться или не перекрываться.
Окнайте каждый сегмент и вычислите его спектр, чтобы получить кратковременное преобразование Фурье.
Используйте спектры сегментов для построения спектрограммы:
Если вызывается с выходными аргументами, объедините спектры, чтобы сформировать матрицу.
Если вызывается без выходных аргументов, отображает мощность каждого спектра в децибелах по сегментам. Изображайте величины бок о бок в виде изображения с цветовой картой, зависящей от величины.
Функция может вычислять спектрограмму только для одноканальных сигналов.
Разделить сигнал на сегменты
Чтобы построить спектрограмму, сначала разделите сигнал на возможно перекрывающиеся сегменты. С помощью pspectrum можно управлять длиной сегментов и величиной перекрытия между соседними сегментами с помощью 'TimeResolution' и 'OverlapPercent' аргументы пары имя-значение. Если длина и перекрытие не заданы, функция выбирает длину на основе всей длины сигнала и процента перекрытия, заданного
) × 100,
где ENBW - эквивалентная шумовая полоса спектрального окна. Посмотрите enbw и «Вычисление спектра» для получения дополнительной информации.
Заданное разрешение по времени
Если сигнал не имеет временной информации, укажите временное разрешение (длину сегмента) в выборках. Разрешение по времени должно быть целым числом, большим или равным 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 образцы - ⌈ Н/ 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-pads сигнал, если последний сегмент выходит за пределы конечной точки сигнала. Функция возвращает tвектор моментов времени, соответствующих центрам сегментов.
Окно «Сегменты и вычислительные спектры»
После pspectrum делит сигнал на перекрывающиеся сегменты, функциональные окна каждого сегмента с окном Кайзера. Коэффициент формы β окна и, следовательно, утечка могут быть отрегулированы с помощью 'Leakage' пара имя-значение. Затем функция вычисляет спектр каждого сегмента и сцепляет спектры с образованием спектрограммной матрицы. Для вычисления спектров сегментов pspectrum следует процедуре, описанной в разделе Вычисление спектра, за исключением того, что нижний предел разрешающей способности равен
fspan1024 − 1.
Мощность спектра дисплея
При вызове без выходных аргументов функция отображает мощность кратковременного преобразования Фурье в децибелах, используя цветовую полосу с картой цветов MATLAB по умолчанию. Цветовая полоса содержит полный диапазон мощности спектрограммы.
Спектр стойкости сигнала представляет собой частотно-временное представление, которое показывает процент времени, в течение которого данная частота присутствует в сигнале. Спектр стойкости представляет собой гистограмму в пространстве энергетических частот. Чем дольше конкретная частота сохраняется в сигнале по мере развития сигнала, тем выше его временной процент и, таким образом, тем ярче или «горячее» его цвет на дисплее. Используйте спектр стойкости для идентификации сигналов, скрытых в других сигналах.
Чтобы вычислить спектр стойкости, pspectrum выполняет следующие шаги:
Вычислите спектрограмму, используя указанную утечку, разрешение по времени и перекрытие. Дополнительные сведения см. в разделе Расчет спектрограмм.
Разбейте значения мощности и частоты на 2-D ячейки. (Используйте 'NumPowerBins' пара «имя-значение» для указания количества ячеек питания.)
Для каждого значения времени вычислите двумерную гистограмму логарифма спектра мощности. Для каждого силового частотного бина, где в этот момент имеется энергия сигнала, увеличивают соответствующий матричный элемент на 1. Суммирование гистограмм для всех значений времени.
Постройте график накопленной гистограммы относительно мощности и частоты с цветом, пропорциональным логарифму отсчетов гистограммы, выраженным в нормированных процентах. Чтобы представить нулевые значения, используйте половину наименьшей возможной величины.
| Спектры мощности |
|
|
| Гистограммы |
|
|
| Накопленная гистограмма |
|
|
[1] Харрис, Фредрик j. «Об использовании Windows для анализа гармоник с дискретным преобразованием Фурье». Процедуры IEEE ®. том 66, январь 1978, стр. 51-83.
[2] Уэлч, Питер Д. «Использование быстрого преобразования Фурье для оценки спектров мощности: метод, основанный на усреднении времени по коротким измененным периодограммам». Транзакции IEEE по аудио и электроакустике. Том 15, июнь 1967, стр. 70-73.
Примечания и ограничения по использованию:
Расписания не поддерживаются для создания кода.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.