-
- Частота дискретизации не более 10кГц (быстрее наверное не успеет), на входе RC фильтр на 1кГц. Процессор PIC24 с аппаратным умножителем 16х16. На 500Гц и далее желательно иметь подавление в 100 раз. AlexBi(393 знак., 12.03.2018 11:46)
- Блин, я думал, вам режекторный фильтр на 50 Гц нужен, а тут вот оно как... Чтобы выделить из сигнала одну частоту, фильтр вообще не нужен, нужен синхронный детектор. И ещё совет - если возможно, не измеряйте ничего на частоте 50 Гц, измеряйте на йцукен(11 знак., 12.03.2018 14:38)
- Обоснуй. - max(25.03.2018 12:19)
- Даже не знаю, с чего начать. Синхронный детектор требует меньше вычислений: 2 умножения и 2 сложения на отсчёт. После фильтра всё равно нужно как-то оценивать амплитуду, а тут мы сразу получаем амплитуду (и фазу, если нужно). Синхронный детектор йцукен(113 знак., 25.03.2018 13:17)
- Как можно математически "подружить" синхронный детектор с сигналом у которого частота известна с точностью, например, ±2% и произвольная фаза (до начала фильтрации)? - De_User(25.03.2018 17:53 - 18:00)
- Если частота заранее неизвестна, гуглите digital PLL. Если известна - фазу знать не нужно, умножайте на синус и косинус, и накапливайте отдельно, амплитуду получите как корень из суммы квадратов. - йцукен(25.03.2018 18:33)
- Спасибо! Т.е. умножение "задавит" все остальные посторонние частоты, как в синусном, так и в косинусном накопителях? - De_User(25.03.2018 19:29)
- Не совсем так. Когда мы перемножаем синусы двух частот, у нас в полном соответствии с известным тригонометрическим тождеством на выходе получатся суммарная и разностная частота. Ненулевые частоты подавляются последующим усреднением. - йцукен(25.03.2018 19:50)
- Усреднение - это простое суммирование? Т.е. накопили 256 отсчётов и сдвинули на один байт вправо. - De_User(25.03.2018 20:49)
- В простейшем случае - да. Это соответствует прямоугольному окну. Главное достоинство прямоугольного окна - на 1 умножать легко и приятно, приятнее только на 0. Недостаток - очень медленно убывающие боковые лепестки. Соответственно придумана куча йцукен(72 знак., 25.03.2018 21:30, ссылка)
- Спасибо! Ссылку в закладки, супер мега полезная! - De_User(25.03.2018 22:30, ссылка)
- В простейшем случае - да. Это соответствует прямоугольному окну. Главное достоинство прямоугольного окна - на 1 умножать легко и приятно, приятнее только на 0. Недостаток - очень медленно убывающие боковые лепестки. Соответственно придумана куча йцукен(72 знак., 25.03.2018 21:30, ссылка)
- Усреднение - это простое суммирование? Т.е. накопили 256 отсчётов и сдвинули на один байт вправо. - De_User(25.03.2018 20:49)
- Не совсем так. Когда мы перемножаем синусы двух частот, у нас в полном соответствии с известным тригонометрическим тождеством на выходе получатся суммарная и разностная частота. Ненулевые частоты подавляются последующим усреднением. - йцукен(25.03.2018 19:50)
- Спасибо! Т.е. умножение "задавит" все остальные посторонние частоты, как в синусном, так и в косинусном накопителях? - De_User(25.03.2018 19:29)
- Если частота заранее неизвестна, гуглите digital PLL. Если известна - фазу знать не нужно, умножайте на синус и косинус, и накапливайте отдельно, амплитуду получите как корень из суммы квадратов. - йцукен(25.03.2018 18:33)
- Да я про "только не на 50Гц"... - max(25.03.2018 17:10)
- Подразумевается целое число периодов за цикл измерения, как в алгоритме им. АОНа ? - fk0(25.03.2018 15:42)
- Когда мы умножаем частоту на неё саму, у нас поручается нулевая частота плюс удвоенная. Если мы не используем окно, или, что то же самое, окно у нас прямоугольное, выгодно взять интервал измерения равным целому числу периодов удвоенной частоты, йцукен(76 знак., 25.03.2018 16:40)
- Если "умножаем с окном", то предыдущий тезис - "требует меньше вычислений: 2 умножения и 2 сложения на отсчёт" уже не верен.. :) - Хаос(25.03.2018 17:43, )
- Если синус и косинус брать из таблицы, они там могут лежать уже с окном. - йцукен(25.03.2018 18:35)
- И мы тут же получаем комплексный фильтр с КИХ равной длине окна.. - Хаос(25.03.2018 19:08, )
- Математически - да, но я бы не использовал в данном случае слово фильтр. Оно как бы подразумевает, что частота сигнала не меняется, а меняется амплитуда и/или фаза. А смысл синхронного детектора состоит именно в переносе частоты сигнала на нулевую. - йцукен(25.03.2018 19:54)
- Кстати, про математику. Хаос(939 знак., 25.03.2018 20:55, )
- На PIC24 у меня КИХ-фильтры не получались. Нет SIMD. Получается очень медленно. С той же загрузкой ЦПУ БИХ-фильтры дают лучшие результаты. - Nikolay_Po(25.03.2018 21:19)
- У человека 50Гц. Я делал КИХ ППФ-50Гц на меге48. Она ещо покурить успевала. - mse homjak(25.03.2018 23:33)
- Мне просто недостаёт мастерства. На ассемблере? Впрочем, при хорошем компиляторе разницы C vs Asm может и не быть. Nikolay_Po(229 знак., 25.03.2018 23:40)
- БИХ фильтры не дают линейную ФЧХ. Ваш, КО.. - Хаос(25.03.2018 23:01, )
- Спасибо, капитан! Когда нет необходимости в фазолинейности, я про эту возможность КИХ забываю. Но ТС не запрашивал фазовой линейности, вроде. В любом случае, фильтр на 400 коэффициентов, работающий на 10кГц, PIC24F не под силу. Nikolay_Po(193 знак., 25.03.2018 23:32)
- Неужели, PIC настолько слаб, что не осилит 800*200 = 160000 арифметических операций в секунду? Это же какие-то жалкие 0,16 MIPS.. Я в шоке!.. :) - Хаос(26.03.2018 04:35, )
- Может, я слаб в вопросах ЦОС (без срказма)? Смотрел реализации FIR в библиотеках dsPIC - там фильтр считался "в лоб". На каждый отсчёт умножение и сумма. У ТС контроллер ещё проще, не dsPIC. 10000*400*3=16MIPS минимум, а то и 24. Nikolay_Po(553 знак., 26.03.2018 07:43 - 07:48)
- Нет смысла считать семплы на выходе КИХ фильтра 10 тысяч раз в секунду, если заранее известно, что из 10 тысяч выходных семплов 9800 семплов на выходе фильтра будут потом просто отброшены как ненужные. Хаос(462 знак., 26.03.2018 08:22, )
- Тьфу, блин... Гениально! На лекциях этот факт казался мне настолько очевидным, что даже не запомнил :( Спасибо, КО! - Nikolay_Po(26.03.2018 10:26)
- Нет смысла считать семплы на выходе КИХ фильтра 10 тысяч раз в секунду, если заранее известно, что из 10 тысяч выходных семплов 9800 семплов на выходе фильтра будут потом просто отброшены как ненужные. Хаос(462 знак., 26.03.2018 08:22, )
- Может, я слаб в вопросах ЦОС (без срказма)? Смотрел реализации FIR в библиотеках dsPIC - там фильтр считался "в лоб". На каждый отсчёт умножение и сумма. У ТС контроллер ещё проще, не dsPIC. 10000*400*3=16MIPS минимум, а то и 24. Nikolay_Po(553 знак., 26.03.2018 07:43 - 07:48)
- Неужели, PIC настолько слаб, что не осилит 800*200 = 160000 арифметических операций в секунду? Это же какие-то жалкие 0,16 MIPS.. Я в шоке!.. :) - Хаос(26.03.2018 04:35, )
- Спасибо, капитан! Когда нет необходимости в фазолинейности, я про эту возможность КИХ забываю. Но ТС не запрашивал фазовой линейности, вроде. В любом случае, фильтр на 400 коэффициентов, работающий на 10кГц, PIC24F не под силу. Nikolay_Po(193 знак., 25.03.2018 23:32)
- У человека 50Гц. Я делал КИХ ППФ-50Гц на меге48. Она ещо покурить успевала. - mse homjak(25.03.2018 23:33)
- На PIC24 у меня КИХ-фильтры не получались. Нет SIMD. Получается очень медленно. С той же загрузкой ЦПУ БИХ-фильтры дают лучшие результаты. - Nikolay_Po(25.03.2018 21:19)
- Нормальное слово. :) Просто надо использовать словосочетания: "децимирующий фильтр" или "интерполирующий фильтр". И тогда всё будет в согласии с теорией. ;) - Хаос(25.03.2018 20:35, )
- Кстати, про математику. Хаос(939 знак., 25.03.2018 20:55, )
- Математически - да, но я бы не использовал в данном случае слово фильтр. Оно как бы подразумевает, что частота сигнала не меняется, а меняется амплитуда и/или фаза. А смысл синхронного детектора состоит именно в переносе частоты сигнала на нулевую. - йцукен(25.03.2018 19:54)
- И мы тут же получаем комплексный фильтр с КИХ равной длине окна.. - Хаос(25.03.2018 19:08, )
- Если синус и косинус брать из таблицы, они там могут лежать уже с окном. - йцукен(25.03.2018 18:35)
- Если "умножаем с окном", то предыдущий тезис - "требует меньше вычислений: 2 умножения и 2 сложения на отсчёт" уже не верен.. :) - Хаос(25.03.2018 17:43, )
- Когда мы умножаем частоту на неё саму, у нас поручается нулевая частота плюс удвоенная. Если мы не используем окно, или, что то же самое, окно у нас прямоугольное, выгодно взять интервал измерения равным целому числу периодов удвоенной частоты, йцукен(76 знак., 25.03.2018 16:40)
- Как можно математически "подружить" синхронный детектор с сигналом у которого частота известна с точностью, например, ±2% и произвольная фаза (до начала фильтрации)? - De_User(25.03.2018 17:53 - 18:00)
- Даже не знаю, с чего начать. Синхронный детектор требует меньше вычислений: 2 умножения и 2 сложения на отсчёт. После фильтра всё равно нужно как-то оценивать амплитуду, а тут мы сразу получаем амплитуду (и фазу, если нужно). Синхронный детектор йцукен(113 знак., 25.03.2018 13:17)
- А потребляемую мощность можно все-таки измерать на 50 Гц? - Крок(12.03.2018 16:53)
- Обоснуй. - max(25.03.2018 12:19)
- Фильтровать придётся оба сигнала, и опорный и измеряемый. Иначе непонятно, что вы там измерять собрались. 40дБ на 500Гц не слишком сложно. Но, по-моему, давить нужно с 90Гц, всё со второй гармоники сетевой. Иначе нелинейности объекта всякие острее Nikolay_Po(11 знак., 12.03.2018 12:35)
- Но ведь вы понимаете, что в настоящей "розетке" не только 50Гц, но и 150Гц, 250Гц, 350Гц... - lloyd(12.03.2018 12:01)
- Да. Но исследуемый объект достаточно линеен, зависимость проводимости от частоты не большая, 50Гц в розетке на порядок превосходят гармоники. Надеюсь что этого хватит для корректного определения, т.к. гармоники сложатся и там и там. Значение AlexBi(197 знак., 12.03.2018 12:36)
- Совет навскидку: не получится отфильтровать 50Гц с дискретизации 10кГц в целых до 32-х бит включительно. Диапазон коэффициентов подобных фильтров оказывается велик, не говоря уже о потерях на целом аккумуляторе. Nikolay_Po(2454 знак., 12.03.2018 12:50)
- Да все получится и без всяких там ФНЧ. Нужно просто освоить полифазную реализацию полосовых фильтров.. :) Хаос(52 знак., 12.03.2018 13:28, )
- Совет навскидку: не получится отфильтровать 50Гц с дискретизации 10кГц в целых до 32-х бит включительно. Диапазон коэффициентов подобных фильтров оказывается велик, не говоря уже о потерях на целом аккумуляторе. Nikolay_Po(2454 знак., 12.03.2018 12:50)
- Да. Но исследуемый объект достаточно линеен, зависимость проводимости от частоты не большая, 50Гц в розетке на порядок превосходят гармоники. Надеюсь что этого хватит для корректного определения, т.к. гармоники сложатся и там и там. Значение AlexBi(197 знак., 12.03.2018 12:36)
- Блин, я думал, вам режекторный фильтр на 50 Гц нужен, а тут вот оно как... Чтобы выделить из сигнала одну частоту, фильтр вообще не нужен, нужен синхронный детектор. И ещё совет - если возможно, не измеряйте ничего на частоте 50 Гц, измеряйте на йцукен(11 знак., 12.03.2018 14:38)
- Мобуть. Но обычно не хватат динамики. С плывучкой-то имеем полюбасу, честных 16р. И, соотв, ошибку, 3е-5 - mse homjak(11.03.2018 23:08 - 23:13)
- Частота дискретизации не более 10кГц (быстрее наверное не успеет), на входе RC фильтр на 1кГц. Процессор PIC24 с аппаратным умножителем 16х16. На 500Гц и далее желательно иметь подавление в 100 раз. AlexBi(393 знак., 12.03.2018 11:46)