|
Оконное взвешивание, алгоритм применения |
|
|
|
Aug 10 2011, 14:35
|
Знающий
   
Группа: Участник
Сообщений: 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 гц основной гармоники) бина. Иначе говоря трудно ожидать пики в одних и тех же местах спектра при изменении частоты основной гармоники, посему ищется способ однозначного определения местоположения пиков (амплитуд) гармоник в спектре. Речь идёт именно о поиске, так как на графиках точно видно что амплитуды всех гармоник имеют место быть с достаточно выскоой точностью.
|
|
|
|
|
 |
Ответов
|
Aug 11 2011, 17:23
|

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

|
Цитата(Zelepuk @ Aug 11 2011, 09:25)  Я так и хотел делать - разбивать спектр на группы отсчётов и искать максимумы. Не надо разбивать на группы. Просто ищите максимумы. Цитата(Zelepuk @ Aug 11 2011, 09:25)  p.s. после применения окна Блэкмена-Харриса вижу, что точность определения гармоник ниже, чем прри использовании окна с плоской вершиной (flattop). Или нужно как-то просуммировать бины вблизи максимумов? Вы в первом посте написали, что уже суммируете бины. Видимо, я неправильно понял. Да, для других окон нужно просуммировать бины, принадлежащие каждому пику.
|
|
|
|
|
Aug 12 2011, 05:16
|

Местный
  
Группа: Участник
Сообщений: 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.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|