[an error occurred while processing this directive]
|
>В первой части. Вы делаете выборки с частотой 400 герц, и домножаете (знаково) на sin и cos. Я же предлагаю просто неравномерно считывыть выборки. Обе части (мнимая и вещественная) раз в 10 мс, но с квадратурным сдвигом. Что полностью уберет и смену знака, и сложение и лишние прерывания.
Ну тут сразу появится проблема смещения нуля (у меня АЦП последовательного приближения). А во вторых, я не домножаю на комплексную экспоненту, а делаю проще для 51. Завожу 4 переменных (целые длинные) и каждое увеличиваю на величину выборки (сначала первое, потом второе, потом третье и четвертое) за период принимаемого сигнала. Так делаю несколько периодов. Потом нахожу разность этих чисел (1-3 и 2-4), тем самым устраняю сдвиг нуля -результат комплексное число. По-моему очень экономно. Конечно фильтрация не к черту.
>Но, с другой стороны, CIC эффективен при реализации на ПЛИС - то есть без умножений.
Пытался делать что-то такое, но для дешевых решений не подходит. Даже простое СС для 16 разрядных чисел по 5 точкам "сжирает" около 400-500 ячеек. Работает быстро! (25 МГц для самой тихоходной серии) Но очень дорого, да и заливку надо хранить - гемморой одим словом.
С уважением, Андрей
E-mail: info@telesys.ru