Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Спектральный анализ на слабых MCU
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Zelepuk
Имеется сигнал (основной тон + гармоники). Частота основного тона может меняться от 45 до 50 Гц.
Необходимо произвести расчёт 10-и спектральных составляющих. Использую алгоритм Герцеля так как БПФ требует хранения больших таблиц поварачивающих коэффициентов и слишком затратно.
Но чтобы избавится от растекания требуется окно - от этого никуда не деться.

итак, если используем окно то при изменении частоты основного тона от 45 до 55Гц потребуется искать максимумы и придётся использовать алгоритм Герцеля не для поиска 10 гармоник, а для поиска 44-х. (4 отсчёта вблизи каждого максимума).

Получается этот вариант слишком затартный((

Возможно ли какое-то оптимальное решения для MCU с 4кБ RAM и 120 кБ ROM??
bahurin
Цитата(Zelepuk @ Aug 17 2011, 10:03) *
Возможно ли какое-то оптимальное решения для MCU с 4кБ RAM и 120 кБ ROM??


4k RAM это конечно жестко. Ну как вариант попробовать следить за основной частотой простеньким контуром, и исходя из нее динамически пересчитывать алгоритм Герцеля для того чтобы отказаться от окон и уменьшить растекание.
Zelepuk
У меня исходная частота дискретизации железная 4096.
Что если делать так:

исходя из значения основной гармоники (узнаётся по переходам через "0" и интерполяцией вблизи нуля) мы преобразуем частоту дискретизации фильтром Фарроу в пределах 1080... 1320Гц (из условия получения 11 гармоник и изменения частоты основного тона 45... 55Гц). Тогда всегда будем иметь в буфере 24 отсчёта. Затем делаем ДПФ на 24 отсчёта для 11 гармоник. В результате получим спетр из 11 гармоник.

Или Герцель будет менее затратным?
ivan219
Вычислительная сложность Герцеля на одну гармонику = N + 2 умножений и 2N сложений ДПФ = N операций с комплексными числами, что равно 2N сложений и 4N умножений + таблица на Sin Cos Герцель более выгоден вычислительная сложность БПФ = N * Log2(N) операций с комплексными числами при определённом значении N и числа гармоник БПФ выгоднее Герцель.

Герцель по сравнению с БПФ выгоден, когда число гармоник K <= Log2(N) т.е. для 11 гармоник N = 2048 будут равноценные объём вычислений при БПФ = 2048 при меньшем БПФ, БПФ выгоднее.
Alexey Lukin
Цитата(Zelepuk @ Aug 17 2011, 10:03) *
итак, если используем окно то при изменении частоты основного тона от 45 до 55Гц потребуется искать максимумы и придётся использовать алгоритм Герцеля не для поиска 10 гармоник, а для поиска 44-х. (4 отсчёта вблизи каждого максимума).

Окно как раз уменьшает число коэффициентов, подлежащих оценке, а не увеличивает.

Если вам неизвестна частота сигнала, то делать поиск придётся в любом случае, для уточнения частот высших гармоник. А если частота примерно известна, то используйте flat-top окно. Тогда достаточно оценить 1 коэффициент на гармонику.
анатолий
Цитата
120 кБ ROM

Если есть такая память,
то лучше не заморачиваться, запомнить в памяти синусоиды, окна и сделать чистый ДПФ.
А Герцеля лучше забыть, т.к. у него ошибки сильно накапливаются.

Я в 1993 делал такую же задачу на чистом і8051 через ДПФ.
И памяти хватало, и точности, и времени.
Точность измерения частоты была 0,1 Гц.
bahurin
Цитата(анатолий @ Aug 18 2011, 11:56) *
А Герцеля лучше забыть, т.к. у него ошибки сильно накапливаются.


Не больше чем у любого бих фильтра. Кстати если сравнивать Герцеля и FFT, то в FFT ошибки накапливаются не меньше.
Zelepuk
Цитата(Alexey Lukin @ Aug 17 2011, 18:16) *
Окно как раз уменьшает число коэффициентов, подлежащих оценке, а не увеличивает.

Если вам неизвестна частота сигнала, то делать поиск придётся в любом случае, для уточнения частот высших гармоник. А если частота примерно известна, то используйте flat-top окно. Тогда достаточно оценить 1 коэффициент на гармонику.


Частота сигнала известна с точностью 0,01Гц. Даже при использовании flattop при изменении частоты основного тона в пределах 45... 55 Гц пики гармоник в спектре не всегда будут на одинаково расстоянии друг от друга и придётся искать эти пики в некоторых пределах, что потребует вычисления "лишних" спектральных отсчётов вблизи максимумов.
Alexey Lukin
Если частота известна, никакого поиска пиков не требуется, они фиксированы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.