реклама на сайте
подробности

 
 
> Как правильно фильтровать?
inventor
сообщение Oct 28 2015, 12:05
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Задача такая - у меня АЦП может работать только на минимальной частоте 1000 Гц.
мне нужны кратные частоты: 125, 250 и 500.
Получить их можно проведя децимацию, предварительно перед которой
отфильтровав все что выше чстоты найквиста.
т.е. для получения данных на частоте 500,
я запускаю измерения на 1000 Гц,
фильтрую все что выше 250
и беру каждый второй отсчет.
Не стал заморачиваться с фильтрами - смотрю они уже есть в армовсеом коде
(те у кого STM в папке SMSIS)
у меня процессор СС3200 - не нашел примеров именно для него,
пока взял библиотечку у STM - она подходит к техасу (ф-я void arm_fir_decimate_fast_q31(///)).
Есть несколько вопросов, у меня может быть от 1-го канала до 8-ми,
вот как их всех одновременно фильтровать?
Код, который делает АРМ я так понимаю УЖЕ оптимизирован
по скорости, объему и прочему, сокращено количество циклов и всяких MAC операций.
как сделать "нормальную" фильтрацию одновременно всех 8-ми каналов,
и сколько навскидку времени уйдет на вызов функции фильтрации
т.е. переписать саму функцию фильтрации, чтобы использовать только 1 функцию
вместо идкущих подряд 8 и что то другое.
у кого какие мысли?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Oct 28 2015, 13:17
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Зачем "одновременно"? Обрабатывайте блоки от каждого канала по-очереди. Блок сделайте равным коэффициенту децимации. После каждого вызова функции получите одну точку результата для одного канала. Чисто теоретически, imho.
Go to the top of the page
 
+Quote Post
inventor
сообщение Oct 28 2015, 13:24
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Цитата(ViKo @ Oct 28 2015, 16:17) *
Зачем "одновременно"? Обрабатывайте блоки от каждого канала по-очереди. Блок сделайте равным коэффициенту децимации. После каждого вызова функции получите одну точку результата для одного канала. Чисто теоретически, imho.

то есть сначала для первого отсчета, через 32 отсчета для второго, через 64 для третьего?
Правильно?
насчте синхронной филттрации.
у меня не звук, где это было бы допустимо
там сейсмоданные и желательно знать когда сигналы к чему относятца.
сейчас у меня обычный FIR фильтр, который дает задержку на 32 отсчета,
т.е. на 32 миллисекунды.
хотелось бы чтобы время, которое я записываю с данными датчиков
соответсвовало первому отсчету в пачке.
а таким образом (не одновременная фильтрация)
время будет соответсвовать только примерно.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Oct 28 2015, 13:38
Сообщение #4





Guests






Цитата(inventor @ Oct 28 2015, 16:24) *
то есть сначала для первого отсчета


Что-то Вы путаете кислое с пресным. На одном процессоре невозможно параллельно обработать многоканальный поток данных - только последовательно.

Можно организовать быстрый ввод по одному отсчету с каждого канала и до поступления очередных отсчетов реализовать FIR-ы по всем каналам.
Сдвиг по времени каждого отсчета определиться максимально допустимой частотой переключения опроса датчиков.
Время - условное понятие. Если известна частота опроса датчиков, то shift легко вычисляется.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- inventor   Как правильно фильтровать?   Oct 28 2015, 12:05
- - TSerg   Поставить 8 CPU.   Oct 28 2015, 12:52
|- - kovigor   Цитата(TSerg @ Oct 28 2015, 15:52) Постав...   Oct 28 2015, 12:59
||- - Tarbal   Цитата(inventor @ Oct 28 2015, 17:24) то ...   Oct 28 2015, 13:28
||- - ViKo   Цитата(inventor @ Oct 28 2015, 16:24) то ...   Oct 28 2015, 13:35
|||- - Tarbal   Цитата(ViKo @ Oct 28 2015, 17:35) Вообще,...   Oct 28 2015, 13:58
|||- - ViKo   Цитата(Tarbal @ Oct 28 2015, 16:58) Децим...   Oct 28 2015, 14:05
||||- - inventor   Цитата(ViKo @ Oct 28 2015, 17:05) Простей...   Oct 28 2015, 14:14
||||- - ViKo   Цитата(inventor @ Oct 28 2015, 17:14) так...   Oct 28 2015, 14:23
||||- - Tarbal   Цитата(ViKo @ Oct 28 2015, 18:23) Конечно...   Oct 28 2015, 14:38
||||- - ViKo   Цитата(Tarbal @ Oct 28 2015, 17:38) Movin...   Oct 28 2015, 14:41
|||- - TSerg   Цитата(Tarbal @ Oct 28 2015, 16:58) Д обы...   Oct 28 2015, 14:07
|- - Tarbal   Цитата(ViKo @ Oct 28 2015, 17:17) Зачем ...   Oct 28 2015, 13:26
|- - kovigor   Цитата(Tarbal @ Oct 28 2015, 16:26) Я та...   Oct 28 2015, 13:27
- - Tarbal   Если вам не нужно 1000 герцовых измерений, то на в...   Oct 28 2015, 13:23
- - AlexandrY   Цитата(inventor @ Oct 28 2015, 14:05) Код...   Oct 28 2015, 14:34
|- - SasaVitebsk   Цитата(AlexandrY @ Oct 28 2015, 17:34) Не...   Oct 29 2015, 06:34
- - Tarbal   Все зависит от задачи. Но надо знать больше о проб...   Oct 28 2015, 14:46


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 01:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01377 секунд с 7
ELECTRONIX ©2004-2016