Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нужен алгоритм определения частоты 1-й(основной) гармоники сложного сигнала
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
js_slider
Необходим алгоритм определения частоты 1-й(основной) гармоники сложного сигнала. Собираю девайс на TMS320LF2407, который будет оцифровывать сложный сигнал и определять частоту 1-й гармоники этого сигнала. Все у кого была уже подобная задача пожалуйста поделитесь информациейsad.gifссылки на инфу, опыт разработки..., исходники)
Stanislav
Цитата(js_slider @ Jan 14 2006, 17:35) *
Необходим алгоритм определения частоты 1-й(основной) гармоники сложного сигнала. Собираю девайс на TMS320LF2407, который будет оцифровывать сложный сигнал и определять частоту 1-й гармоники этого сигнала. Все у кого была уже подобная задача пожалуйста поделитесь информацией sad.gif ссылки на инфу, опыт разработки..., исходники)
Автокорреляционный метод рассматривали? Если известен диапазон изменения частоты, может получиться очень быстро.
js_slider
Нет не рассматривал. Я чесно говоря новичек в обработке сигналов, и поэтому на данный момент сижу изучаю информацию из интернета про преобразования Фурье....
А диапазон основной гармоники известен: 0-100 Герц.
Stanislav, большая просьба можете описать детально Автокорреляционный метод, для моего случая.
Stanislav
Цитата(js_slider @ Jan 14 2006, 19:06) *
Нет не рассматривал. Я чесно говоря новичек в обработке сигналов, и поэтому на данный момент сижу изучаю информацию из интернета про преобразования Фурье....
А диапазон основной гармоники известен: 0-100 Герц.
Stanislav, большая просьба можете описать детально Автокорреляционный метод, для моего случая.
Так не пойдет. Не из-за вредности, а из-за того, что нужно более точно поставить задачу: частота выборки, отношение С/Ш в интересующем диапазоне, необходимая точность определения частоты. Кроме того, нужно более строго определить диапазон снизу, т.к непонятно, что значит "частота основной гармоники 0 Гц". Чем выше нижняя граница, тем лучше.
PS. От этих условий зависит применимость данного метода.
js_slider
Ну если быть более конкретным, то задача заключаеися в том чтобы оцифровывая напряжение, которое генерирует Асинхронная машина, вращающаяся от внешнего возмущения(т.е. грубо гшоворя её просто раскручивают за ротор, достаточным будет диапазон определения частоты 1-100 Гц), проблема в том что получается не гладкая синусойда, а сложный сигнал, с кучей гармоник. Возможно ли Stanislav применить Автокорреляционный метод для данного случая или какой-нибудь другой.
Предполагается оцифровывать действительные значения сигнала с частотой не ниже 12,8 кГц, с диффиринциального датчика напряжения.
subver
Если сигнал за полпериода не пересекает 0, то можно попробовать просто измерять период. У прямоугольника тоже куча гармоник, но при этом его период измеряется элементарными средствами.
Fakir
Цитата
получается не гладкая синусойда, а сложный сигнал, с кучей гармоник.


Вопрос в том насколько все плохо. Можно предложить несколько способов:
1. Если исходить из предположения что, амплитуда 1-й гармоники всегда максимальна, то бери фурье выбирай палку с максимальной амплитудой и буде тебе счастье.
Сразу хочу предупредить, что когда найдешь в спектре максимальную палку - это еще не будет означать что, нашел частоту, потому что из-за дискретности истиная частота может попасть между двумя фурьешными палками. Для точного определения частоты надо брать максимальную палку, две соседних и потом их интерполировать.
2. Если сигнал - почти синусоида, то можно просто посчитать период переходов через ноль, это скорее способ для меандров.
3. Если амплитуда остальных гармоник сравнима с амплитудой первой гармоники, то никуда не денешься придется ставить датчик оборотов
js_slider
Вариант с датчиком скорости не подходит.
Проблема ещё заключается и в том что с уменьшением частоты вращения уменьшается и амплитуда генерируемого сигнала, что создаёт дополнительные проблемы в определении частоты.
subver
Цитата
Вариант с датчиком скорости не подходит.
Проблема ещё заключается и в том что с уменьшением частоты вращения уменьшается и амплитуда генерируемого сигнала, что создаёт дополнительные проблемы в определении частоты.


Осциллограмму в студию?
js_slider
Я не совсем корректно объяснил проблему (только недавно разобрался)...
Всего в сигнале 2-е гармоники, одна фиксированная гармоника (паразитная) равна 50 Hz, и одна полезная гармоника(частоту которой требуется определять), варьирует она от (0-100 Гц).
Причём амплитуда "паразитной" частоты - const, а амплитуда полезной гармоники варьирует прямопропорционально своей частоте, т.е. чем выше частота тем выше амплитуда.
Достаточно чувствительности диапазона определения полезной частоты от 10Гц до 100Гц.
Есть у кого какие соображения?
Stanislav
Цитата(js_slider @ Jan 15 2006, 17:13) *
Ну если быть более конкретным, то задача заключаеися в том чтобы оцифровывая напряжение, которое генерирует Асинхронная машина, вращающаяся от внешнего возмущения(т.е. грубо гшоворя её просто раскручивают за ротор, достаточным будет диапазон определения частоты 1-100 Гц), проблема в том что получается не гладкая синусойда, а сложный сигнал, с кучей гармоник. Возможно ли Stanislav применить Автокорреляционный метод для данного случая или какой-нибудь другой.
Предполагается оцифровывать действительные значения сигнала с частотой не ниже 12,8 кГц, с диффиринциального датчика напряжения.
Суть автокорреляционного метода определения частоты периодического сигнала произвольной формы состоит примерно в следующем:

1. Из записанного в буфер сигнала выделяется участок с длиной, гарантированно превышающей 2 - 3 периода сигнала). Для уменьшения краевых эффектов его следует домножить на какое-либо спектральное окно (напр, Хэмминга).

2. Находится АКФ сигнала в этом окне.

3. Находится максимум автокорреляции. Он и соответствует периоду.

Допишу позже...
js_slider
Я не совсем корректно объяснил проблему (только недавно разобрался)...
Всего в сигнале 2-е гармоники, одна фиксированная гармоника (паразитная) равна 50 Hz, и одна полезная гармоника(частоту которой требуется определять), варьирует она от (0-100 Гц).
Причём амплитуда "паразитной" частоты - const, а амплитуда полезной гармоники варьирует прямопропорционально своей частоте, т.е. чем выше частота тем выше амплитуда.
Достаточно чувствительности диапазона определения полезной частоты от 10Гц до 100Гц.
Есть у кого какие соображения?
subver
Цитата(Stanislav @ Jan 17 2006, 23:56) *
2. Находится АКФ сигнала в этом окне.

3. Находится максимум автокорреляции. Он и соответствует периоду.

Допишу позже...


Мне кажется, что если 50 Гц будет превышать необходимую гармонику по амплитуде, то максимум АКФ как раз и будет приходиться на эти 50 Гц. Надо ставить режекторный фильтр. Но тогда не понятно как отслеживать рабочую гармонику, если она соответствует 50 Гц.
_artem_
Цитата(subver @ Jan 18 2006, 05:55) *
Цитата(Stanislav @ Jan 17 2006, 23:56) *

2. Находится АКФ сигнала в этом окне.

3. Находится максимум автокорреляции. Он и соответствует периоду.

Допишу позже...


Мне кажется, что если 50 Гц будет превышать необходимую гармонику по амплитуде, то максимум АКФ как раз и будет приходиться на эти 50 Гц. Надо ставить режекторный фильтр. Но тогда не понятно как отслеживать рабочую гармонику, если она соответствует 50 Гц.


Если требуемая для определения частота всегда присутствуют то легко :
Если найдены две частоты - то отличная от 50 будет ваша , если же нет - 50 Гц.

Определeнная проблема может выявиться если частоты и амплитуды помехи и полезного сигнала равны а фазы противоположны - произойдет замирание сигнала , которое невозможно будет определить если нет флуктуации сигнала либо по фазе или по амплитуде. Эту вероятность надо вам априорно оценить ибо она будет влиять на размер выборки для частотного анализа и на детектирование .
js_slider
Господа это всё здорово, а можно более конструктивно... Как это выглядет с точки зрения математики?
Меня интересуют формулы, алгоритмы...
Stanislav
Цитата(js_slider @ Jan 18 2006, 20:24) *
Господа это всё здорово, а можно более конструктивно... Как это выглядет с точки зрения математики?
Меня интересуют формулы, алгоритмы...
Нет, тут сначала нужно идеологически... В заблуждение ввел неправильно употребленный Вами термин "гармоника".

Итак, имеем: а) квазипериодический сигнал, частоту которого нужно измерить; б) постоянную по уровню и частоте помеху. Нужно сначала отделить сигнал от помехи.

Предлагаемые решения:

1. Линейная фильтрация. Работает, если спектры сигнала и помехи не перекрываются. Не наш случай, т.к. при частоте сигнала, близкой к помехе, задавлены будут оба.

2. Оценка спектральных характеристик сигнала. Для разрешения близко расположенных частот, придется брать фурье-преобразование очень большой длины, такой, что даже этот DSP может не потянуть. Кроме того, этот способ довольно сложен.

3. Оценка параметров периодической помехи, ее реконструкция и вычитание из сигнала. Может быть реализовано с помощью адаптивной системы, как во временнОй, так и в частотной области . Достоинство - простота программирования и малая выч. нагрузка на процессор. Вот это решение я и предлагаю сперва обсудить, а потом уж поговорить об оценке частоты сигнала.

PS. Запись 2-х - 3-х реализаций Вашего процесса в студии бы действительно не помешала...
dmyl
Очень рекомендую прочитать книгу Марпла.
http://dsp-book.narod.ru/marpl1_7.djvu
http://dsp-book.narod.ru/marpl8_16.djvu
Я бы попробовал использовать метод Прони, вот только исходя из вашего сигнала подобрал параметры модели. Например увеличил бы количество синусоид в модели. Этот метод дает не достаточно устойчивые результаты на зашумленных сигналах, однако это частично можно решить добавив число синусоид в модели. Если частоты синусоид заранее известны метод существенно упрощается.
Если делать реализацию как в книге, мне не понравилась реализация факторизации комплексного полинома, я переделал на метод Мюллера, более простой.
michael34
Не уверен, что с помощью TMS320LF2407 что-то получится...
BVU
Цитата(michael34 @ Jan 25 2006, 14:14) *
Не уверен, что с помощью TMS320LF2407 что-то получится...

michael34, заканчивайте флуд. Вы уже успели наследить во многих темах не оставив не одного информативного поста!!!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.