Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Определение постоянной составляющей синусоиды...
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Страницы: 1, 2
vladimir_m
Задача такая.
Есть сигнал - синусоида с постоянной составляющей, которая может медленно изменяться.
Синусоида оцифровывается и передаетя в комп буферами. Период синусоиды большой, заранее не известный, намного больше фиксированного размера буфера. Необходимо отслеживать изменение постоянной составляющей по приходу каждого буфера (уточнять с каждым буфером).
Как такое можно сделать?
D.I.M.A
Оценивать мат. ожидание процесса.
rezident
А постоянная составляющая по какому-то закону изменяется (в зависимости от какого-то внешнего параметра, температуры, например) или непредсказуемо?
vladimir_m
Цитата
А постоянная составляющая по какому-то закону изменяется (в зависимости от какого-то внешнего параметра, температуры, например) или непредсказуемо?

Закон не известен. Можно с некоторыми оговорками предположить, что постоянная составляющая не изменяется. Но это грубовато.

Цитата
Оценивать мат. ожидание процесса.

Это понятно. Как это сделать, если на входе только кусочки синусоиды, которые постепенно формируют период. А оценивать постоянную составляющую нужно сразу.

Вообще-то я делал так:
- усреднял полученный буфер и рассматривал его как первое приближение.
- усреднял следующий буфер - и в качестве оценки постоянной составляющей брал среднее от двух предыдущих оценок - следующее приближение и т.д.
Такая оценка в итоге сама превращалась в синусоиду...
sysel
По идее, для получения постоянной составляющей надо устремить время усреднения к бесконечности (в разумных пределах, конечно). Я бы использовал достаточно большое плывущее окно, по которому бы и усреднял.
Если девайсу Вашему памяти нехватает для большого плывущего окна - пусть компьютерная программа этим занимается.

Можно попробовать сделать цифровой НЧ фильтр, со срезом на низкой частоте (заведомо меньшей частоты Вашего полезного сигнала)
Самурай
Цитата(vladimir_m @ Nov 21 2008, 16:03) *
Задача такая.
Есть сигнал - синусоида с постоянной составляющей, которая может медленно изменяться.
Синусоида оцифровывается и передаетя в комп буферами. Период синусоиды большой, заранее не известный, намного больше фиксированного размера буфера. Необходимо отслеживать изменение постоянной составляющей по приходу каждого буфера (уточнять с каждым буфером).
Как такое можно сделать?


Мат.ожидание (среднее в частном случае) это далеко не "постоянная" составляющая процесса. Достаточно усреднить синусоиду в районе pi/2 чтобы это увидетьsmile.gif. Если оценку постоянной составляющей надо делать быстро, по каждому буферу, то можно попробовать метод МНК. Или ФНЧ как предлагали выше.
vladimir_m
Большое окно - это хорошо. Расчетом занимается и так комп, просто ему и так задач хватает.
Буду думать как сделать расчет по окну более эффективным. А можно сделать размер окна адаптивным?
fontp
Цитата(vladimir_m @ Nov 21 2008, 17:17) *
Большое окно - это хорошо. Расчетом занимается и так комп, просто ему и так задач хватает.
Буду думать как сделать расчет по окну более эффективным. А можно сделать размер окна адаптивным?


Фильтр НЧ с постоянной времени заведомо во много периодов синусоиды поможет.

Простейший рекурсивный y(n) = (1-e)* y(n-1) + e*x(n) , если всё равно какой в смысле времени реакции, е очень мало

Но если это слишком медленно, то нужно сшивать буфера, оценивать период синусоиды и суммировать по периоду
ivan219
Зделать FFT и 0 отщёт будет = пост состовляющей.
ivan219
1
Stanislav
Цитата(ivan219 @ Nov 21 2008, 22:57) *
Зделать FFT и 0 отщёт будет = пост состовляющей.
Круто!
Средство на все случаи жизни. biggrin.gif


Цитата(D.I.M.A @ Nov 21 2008, 16:16) *
Оценивать мат. ожидание процесса.
Глубокая мысль. А как это сделать практически, не подскажете? wink.gif


Цитата(fontp @ Nov 21 2008, 18:07) *
Фильтр НЧ с постоянной времени заведомо во много периодов синусоиды поможет.

Простейший рекурсивный y(n) = (1-e)* y(n-1) + e*x(n) , если всё равно какой в смысле времени реакции, е очень мало...
Некошерно. В лоб решение, без мысли...

Цитата(fontp @ Nov 21 2008, 18:07) *
...Но если это слишком медленно, то нужно сшивать буфера, оценивать период синусоиды и суммировать по периоду
А как сшивать, ежели постоянка?


Цитата(sysel @ Nov 21 2008, 16:49) *
По идее, для получения постоянной составляющей надо устремить время усреднения к бесконечности (в разумных пределах, конечно). Я бы использовал достаточно большое плывущее окно, по которому бы и усреднял.
Если девайсу Вашему памяти нехватает для большого плывущего окна - пусть компьютерная программа этим занимается.

Можно попробовать сделать цифровой НЧ фильтр, со срезом на низкой частоте (заведомо меньшей частоты Вашего полезного сигнала)
М-да, лекарство не лучше болезни... Условиям задачи не удовлетворяет. А, между тем, решение существует. smile.gif

Цитата(vladimir_m @ Nov 21 2008, 16:03) *
Задача такая.
Есть сигнал - синусоида с постоянной составляющей, которая может медленно изменяться.
Синусоида оцифровывается и передаетя в комп буферами. Период синусоиды большой, заранее не известный, намного больше фиксированного размера буфера. Необходимо отслеживать изменение постоянной составляющей по приходу каждого буфера (уточнять с каждым буфером).
Как такое можно сделать?
Для вычисления параметров синусоиды и определения постоянной составляющей теоретически достаточно 4-х отсчётов сигнала.
Решением системы 4-х уравнений будут амплитуда, частота, фаза синусоиды и постоянка.
В Вашей постановке с учётом дополнения задача имеет точное решение по содержимому только одного буфера.
Возможность практической реализации ограничивается необходимой точностью при заданных параметрах выборки и заданном уровне помех.
Оценки ПС в окнах выборки можно усреднять (с "забыванием", если подставка медленно меняется).

Цитата(vladimir_m @ Nov 21 2008, 16:34) *
Вообще-то я делал так:
- усреднял полученный буфер и рассматривал его как первое приближение.
- усреднял следующий буфер - и в качестве оценки постоянной составляющей брал среднее от двух предыдущих оценок - следующее приближение и т.д.
Такая оценка в итоге сама превращалась в синусоиду...
Криво, уж простите... Ничего хорошего так не выйдет. sad.gif
Михаил_K
А чем не подходит это
http://electronix.ru/forum/index.php?act=S...f=2&t=54351
vladimir_m
Всем спасибо!
Лично я остановился на варианте уважаемого fontp, как наиболее приемлемом алгоритмически для моей задачи.
Stanislav
Цитата(Михаил_K @ Nov 22 2008, 13:01) *
А чем не подходит это
http://electronix.ru/forum/index.php?act=S...f=2&t=54351
А каким должен быть коэффициент K Вашего чудо-алгоритма? wink.gif

Цитата(vladimir_m @ Nov 22 2008, 15:31) *
Всем спасибо!
Лично я остановился на варианте уважаемого fontp, как наиболее приемлемом алгоритмически для моей задачи.
Ну, можно, конечно, и так, если мозгами шевелить лень...
Только коряво это. Оценку долго ждать придётся, если хоть мало-мальская точность нужна..
Tanya
Цитата(vladimir_m @ Nov 22 2008, 15:31) *
Всем спасибо!
Лично я остановился на варианте уважаемого fontp, как наиболее приемлемом алгоритмически для моей задачи.

Несколько странно... Такой метод подойдет ведь для сигналов любой формы и их суммы. Если Вы точно знаете, что там одна чистая синусоида, то можно эффективнее... Хозяин - барин.
GetSmart
Цитата(Stanislav)
Для вычисления параметров синусоиды и определения постоянной составляющей теоретически достаточно 4-х отсчётов сигнала.
Решением системы 4-х уравнений будут амплитуда, частота, фаза синусоиды и постоянка.
На практике к 4-ём отсчётам понадобится ещё подходящая фаза Юпитера biggrin.gif

Цитата
В Вашей постановке с учётом дополнения задача имеет точное решение по содержимому только одного буфера.

На бумаге, не в реале. Без учёта разрешающей способности АЦП, джиттера, частоты выборки относительно частоты синуса, и т.д. и т.п. Думаю автор не указал ещё важные детали, которые сильно влияют на точность результата, типа шумов, посторонних сигналов (хотя бы 50 Гц частоты).
Stanislav
Цитата(GetSmart @ Nov 22 2008, 20:12) *
На практике к 4-ём отсчётам понадобится ещё подходящая фаза Юпитера
Послушайте, уважаемый Получатель Разума. А не пора ли взяться за ум и прекратить писать всякую чушь по поводу вещей, о которых не имеете ни малейшего представления?
Так что вот мой Вам совет: прекращайте обезьянничать и займитесь чем-нибудь более полезным.

Цитата(GetSmart @ Nov 22 2008, 20:12) *
...На бумаге, не в реале. Без учёта разрешающей способности АЦП, джиттера, частоты выборки относительно частоты синуса, и т.д. и т.п. Думаю автор не указал ещё важные детали, которые сильно влияют на точность результата, типа шумов, посторонних сигналов (хотя бы 50 Гц частоты).
Прежде, чем писать ерунду, прочитайте тему сначала. Особо обратите внимание на условие и на пост #11.
Предложенный мною путь даст принципиально самую точную оценку за разумное время из всех, что здесь обнародованы. Можете справиться у ув. fontp. biggrin.gif
Естественно, его нужно довести до ума. Но если Автору темы не надо - зачем же тогда зря стараться?
GetSmart
Цитата(Stanislav)
Послушайте, уважаемый Получатель Разума.
Только настоящий "Получатель Разума" в контексте вопроса автора темы мог написать такое:
Цитата
Для вычисления параметров синусоиды и определения постоянной составляющей теоретически достаточно 4-х отсчётов сигнала.
...
В Вашей постановке с учётом дополнения задача имеет точное решение по содержимому только одного буфера.
Мне до такого разума ещё далеко cool.gif
Можно поинтересоваться, как посчитать точный результат в буфере, равном 1/30 периода синусоиды, где все значения 10-битные, а амплитуда синусоиды допустим 2-3 бита? Если очень хочется, то 4 biggrin.gif И как этот самый точный результат будет меняться от одного буфера к следующему?
С нетерпением жду чуда cool.gif

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

Может он написан невидимыми чернилами, но не видно его, ей богу lol.gif
Stanislav
Цитата(GetSmart @ Nov 23 2008, 02:38) *
Только настоящий "Получатель Разума" в контексте вопроса автора темы мог написать такое...
Вот глупенький... sad.gif
Читаем ещё раз (у остальных посетителей прошу прощения за самоцитирование):
Цитата
Для вычисления параметров синусоиды и определения постоянной составляющей теоретически достаточно 4-х отсчётов сигнала.
Решением системы 4-х уравнений будут амплитуда, частота, фаза синусоиды и постоянка.
В Вашей постановке с учётом дополнения задача имеет точное решение по содержимому только одного буфера.
Возможность практической реализации ограничивается необходимой точностью при заданных параметрах выборки и заданном уровне помех.
Оценки ПС в окнах выборки можно усреднять (с "забыванием", если подставка медленно меняется).
Для говорунов, "отличающихся умом и сообразительностью", ключевое слово и фразу выделил.
Даже до Вас должно начать доходить. В противном случае - увы, медицина бессильна. crying.gif

Цитата(GetSmart @ Nov 23 2008, 02:38) *
Мне до такого разума ещё далеко cool.gif
Нисколько в этом не сомневаюсь. cool.gif

Цитата(GetSmart @ Nov 23 2008, 02:38) *
...Можно поинтересоваться, как посчитать точный результат в буфере, равном 1/30 периода синусоиды, где все значения 10-битные, а амплитуда синусоиды допустим 2-3 бита? Если очень хочется, то 4 biggrin.gif И как этот самый точный результат будет меняться от одного буфера к следующему?
С нетерпением жду чуда
Ждите, дорогой, ждите. Как тот кот над дыркой. biggrin.gif


Цитата(GetSmart @ Nov 23 2008, 02:38) *
Может он написан невидимыми чернилами, но не видно его, ей богу
Вы смысл написанного не можете понять, только и всего. biggrin.gif
Если автору темы будет интересно, можно и разжевать. Вы же помучайтесь. wink.gif И о консультации у старших товарищей не забывайте: метод обращения к авторитету, вероятно, для Вас - единственный путь Получения Разума, так как головой вы думать не способны, что и подтверждаете в очередной раз. smile.gif
GetSmart
Цитата(Stanislav)
Возможность практической реализации ограничивается необходимой точностью при заданных параметрах выборки и заданном уровне помех.
Я уже привёл пример исходных данных, которые не позволят вычислить ваши пустые обещания. Можете продолжать вертеться как клоуны в цирке, но мне и другим давно ясно что вы пи...бол.

ЗЫ. Даже Котельников так беспардонно не насиловал математику smile.gif

Цитата(fontp)
Но если это слишком медленно, то нужно сшивать буфера, оценивать период синусоиды и суммировать по периоду

Это пока что самый простой, точный и оперативный (по задержке между сигналом и результатом) из предложенных здесь методов. При условии, что между поступающими буферами нет потерянных отсчётов. Если вдруг будет постоянка, то любая сумма (делённая на кол-во отсчётов) любого кол-ва отсчётов будет правильным результатом smile.gif

Причём когда в сигнале есть только одна синусоида и она значительно больше шумов, то достаточно найти два пика этой синусоиды (без т.н. "оценивания") и посчитать сумму между ними.
Stanislav
Цитата(GetSmart @ Nov 24 2008, 01:24) *
Я уже привёл пример исходных данных, которые не позволят вычислить ваши пустые обещания.
Да зачем мне Ваши данные?
Я основываюсь на информации, предоставленной Автором темы.
Ваши же вопросы достойны отдельного раздела на форуме. wink.gif

Цитата(GetSmart @ Nov 24 2008, 01:24) *
...Можете продолжать вертеться как клоуны в цирке, но мне и другим давно ясно что вы пи...бол.
А вот по поводу этого заявления, уважаемый, будет направлена жалоба в администрацию. Надеюсь, что попрошайничество на сей раз Вам не поможет снять взыскание.
И кто эти "другие", не могли бы просветить? wink.gif

Цитата(GetSmart @ Nov 24 2008, 01:24) *
ЗЫ. Даже Котельников так беспардонно не насиловал математику smile.gif
Да ладно Вам, ниспровергатель основ, на Котельникова напраслину возводить. Признайтесь лучше, что не понимаете сути открытого им закона. Одна тема про разрешающую способность АЦП с плавным переходом к "опровержению" теоремы отсчётов чего стоит.
Ну, а на меня - тем более не надо. smile.gif Ибо, в отличие от Котельникова, я Ваше невежество могу вытащить на свет божий и распластать пред взоры публики не отходя от кассы. wink.gif

Цитата(GetSmart @ Nov 24 2008, 01:24) *
...Это пока что самый простой, точный и оперативный (по задержке между сигналом и результатом) из предложенных здесь методов.
А Вы у ув. fontp не забыли по этому поводу получить консультацию? Если нет - не тяните и сделайте это сейчас же! biggrin.gif

Он-то знает, что это вовсе не так. wink.gif

Цитата(GetSmart @ Nov 24 2008, 01:24) *
...При условии, что между поступающими буферами нет потерянных отсчётов.
Этого в условии нет.
Кроме того, сказано (нужное традиционно выделил smile.gif ) :
Цитата(vladimir_m @ Nov 21 2008, 16:03) *
Задача такая.
Есть сигнал - синусоида с постоянной составляющей, которая может медленно изменяться.
Синусоида оцифровывается и передаетя в комп буферами. Период синусоиды большой, заранее не известный, намного больше фиксированного размера буфера. Необходимо отслеживать изменение постоянной составляющей по приходу каждого буфера (уточнять с каждым буфером).
Как такое можно сделать?
Цитата(vladimir_m @ Nov 21 2008, 16:34) *
...А оценивать постоянную составляющую нужно сразу.
Вот я и предложил способ, который определяет постоянную составляющую "сразу". А потом может её уточнять с приходом каждого последующего буфера.

Цитата(GetSmart @ Nov 24 2008, 01:24) *
...Если вдруг будет постоянка, то любая сумма (делённая на кол-во отсчётов) любого кол-ва отсчётов будет правильным результатом smile.gif
lol.gif lol.gif lol.gif
Дорогой, Вы меня способны уморить насмерть. Пожалейте, ради бога, не выдавайте больше таких откровений...

Цитата(GetSmart @ Nov 24 2008, 01:24) *
...Причём когда в сигнале есть только одна синусоида и она значительно больше шумов, то достаточно найти два пика этой синусоиды (без т.н. "оценивания") и посчитать сумму между ними.
lol.gif
А это как: "посчитать сумму между ними", т.е., двумя пиками, как Вы изволили выразиться? 07.gif

Вот и посчитайте её для своих же условий. А я посмеюсь.
GetSmart
Цитата(Stanislav @ Nov 24 2008, 05:20) *
А вот по поводу этого заявления, уважаемый, будет направлена жалоба в администрацию. И, надеюсь, что попрошайничество на сей раз Вам не поможет снять взыскание.

Ну вы прямо как девочка... Будет жаловаться. Прямого нарушения правил нет, успокойтесь smile.gif

Где конкретный алгоритм расчёта постоянки только по одному буферу? Либо выкладывайте, либо слив засчитан. Отмазки типа "знаю, но не скажу" оставьте для своих обожателей.
Stanislav
Цитата(GetSmart @ Nov 24 2008, 02:45) *
Ну вы прямо как девочка... Будет жаловаться. Прямого нарушения правил нет, успокойтесь smile.gif
Это решать модераторам. Скриншоты имеются. Надеюсь, они примут правильное решение.

Цитата(GetSmart @ Nov 24 2008, 02:45) *
...Где конкретный алгоритм расчёта постоянки только по одному буферу? Либо выкладывайте, либо слив засчитан. Отмазки типа "знаю, но не скажу" оставьте для своих обожателей.
Так не пойдёт. Давайте на деньги поспорим.
Не будет алгоритма - деньги Ваши. Ну, а уж будет - мои.wink.gif
За бесплатно доказывать Вам что-либо не имею желания боле.
fontp
Цитата(Tanya @ Nov 22 2008, 15:58) *
Несколько странно... Такой метод подойдет ведь для сигналов любой формы и их суммы. Если Вы точно знаете, что там одна чистая синусоида, то можно эффективнее... Хозяин - барин.


Существует закон Парето, утверждающий что для каждой задачи существует наиболее эффективное решение, на 80% от идеала, которое обеспечивают 20% усилий wink.gif Больше и не надо. Зачем платить больше? wink.gif В реальной жизни судбба оставшихся 20% от совершенства в руках менеджеров. Не дело это экспертов... У менеджеров тут только 2 выхода : или удовлетвориться достигнутым, или нанять 10 низкоквалифицированых недорогих студней, чтобы пилить дальше чистое золото wink.gif


В принципе, если бы в условиях задачи было бы сказано, что частота синусоиды находится в диапазоне, то можно было бы предложить следующее (менее простое но более совершенное) решение:
вычистить синусоиду режектором

Походу, чем более "совершенно" решение - тем менее оно робастно (т.е. устойчиво и структурно устойчиво), поскольку зиждется на большем числе СОМНИТЕЛЬНЫХ предположений

Более "эффективное", в смысле совершенное решение не адекватно условию задачи

Оценивать синусоиду - это уже последнее дело. Но кривизна буферов никакой роли не играет. Это не должно смущать автора поста. Если даже данные асинхронны, их можно всегда загнать в линию задержки, которую для решения задачи рассматривать как буфер произвольной длины (до длины линии задержки max)
Stanislav
Цитата(fontp @ Nov 24 2008, 11:17) *
В принципе, если бы в условиях задачи было бы сказано, что частота синусоиды находится в диапазоне, то можно было бы предложить следующее (тоже простое но эффективное) решение:
вычистить синусоиду режектором
Странно... Я готов был услышать подобное от GetSmart, но не от Вас. sad.gif
Сколько времени уйдёт на такую вот режекцию, ну, сколько переходный процесс будет длиться?
Уж лучше тогда действительно период вычислить, а потом по нему усреднять, как предлагает этот "теоретик".
Режекция может быть эффективна только если период синусоиды известен определённо. Что есть тавталогия.
Кроме того, не сказано, что в сигнале нет разрывов.

Цитата(fontp @ Nov 24 2008, 11:17) *
...Более "эффективное" в смысле совершенное не адекватно условию задачи
Почему же? Оно соответствует условиям в полной мере, только вычислительно гораздо сложнее.
fontp
Цитата(Stanislav @ Nov 24 2008, 11:30) *
Странно... Я готов был услышать подобное от GetSmart, но не от Вас. sad.gif
Сколько времени уйдёт на такую вот режекцию, ну, сколько переходный процесс будет длиться?
Уж лучше тогда действительно период вычислить, а потом по нему усреднять, как предлагает этот "теоретик".
Режекция может быть эффективна только если период синусоиды известен определённо. Что есть тавталогия.
Кроме того, не сказано, что в сигнале нет разрывов.

Почему же? Оно соответствует условиям в полной мере, только вычислительно гораздо сложнее.


Просто Вы не знакомы с законом Парето и основным принципом принятия эффективного решения "80 на 20". Нужно использовать всегда простейшие решения из возможных. Workaround, если Вам это что нибудь говорит, а не нанотехнологию

Про время измерения я упомянул в самом первом посте. Про время ничего не сказано автором. Поэтому можно догадаться, что чуваку время пофиг по умолчанию или около того. Надо исходить из того, что всё что упущено в условии - пофиг, а не усложнять задачу выдумками... Поэтому самое первое и общее решение - НЧ-фильтрация, полосовая режекция - второе решение (полоса определяет время) и т.д.


ЗЫ. Извините, Stanislav, а со своими разрывами Вы вообще всех уже задолбали ещё в начале лета. Про разрывы ничего не сказано, про разрывы Вы придумали wink.gif
Stanislav
Цитата(fontp @ Nov 24 2008, 11:41) *
Просто Вы не знакомы с законом Парето и основным принципом принятия эффективного решения "80 на 20". Нужно использовать всегда простейшие решения из возможных. Workaround, если Вам это что нибудь говорит, а не нанотехнологию
Я так не считаю. Простейшие решения - часто оказываются не самыми лучшими. А закон Парето - лишь пример словоблудия, основное положения которого не сможете доказать ни Вы, ни кто-либо другой.
Кроме того, по поводу 80% - Вы себе явно льстите. wink.gif Предложенный Вами метод даст результат через неопределённое время.

Цитата(fontp @ Nov 24 2008, 11:41) *
...Про время измерения я упомянул в самом первом посте. Про время ничего не сказано автором.
Как это не сказано? Постоянная составляющая ему нужна "сразу". Прочитайте ещё раз условия.

Цитата(fontp @ Nov 24 2008, 11:41) *
...Поэтому можно догадаться, что чуваку время пофиг по умолчанию или около того. Надо исходить из того, что всё что упущено в условии - пофиг, а не усложнять задачу выдумками... Поэтому самое первое и общее решение - НЧ-фильтрация, полосовая режекция - второе решение (полоса определяет время) и т.д.
Решение в лоб и без мысли, как я и писал уже...


Цитата(fontp @ Nov 24 2008, 11:41) *
...ЗЫ. Извините, Stanislav, а со своими разрывами Вы вообще всех уже задолбали ещё в начале лета.
Какими такими "моими разрывами"? И кого это "всех"? Настоятельно прошу ответить.

Цитата(fontp @ Nov 24 2008, 11:41) *
...Про разрывы ничего не сказано, про разрывы Вы придумали wink.gif
Если нет - значит нет. Про это тоже нигде не сказано. Собственно, я на этом не настаиваю, и принципиально это ничего не меняет.
fontp
Цитата(Stanislav @ Nov 24 2008, 12:01) *
Кроме того, по поводу 80% - Вы себе явно льстите. wink.gif Предложенный Вами метод даст результат через неопределённое время.


Да ладно... Переходное время линейного фильтра равно обратному значению его полосы. Вполне определённое. Другое дело, что называет автор под "медленно меняющейся постоянной составляющей", может она "медленно меняется" быстрее чем переходное время фильтра wink.gif

Поэтому я получу результат за известное время ВСЕГДА. Возможно, это будет не то, что хотелось автору. Какой вопрос - такой ответ


Цитата(Stanislav @ Nov 24 2008, 12:01) *
Как это не сказано? Постоянная составляющая ему нужна "сразу". Прочитайте ещё раз условия.


Про "сразу" это он погорячился. И не в условии, а потом...
В любом случае для того, чтобы отличить компоненту частоты 0 от компоненты частоты F ему нужно время измерения сигнала как минимум 1/F

Цитата(Stanislav @ Nov 24 2008, 12:01) *
Решение в лоб и без мысли, как я и писал уже...
Какими такими "моими разрывами"? И кого это "всех"? Настоятельно прошу ответить.


Разрывами, которые Вы собрались сшивать по непрерывности сигнала. Существование разрывов во времени, когда сигнал не регистрируется, обычно есть признак неправильного проектирования девайса. Тогда задним числом программными методами пытаются замутить компенсацию ошибки аппаратного проектирования. Бывает, но не типично...
В маломальски приличном шуме ничего реально "по непрерывности" Вы не зашьете, пустое

"Все" - это все, кроме Вас. Понятно, что это моё частное мнение + мнение тех с кем этот вопрос мной обсуждался wink.gif

Нет-нет-и-нет. Никакой фигни "по непрерывности" в практических случаях не бывает

И не смейте меня винить в хамстве и грозить забанить! В Вашем стиле... Сначала обозвать оппонента "без мысли", потом бежать ябедничать модераторам ;-)

ЗЫ. В дискуссии о "сшивании сигнала по непрерывности" я участвовать не собираюсь. Мое мнение что это фигня, оправданная только для отмазок от предъяв заказчика, когда бабки потрачены на проектирование кривого устройства. Денег всё равно уже нет, нужно искать цивилизованное решение и т.д. wink.gif
alexkok
Цитата(fontp @ Nov 24 2008, 12:51) *
Про "сразу" это он погорячился. И не в условии, а потом...
В любом случае для того, чтобы отличить компоненту частоты 0 от компоненты частоты F ему нужно время измерения сигнала как минимум 1/F

Не обязательно.
Если функция известна, а в данном случае это
y = a + b*sin(2*pi*f + phi),
То при достаточном отношении сигнал/шум можно применить "fitting".
GetSmart
Цитата(ivan219 @ Nov 22 2008, 01:57) *
Зделать FFT и 0 отщёт будет = пост состовляющей.
Возможный уровень ошибки из-за нецелого числа периодов в FFT будет A/N, где A = амплитуда синусоиды, N = кол-во целых периодов синусоиды в расчётных отсчётах. При вычислении нового FFT после прихода нового буфера этот уровень ошибки выльется пульсациями в результате. Прикол в том, что ошибка будет приблизительно равна ошибке в вычислении простого средне арифметического всех отсчётов smile.gif
GetSmart
По приходу нового буфера берётся несколько последних буферов (с гарантированным хотя бы одним периодом) и точно определяется период опорной частоты методом корелляции. Интеграл сигнала от периода даст постоянку. Влияние шумов на результат минимально. Широкие просторы для оптимизации. Начиная от начального поиска пика корелляции в допустимых пределах частоты синусоиды и до последующего использования в алгоритме корелляции минимального кол-ва буферов, равного 1..1.5 от периода. Плюс учёт первоначального постоянного смещения (постояннки) между периодами для повышения точности результата.


PS. Зубрила нервно курит в сторонке biggrin.gif
Stanislav
Цитата(fontp @ Nov 24 2008, 12:51) *
Да ладно... Переходное время линейного фильтра равно обратному значению его полосы. Вполне определённое. Другое дело, что называет автор под "медленно меняющейся постоянной составляющей", может она "медленно меняется" быстрее чем переходное время фильтра
Очень распространённое заблуждение, обычно выдающее дилетанта.
"Переходное время фильтра", как Вы изволили выразиться, определяется, в общем, не шириной его полосы, а крутизной спада спектральных составляющих в переходной полосе (т.е, эквивалентной добротностью), отнесённой к частоте среза этого фильтра.
Не устаю вам в очередной раз удивляться... В данном случае, уже с кислым привкусом... sad.gif

Цитата(fontp @ Nov 24 2008, 12:51) *
Поэтому я получу результат за известное время ВСЕГДА. Возможно, это будет не то, что хотелось автору. Какой вопрос - такой ответ
Да я и не спрашивал особенно ни о чём... Только вот в условии написано:
Цитата(vladimir_m @ Nov 21 2008, 16:03) *
...Синусоида оцифровывается и передаетя в комп буферами. Период синусоиды большой, заранее не известный, намного больше фиксированного размера буфера...
Отсюда явно следует, что результат Вы получите за время заранее неизвестное, то есть, неопределённое.
Хотелось бы верить, что хоть сейчас это стало понятным...

Цитата(fontp @ Nov 24 2008, 12:51) *
...Про "сразу" это он погорячился. И не в условии, а потом...
Не заставляйте подозревать Вас в лукавстве.
Это условие было обнародовано до Вашего, равно как и моего, первого поста.
Насчёт "погорячился" - это лишь Ваши придумки. Лично я предпочитаю понимать всё именно так, как написано.

Цитата(fontp @ Nov 24 2008, 12:51) *
...В любом случае для того, чтобы отличить компоненту частоты 0 от компоненты частоты F ему нужно время измерения сигнала как минимум 1/F
Это верно лишь в применению к Вашим советам.
Я же предлагаю метод, который будет на порядок-другой быстрее. Более конкретно, он выдаст результат на основании данных только одного буфера, если уровень скммарных помех будет не слишком велик, т.е., в T/t раз быстрее, чем Ваш (T-период синусоиды, t-длина буфера).

Цитата(fontp @ Nov 24 2008, 12:51) *
...Разрывами, которые Вы собрались сшивать по непрерывности сигнала.
Повторяю вопрос: почему эти разрывы "мои"? Прошу ответить.
И каким это образом я "пытался сшивать разрывы по непрерывности сигнала"? Вы хоть понимаете, что сейчас написали? 07.gif

ЗЫ. Вероятно, речь идёт об этой теме.
Я бы на Вашем месте не позорился. biggrin.gif

Цитата(fontp @ Nov 24 2008, 12:51) *
...Существование разрывов во времени, когда сигнал не регистрируется, обычно есть признак неправильного проектирования девайса.
Да что Вы говорите?
У нас, например, такие дивайсы делают - только в путь. А об их "неправильном проектировании" судить, к счастью, не Вам, а потребителям.

Цитата(fontp @ Nov 24 2008, 12:51) *
...Тогда задним числом программными методами пытаются замутить компенсацию ошибки аппаратного проектирования. Бывает, но не типично...
Если "бывает", зачем тогда об этом здесь писать?
"Ошибки проектирования", повторюсь, целиком на Вашей совести.

Цитата(fontp @ Nov 24 2008, 12:51) *
В маломальски приличном шуме ничего реально "по непрерывности" Вы не зашьете, пустое
Предлагаю волевым усилием перейти в "ту" тему, и пообщаться там.

Цитата(fontp @ Nov 24 2008, 12:51) *
..."Все" - это все, кроме Вас. Понятно, что это моё частное мнение + мнение тех с кем этот вопрос мной обсуждался
Там я пояснил, как, вопреки Вашему мнению, задача может быть решена. И многие посетители это поняли, и прогнали у себя на компах матлабовский алгоритм, мною там выложенный, чтобы убедиться в такой возможности.
Алгоритм с тех пор доработан, и почти готов. Если есть желание - предлагаю обсудить, только без надувания щёк и фырканья.
А о тех, с кеми этот вопрос обсуждался, не имею чести, так сказать... В теме наблюдал кучку неучей, неспособных принять очевидное, даже выраженное в матлабовском коде и выложенное в виде диаграмм.
Так что проецировать на "всех" своё невежество настоятельно не рекомендую. Отвечайте за себя, если уж поспорить хочется.

Цитата(fontp @ Nov 24 2008, 12:51) *
Нет-нет-и-нет. Никакой фигни "по непрерывности" в практических случаях не бывает
Жыыыр. biggrin.gif

Цитата(fontp @ Nov 24 2008, 12:51) *
...И не смейте меня винить в хамстве и грозить забанить! В Вашем стиле... Сначала обозвать оппонента "без мысли", потом бежать ябедничать модераторам ;-)
Я бы предпочёл высечь ремнём оппонента, затеявшего этот безсмысленный спор. Однако, по причине географической удалённости, предпочитаю действовать в соответствии с Правилами форума, не вступая в излишнюю полемику с их нарушителем.
Если не знаешь, как поступить, поступай по уставу (ЦЭ)
На Вас же пока я не жаловался, так что не волнуйтесь понапрасну. smile.gif

Цитата(fontp @ Nov 24 2008, 12:51) *
...ЗЫ. В дискуссии о "сшивании сигнала по непрерывности" я участвовать не собираюсь. Мое мнение что это фигня, оправданная только для отмазок от предъяв заказчика, когда бабки потрачены на проектирование кривого устройства. Денег всё равно уже нет, нужно искать цивилизованное решение и т.д.
Скучно читать Вас, ей-богу. Такую чушь пишете... А ещё инженером называетесь, наверное...


Цитата(GetSmart @ Nov 25 2008, 01:23) *
Возможный уровень ошибки из-за нецелого числа периодов в FFT будет A/N, где A = амплитуда синусоиды, N = кол-во целых периодов синусоиды в расчётных отсчётах. При вычислении нового FFT после прихода нового буфера этот уровень ошибки выльется пульсациями в результате. Прикол в том, что ошибка будет приблизительно равна ошибке в вычислении простого средне арифметического всех отсчётов
А это что?
Цитата(vladimir_m @ Nov 21 2008, 16:03) *
Синусоида оцифровывается и передаетя в комп буферами. Период синусоиды большой, заранее не известный, намного больше фиксированного размера буфера.
biggrin.gif
Теоретик, так и растак...

Цитата(GetSmart @ Nov 25 2008, 02:54) *
По приходу нового буфера берётся несколько последних буферов (с гарантированным хотя бы одним периодом) и точно определяется период опорной частоты методом корелляции.
biggrin.gif

Цитата(GetSmart @ Nov 25 2008, 02:54) *
...Интеграл сигнала от периода даст постоянку. Влияние шумов на результат минимально. Широкие просторы для оптимизации.
biggrin.gif

Цитата(GetSmart @ Nov 25 2008, 02:54) *
...Начиная от начального поиска пика корелляции в допустимых пределах частоты синусоиды и до последующего использования в алгоритме корелляции минимального кол-ва буферов, равного 1..1.5 от периода. Плюс учёт первоначального постоянного смещения (постояннки) между периодами для повышения точности результата.
biggrin.gif
fontp, это ведь один из тех, с кем Вы обсуждали мои алгоритмы, правда?
Ещё 729 и Переключателя не хватает для полного комплекта.



Цитата(alexkok @ Nov 25 2008, 00:03) *
Не обязательно.
Если функция известна, а в данном случае это
y = a + b*sin(2*pi*f + phi),
То при достаточном отношении сигнал/шум можно применить "fitting".
Совершенно так!
Это я и пытаюсь доказать оппонентам. С нулевым результатом, по причинам, от меня не зависящим.
В присутствии шумов и ошибок дискретизации придётся "решать" передетерминированную систему. Но самое важное, что функциональная зависимость сигнала известна точно! И поэтому такой подход даст наилучший результат по сравнению со всеми другими, предложенными в данной теме, при любых критериях оптимизации.
Конечно, по мере накопления материала вычислительная сложность задачи будет увеличиваться. С некоторого времени придётся или усекать окно, или переходить на другой, более простой способ. Но к этому времени оценка параметров сигнала уже давно будет, тогда, как ув. fontp со своими ФНЧ и режекторными фильтрами будет её ждать до посинения. sad.gif
Stanislav
ЗЫ. fontp, я готов прекратить спор, если будет признано, что написанное GetSmart неверно:

Цитата(GetSmart @ Nov 24 2008, 01:24) *
Цитата(fontp @ Nov 21 2008, 18:07) *
Но если это слишком медленно, то нужно сшивать буфера, оценивать период синусоиды и суммировать по периоду
Это пока что самый простой, точный и оперативный (по задержке между сигналом и результатом) из предложенных здесь методов. При условии, что между поступающими буферами нет потерянных отсчётов. Если вдруг будет постоянка, то любая сумма (делённая на кол-во отсчётов) любого кол-ва отсчётов будет правильным результатом

А вот это верно:
Цитата(Stanislav @ Nov 22 2008, 21:09) *
Предложенный мною путь даст принципиально самую точную оценку за разумное время из всех, что здесь обнародованы.
Естественно, в алгоритмическом смысле, без учёта вычислительных затрат.

Собственно, это и составляет смысл дискуссии.

В противном случае, придётся проводить ликбез с демонстрацией. Но тогда уж без обид, пожалуйста.
fontp
Цитата(alexkok @ Nov 25 2008, 00:03) *
Не обязательно.
Если функция известна, а в данном случае это
y = a + b*sin(2*pi*f + phi),
То при достаточном отношении сигнал/шум можно применить "fitting".


Fitting в присутствии шума работает плохо, как всякая параметрическая модель.

Цитата(Stanislav @ Nov 25 2008, 10:30) *
ЗЫ. fontp, я готов прекратить спор, если будет признано, что написанное GetSmart неверно:

Это пока что самый простой, точный и оперативный (по задержке между сигналом и результатом) из предложенных здесь методов. При условии, что между поступающими буферами нет потерянных отсчётов. Если вдруг будет постоянка, то любая сумма (делённая на кол-во отсчётов) любого кол-ва отсчётов будет правильным результатом
А вот это верно:Естественно, в алгоритмическом смысле, без учёта вычислительных затрат.
Собственно, это и составляет смысл дискуссии.

В противном случае, придётся проводить ликбез с демонстрацией. Но тогда уж без обид, пожалуйста.


А с вами никто и не спорит, неуч wink.gif Спор давно закончен.
А здесь две страницы вашего флуда, писсатель. По поводу вашего метода ничего сказать не могу, честно, не стану врать - как хам, возомнивший о себе, вы у меня давно в игноре. Соответственно, ваши посты я обычно не читаю, разве что в разделе общение, чисто поржать включаю wink.gif

Цитата(vladimir_m @ Nov 22 2008, 15:31) *
Всем спасибо!
Лично я остановился на варианте уважаемого fontp, как наиболее приемлемом алгоритмически для моей задачи.
Stanislav
Цитата(fontp @ Nov 25 2008, 10:54) *
Fitting в присутствии шума работает плохо, как всякая параметрическая модель.
smile.gif
А кто говорил о шуме, уважаемый?
Кроме того, смею Вас заверить: фиттинг в шуме работает как раз хорошо. Обусловленность матриц потому что хорошая.

Цитата(fontp @ Nov 25 2008, 10:54) *
...А с вами никто и не спорит, неуч wink.gif Спор давно закончен. А здесь две страницы вашего флуда, писсатель. По поводу вашего метода ничего сказать не могу - как хам, возомнивший о себе, вы у меня давно в игноре. Соответственно, ваши посты я обычно не читаю, разве что в разделе общение, чисто поржать
Ну, что же Вы так нервничаете, уважаемый? Спокойнее надо, серьёзнее себя вести. Я ведь тоже могу ошибаться. Вот и подумалось, что со мной кто-то захотел поспорить. Очень рад, что это были не Вы. smile.gif
Только выражаетесь вот снова как-то вычурно, во множественном числе. Слова нехорошие употребляете... Некрасиво...
Рекомендую зверобой и валериану.
И почему же я у Вас давно в игноре? Уж не за ту ли тему, упомянутую Вами, где я объяснил, Вам как надо решать задачу, и даже показал наглядно? Дык, за это спасибо говорить надо, а не в игнор ставить, по-моему...
alexkok
Цитата(fontp @ Nov 25 2008, 10:54) *
Fitting в присутствии шума работает плохо, как всякая параметрическая модель.

Fitting, как Вам уже ответили, при шуме работает хорошо.
Вопрос только - какую точность удастся получить.
Зависит от длины буфера, сигнал/шум, соотношения длины буфера и периода частоты, соотношения амплитуд синусоиды и величины постоянки.
Вполне возможно что одного буфера будет достаточно.
А с двумя буферами, если задержка между ними известна и достаточно велика, правильный результат почти гарантирован.
GetSmart
Цитата(alexkok)
Fitting, как Вам уже ответили, при шуме работает хорошо.
Вопрос только - какую точность удастся получить.

Что-то более конкретное можете сказать? Например для 1К буфера, 10 битные сэмплы, 7 бит (+-128) амплитуда, S/N=20dB, период синусоиды = 10 буферов.
Цитата
соотношения амплитуд синусоиды и величины постоянки.
А это как влияет на точность?
Михаил_K
Цитата(Stanislav @ Nov 22 2008, 15:53) *
А каким должен быть коэффициент K Вашего чудо-алгоритма? wink.gif


Что такое? Наш всезнайка не знает как определить коэффициент К?

ИМХО: Если человек обладает хотя-бы десятой частью тех знаний, которые вы, Станислав, здесь пытаетесь показать, то он легко может отличить"Чудо-алгоритм" от примитивного рекурсивного ФНЧ.
blackfin
Цитата(alexkok @ Nov 25 2008, 20:52) *
Fitting, как Вам уже ответили, при шуме работает хорошо.
Предлагаю на поставленную задачу посмотреть под другим углом.
Для выделения полезного сигнала на фоне шума ничего лучше согласованного фильтра, насколько мне известно, ещё не придумали. В данной задаче полезным сигналом является постоянная составляющая. Согласованным фильтром для неё будет ФНЧ с бесконечно узкой полосой пропускания. Ч.Т.Д.
GetSmart
Цитата(blackfin)
Для выделения полезного сигнала на фоне шума ничего лучше согласованного фильтра, насколько мне известно, ещё не придумали.

Придумали корреляцию, ДПФ и ещё много чего здесь уже описанного. Результат сразу, без лишних задержек типа полосы фильтра.
alexkok
Цитата(GetSmart @ Nov 26 2008, 02:17) *
А это как влияет на точность?

Вы забыли уровень постоянки.
А постоянка, если я правильно понял автора, и есть параметр который нужно измерить, причем быстро.
Всё остальное, в том числе и синусоида, является шумом по отношению к постоянке.
Примем для определенности уровень постоянки в 10 единиц.
Цитата
Что-то более конкретное можете сказать? Например для 1К буфера, 10 битные сэмплы, 7 бит (+-128) амплитуда, S/N=20dB, период синусоиды = 10 буферов.

Попробую грубо прикинуть. Вывести точные формулы для оценки ошибки желающие могут сами.
После корреляции с 1к буфером будем иметь S/N 50дБ.
Т. е. для полной синусоиды мы бы имели ошибку амплитуды ~0,3% и фазы около 0,3гр.
Т. к. мы имеем только 10% периода, то ошибка будет на порядок больше.
Итого где-то 4 единицы ошибки, т. е. для постоянки ошибка будет около 40%.
Желающие меня поправят.

Цитата
(blackfin)
Предлагаю на поставленную задачу посмотреть под другим углом.
Для выделения полезного сигнала на фоне шума ничего лучше согласованного фильтра, насколько мне известно, ещё не придумали. В данной задаче полезным сигналом является постоянная составляющая. Согласованным фильтром для неё будет ФНЧ с бесконечно узкой полосой пропускания. Ч.Т.Д.

Проблема в том, что автор хочет получить результат быстро, а не через бесконечное время.
alex_os
Цитата(GetSmart @ Nov 26 2008, 10:03) *
Придумали корреляцию, ДПФ и ещё много чего здесь уже описанного. Результат сразу, без лишних задержек типа полосы фильтра.

А корреляция ( или там нулевой коэф. ДПФ) разве не похожи на согласованный фильтр?! biggrin.gif И чтобы посчитать туже корреляцию разве не нужно накопить достаточный блок данных?
Stanislav
Цитата(Михаил_K @ Nov 26 2008, 07:58) *
Что такое? Наш всезнайка не знает как определить коэффициент К?
Но-но, полегче, юноша.
Я действительно не знаю, как определить коэффициент К при данной постановке задачи.

Цитата(Михаил_K @ Nov 26 2008, 07:58) *
...ИМХО: Если человек обладает хотя-бы десятой частью тех знаний, которые вы, Станислав, здесь пытаетесь показать, то он легко может отличить"Чудо-алгоритм" от примитивного рекурсивного ФНЧ.
Мда... Вы, вероятно, не обладаете и одной сотой. Поскольку предлагаемый Вами чудо-алгоритм и есть "примитивный рекурсивный ФНЧ". wink.gif
Михаил_K
Цитата(Stanislav @ Nov 26 2008, 12:02) *
Мда... Вы, вероятно, не обладаете и одной сотой. Поскольку предлагаемый Вами чудо-алгоритм и есть "примитивный рекурсивный ФНЧ". wink.gif


Будьте откровенны. Вы ведь это поняли только после моей подсказки lol.gif
Stanislav
Цитата(Михаил_K @ Nov 26 2008, 12:04) *
Будьте откровенны. Вы ведь это поняли только после моей подсказки
Я понял, что Вы написали бред, молодой человек. Так что рекомендую прекратить флуд в теме и заняться чем-нибудь более полезным, если на прямо поставленный вопрос ответить не можете.
RadioJunior
пост не в тему...

Stanislav, не обижайтесь, но это правда.

Вот какую ветку ни открою, везде Stanislav пытается всем утереть нос под видом большого знатока всего и вся. Это кризис возраста или врожденный комплекс Наполеона?...

Со мной кто-нибудь согласен по этому поводу?
GetSmart
Цитата(RadioJunior)
Со мной кто-нибудь согласен по этому поводу?
Молчание - знак согласия smile.gif

Цитата(alex_os)
И чтобы посчитать туже корреляцию разве не нужно накопить достаточный блок данных?
Достаточно двух периодов сигнала. То есть реальных, а не предположительно максимального периода для постоянной времени фильтра.
Serg76
Цитата(fontp @ Nov 21 2008, 18:07) *
Фильтр НЧ с постоянной времени заведомо во много периодов синусоиды поможет.

Простейший рекурсивный y(n) = (1-e)* y(n-1) + e*x(n) , если всё равно какой в смысле времени реакции, е очень мало

Но если это слишком медленно, то нужно сшивать буфера, оценивать период синусоиды и суммировать по периоду


Может несколько запоздало, но мне тоже кажется, что это наиболее подходящий вариант. У меня по такому принципу построены системы АРУ и тактовой синхронизации в демодуляторе. Вхождение в синхронизм осуществляется достаточно быстро и реализовано просто. Энергетические потери демодулятора при этом составляют Eb/No<0,4 дБ при Pb=10^-6 (для QPSK).
Stanislav
Цитата(RadioJunior @ Nov 26 2008, 12:11) *
пост не в тему...
Зачем? 01.gif

Цитата(RadioJunior @ Nov 26 2008, 12:11) *
Stanislav, не обижайтесь, но это правда.

Вот какую ветку ни открою, везде Stanislav пытается всем утереть нос под видом большого знатока всего и вся.
Во-первых, не всем.
На электрониксе тусуется табунок неучей, охарактеризованных мной в теме, на которую здесь есть ссылка. Отличительная особенность - неистребимое желание писать ерунду во всех ветках, которые Вам довелось открывать, и не только, а также паталогическая неспособность признавать свои ошибки или неправоту и вести конструктивный диалог. Вот он-то и является предметом моего особенного внимания, о чём я объявлял каждой особи открыто и доходчиво.
Во-вторых, пытаюсь утереть сопли, или всё-таки утираю? РадиоЮноша, пора бы научится отличать эти понятия. Докажите, что я неправ в чём-либо, и у нас с Вами будет полное взаимопонимание. А флудить здесь не надо - тема вполне конкретная, а Вам-то я хорошо знаю цену - сосунок, вздумавший, что ему можно хамить дяде (письма личные привести, чтобы все полюбовались?).
В-третьих, кто-то получил по заслугам за излишнее высокомерие и вальяжность. От маклауда через тяжеловеса. В дальнейшем будет придерживать язык, я думаю.
С вашей командой у меня разговор короткий. Давил, и буду давить, пока уму-разуму не научитесь, не начнёте признавать свои ошибки и говорить по существу вопроса.
Вы также являетесь ярким представителем данного сообщества, и на снисхождение не надейтесь. Жаль, времени на вас всех мало...
На месте модераторов я бы уделил вашей стайке самое пристальное внимание. Толку от ваших постов чуть, а словесного мусора - выше крыши.

Цитата(RadioJunior @ Nov 26 2008, 12:11) *
Это кризис возраста или врожденный комплекс Наполеона?...
Отнюдь. Элементарное желание сделать воздух на форуме чище. Можете считать меня ассенизатором.smile.gif


Цитата(RadioJunior @ Nov 26 2008, 12:11) *
...Со мной кто-нибудь согласен по этому поводу?
Конечно, есть такие! biggrin.gif

Цитата(blackfin @ Nov 26 2008, 08:23) *
Предлагаю на поставленную задачу посмотреть под другим углом.
Для выделения полезного сигнала на фоне шума ничего лучше согласованного фильтра, насколько мне известно, ещё не придумали. В данной задаче полезным сигналом является постоянная составляющая. Согласованным фильтром для неё будет ФНЧ с бесконечно узкой полосой пропускания. Ч.Т.Д.
Это верно.
Только ФНЧ с бесконечно узкой полосой пропускания будет иметь и бесконечно большое время отклика. Ждать придётся не до посинения, а до самых белых слонов. biggrin.gif
mvb
Господа, сразу прошу прощения за то, что вмешиваюсь в вашу интеллектуальную беседу.
Я студент, проблема мне показалась интересной, поэтому я захотел разобраться, но к сожалению умные люди не пришли к единому мнению, поэтому я полез в матлаб, попробовать озвученные методы.

Сначала сформулирую проблему, которую решал: есть N отсчетов, в которых присутствует синусоида + постоянная составляющая + шум. Период синусоиды заведомо в разы больше N, начальная фаза случайная. Шум -- норм. распределенная случ. величина с нулевым мат. ожиданием.

Я попробовал два озвученных решения: ФНЧ и Станислава. ДПФ и АКФ не смотрел, потому что не понимаю как они здесь помогут.

ФНЧ брал 1й Чебышева. Варьировал все возможные параметры как мог, но не смог добиться того, чтобы на выходе как-то обозначилась искомая величина. Да, выход по времени рассматривал достаточно длинный.

Для реализации метода, предложенного Станиславом взял Curve Fitting toolbox из матлаба. При бесконечном ОСШ он точно выдает искомую величину. В присутствии шума решение начинает гулять. Только надо выставлять область ограничений для решения не бесконечную, иначе минимумов у целевой функции получается несколько.

На все это я потратил 1 час 7 минут.

Вопросы к знающим: 1. как именно вы предлагаете применять фнч?
2. Как здесь можно использовать дпф или акф?

Отдельная просьба: ваше мнение о моих способностях, оставьте при себе.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.