|
Непопадание в бины ДПФ, Как бороться с непопаданием в бины ДПФ? |
|
|
|
Mar 20 2013, 13:53
|

Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 15-12-09
Из: Москва
Пользователь №: 54 280

|
Цитата(polyakovav @ Mar 20 2013, 16:21)  не вполне понятно, что измеряется - частота, амплитуда или еще что? с какой точностью это нужно измерить, и что значит "частота измерения приходит с тахометра"? Измеряется амплитуда сигнала приходящего на АЦП, а частота на которой нужно измерить приходит с тахометра на вход внешнего прерывания МК, который и определяет частоту. АЦП иоже внутри МК. Еще непонятно почему результат ДПФ увеличивается при непопадании частоты. ведь уменьшаться должен ! Цитата(dm.pogrebnoy @ Mar 20 2013, 15:09)  Думаю вам должно помочь улучшить ситуацию наложение окна на входные выборки. Правда выбор этого окна, для обеспечения наибольшей точности, дело не простое. Оконную функцию еще не пробовал, интересно какова ее эффективность Цитата(dm.pogrebnoy @ Mar 20 2013, 15:09)  Думаю вам должно помочь улучшить ситуацию наложение окна на входные выборки. Правда выбор этого окна, для обеспечения наибольшей точности, дело не простое. Оконную функцию еще не пробовал, интересно какова ее эффективность Цитата(polyakovav @ Mar 20 2013, 16:21)  с какой точностью это нужно измерить С какой точностью измерять, это зависит от шумов, в отсутствии сигнала на АЦП. Шум пока не могу измерить так как пока не совсем понимаю как.
|
|
|
|
|
Mar 20 2013, 13:58
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
QUOTE (kumle @ Mar 20 2013, 14:53)  Всем привет, встала задача измерять частотный выход сигнала на определенной частоте. Сигнал для измерения подается на 24-х разрядное АЦП, а частота измерения приходит с тахометра. Частота оцифровки сигнала 500 Гц, для ДПФ выбираю 500 выборок, значит разрешение по частоте 1Гц.
Все работает нормально пока с с тахометра приходят частоты кратные 1-у Герцу, но как только придет скажем 20.5 Герц, то при одном и том же входном сигнале результат ДПФ получается несколько больше ! В качестве сигнала шум на входе АЦП. Как тут быть, задача стоит выжать большую точность, поэтому применен 24-х битный АЦП. А зачем Вам ДПФ, если частота известна достаточно точно с тахометра? Достаточно умножить сигнал на комплексную экспоненту известной частоты и просумировать (усредить). Получите две амплитудные квадратуры, сложите как обычно сумму квадратов Если частота известна абсолютно точно, и в сигнале отсутствуют другие гармоники (только шум), то полученная таким способом оценка амплитуды (и фазы, если необходимо) является оценкой максимального правдоподобия.
|
|
|
|
|
Mar 20 2013, 14:54
|

Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 15-12-09
Из: Москва
Пользователь №: 54 280

|
Цитата(polyakovav @ Mar 20 2013, 17:01)  если понял правильно, сигнал с тахометра определяет моменты взятия выборки с АЦП? каким образом сигнал на входе АЦП связан с тахометром? Нет, моменты взятия выборки определяет МК, частота дискретизации постоянна 500 Гц сигнал с тахометра и сигнал на входе ацп никак не связаны сигнал с тахометра поступает на вход внешнего прерывания МК, так микроконтроллер считает период и узнает сигнал какой частоты ему выделять из сигнала приходящего на АЦП Цитата(fontp @ Mar 20 2013, 16:58)  А зачем Вам ДПФ, если частота известна достаточно точно с тахометра? Достаточно умножить сигнал на комплексную экспоненту известной частоты и просумировать (усредить). Получите две амплитудные квадратуры, сложите как обычно сумму квадратов
Если частота известна абсолютно точно, и в сигнале отсутствуют другие гармоники (только шум), то полученная таким способом оценка амплитуды (и фазы, если необходимо) является оценкой максимального правдоподобия. Не подскажете как называется этот метод, я новичок в ЦОС, хотелось бы поподробней почитать. Цитата(kumle @ Mar 20 2013, 17:18)  Нет, моменты взятия выборки определяет МК, частота дискретизации постоянна 500 Гц
сигнал с тахометра и сигнал на входе ацп никак не связаны сигнал с тахометра поступает на вход внешнего прерывания МК, так микроконтроллер считает период и узнает сигнал какой частоты ему выделять из сигнала приходящего на АЦП
Не подскажете как называется этот метод, я новичок в ЦОС, хотелось бы поподробней почитать. По моему это и есть ДПФ
|
|
|
|
|
Mar 20 2013, 15:02
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
QUOTE (kumle @ Mar 20 2013, 17:54)  Не подскажете как называется этот метод, я новичок в ЦОС, хотелось бы поподробней почитать. По моему это и есть ДПФ ДПФ это когда вы рассчитываете подобные суммы для всех независимых кратных фиксированых частот А я Вам предложил считать на одной, той что с тахометра, не кратной. Это не ДПФ, это просто взятие квадратуры Можно считать, что это перенос на нулевую частоту Почему это хорошо? Может не самое простое обоснование, но в статье обосновывается именно как обойти дискретность ДПФ при определении частоты (что Вам на самом деле не нужно, если частота известна по тахометру), как оптимально определить амплитуду и фазу, и приводятся оценки для достижимой точности http://electronix.ru/forum/index.php?act=a...st&id=39182
|
|
|
|
|
Mar 20 2013, 15:10
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата kumle: По моему это и есть ДПФ Похоже на дпф, но не дпф. Это ких фильтр с импульсной х-кой равной комплексной экспоненте нужной частоты. Можно ее на окно домножить. А можно вообще полосовой рекурсивный фильтр сделать.
|
|
|
|
|
Mar 20 2013, 15:16
|
Частый гость
 
Группа: Свой
Сообщений: 180
Регистрация: 17-02-09
Из: Санкт-Петербург
Пользователь №: 45 001

|
Цитата(kumle @ Mar 20 2013, 18:18)  Не подскажете как называется этот метод, я новичок в ЦОС, хотелось бы поподробней почитать. Если на пальцах, то ДПФ есть множество взаимокорреляционных функций вашего сигнала(от АЦП) и квадратур(sin и cos) с частотами 0, 1,..., 499 Гц. Т.е. делая ДПФ вы находите степень корреляции сигнала аж с 500 гармониками на дискретных частотах. Но у вас ИЗВЕСТНА частота, на которой вы хотите оценить уровень сигнала. Поэтому достаточно посчитать взаимокорреляционную функцию только с одной квадратурой. Плюс, имея 24-х битую АЦП, вам надо генерировать квадратуру как минимум не меньшей разрядности. А это позволяет сгенерить её с очень большой точностью. Не считал сколько, но думаю точнее милигерц. Скорее всего с тахометра частота приходит с меньшей точностью И, как сказал fontp, это будет оценкой максимального правдоподобия. А почитать, что есть ДПФ, прежде чем его делать можно в любой книге по ЦОС.
Сообщение отредактировал TRILLER - Mar 21 2013, 07:19
|
|
|
|
|
Mar 20 2013, 17:40
|
Гуру
     
Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965

|
Хотелось бы понять еще, точность чего необходимо обеспечить. Как уже было замечено, точность тахометра будет существенно ниже, чем точность, которую можно получить с ДПФ. Если использовать тахометр только чтобы оценить примерно гармонику с которой нужно работать, то алгоритм я бы предложил следующий. Домножаем входной сигнал на оконную функцию, делаем ДПФ, выбираем требуемую гармонику, считаем положение максимума с интерполяцией (чтобы получить более точное значение частоты, чем 1 бин), считаем сумму квадратов отсчетов в пределах гармоники (количество бинов определяется оконной функцией) и берем из нее корень - это будет амплитуда на данной частоте. Чтобы амплитуда соответствовала действительности нужно либо брать правильно отнормированную оконную функцию, либо калибровать прибор.
|
|
|
|
|
Mar 20 2013, 18:06
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
QUOTE (Alex11 @ Mar 20 2013, 21:40)  Хотелось бы понять еще, точность чего необходимо обеспечить. Как уже было замечено, точность тахометра будет существенно ниже, чем точность, которую можно получить с ДПФ. Если использовать тахометр только чтобы оценить примерно гармонику с которой нужно работать, то алгоритм я бы предложил следующий. Домножаем входной сигнал на оконную функцию, делаем ДПФ, выбираем требуемую гармонику, считаем положение максимума с интерполяцией (чтобы получить более точное значение частоты, чем 1 бин), считаем сумму квадратов отсчетов в пределах гармоники (количество бинов определяется оконной функцией) и берем из нее корень - это будет амплитуда на данной частоте. Чтобы амплитуда соответствовала действительности нужно либо брать правильно отнормированную оконную функцию, либо калибровать прибор. То что точность тахометра хуже чем бин ДПФ как раз не звучало, скорее наоборот, бин 1 гц, автор топика оценивает частоту по тахометру как 20.5, то есть точность тахометра по крайней мере 0.5 В общем, это вопрос, что точнее. Выше речь шла о другом- о ширине полосы фильтра. Обычно с помощью интерполяции можно получить точность примерно на порядок выше чем бин ДПФ. Точность зависит от уровня шума и числа отсчетов, но в любом случае интерполяцией два порядка получить тяжело, а три - невозможно Если точность тахометра выше чем эта величина, то искать пик и проводить интерполяцию не надо. Если нет, то тогда есть смысл искать пик и проводить интерполяцию вблизи максимума. При этом нет смысла обсчитывать все гармоники ДПФ, а только компоненты в интервале неопределенности показаний тахометра (скорее всего только три гармоники)
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|