[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено ВН 03 января 2002 г. 13:46
В ответ на: Согласен: отправлено Vallav 03 января 2002 г. 11:16

Пока еще не уехал. Сегодня, вечерней лошадью.
Думаю, что можно, хотя и не просто. Но для этого нужна хорошая модель сигнала, я писал. Хорошая модель - это, по сути, использование некой априорной информации о сигнале. Собственно такие методы спектр. анализа, как макс. энтропии, Писаренко и т.д., тоже ведь используют априорную информацию о сигнале, в отличии от Фурье. Точнее предполагают определенное поведение сигнала (кор. функции) за пределами интервала наблюдения. За счет чего и позволяют получить большую точность, если предположения сбываются.
Аппроксимация спектра из той же оперы.
Со спадом 1/t дела не имел, но с экспоненциальным спадом,точнее со спектром мощности экспоненц. спадающей синусоиды (Лоренц), неоднократно.
Для примера 2 типа спектров, которые приходилось аппроксимировать (квадраты модуля спектра):
1.S(f)=A0/(1+((f-f0)/D)^2)+A1/(1+((f-f0+f1)/D)^2)+A2/(1+((f-f0-f1)/D)^2)+C*f+E +n(f). A0-A2,f0,f1,D,C,E - неизвестны, n(f) - частотный шум
Это Лоренц с боковиками+ линейный член (спецификв установки) и шум.
Дисперсия шума неизвестна.
2. S(f)=A/(1+((f-f0)/D)^2) +B*(f-f0)/(1+((f-f0)/D)^2)+C+n(f).
Это искаженный Лоренц и шум. Искажения - B. A,B,f0,D,C - неизвестны.
Дисперсия шума неизвестна.
Первый случай самый неприятный - определение и отбраковка ложных решений. Во втором ложные решения появлялись при очень больших искажениях (кривая больше была похожа на производную Лоренца, чем на сам Лоренц).
Аппроксимация Лоренца без боковиков и искажений, не считая шума и подставки (или что-то типа линейного члена), трудностей не вызывает.
Забавно, но я пробовал аппроксимировать Лоренца Гауссом. Неплохо получалось, правда D оказывалась другой, но f0 - на месте.
В данном случае не Лоренц, но что-то весьма похожее. При трудностях с аналитикой можно попробовать аппроксимировать квадрат модуля спектра Лоренцем (или Гауссом).
Я обычно использую метод наименьших квадратов с итерациями, хотя это дело вкуса. Суть:
E=summa(Y(n)-F(n,A,B,C,...))^2.
E -ошибка, Y(n) - реализация, F(n,A,B,C,...) ф-ия, к которой аппроксимация, A,B,C, - неизвестные параметры. summa по n.
Далее система уравнений:
dE/dA=0,dE/dB=0,...
dE/dA=-2*summa((Y(n)-F(n,A,B,C,...))*dF(n,A,B,C,..)/dA)
Аналогично по B,C,...
В уравнениях F(n,A,B,C,...) раскладывается в ряд Тейлора до линейного члена. Т.е.:
F(n,A[i],B[i],C[i],...)=F(n,A[i-1],B[i-1],C[i-1],...)+deltaA[i]*dF/dA+
deltaB[i]*dF/dB+...
i - номер итерации.
Уравнения получаются относительно приращений параметров (deltaA,...).
Сами параметры: A[i]=A[i-1]+deltaA[i].
Выход - по равенству 0 приращений и прекращению изменеия ошибки.
Ошибка должна естественно уменьшаться от итерации к итерации.
Но, в случае попадания в локальный минимум ошибки, приходится искуственно давать новое решение, увеличивающее ошибку, чтобы выбраться из этого локального минимума. Правда вначале нужно понять, что это локальный минимум, а не глобальный.
Что-то я слишком много написал. Все.



Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru