peig

Псевдоспектр с помощью метода собственного вектора

Синтаксис

[S,w] = peig(x,p)
[S,w] = peig(x,p,w)
[S,w] = peig(...,nfft)
[S,f] = peig(x,p,nfft,fs)
[S,f] = peig(x,p,f,fs)
[S,f] = peig(...,'corr')
[S,f] = peig(x,p,nfft,fs,nwin,noverlap)
[...] = peig(...,freqrange)
[...,v,e] = peig(...)
peig(...)

Описание

[S,w] = peig(x,p) реализует собственный вектор спектральный метод оценки и возвращает S, оценку псевдоспектра входного сигнала x, и w, вектор нормированных частот (в раде/выборке), в котором оценен псевдоспектр. Псевдоспектр вычисляется с помощью оценок собственных векторов корреляционной матрицы, сопоставленной с входными данными x, где x задан как также:

  • Строка или вектор-столбец, представляющий одно наблюдение за сигналом

  • Прямоугольный массив, для которого каждая строка x представляет отдельное наблюдение за сигналом (например, каждой строкой является один вывод массива датчиков, как в обработке матриц), такой, что x'*x является оценкой корреляционной матрицы

    Примечание

    Можно использовать вывод corrmtx, чтобы сгенерировать такой массив x.

Можно задать второй входной параметр p как также:

  • Скалярное целое число. В этом случае размерностью подпространства сигнала является p.

  • Двухэлементный вектор. В этом случае p(2), второй элемент p, представляет порог, который умножается на min λ, самое маленькое предполагаемое собственное значение корреляционной матрицы сигнала. Собственные значения ниже порога min λ  × p(2) присвоены шумовому подпространству. В этом случае p(1) задает максимальную размерность подпространства сигнала.

Примечание

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

Дополнительный пороговый параметр во второй записи в p предоставляет вам больше гибкости и управления в присвоении шумовых и подпространств сигнала.

S и w имеют ту же длину. В целом длина БПФ и значения входа x определяют длину вычисленного S и область значений соответствующих нормированных частот. Следующая таблица указывает на длину Sw) и область значений соответствующих нормированных частот для этого синтаксиса.

S характеристики для длины БПФ 256 (значение по умолчанию)

Действительные/Комплексные Входные данныеДлина S и wОбласть значений соответствующих нормированных частот

С действительным знаком

129

[0, π] 

С комплексным знаком

256

[0, 2π) 

[S,w] = peig(x,p,w) возвращает псевдоспектр в векторном S, вычисленном на нормированных частотах, заданных в векторном w.The, векторный w должен иметь два или больше элемента, потому что в противном случае функция интерпретирует его как nfft.

[S,w] = peig(...,nfft) задает целочисленную длину БПФ, nfft раньше оценивал псевдоспектр. Значение по умолчанию для nfft (вводимый как пустой вектор []) 256.

Следующая таблица указывает на длину S и w и частотного диапазона для w для этого синтаксиса.

S и характеристики вектора частоты

Действительные/Комплексные Входные данныеРовный/Нечетный nfftДлина S и wОбласть значений w

С действительным знаком

Даже

(nfft/2 + 1)

[0, π] 

С действительным знаком

Нечетный

(nfft + 1)/2

[0, π) 

С комплексным знаком

Даже или нечетный

nfft

[0, 2π) 

[S,f] = peig(x,p,nfft,fs) возвращает псевдоспектр в векторном S, оцененном в соответствующем векторе частот f (в Гц). Вы предоставляете частоту дискретизации fs в Гц. Если вы задаете fs с пустым вектором [], значения по умолчанию частоты дискретизации к 1 Гц.

Частотный диапазон для f зависит от nfft, fs и значений входа x. Длина Sf) эквивалентна в Характеристиках Вектора S и Частоты выше. Следующая таблица указывает на частотный диапазон для f для этого синтаксиса.

S и Характеристики Вектора Частоты с Заданной фс

Действительные/Комплексные Входные данныеРовный/Нечетный nfftОбласть значений f

С действительным знаком

Даже

[0, fs/2]

С действительным знаком

Нечетный

[0, fs/2)

С комплексным знаком

Даже или нечетный

[0, fs)

[S,f] = peig(x,p,f,fs) возвращает псевдоспектр в векторном S, вычисленном на частотах, заданных в векторном f.The, векторный f должен иметь два или больше элемента, потому что в противном случае функция интерпретирует его как nfft.

[S,f] = peig(...,'corr') обеспечивает входной параметр x, который будет интерпретирован как корреляционная матрица, а не матрица данных сигнала. Для этого синтаксиса x должен быть квадратной матрицей, и все ее собственные значения должны быть неотрицательными.

[S,f] = peig(x,p,nfft,fs,nwin,noverlap) позволяет вам задавать nwin, скалярное целое число, указывающее на прямоугольную длину окна или окно определения вектора с действительным знаком коэффициенты. Используйте скалярный целочисленный noverlap в сочетании с nwin, чтобы задать количество входных точек выборки, которыми накладываются последовательные окна. noverlap не используется, если x является матрицей. Значением по умолчанию для nwin является 2 × p(1), и noverlap является nwin – 1.

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

Оконные Данные В зависимости от x и nwin

Входные данные xФорма nwinОконные данные

Вектор данных

Скаляр

Длиной является nwin

Вектор данных

Вектор коэффициентов

Длиной является length(nwin)

Матрица данных

Скаляр

Данные не являются оконными.

Матрица данных

Вектор коэффициентов

length(nwin) должен совпасть с длиной столбца x, и noverlap не используется.

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

Примечание

Аргументы nwin и noverlap проигнорированы, когда вы включаете 'corr' в синтаксис.

[...] = peig(...,freqrange) задает область значений значений частоты, чтобы включать в f или w. freqrange может быть также:

  • 'half' — возвращает половину спектра для действительного входного сигнала, x. Если nfft даже, то S имеет длину nfft/2 + 1 и вычисляется на интервале [0, π]. Если nfft нечетен, длина S (nfft + 1)/2, и интервал частоты [0, π). Когда ваш задавать fs, интервалы [0, fs/2), и [0, fs/2] для четного и нечетного nfft, соответственно.

  • 'whole' — возвращает целый спектр или для действительного или для комплексного входа, x. В этом случае S имеет длину nfft и вычисляется на интервале [0,2π). Когда вы задаете fs, интервал частоты [0, fs).

  • 'centered' — возвращает целый спектр в центре или для действительного или для комплексного входа, x. В этом случае S имеет длину nfft и вычисляется на интервале (–π, π] для даже nfft и (–π, π) для нечетного nfft. Когда вы задаете fs, интервалы частоты (–fs/2, fs/2] и (–fs/2, fs/2) для четного и нечетного nfft, соответственно.

Примечание

Можно поместить аргументы freqrange или 'corr' где угодно в список входных параметров после p.

[...,v,e] = peig(...) возвращает матричный v шумовых собственных векторов, наряду со связанными собственными значениями в векторном e. Столбцы v охватывают шумовое подпространство размерности size(v,2). Размерностью подпространства сигнала является size(v,1)-size(v,2). Для этого синтаксиса e является вектором предполагаемых собственных значений корреляционной матрицы.

peig(...) без выходных аргументов строит псевдоспектр в окне текущей фигуры.

Примеры

свернуть все

Реализуйте метод собственного вектора, чтобы найти псевдоспектр суммы трех синусоид в шуме. Используйте длину БПФ по умолчанию 256. Входные параметры являются комплексными синусоидами, таким образом, вы устанавливаете p, равный количеству входных параметров. Используйте измененный метод ковариации для оценки корреляционной матрицы.

n = 0:99;   
s = exp(1i*pi/2*n)+2*exp(1i*pi/4*n)+exp(1i*pi/3*n)+randn(1,100);
X = corrmtx(s,12,'mod'); 
peig(X,3,'whole')

Сгенерируйте действительный сигнал, который состоит из суммы двух синусоид, встроенных в белый Гауссов шум модульного отклонения. Сигнал выбирается на уровне 100 Гц в течение 1 секунды. Синусоиды имеют частоты 25 Гц и 35 Гц. Синусоида более низкой частоты имеет дважды амплитуду другого.

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

s = 2*sin(2*pi*25*t)+sin(2*pi*35*t)+randn(1,100);

Используйте метод собственного вектора, чтобы вычислить псевдоспектр сигнала между 0 и частота Найквиста. Задайте размерность подпространства сигнала 2 и длину ДПФ 512.

peig(s,2,512,fs,'half')

Не возможно разрешить две синусоиды, потому что сигнал действителен. Повторите вычисление с помощью подпространства сигнала размерности 4.

peig(s,4,512,fs,'half')

Советы

В процессе оценки псевдоспектра peig вычисляет шумовые и подпространства сигнала из предполагаемых собственных векторов vj и собственные значения λj корреляционной матрицы сигнала. Самое маленькое из этих собственных значений используется в сочетании с пороговым параметром p(2), чтобы влиять на размерность шумового подпространства в некоторых случаях.

Длина n собственных векторов, вычисленных peig, является суммой размерностей и шумовых подпространств сигнала. Эта длина собственного вектора зависит от вашего входа (данные сигнала или корреляционная матрица) и синтаксис, который вы используете.

Следующая таблица обобщает зависимость длины собственного вектора на входном параметре.

Длина собственного вектора В зависимости от входных данных и синтаксиса

Форма Входных данных xКомментарии к синтаксисуДлина n Собственных векторов

Строка или вектор-столбец

nwin задан как скалярное целое число.

nwin

Строка или вектор-столбец

nwin задан как вектор.

length(nwin)

Строка или вектор-столбец

nwin не задан.

2 × p(1)

l-by-m матрица

Если nwin задан как скаляр, он не используется. Если nwin задан как вектор, length(nwin) должен равняться m.

m

m-by-m неотрицательная определенная матрица

'corr' задан, и nwin не используется.

m

Необходимо задать nwin > p(1) или length(nwin) > p(1), если вы хотите, чтобы p(2) > 1 имел какой-либо эффект.

Алгоритмы

Метод собственного вектора оценивает псевдоспектр от сигнала или корреляционной матрицы с помощью взвешенной версии алгоритма MUSIC, выведенного от eigenspace [1] [2] метода анализа Шмидта. Алгоритм выполняет eigenspace анализ корреляционной матрицы сигнала в порядке оценить содержимое частоты сигнала. Собственные значения и собственные вектора корреляционной матрицы сигнала оцениваются с помощью svd, если вы не предоставляете корреляционную матрицу. Этот алгоритм особенно подходит для сигналов, которые являются суммой синусоид с аддитивным белым Гауссовым шумом.

Метод собственного вектора производит оценку псевдоспектра, данную

Pev(f)=1k=p+1N|vkHe(f)|2/λk

где N является размерностью собственных векторов, и vk является k th собственный вектор корреляционной матрицы входного сигнала. Целочисленный p является размерностью подпространства сигнала, таким образом, собственные вектора vk, используемый в сумме, соответствуют самым маленьким собственным значениям λk корреляционной матрицы. Собственные вектора использовали, охватывают шумовое подпространство. Векторный e (f) состоит из комплексных экспоненциалов, таким образом, скалярное произведение vkH e (f) составляет преобразование Фурье. Это используется для вычисления псевдоспектра. БПФ вычисляется для каждого vk, и затем значения в квадрате суммируются и масштабируются.

Ссылки

[1] Марпл, С. Лоуренс. Цифровой Спектральный анализ. Englewood Cliffs, NJ: Prentice Hall, 1987, стр 373–378.

[2] Шмидт, R. O. “Несколько Эмиттерное Местоположение и Оценка Параметра Сигнала”. IEEE® Transactions на Антеннах и Распространении. Издание AP-34, март 1986, стр 276–280.

[3] Stoica, Петр и Рэндольф Л. Моисей. Спектральный анализ сигналов. Верхний Сэддл-Ривер, NJ: Prentice Hall, 2005.

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

| | | | | | | |

Представлено до R2006a