2009-12-16 5 views
1

У меня есть две формы сигнала, которые связаны числовым коэффициентом. Мне нужно использовать оптимальное масштабирование (наименьшие квадраты) между двумя формами колебаний, чтобы вычислить этот коэффициент в Matlab. К сожалению, я не знаю, как это сделать. Двумя волновыми формами являются сейсмические сигналы, связанные с скоростью сейсмических волн, которые я пытаюсь вычислить. Есть идеи? нужна дополнительная информация?Оптимальное масштабирование наименьших квадратов

+0

Связаны ли две волны по амплитуде или по частоте? Существует ли фазовый сдвиг между двумя волнами? –

+0

Амплитуда осциллограмм должна масштабироваться пропорционально множителю, который я пытаюсь вычислить. Может быть небольшой сдвиг фазы, но предположим, что пока нет. – Jon

ответ

1

Звоните W1 и W2 два вектора. Чтобы это работало, они должны быть векторами столбцов. Транспортируйте их, если они представляют собой строки вместо столбцов. Тогда, если мы хотим найти значение k такое, что W1 = k * W2, просто используйте обратную косую черту.

k = W2\W1; 

Обратная косая черта дает вам оценку по методу линейной регрессии (наименьших квадратов) в соответствии с запросом. Конечно, это не относится к неизвестному фазовому сдвигу.

+0

Есть ли предел способности этого уравнения в качестве оценки? Я ожидаю значения 2500-4000, но этот метод дает мне значение 0.9913. Я могу приблизиться к ожидаемому значению, разделив одиночные значения из двух столбцов. Я так и думал, иногда отношение сигнал-шум чрезвычайно низкое, а это означает, что волны будут полностью несовместимы. Я должен будет ограничить это уравнение только для высоких областей S/N. – Jon

+0

Извините, я получил неправильное уравнение. Я теперь исправил его, но я все еще получаю широкий переменный результат, когда я использую его на небольших сегментах сигналов, и ожидаемые результаты должны быть довольно линейными. – Jon

+1

Если вы хотите преобразовать * аффинный *, вам нужно включить термин перехвата: 'betas = [ones (numel (W2), 1), W2 (:)] \ W1 (:)', после которого 'W1' является приблизительно 'betas (1) + betas (2) * W2'; – shabbychef

1

Одним из дрянных способов оценки линейного фактора без необходимости иметь дело с фазовым сдвигом является вычисление отношения расчетных масштабов волн. Cheesiest способ заключается в использовании стандартного отклонения:

k = std(W1)/std(W2);

, если вы заботитесь о надежности, я бы заменить в MAD или МКД; Безумный является медиана абсолютного отклонения, что вы можете (несколько нерационально) «инлайн», как так:

MAD = @(x)(median(abs(bsxfun(@minus,x,median(x))))); 
k = MAD(W1)/MAD(W2); 

МКД является диапазоном межквартильного, который требует надлежащего квантиль вычисления. вы можете реализовать это неэффективно, используя sort. Я оставляю это как упражнение для читателя.

+0

BTW, этот материал * * хлеб и масло пульсовой оксиметрии. Если у вас заканчиваются идеи, проверьте литературу по ПО или просмотрите патенты, извергаемые Неллкором и Массимо. – shabbychef