|
|
  |
Анализ гармоник, Правильно ли я мыслю? |
|
|
|
Mar 1 2008, 13:05
|

Частый гость
 
Группа: Свой
Сообщений: 161
Регистрация: 17-08-04
Из: Караганда
Пользователь №: 516

|
В общем-то задача стандартная, есть сетевое напряжение 50 Гц, надо анализировать гармонические составляющие основной частоты. Допустим,что я возьму кратное степени двойки или четверки число выборок АЦП за период (т.е. 20 мс) и выполню БПФ, то при частоте сети ниже или выше 50 Гц получу искаженный спектр. В принципе можно предварительно точно измерить период основной частоты, а затем пересчитать выборки с помощью SampleRateConversion (интерполяция-децимация) так, чтобы скажем 512 точек точно попадали в период. Тогда спектр получается правильный (проверял в МатЛабе). Вопрос, неужели на практике так и поступают, ведь мне эту процедуру надо еще и в BlackFin-е реализовать, а там она ресурсов памяти потянет...? А процедура SRC обычно применяемая в звуковой обработке сигналов, годится ли она для электротехнических расчетов?
|
|
|
|
|
Mar 3 2008, 00:09
|
Частый гость
 
Группа: Участник
Сообщений: 128
Регистрация: 7-06-06
Пользователь №: 17 825

|
А что имеется в виду под "гармонические составляющие основной частоты"? 2, 3 и т.д. гармоники (нелинейные искажения) или спектральные составляющие вблизи основной гармоники (фазовый шум или помехи)? Если в выборку не укладывается целое число периодов, то перед преобразованием Фурье оцифрованный сигнал умножают на специальную весовую функцию (окно). Например, окно Хэннинга, Хэмминга, Блэкмана. Просто посмотрите практически любую книжке или учебник по цифровой обработке сигналов. Тут, например: http://prodav.narod.ru/dsp/index.html.
|
|
|
|
|
Mar 12 2008, 13:04
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 9-03-07
Пользователь №: 26 008

|
Цитата(Alhen @ Mar 1 2008, 17:05)  В принципе можно предварительно точно измерить период основной частоты, а затем пересчитать выборки с помощью SampleRateConversion (интерполяция-децимация) так, чтобы скажем 512 точек точно попадали в период. Тогда спектр получается правильный (проверял в МатЛабе). Вопрос, неужели на практике так и поступают, ведь мне эту процедуру надо еще и в BlackFin-е реализовать, а там она ресурсов памяти потянет...? Я так и делал в анализаторе качества электроэнергии для измерения гармоник до 50-ой. Измерять частоту первой гармоники надо было по любому. Дробный интерполятор тоже не очень страшная штука. Стандарт IEC 61000-4-7 на измерение гармоник подразумевает именно такой метод. Стандарт описывает процедуру группировки отсчетов фурье вокруг гармоник и между ними, требуется именно фурье с большим числом точек, герцель не проходит никик. МИПСов на вычисление 8 реальных фурье требуется немного (для ТМС 5509). Если требуется могу рассказать более подробно.
|
|
|
|
|
Mar 12 2008, 15:13
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 9-03-07
Пользователь №: 26 008

|
Как я понимаю, смысл применения фурье как раз заключается в том чтобы точно разделить частоты гармоник, интергармоник и субгармоник. Например сигнал в полосе 95 - 105 Гц считать второй гармоникой, в полосе 110 - 140 Гц интергармоникой, в 145 - 155 Гц третьей и т.д.
Относительно размеров памяти - действительно для обработки 4-х токов и 4-х напряжений требуется 4 * 2048 комплексных слов и нужнa еще двойная буферизация (чтобы делать вычисления одновременно с накоплением следующих отсчетов) = 32768 слов. Я их хранил во внешней динамической памяти и копировал во внутреннюю для выполнения вычислений FFT. Кстати, за одно комплексное вычислени FFT можно вычислить два FFT для реальных сигналов.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|