Вопрос математикам
-
- Администратор
- Posts: 17201
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Вопрос математикам
Извините, повесил глобально. Ну очень надо.
Есть функция типа "колокольчик" сильно искажённая шумом. Это дискреты спектра мощности сигнала. Надо определить самым точным образом (с точностью выше шага дискрет) определить центр этого "колокольчика". Какой математический аппарат может это сделать.
Например, имеем дискреты (их много это только место "колокольчика" с максимальным выбросом):
...
частота 32, мощность 94
частота 36, мощность 75
частота 40, мощность 132
частота 44, мощность 211
частота 48, мощность 203
частота 52, мощность 114
частота 56, мощность 64
частота 60, мощность 54
...
Надо определить частоту излучателя.
Есть функция типа "колокольчик" сильно искажённая шумом. Это дискреты спектра мощности сигнала. Надо определить самым точным образом (с точностью выше шага дискрет) определить центр этого "колокольчика". Какой математический аппарат может это сделать.
Например, имеем дискреты (их много это только место "колокольчика" с максимальным выбросом):
...
частота 32, мощность 94
частота 36, мощность 75
частота 40, мощность 132
частота 44, мощность 211
частота 48, мощность 203
частота 52, мощность 114
частота 56, мощность 64
частота 60, мощность 54
...
Надо определить частоту излучателя.
Привет.
-
- Уже с Приветом
- Posts: 56113
- Joined: 06 May 2001 09:01
Re: Вопрос математикам
Пару раз профильтровать. Чемнить типа "running median" с различной шириной "окна". https://ru.wikipedia.org/wiki/%D0%A1%D0 ... 1%8F%D1%8F
Из полученного найти точки минимума (максимума)
Из полученного найти точки минимума (максимума)
в реале супруги редко бывают друзьями, так как их отношения подпорчены сексом (с)Роза
Плавали-Знаем! (C)
Плавали-Знаем! (C)
-
- Уже с Приветом
- Posts: 2238
- Joined: 24 May 2008 13:28
- Location: Chicago
Re: Вопрос математикам
Curve fitting in Excel using its Solver.
-
- Уже с Приветом
- Posts: 13694
- Joined: 16 Jan 2001 10:01
Re: Вопрос математикам
Я не математик, но в принципе по искаженным данным нельзя получить точное число.
Поэтому разные методы будут ошибаться по-разному.
А стало быть не так уж важно какой выбрать. Возможно тут логика хромает у меня...
Самое простое: максимум средневзвешенного значения.
Можно ещё отрезать значения ниже порога и найти середину получившейся фигуры с точки зрения площади: чтобы слева и справа от выбранного значения произведение значений на количество измерений было одинаково. Это если измерения через равные промежутки времени делались... Как это сделать я не знаю навскидку, бо не математик.
Поэтому разные методы будут ошибаться по-разному.
А стало быть не так уж важно какой выбрать. Возможно тут логика хромает у меня...
Самое простое: максимум средневзвешенного значения.
Можно ещё отрезать значения ниже порога и найти середину получившейся фигуры с точки зрения площади: чтобы слева и справа от выбранного значения произведение значений на количество измерений было одинаково. Это если измерения через равные промежутки времени делались... Как это сделать я не знаю навскидку, бо не математик.
-
- Уже с Приветом
- Posts: 2238
- Joined: 24 May 2008 13:28
- Location: Chicago
Re: Вопрос математикам
The normal distribution does not fit that well.
You do not have the required permissions to view the files attached to this post.
-
- Уже с Приветом
- Posts: 2238
- Joined: 24 May 2008 13:28
- Location: Chicago
Re: Вопрос математикам
Короче, нужно форму функции "колокольчика" разумно задать. И чем больше измерений, тем лучше, ну хотябы 10 серий.
-
- Уже с Приветом
- Posts: 6019
- Joined: 11 Mar 2011 05:36
Re: Вопрос математикам
по простому и по правильному нужно взять 3 самых высоких точки, написать квадратное уравнение и найти максимум.
peak detector in LabVIEW использует этот принцип и насчитал 218.243 и нахождение (32 + 4 * 3.408).
в экселе такое должно быть по идеи.
можно притащить за уши и 4-ую, и даже 5-ую точки, то бишь апроксимировать 3х степенным или 4-х степенным полиномом, но тогда однозначного решения обычно нет, а играться с ошибками - бог его знает
использовать какие-то фильтры на 8 точках - это ерунда. если бы были сотни точек, то можно было бы попытся убрать систематическую ошибку, например низкие или высокие частоты, ну или сетевую 60 Hz, но в данном случае на результат не должно сильно повлияет. вот если бы искать мелкие пики в шумах, то да, там что-то и можно выловить.
апроксимировать нормальным распределением - это полный бред. если бы находить какие-нибудь критерии достоверности события, то тогда можно загнать в нормальное распределение, а потом утверждать, что при сигма = 1 или 2 или 3, вероятность, того что точка принадлежит событию бла-бла-бла ...
все ИМХО, так математику уже давно забыл и остались ощущения ...
peak detector in LabVIEW использует этот принцип и насчитал 218.243 и нахождение (32 + 4 * 3.408).
в экселе такое должно быть по идеи.
можно притащить за уши и 4-ую, и даже 5-ую точки, то бишь апроксимировать 3х степенным или 4-х степенным полиномом, но тогда однозначного решения обычно нет, а играться с ошибками - бог его знает
использовать какие-то фильтры на 8 точках - это ерунда. если бы были сотни точек, то можно было бы попытся убрать систематическую ошибку, например низкие или высокие частоты, ну или сетевую 60 Hz, но в данном случае на результат не должно сильно повлияет. вот если бы искать мелкие пики в шумах, то да, там что-то и можно выловить.
апроксимировать нормальным распределением - это полный бред. если бы находить какие-нибудь критерии достоверности события, то тогда можно загнать в нормальное распределение, а потом утверждать, что при сигма = 1 или 2 или 3, вероятность, того что точка принадлежит событию бла-бла-бла ...
все ИМХО, так математику уже давно забыл и остались ощущения ...
-
- Уже с Приветом
- Posts: 6019
- Joined: 11 Mar 2011 05:36
-
- Администратор
- Posts: 17201
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Вопрос математикам
Влад, всё было бы просто, если бы мы имели возможность наблюдать сигнал длительное время для накопления его энергии, чтобы выделить его из шума. В приложении к этому неплохо было бы иметь неограниченные вычислительные ресурсы. Тогда любой учебник в зубы и задача становится не сложнее студентческого практического задания. Увы, мы обложены ограничениями со всех сторон. Сделать шаг сетки БПФ мельче не получается. Не проходим по быстродействию. И прочее и прочее.
Обсуждать общие проблемы обнаружения сигналов на фоне шумов не хотелось бы. Речь идёт о конкретной узкой вычислительной задаче.
Почти все проблемы у нас уже решены. Алгоритм, скажем так, уточнения частоты в "колокольчике" тоже есть. Даже несколько. Один из них - самый очевидный корреляционный метод, но он довольно затратный. Работают оба, но хочется большего.
Я не математик. Эта задача довольна популярна на практике и, возможно, есть другие подходы к её решению. Именно о них и хотелось бы узнать. Или какие-то идеи.
Обсуждать общие проблемы обнаружения сигналов на фоне шумов не хотелось бы. Речь идёт о конкретной узкой вычислительной задаче.
Почти все проблемы у нас уже решены. Алгоритм, скажем так, уточнения частоты в "колокольчике" тоже есть. Даже несколько. Один из них - самый очевидный корреляционный метод, но он довольно затратный. Работают оба, но хочется большего.
Я не математик. Эта задача довольна популярна на практике и, возможно, есть другие подходы к её решению. Именно о них и хотелось бы узнать. Или какие-то идеи.
Привет.
-
- Администратор
- Posts: 17201
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Вопрос математикам
Ну, Excel в наш ARM M3 40 мГц без FPP мы засунуть, возможно сможем. Ещё мой друг и сосед Билл именно этим и занимался. Надеюсь, не откажет в помощи, если ещё что-то помнит.
Боюсь по быстродействию только не прокатит , но за ключевые слова большое спасибо!
Привет.
-
- Уже с Приветом
- Posts: 2238
- Joined: 24 May 2008 13:28
- Location: Chicago
Re: Вопрос математикам
Да, хотел сказать то же самое, но поленился.DropAndDrag wrote: ↑26 Dec 2020 19:39больше измерений это подавление помех по формуле SQRT(N), где N - это кол-во измерений
-
- Администратор
- Posts: 17201
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Вопрос математикам
Конечно, они будут ошибаться, но вопрос ещё и потребляемых ресурсов. Первый метод, который я реализовал был именно выбор средневзвешенного значения. Он прост и неплохо работает. По площадям тоже интересная идея. Спасибо! Подумаем.Palych wrote: ↑26 Dec 2020 18:06 Я не математик, но в принципе по искаженным данным нельзя получить точное число.
Поэтому разные методы будут ошибаться по-разному.
А стало быть не так уж важно какой выбрать. Возможно тут логика хромает у меня...
Самое простое: максимум средневзвешенного значения.
Можно ещё отрезать значения ниже порога и найти середину получившейся фигуры с точки зрения площади: чтобы слева и справа от выбранного значения произведение значений на количество измерений было одинаково. Это если измерения через равные промежутки времени делались... Как это сделать я не знаю навскидку, бо не математик.
Привет.
-
- Уже с Приветом
- Posts: 6019
- Joined: 11 Mar 2011 05:36
Re: Вопрос математикам
если это излучение от антенны, то должны быть уменьшающиеся по амплитуде пики на нечетных кратных частотах 3х, 5х (хоть убей не помню почему на четных кратностях пиков не может быть, а ведь учили же).
можно находить эти пики и хотя бы оценивать максимальную ошибку
можно находить эти пики и хотя бы оценивать максимальную ошибку
-
- Администратор
- Posts: 17201
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Вопрос математикам
Насколько я понимаю, там корреряционный метод. Здорово то, что им можно проверять наши алгоритмы. Выкинуть данные в файл и загнать их в Excell. Спасибо за наводку.
Привет.
-
- Новичок
- Posts: 81
- Joined: 30 Sep 2018 00:02
Re: Вопрос математикам
В свое время я решал похожую задачу методом spline approximation, даже выдал из себя програмку на паскале.
что-то вроде этого:
https://habr.com/ru/post/314218/
Это, возомжно, overkill, т.к. метод позволяет провести гладкую кривую когда предполагается _произвольное_ количество экстремумов. Там есть параметр, который задает "гладкость" полученого сплайна, т.е. при большой гладкости количество экстремумов будет минимально, чем меньше гладкость, тем на меньшие выбросы точек она будет реагировать. Это работает для анализа сильно зашумлённых спектров, когда экспериментатор примерно понимает, сколько экстремумов должно быть.
Кстати, если пришлете файл с точками я могу попробовать его прогнать в этой программе.
Хотя сейчас я думаю есть уже готовые програмы в matlab или бесплатной octave
что-то вроде этого:
https://habr.com/ru/post/314218/
Это, возомжно, overkill, т.к. метод позволяет провести гладкую кривую когда предполагается _произвольное_ количество экстремумов. Там есть параметр, который задает "гладкость" полученого сплайна, т.е. при большой гладкости количество экстремумов будет минимально, чем меньше гладкость, тем на меньшие выбросы точек она будет реагировать. Это работает для анализа сильно зашумлённых спектров, когда экспериментатор примерно понимает, сколько экстремумов должно быть.
Кстати, если пришлете файл с точками я могу попробовать его прогнать в этой программе.
Хотя сейчас я думаю есть уже готовые програмы в matlab или бесплатной octave
Last edited by Mosp18 on 26 Dec 2020 20:06, edited 1 time in total.
-
- Администратор
- Posts: 17201
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Вопрос математикам
С памятью у Вас явно проблем нет, в отличие от меня.DropAndDrag wrote: ↑26 Dec 2020 19:37 по простому и по правильному нужно взять 3 самых высоких точки, написать квадратное уравнение и найти максимум.
peak detector in LabVIEW использует этот принцип и насчитал 218.243 и нахождение (32 + 4 * 3.408).
в экселе такое должно быть по идеи.
можно притащить за уши и 4-ую, и даже 5-ую точки, то бишь апроксимировать 3х степенным или 4-х степенным полиномом, но тогда однозначного решения обычно нет, а играться с ошибками - бог его знает
использовать какие-то фильтры на 8 точках - это ерунда. если бы были сотни точек, то можно было бы попытся убрать систематическую ошибку, например низкие или высокие частоты, ну или сетевую 60 Hz, но в данном случае на результат не должно сильно повлияет. вот если бы искать мелкие пики в шумах, то да, там что-то и можно выловить.
апроксимировать нормальным распределением - это полный бред. если бы находить какие-нибудь критерии достоверности события, то тогда можно загнать в нормальное распределение, а потом утверждать, что при сигма = 1 или 2 или 3, вероятность, того что точка принадлежит событию бла-бла-бла ...
все ИМХО, так математику уже давно забыл и остались ощущения ...
С фильтрами действительно работать с несолькими точками проблематично, однако, в некоторой части мы используем выравнивание через сумму соседних отсчётов с коэффициентами. Решение примитивное, но оно неплохо в некоторых случаях подавляет шумы.
Привет.
-
- Администратор
- Posts: 17201
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Вопрос математикам
Я чуть позднее уберу глобальную видимость топика. Извиняюсь, но должен же я иметь хоть какой-то бенефит от содержания форума . Обещаю не наглеть.
Оригинально он в viewforum.php?f=46
Оригинально он в viewforum.php?f=46
Привет.
-
- Уже с Приветом
- Posts: 6019
- Joined: 11 Mar 2011 05:36
Re: Вопрос математикам
да, Вы правы. если утрировать, то меньше точек находят лучше амплитуду, а больше точек частоту.Privet wrote: ↑26 Dec 2020 20:05С памятью у Вас явно проблем нет, в отличие от меня.DropAndDrag wrote: ↑26 Dec 2020 19:37 по простому и по правильному нужно взять 3 самых высоких точки, написать квадратное уравнение и найти максимум.
peak detector in LabVIEW использует этот принцип и насчитал 218.243 и нахождение (32 + 4 * 3.408).
в экселе такое должно быть по идеи.
можно притащить за уши и 4-ую, и даже 5-ую точки, то бишь апроксимировать 3х степенным или 4-х степенным полиномом, но тогда однозначного решения обычно нет, а играться с ошибками - бог его знает
использовать какие-то фильтры на 8 точках - это ерунда. если бы были сотни точек, то можно было бы попытся убрать систематическую ошибку, например низкие или высокие частоты, ну или сетевую 60 Hz, но в данном случае на результат не должно сильно повлияет. вот если бы искать мелкие пики в шумах, то да, там что-то и можно выловить.
апроксимировать нормальным распределением - это полный бред. если бы находить какие-нибудь критерии достоверности события, то тогда можно загнать в нормальное распределение, а потом утверждать, что при сигма = 1 или 2 или 3, вероятность, того что точка принадлежит событию бла-бла-бла ...
все ИМХО, так математику уже давно забыл и остались ощущения ...
С фильтрами действительно работать с несолькими точками проблематично, всё равно в некоторой части мы используем выравнивание через сумму соседних отсчётом с коэффициентами, конечно. Решение примитивное, но оно неплохо в некоторых случаях подавляет шумы.
проблема в том, что в пике всего 4 точки, так как левый край загнут вверх относительно правого и минимальная левая точка выше правого края. поэтому можно предположить, что слева что-то влияет на вторую точку, и возможно на третью точку. также это максимальный пик.
вот если бы в пике было был 20-30 точек, то тогда да можно было бы поусреднять, или еще используют вариант - частота на полувысоте пика, но нужен хорошо выраженный пик.
-
- Уже с Приветом
- Posts: 13694
- Joined: 16 Jan 2001 10:01
Re: Вопрос математикам
Предлагаю тупое, не математическое решение:
Найти пиковые точки, где предыдущее и последующее значения меньше.
И выбрать ту, что ближе к центру диапазона. Или ту что выше.
Если значений совсем мало - средневзвешивать не получится в принципе.
Найти пиковые точки, где предыдущее и последующее значения меньше.
И выбрать ту, что ближе к центру диапазона. Или ту что выше.
Если значений совсем мало - средневзвешивать не получится в принципе.
-
- Уже с Приветом
- Posts: 11219
- Joined: 25 Mar 2004 02:31
- Location: 🌫⛆☔♕☔⛆🌫
Re: Вопрос математикам
Фурье преобразование, если сигнал наложение гармоник?
Last edited by ReactoR on 26 Dec 2020 20:44, edited 1 time in total.
Мир это Выхухоль.
-
- Уже с Приветом
- Posts: 6019
- Joined: 11 Mar 2011 05:36
Re: Вопрос математикам
это много где применятся. например, вот тут https://bmcbioinformatics.biomedcentral ... -2105-10-4 неплохо описано для масс-спектрометров.
-
- Администратор
- Posts: 17201
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Вопрос математикам
К сожалению, так не работает. У нас 256 точек БПФ. Используя разные методы, находим пик, а потом уточняем.
Ловушек много. Диапазон ОСШ, в котором всё должно работать, велик и высокое ОСШ, как это не парадоксально, не всегда обеспечивает лучший результат. Странно? Тем не менее. Вот и боремся.
Я сейчат спать. Работаю с Новосибирском. По тому времени и живу. Моим утром буду изучать по ссылкам. Пишите, пожалуйста, если будут ещё идеи.
Привет.
-
- Уже с Приветом
- Posts: 6019
- Joined: 11 Mar 2011 05:36
Re: Вопрос математикам
Мысли в слух. Из последнего сообщение можно сделать вывод, что АЦП измеряет 256 точек, делается быстрое фурье преобразование и ищутся частоты из которых смодулирован приходящий сигнал. Частота ...- 32-...-60-..., тогда частота АЦП 60+ гц, кгц или мгц. Выше 2.5 мгц уже специфические штучки и будет неожиданно, что мощное ацп с дохлым процессором.
Если бы пару полных сигналов после fft посмотреть, то может быть чтото и придет в голову.
Еще можно покопаться в сторону природы сигнала. У масс-спектрометров такое нетривиальное преобразование после fft, а нахождение коэффициентов эмпирическое.
Если бы пару полных сигналов после fft посмотреть, то может быть чтото и придет в голову.
Еще можно покопаться в сторону природы сигнала. У масс-спектрометров такое нетривиальное преобразование после fft, а нахождение коэффициентов эмпирическое.
-
- Уже с Приветом
- Posts: 13694
- Joined: 16 Jan 2001 10:01
Re: Вопрос математикам
Набрать экспериментальных данных побольше, скормить их нейронной сети, как-нибудь вынуть результат обучения и записать его на ПЛМ...
В любом случае данные собирать надо.
В любом случае данные собирать надо.
-
- Уже с Приветом
- Posts: 832
- Joined: 15 Jan 2004 18:42
Re: Вопрос математикам
Чтобы какой-либо "математический аппарат" мог бы это сделать, нужно, как минимум, знать, что подразумевается под "центром этого "колокольчика"".
Один возможный способ дать корректное определение искомому "центру колокольчика" - рассмотреть гипотетический случай, когда (1) шумов нет совсем, и (2) функция измерена в каждой точке достаточно широкого интервала значений ее аргумента (т.е. с бесконечно маленьким шагом дискретизации). Что Вам нужно тогда считать "центром этого "колокольчика"" для Ваших целей? К примеру (a) значение аргумента функции в единственном максимуме этой функции на интервале измерений; или (b) первый момент функции, вычисленный по интервалу (т.е. центр тяжести графика, или среднее значение аргумента функции с весом равным значению функции); (c) положение локального центра симметрии графика функции; или что-либо другое?
При отсутствии шумов (но дискретных измерениях сигнала) и при дополнительном условии ограниченности спектра Вашей функции, одно эффектное решение для любого из определений (а), (b), (c) и некоторых других, можно получить использовав теорему Котельникова (Sampling Theorem):
Ру.Википедия: Теорема Котельникова
En.Wikipedia: Nyquist–Shannon sampling theorem
Поскольку Вы уже называете функцию спектром, упомянутое условие ограниченности спектра нужно понимать, как ограниченность во времени сигнала, для которого Ваша функция является спектром.
Подозреваю, что в предположениях теоремы Котельникова, но при наличии шумов, тоже есть интересные и полезные решения, но скорее всего для них нужно знать больше при природу шумов и их характеристики.
Last edited by aml5691 on 27 Dec 2020 01:04, edited 1 time in total.