pmusic

Псевдоспектр с помощью алгоритма MUSIC

Синтаксис

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

Описание

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

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

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

Примечание

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

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

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

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

Примечание

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

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

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

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

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

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

129

 [0, π]

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

256

 [0, 2π)

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

[S,w] = pmusic(...,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] = pmusic(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] = pmusic(x,p,f,fs) возвращает псевдоспектр в векторном S, вычисленном на частотах, заданных в векторном f. Векторный f должен иметь два или больше элемента, потому что в противном случае функция интерпретирует его как nfft

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

[S,f] = pmusic(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' в синтаксис.

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

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

Примеры

свернуть все

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

n = 0:199;
x = cos(0.257*pi*n) + sin(0.2*pi*n) + 0.01*randn(size(n));
pmusic(x,4)      % Set p to 4 because there are two real inputs

Этот пример анализирует тот же сигнальный вектор, x, с сокращением собственного значения на 10% выше минимума. Установка p(1) = Inf обеспечивает решение подпространства сигнала/шумовое быть основанной на пороговом параметре, p(2). Задайте собственные вектора длины 7 использований аргумента nwin и установите частоту дискретизации, fs, к 8 кГц:

rng default
n = 0:199;
x = cos(0.257*pi*n) + sin(0.2*pi*n) + 0.01*randn(size(n));
[P,f] = pmusic(x,[Inf,1.1],[],8000,7); % Window length = 7
plot(f,20*log10(abs(P)))
xlabel 'Frequency (Hz)', ylabel 'Power (dB)'
title 'Pseudospectrum Estimate via MUSIC', grid on

Предоставьте положительную определенную корреляционную матрицу, R, для оценки спектральной плотности. Используйте значение по умолчанию 256 выборок.

R = toeplitz(cos(0.1*pi*(0:6))) + 0.1*eye(7);
pmusic(R,4,'corr')

Введите матрицу данных сигнала, Xm, сгенерированный от данных с помощью corrmtx.

n = 0:699;
x = cos(0.257*pi*(n)) + 0.1*randn(size(n));
Xm = corrmtx(x,7,'modified');
pmusic(Xm,2)

Используйте тот же сигнал, но позвольте pmusic сформировать 100 7 матрицу данных с помощью своих входных параметров работы с окнами. Кроме того, задайте БПФ длины 512.

n = 0:699;
x = cos(0.257*pi*(n)) + 0.1*randn(size(n));
[PP,ff] = pmusic(x,2,512,[],7,0);
pmusic(x,2,512,[],7,0)

Советы

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

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

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

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

Форма Входных данных 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 является акронимом для Нескольких Классификация Сигнала. Алгоритм MUSIC оценивает псевдоспектр от сигнала или корреляционной матрицы с помощью eigenspace метода анализа Шмидта [1]. Алгоритм выполняет eigenspace анализ корреляционной матрицы сигнала в порядке оценить содержимое частоты сигнала. Этот алгоритм особенно подходит для сигналов, которые являются суммой синусоид с аддитивным белым Гауссовым шумом. Собственные значения и собственные вектора корреляционной матрицы сигнала оцениваются, если вы не предоставляете корреляционную матрицу.

Оценкой псевдоспектра MUSIC дают

PМУЗЫКА(f)=1eH(f)(k=p+1NvkvkH)e(f)=1k=p+1N|vkHe(f)|2

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

vkHe(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