реклама на сайте
подробности

 
 
> Оконное взвешивание, алгоритм применения
Zelepuk
сообщение Aug 10 2011, 14:35
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Есть задача: нужно посчитать THD в промышленной сети 50Гц.
THD считается по 10 гармоникам (кратным оновной частоте). Основная частота меняется в пределах 45...55Гц.
Я хочу применить алгоритм:

-оцифровываю сигнал с частотой 4096Гц (это априорная величина задана жёстко),
-затем оконное взвешивание (использую flattopwin в MATLAB - окно с плоской вершиной),
-делаю БПФ на 512 точек (окно в 0,125с.)

Теперь самое интересное, если гармоник 10, то нужно просто найти 10 пиков в спектре и вокруг взять корень квадратный из суммы квадратов окружающих эти пики бинов. Но если частота основной гармоники плавает от 45 до 55 Гц, то получается например для 9-й гармоники бины на которых основная энергия меняются от 52 до 59 (при частоте основной гармоники 45-55Гц), а для 10-й Гармоники основная энергия распределяется на 58-70 бинах (в зависимости от изменения основной гармоники), 11-я гармоника уже бегает с 63 (при 45 гц основной гармоники) до 77 (при 55 гц основной гармоники) бина.

Иначе говоря трудно ожидать пики в одних и тех же местах спектра при изменении частоты основной гармоники, посему ищется способ однозначного определения местоположения пиков (амплитуд) гармоник в спектре. Речь идёт именно о поиске, так как на графиках точно видно что амплитуды всех гармоник имеют место быть с достаточно выскоой точностью.

laughing.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Zelepuk
сообщение Aug 11 2011, 05:25
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Я так и хотел делать - разбивать спектр на группы отсчётов и искать максимумы.
Дело как раз в том, что локальные максимумы находятся на разных расстояниях друг от друга. И при изменении частоты основной гармоники в широких пределах (45-55Гц) получается что группа для 8 гармоники (для 55Гц) "залезает" на группу для 9-й (для 45гц).

Остаётся только каким -то образом искать частоту основной гармоники и искать исходя из её значения. Или есть другой способ?


p.s. после применения окна Блэкмена-Харриса вижу, что точность определения гармоник ниже, чем прри использовании окна с плоской вершиной (flattop). Или нужно как-то просуммировать бины вблизи максимумов?

Сообщение отредактировал Zelepuk - Aug 11 2011, 05:41
Go to the top of the page
 
+Quote Post
Alexey Lukin
сообщение Aug 11 2011, 17:23
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000



Цитата(Zelepuk @ Aug 11 2011, 09:25) *
Я так и хотел делать - разбивать спектр на группы отсчётов и искать максимумы.

Не надо разбивать на группы. Просто ищите максимумы.

Цитата(Zelepuk @ Aug 11 2011, 09:25) *
p.s. после применения окна Блэкмена-Харриса вижу, что точность определения гармоник ниже, чем прри использовании окна с плоской вершиной (flattop). Или нужно как-то просуммировать бины вблизи максимумов?

Вы в первом посте написали, что уже суммируете бины. Видимо, я неправильно понял.
Да, для других окон нужно просуммировать бины, принадлежащие каждому пику.
Go to the top of the page
 
+Quote Post
bahurin
сообщение Aug 12 2011, 05:16
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 240
Регистрация: 20-09-08
Пользователь №: 40 347



Цитата(Alexey Lukin @ Aug 11 2011, 21:23) *
Не надо разбивать на группы. Просто ищите максимумы.


Вы в первом посте написали, что уже суммируете бины. Видимо, я неправильно понял.
Да, для других окон нужно просуммировать бины, принадлежащие каждому пику.



1. На группы нужно разбивать. Если частота первой основной гармоники может находится в пределах 45-55 Гц, то после взятия FFT необходимо искать локальный максимум в диапазоне 45-55 Гц. Никакие бины не складывать, просто методом перебора найти максимальный. Найдя этот локальный максимум надо запомнить его уровень A0 и его частоту f0. Для увеличения точности оценки максимума и частоты можно по трем точкам уточнить по полиному второй степени.

2. После того как мы оценили частоту основной гармоники, то предсказываем появление второй гармоники на частоте 2*f0 +- df, где df есть диапазон выбора второго локального максимума определяется точностью оценки частоты первой гармоники. Например если у вас частота дискретизации 4096 Гц, и вы берете 1024 точки, то точность оценки первой гармоники будет +-2 Гц. Тогда можно для второй гармоники взять df = 6 Гц (ошибка в 2 Гц также удвоится и будет +-4, с запасом можно взять +-6). Аналогично п.1 ищем локальный максимум, ничего не суммируя. Получили уровень второй гармоники равный A1 и частота второй гармоники f1. ВАЖНО частота второй гармоники также определена с точностью +- 2 Гц.

3. Предсказываем частоту третьей гармоники равную f2 = 3*f1/2. Поскольку мы вторую гармонику оценили с точностью +-2 Гц, то df для третьей гармоники можно также взять уже равной 4 Гц, поскольку df = 3*(+-2)/2 = +-3, а мы возьмем +-4, с запасом. Снова ищем локальный максимум запоминаем его уровень A3 и частоту f3

4. Для четвертой гармоники предсказываем частоту ее появления на f4 = 4*f3/3. далее везде полосу для поиска локального максимума можно брать +-4 Гц.

Итак ничего не надо суммировать и т.д., нужно лишь запусить итерационную процедуру поиска локальных максимумов в узкой полосе предсказывая каждый раз очередную гармонику. Соотвественно потом надо поделить полученные уровни An на A0.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Zelepuk   Оконное взвешивание   Aug 10 2011, 14:35
- - Alexey Lukin   Гармоники в спектре ищутся как локальные максимумы...   Aug 10 2011, 20:32
|- - bahurin   Вообще надо исходить из того с какой точностью вам...   Aug 11 2011, 08:57
|- - _4afc_   Цитата(Zelepuk @ Aug 11 2011, 09:25) Оста...   Aug 11 2011, 08:59
- - sup-sup   Можно сделать FIR фильтр в частотной области. Для ...   Aug 12 2011, 05:09
- - Zelepuk   Я эспериментирую в CBuilder над FFT и окнами. Нашё...   Aug 12 2011, 09:16
|- - bahurin   Цитата(Zelepuk @ Aug 12 2011, 13:16) Когд...   Aug 12 2011, 10:08
|- - Alexey Lukin   Цитата(Zelepuk @ Aug 12 2011, 13:16) Как ...   Aug 12 2011, 18:35
- - Zelepuk   к сожалению с целыми числами полноценно работать в...   Aug 12 2011, 10:31
|- - bahurin   Цитата(Zelepuk @ Aug 12 2011, 14:31) к со...   Aug 12 2011, 11:06
- - ivan219   Zelepuk а как вы получаете гармоники? Из нулевой г...   Aug 12 2011, 11:18
|- - Zelepuk   Цитата(ivan219 @ Aug 12 2011, 15:18) Zele...   Aug 12 2011, 11:58
|- - bahurin   Цитата(Zelepuk @ Aug 12 2011, 15:58) По в...   Aug 12 2011, 12:52
- - ivan219   Цитата(Zelepuk @ Aug 12 2011, 15:58) всмы...   Aug 12 2011, 13:10
|- - Zelepuk   Цитата(ivan219 @ Aug 12 2011, 17:10) Я но...   Aug 12 2011, 13:29
|- - SPACUM   Цитата(Zelepuk @ Aug 12 2011, 17:29) в ма...   Aug 17 2011, 12:04
|- - Alexey Lukin   Цитата(SPACUM @ Aug 17 2011, 16:04) А я с...   Aug 17 2011, 13:53
|- - SPACUM   Цитата(Alexey Lukin @ Aug 17 2011, 17:53)...   Aug 17 2011, 15:43
|- - petrov   Цитата(SPACUM @ Aug 17 2011, 19:43) Для с...   Aug 17 2011, 16:06
|- - Alexey Lukin   Цитата(SPACUM @ Aug 17 2011, 19:43) Шутит...   Aug 17 2011, 18:55
|- - SPACUM   Цитата(Alexey Lukin @ Aug 17 2011, 22:55)...   Aug 17 2011, 20:28
- - Alex11   Позвольте не согласиться с т. bahurin по поводу то...   Aug 13 2011, 10:43
|- - petrov   Цитата(Alex11 @ Aug 13 2011, 14:43) При н...   Aug 13 2011, 12:50
|- - Alexey Lukin   Цитата(Alex11 @ Aug 13 2011, 14:43) Корен...   Aug 13 2011, 14:32
|- - petrov   Цитата(Alexey Lukin @ Aug 13 2011, 18:32)...   Aug 13 2011, 15:29
|- - bahurin   Цитата(Alexey Lukin @ Aug 13 2011, 17:32)...   Aug 13 2011, 17:34
|- - Alexey Lukin   Цитата(bahurin @ Aug 13 2011, 21:34) Вот ...   Aug 14 2011, 15:25
|- - bahurin   Цитата(Alexey Lukin @ Aug 14 2011, 18:25)...   Aug 14 2011, 16:20
|- - Alexey Lukin   Цитата(bahurin @ Aug 14 2011, 20:20) 1. Н...   Aug 14 2011, 17:47
|- - bahurin   Цитата(Alexey Lukin @ Aug 14 2011, 20:47)...   Aug 14 2011, 18:10
- - Дмитрий_Б   Почему бы просто не найти 10 локальных максимумов ...   Aug 13 2011, 14:11
- - Дмитрий_Б   Цитата(bahurin @ Aug 13 2011, 21:34) Заме...   Aug 14 2011, 14:54
- - Alexey Lukin   Спасибо, просветили! Так в чём же вопрос зак...   Aug 14 2011, 18:26
|- - bahurin   Цитата(Alexey Lukin @ Aug 14 2011, 21:26)...   Aug 15 2011, 06:11
- - Alexey Lukin   Если это сливающиеся синусоиды и нет возможности у...   Aug 15 2011, 13:46
|- - bahurin   Цитата(Alexey Lukin @ Aug 15 2011, 16:46)...   Aug 16 2011, 04:08
- - Zelepuk   Alex11 говорил о том, что сделано в железе с приме...   Aug 17 2011, 12:08
|- - SPACUM   Цитата(Zelepuk @ Aug 17 2011, 16:08) Alex...   Aug 17 2011, 16:15
|- - petrov   Цитата(SPACUM @ Aug 17 2011, 20:15) Возьм...   Aug 17 2011, 16:28
|- - SPACUM   Цитата(petrov @ Aug 17 2011, 20:28) Ну и ...   Aug 17 2011, 16:30
|- - petrov   Цитата(SPACUM @ Aug 17 2011, 20:30) Прове...   Aug 17 2011, 16:59
|- - SPACUM   Цитата(petrov @ Aug 17 2011, 20:59) Даже ...   Aug 17 2011, 17:11
|- - petrov   Цитата(SPACUM @ Aug 17 2011, 21:11) Переп...   Aug 17 2011, 18:57
- - Alex11   Коли спрашивали, признаюсь: оцифровка на частоте 2...   Aug 17 2011, 21:52
|- - SPACUM   Цитата(Alex11 @ Aug 18 2011, 01:52) Коли ...   Aug 18 2011, 07:37
- - Signal   Цитата(Zelepuk @ Aug 10 2011, 17:35) Есть...   Aug 24 2011, 22:48
|- - Signal   Цитата(Signal @ Aug 25 2011, 01:48) Фанта...   Aug 25 2011, 13:58
- - Alexey Lukin   Таким образом вычисляется THD+N. Если нет шума, то...   Aug 25 2011, 05:01


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 10:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01369 секунд с 7
ELECTRONIX ©2004-2016