-
- Как можно математически "подружить" синхронный детектор с сигналом у которого частота известна с точностью, например, ±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)