|
Оконное взвешивание, алгоритм применения |
|
|
|
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 гц основной гармоники) бина. Иначе говоря трудно ожидать пики в одних и тех же местах спектра при изменении частоты основной гармоники, посему ищется способ однозначного определения местоположения пиков (амплитуд) гармоник в спектре. Речь идёт именно о поиске, так как на графиках точно видно что амплитуды всех гармоник имеют место быть с достаточно выскоой точностью.
|
|
|
|
|
 |
Ответов
(30 - 44)
|
Aug 17 2011, 12:04
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(Zelepuk @ Aug 12 2011, 17:29)  в матлабе делаю А я сделал в железе. Результат отвратительный, особенно для флаттоп. Если применяется любое окно кроме прямоугольного, то энергию входного сигнала и энергию спектра невозможно связать никакой формулой. То же и для максимумов пиков спектра. Даже для одной частоты. Для синуса одна формула, для косинуса другая, а если еще частота не совпадает?...
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Aug 17 2011, 13:53
|

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

|
Цитата(SPACUM @ Aug 17 2011, 16:04)  А я сделал в железе. Результат отвратительный, особенно для флаттоп. Если применяется любое окно кроме прямоугольного, то энергию входного сигнала и энергию спектра невозможно связать никакой формулой. То же и для максимумов пиков спектра. Даже для одной частоты. Для синуса одна формула, для косинуса другая, а если еще частота не совпадает?... Значит, где-то ошиблись. Должно быть соответствие как для общей энергии спектра, так и для максимума.
|
|
|
|
|
Aug 17 2011, 15:43
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(Alexey Lukin @ Aug 17 2011, 17:53)  Значит, где-то ошиблись. Должно быть соответствие как для общей энергии спектра, так и для максимума. Шутите. Для синуса подавляются малоэнергетические края, а для косинуса самые максимумы. Для любых окон так. Не работаю на матлабе, все уже в СИ переписано.
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Aug 17 2011, 16:15
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(Zelepuk @ Aug 17 2011, 16:08)  Alex11 говорил о том, что сделано в железе с применением окна Гаусса, точность 0,01% по амплиуде. Нужна лишь длинная выборка. Пусть признается сколько гармоник и на какой основная частота. Проверить просто: синус, косинус и погрешность готова. Цитата(petrov @ Aug 17 2011, 20:06)  Это что означает? Возьмем один период синуса. Умножим на окно. Найдем среднеквадратичное значение. Сделаем то же для косинуса. Будет обязательно меньше. И значительно.
Сообщение отредактировал SPACUM - Aug 17 2011, 16:28
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Aug 17 2011, 16:30
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(petrov @ Aug 17 2011, 20:28)  Ну и что? На выходе максимального бина для флаттоп значение амплитуды будет одно и то же вне зависимости от частоты и фазы. Проверяли? У меня коэффициенты: a0 = 0.21557895; a1 = -0.41663158; a2 = 0.277263158; a3 = -0.083578947; a4 = 0.006947368; Может неверно?
Сообщение отредактировал SPACUM - Aug 17 2011, 16:36
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Aug 17 2011, 16:59
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(SPACUM @ Aug 17 2011, 20:30)  Проверяли? Даже проверять нечего. Поймите простую вещь про FFT, можно абстрагироваться от быстрого алгоритма и представить его как набор N комплексных гетеродинов, за ними N ФНЧ, за ними N дециматоров в N раз. Без окна ФНЧ это просто скользящее среднее, для флаттоп собственно ФНЧ с ИХ флаттоп. Подаём синус, на выходе демодулятора с максимальной амплитудой в случае флаттоп разумеется ничего не зависит от частоты, поскольку вершинка фильтра плоская, и уж тем более от фазы ничего зависеть не может, ну повёрнут/вращается комплексный вектор, квадратуры меняются, а амплитуда постоянна.
|
|
|
|
|
Aug 17 2011, 17:11
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(petrov @ Aug 17 2011, 20:59)  Даже проверять нечего. Перепроверю.
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Aug 17 2011, 18:55
|

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

|
Цитата(SPACUM @ Aug 17 2011, 19:43)  Шутите. Для синуса подавляются малоэнергетические края, а для косинуса самые максимумы. Для любых окон так. Не работаю на матлабе, все уже в СИ переписано. SPACUM и Петров, вы оба по-своему правы. Ошибка SPACUM в том, что он пытается измерить слишком низкую частоту для данного размера окна. Следует помнить, что flat-top (как и другие окна) даёт аккуратную оценку амплитуды только тогда, когда в пределы главного лепестка попадает один единственный тон. В примере SPACUM с синусом и косинусом в пределы главного лепестка очевидно попадает 2 тона: f и -f. Вывод: для аккуратной оценки нужно, чтобы частота сигнала была не ниже, чем полуширина главного лепестка окна.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|