Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Анализ гармоник
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Alhen
В общем-то задача стандартная, есть сетевое напряжение 50 Гц, надо анализировать гармонические составляющие основной частоты.
Допустим,что я возьму кратное степени двойки или четверки число выборок АЦП за период (т.е. 20 мс) и выполню БПФ, то при частоте сети ниже или выше 50 Гц получу искаженный спектр.
В принципе можно предварительно точно измерить период основной частоты, а затем пересчитать выборки с помощью SampleRateConversion (интерполяция-децимация) так, чтобы скажем 512 точек точно попадали в период. Тогда спектр получается правильный (проверял в МатЛабе).
Вопрос, неужели на практике так и поступают, ведь мне эту процедуру надо еще и в BlackFin-е реализовать, а там она ресурсов памяти потянет...?
А процедура SRC обычно применяемая в звуковой обработке сигналов, годится ли она для электротехнических расчетов?
vladv
А что имеется в виду под "гармонические составляющие основной частоты"? 2, 3 и т.д. гармоники (нелинейные искажения) или спектральные составляющие вблизи основной гармоники (фазовый шум или помехи)?

Если в выборку не укладывается целое число периодов, то перед преобразованием Фурье оцифрованный сигнал умножают на специальную весовую функцию (окно). Например, окно Хэннинга, Хэмминга, Блэкмана. Просто посмотрите практически любую книжке или учебник по цифровой обработке сигналов. Тут, например: http://prodav.narod.ru/dsp/index.html.
Alhen
Да речь идет именно о 2, 3 и т.д. гармониках.
А про использование весовых функции я не знал smile.gif
DRUID3
Я бы сделал не так. БПФ это конечно был повод для расцвета ЦОС, но это не значит что его надо применять в любом проекте. Вам нужно точно отслеживать амплитуду вблизи сетки частот 50, 100, 150, 200 и т.д. Hz. А далеко от этих окрестностей Вам не только НЕ надо ничего знать, но там содержится еще энергия помех которая снизит точность по-любому. FFT ну очень грубый в этом случае метод, все вычислительные преимущества "быстрого" угробятся ненужным избытком обрабатываемого сигнала. Намного правильнее будет применить метод Герцеля - по-сути это накапливающий FIFO фильтр. Его преимущества очень существенны если нужно выделить узкий участок в спектре, а особенно в Вашем случае когда требуется только модуль - амплитуда. И еще у "Герцеля" незаменимый плюс - возможность плавной перестройки частоты - которой даже близко не может быть у FFT/DFT.
Alhen
2 vladv
Поигрался с окнами ничего хорошего они не дают, как обычно три "палки" вместо одной на чистую синусоиду, я уж не говорю при наличие искажений.
2 DRUID3
Спасибо,
что же посмотрим кто такой Герцель.
vid435
Цитата(Alhen @ Mar 1 2008, 17:05) *
В принципе можно предварительно точно измерить период основной частоты, а затем пересчитать выборки с помощью SampleRateConversion (интерполяция-децимация) так, чтобы скажем 512 точек точно попадали в период. Тогда спектр получается правильный (проверял в МатЛабе).
Вопрос, неужели на практике так и поступают, ведь мне эту процедуру надо еще и в BlackFin-е реализовать, а там она ресурсов памяти потянет...?

Я так и делал в анализаторе качества электроэнергии для измерения гармоник до 50-ой.
Измерять частоту первой гармоники надо было по любому. Дробный интерполятор тоже не очень страшная штука.
Стандарт IEC 61000-4-7 на измерение гармоник подразумевает именно такой метод. Стандарт описывает процедуру группировки отсчетов фурье вокруг гармоник и между ними, требуется именно фурье с большим числом точек, герцель не проходит никик.
МИПСов на вычисление 8 реальных фурье требуется немного (для ТМС 5509). Если требуется могу рассказать более подробно.
DRUID3
Цитата(vid435 @ Mar 12 2008, 15:04) *
Я так и делал в анализаторе качества электроэнергии для измерения гармоник до 50-ой.
Измерять частоту первой гармоники надо было по любому. Дробный интерполятор тоже не очень страшная штука.
Стандарт IEC 61000-4-7 на измерение гармоник подразумевает именно такой метод. Стандарт описывает процедуру группировки отсчетов фурье вокруг гармоник и между ними, требуется именно фурье с большим числом точек, герцель не проходит никик.
МИПСов на вычисление 8 реальных фурье требуется немного (для ТМС 5509). Если требуется могу рассказать более подробно.

07.gif врать не буду, со стандартом не знаком. Хотя и странный он. 07.gif
vid435
Как я понимаю, смысл применения фурье как раз заключается в том чтобы точно разделить частоты гармоник, интергармоник и субгармоник. Например сигнал в полосе 95 - 105 Гц считать второй гармоникой, в полосе 110 - 140 Гц интергармоникой, в 145 - 155 Гц третьей и т.д.

Относительно размеров памяти - действительно для обработки 4-х токов и 4-х напряжений требуется 4 * 2048 комплексных слов и нужнa еще двойная буферизация (чтобы делать вычисления одновременно с накоплением следующих отсчетов) = 32768 слов. Я их хранил во внешней динамической памяти и копировал во внутреннюю для выполнения вычислений FFT. Кстати, за одно комплексное вычислени FFT можно вычислить два FFT для реальных сигналов.
DRUID3
Цитата(vid435 @ Mar 12 2008, 17:13) *
Как я понимаю, смысл применения фурье как раз заключается в том чтобы точно разделить частоты гармоник, интергармоник и субгармоник. Например сигнал в полосе 95 - 105 Гц считать второй гармоникой, в полосе 110 - 140 Гц интергармоникой, в 145 - 155 Гц третьей и т.д.


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