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

 
 
> Цифровой Фильтр на ATmega, Цифровой Фильтр на ATmega
_Ie0nid
сообщение Sep 16 2009, 04:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 20-09-08
Пользователь №: 40 344



Добрый день, давно не заходил с проблемами. КТо может помочь куском кода к цифровому фильтру для Codevision. Даже с чего начать не знаю, куда не сунусь везде только формулы да теория. Хочу попробовать отфильтровать сигнал снятый с ацп Atmegи, и преобразовать на выход с помощью ШИМ и RC цепи
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alexashka
сообщение Jan 10 2016, 10:24
Сообщение #2


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Цитата
Итого все на сдвигах, да в том то и прикол что для приемлемой точности более 7 сдвигов то и не нужно

Ну мой вариант это тоже по сути сдвиг максимум на 8 разрядов. Только я снова Вас спрашиваю, сколько тактов уходит на сдвиг на 7 бит? Или Вы не оцениваете вычислительные затраты в тактах, тогда о какой эффективности алгоритма идет речь? Непонятно.
Цитата
а кода меньше и выполняется быстрее
Кода меньше, чем где?
Go to the top of the page
 
+Quote Post
RedD
сообщение Jan 10 2016, 10:31
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 1-01-16
Из: Красный Яр
Пользователь №: 89 904



Цитата(Alexashka @ Jan 10 2016, 11:24) *
Ну мой вариант это тоже по сути сдвиг максимум на 8 разрядов. Только я снова Вас спрашиваю, сколько тактов уходит на сдвиг на 7 бит? Или Вы не оцениваете вычислительные затраты в тактах, тогда о какой эффективности алгоритма идет речь? Непонятно.
Кода меньше, чем где?

ДЛя avr один сдвиг в право один такт (LSR, Logical Shift Right (asm)), если семь сдвигов то семь тактов, не считая временных буферов для X,Y.
Хотя и это можно посчитать

А если округлять то вообще не более 4-х тактов выходит на фильтр )
Правда там еще сложения есть, в итоге вместе с буфером больше конечно будет
А вообще на ПЛИС это реализуется похоже еще интереснее ....

Сообщение отредактировал RedD - Jan 10 2016, 14:27
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Jan 10 2016, 17:49
Сообщение #4


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Цитата(RedD @ Jan 10 2016, 14:31) *
ДЛя avr один сдвиг в право один такт (LSR, Logical Shift Right (asm)), если семь сдвигов то семь тактов,

С отрицательными числами тоже? (извините, плохо знаю AVR)
И потом нужно еще принимать во внимание разрядность исходных данных. Всё хорошо когда они 8-битные, но сейчас даже самый плохенький АЦП в контроллере уже имеет разрядность 10+, так что это уже 2 байта.
И потом, если Вы вдруг решите изменить частоту среза фильтра это же все коэффициенты и их группировки нужно пересчитывать (и возможно вводить новые сдвиги). Это весь текст ЦФ надо править. sad.gif
Go to the top of the page
 
+Quote Post
RedD
сообщение Jan 10 2016, 19:24
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 1-01-16
Из: Красный Яр
Пользователь №: 89 904



Цитата(Alexashka @ Jan 10 2016, 18:49) *
С отрицательными числами тоже? (извините, плохо знаю AVR)
И потом нужно еще принимать во внимание разрядность исходных данных. Всё хорошо когда они 8-битные, но сейчас даже самый плохенький АЦП в контроллере уже имеет разрядность 10+, так что это уже 2 байта.
И потом, если Вы вдруг решите изменить частоту среза фильтра это же все коэффициенты и их группировки нужно пересчитывать (и возможно вводить новые сдвиги). Это весь текст ЦФ надо править. sad.gif



Все ответы здесь ....
https://ru.wikipedia.org/wiki/%D0%A4%D0%B8%...%BA%D0%BE%D0%B9

В том числе и алгоритм, это всего лишь ЦОС, если посмотреть на схему и алгоритм то один в один, остальное тоже там, обычный институтский курс

Сообщение отредактировал RedD - Jan 10 2016, 19:27
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Jan 11 2016, 06:03
Сообщение #6


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Цитата(RedD @ Jan 10 2016, 23:24) *
Все ответы здесь ....
https://ru.wikipedia.org/wiki/%D0%A4%D0%B8%...%BA%D0%BE%D0%B9

В том числе и алгоритм, это всего лишь ЦОС, если посмотреть на схему и алгоритм то один в один, остальное тоже там, обычный институтский курс

Вы не поняли, я про то, что изменение даже одного коэффициента влечет переписывание алгоритма обработки в целом (число сдвигов, группировки по сдвигам и т.д.)
Про ЦФ я кое что знаю, первый фильтр я написал еще когда учился в 6 классе rolleyes.gif , не совсем фильтр конечно, а систему разностных уравнений для получения эффекта вращающихся галактик, но не суть. Писалось это на БК0010, с его быстродействием 300тыс.оп./cек и работало в реальном времени. К слову всё делалось безо всяких википедий и учебников smile3046.gif
Цитата
А вообще меня интересовала практическая реализация вот этого вот
Раньше это делалось чисто аналоговым путем (обычный АРУ на пиковом детекторе) безо всяких процессоров, в чем преимущество цифрового метода?
Цитата
Работоспособность компрессора динамического диапазона подтверждена результатами MATLAB-моделирования.
интересно бы еще узнать мнение целевой аудитории.
Go to the top of the page
 
+Quote Post
RedD
сообщение Jan 11 2016, 09:31
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 1-01-16
Из: Красный Яр
Пользователь №: 89 904



Ну то что я хотел сделать я почти сделал )


На Ваши вопросы
1. То не вижу разницы в том сколько двигать 8 16 32, почему ?
Ну хотя бы потому что под 16 бит АЦП и МК нужен 16 бит и т д иначе просто глупость получается.
2. Насчет отрицательных не думал, нужно будет че нить придумаем )


Go to the top of the page
 
+Quote Post
Alexashka
сообщение Jan 11 2016, 10:27
Сообщение #8


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Цитата(RedD @ Jan 11 2016, 13:31) *
Ну хотя бы потому что под 16 бит АЦП и МК нужен 16 бит

Ну в Atmege ядро вроде бы 8-битное. Если речь уже не об atmege, то и сложности с группировкой сдвиговых операций наверно смысла не имеют? В том же кортексе сдвиг на нужное число бит (арифметический, т.е с учетом знака) делается одной инструкцией ASR.
Go to the top of the page
 
+Quote Post
RedD
сообщение Jan 11 2016, 15:31
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 1-01-16
Из: Красный Яр
Пользователь №: 89 904



Цитата(Alexashka @ Jan 11 2016, 11:27) *
Ну в Atmege ядро вроде бы 8-битное. Если речь уже не об atmege, то и сложности с группировкой сдвиговых операций наверно смысла не имеют? В том же кортексе сдвиг на нужное число бит (арифметический, т.е с учетом знака) делается одной инструкцией ASR.



Что Вы имеете под группировкой ?

Про знак .....


С АЦП не может придти отрицательное значение только положительные ....
с ними и работаем, для 8 битного АЦП 0-255, для 10 битного 0-1023

Если про это то

Си
temp=temp-x2>>2 => temp=temp-(x2)>>2,

Да и то только для наглядности, приоритет сдвига выше чем сложение. Сдвиг в 3 группе, сложение в 5 пятой группе приоритетов )

ASM
temp=r20,
ldi r0,x2,
lsr r0,
sub temp,r0

Сообщение отредактировал RedD - Jan 11 2016, 15:52
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- _Ie0nid   Цифровой Фильтр на ATmega   Sep 16 2009, 04:18
- - Genadi Zawidowski   Радиолюбительская конструкция.   Sep 16 2009, 04:50
- - haker_fox   Цитата(_Ie0nid @ Sep 16 2009, 13:18) куда...   Sep 16 2009, 06:36
- - SasaVitebsk   Боюсь, что меня сейчас поколотят, но попробую обле...   Sep 16 2009, 07:30
|- - MrYuran   Цитата(SasaVitebsk @ Sep 16 2009, 11:30) ...   Sep 16 2009, 07:39
||- - SasaVitebsk   Цитата(MrYuran @ Sep 16 2009, 10:39) Непл...   Sep 16 2009, 08:14
|- - ZVE   Цитата(SasaVitebsk @ Sep 16 2009, 10:30) ...   Sep 17 2009, 11:18
|- - Serhiy_UA   Много лет назад экспериментировал на ATmega16 со з...   Sep 17 2009, 13:19
|- - SasaVitebsk   Цитата(ZVE @ Sep 17 2009, 14:18) Да покаж...   Sep 17 2009, 19:45
|- - galjoen   Цитата(SasaVitebsk @ Sep 17 2009, 22:45) ...   Jan 2 2010, 10:51
- - Legotron   Цитата(MrYuran @ Sep 16 2009, 11:39) А дл...   Sep 17 2009, 13:04
|- - Сергей Борщ   Цитата(Legotron @ Sep 17 2009, 16:04) А п...   Sep 17 2009, 13:17
- - Goodefine   Цитата(SasaVitebsk @ Sep 17 2009, 22:45) ...   Sep 18 2009, 21:08
|- - AHTOXA   Скорее всего причина вот тут: Код X0=ADCW-512; Поп...   Sep 18 2009, 21:24
- - Goodefine   Цитата(AHTOXA @ Sep 19 2009, 00:24) Попро...   Sep 18 2009, 21:38
|- - AHTOXA   Тогда наоборот, замените в объявлении Xi, Yi и Tem...   Sep 18 2009, 22:12
- - Goodefine   Я это уже проделывал. Основное отличие - фильтр на...   Sep 18 2009, 22:22
|- - AHTOXA   Да, засада А long пробовали?   Sep 18 2009, 22:26
- - Goodefine   Вот Long не пробовал, только сейчас - то же самое....   Sep 18 2009, 22:30
|- - AHTOXA   Есть ещё одна мысль. Я не совсем понял, откуда взя...   Sep 18 2009, 22:42
- - Goodefine   Чет не едут у меня лыжи С флоатами хрень какая-т...   Sep 18 2009, 22:52
|- - AHTOXA   Цитата(Goodefine @ Sep 19 2009, 04:52) Че...   Sep 18 2009, 23:16
- - Goodefine   Цитата(AHTOXA @ Sep 19 2009, 02:16) Но хо...   Sep 18 2009, 23:43
|- - dimka76   Цитата(Goodefine @ Sep 19 2009, 03:43) Не...   Sep 19 2009, 04:15
- - SasaVitebsk   Эээээ... Результат обсуждения меня не порадовал. ...   Sep 20 2009, 20:33
- - Goodefine   Цитата(SasaVitebsk @ Sep 20 2009, 23:33) ...   Sep 21 2009, 13:45
|- - SasaVitebsk   Цитата(Goodefine @ Sep 21 2009, 16:45) За...   Sep 21 2009, 20:27
- - _Ie0nid   здраствуйте, простите за то что долго не было, и з...   Sep 22 2009, 04:58
|- - SasaVitebsk   Цитата(_Ie0nid @ Sep 22 2009, 07:58) Вы п...   Sep 22 2009, 10:00
|- - MrYuran   Цитата(_Ie0nid @ Sep 22 2009, 08:58) Учи...   Sep 22 2009, 10:52
- - Goodefine   Цитата(SasaVitebsk @ Sep 21 2009, 23:27) ...   Sep 22 2009, 10:35
- - _Ie0nid   РАЗОБРАЛСЯ, тут еще на работе мне паренек здорово ...   Sep 23 2009, 01:37
- - Fix   Подскажите, пожалуйста. что представляет собой кол...   Dec 27 2009, 18:27
|- - DRUID3   Цитата(Fix @ Dec 27 2009, 20:27) Подскажи...   Dec 27 2009, 22:26
|- - Xenia   Цитата(DRUID3 @ Dec 28 2009, 01:26) ...   Dec 27 2009, 23:01
|- - rezident   Цитата(Xenia @ Dec 28 2009, 04:01) Примеч...   Dec 28 2009, 18:02
|- - Xenia   rezident А однобайтный тип там есть?   Dec 28 2009, 19:28
|- - rezident   Цитата(Xenia @ Dec 29 2009, 00:28) А одно...   Dec 30 2009, 01:18
- - V_G   Вообще кольцевой буфер легко реализуется, если его...   Dec 28 2009, 23:39
- - Fix   При расчете коэффициентов полосового фильтра с пом...   Dec 30 2009, 11:48
|- - SasaVitebsk   Цитата(Fix @ Dec 30 2009, 14:48) ... реко...   Dec 30 2009, 21:35
|- - Serhiy_UA   Цитата(SasaVitebsk @ Dec 31 2009, 00:35) ...   Dec 31 2009, 08:02
- - V_G   Существуют разные алгоритмы синтеза фильтров и раз...   Dec 30 2009, 12:18
- - mdmitry   Добавлю, что АЧХ фильтра и ФЧХ связаны между собой...   Dec 30 2009, 13:14
- - Rst7   ЦитатаВсё правильно. Только дополню, что существуе...   Dec 31 2009, 10:31
- - Rioi   Все знают о существовании таких файлов: 1) AVR201:...   Jan 6 2010, 10:21
|- - galjoen   Цитата(Rioi @ Jan 6 2010, 13:21) А теперь...   Jan 6 2010, 10:50
|- - SasaVitebsk   Цитата(Rioi @ Jan 6 2010, 14:21) все знаю...   Jan 23 2010, 21:46
- - DRUID3   Забавная информация к размышлению для тех кто пише...   Jan 24 2010, 10:12
- - Rst7   ЦитатаЗабавная информация к размышлению Информаци...   Jan 24 2010, 10:44
- - SasaVitebsk   Да не на что она не намекает. Заниматься такой опт...   Jan 24 2010, 11:09
|- - DRUID3   Цитата(SasaVitebsk @ Jan 24 2010, 13:09) ...   Jan 24 2010, 12:36
|- - RedD   Для SasaVitebsk. Интересует тема, не могу написать...   Jan 1 2016, 18:24
- - Andrew34   Вечер добрый господа электронщики!) У меня про...   May 24 2010, 14:40
- - Herz   RedD, Вы обратили внимание на то, как выглядит Ваш...   Jan 1 2016, 18:52
|- - RedD   Цитата(Herz @ Jan 1 2016, 18:52) RedD, Вы...   Jan 1 2016, 19:26
|- - Herz   Цитата(RedD @ Jan 1 2016, 21:26) Извиняюс...   Jan 1 2016, 22:34
|- - RedD   Цитата(Herz @ Jan 1 2016, 22:34) Вы бы Пр...   Jan 2 2016, 08:49
|- - RedD   Вобщем правильно, вручную проверил, Но все равно ...   Jan 2 2016, 10:31
||- - RedD   Слесарь да я смотрю ты местный, Не знаешь как с Са...   Jan 8 2016, 09:43
|- - Alexashka   Цитата(RedD @ Jan 2 2016, 12:49) Я ВАС по...   Jan 8 2016, 23:15
|- - RedD   Цитата(Alexashka @ Jan 9 2016, 00:15) Мож...   Jan 9 2016, 14:16
||- - RedD   А вообще меня интересовала практическая реализация...   Jan 11 2016, 04:22
||- - Alexashka   Цитата(RedD @ Jan 11 2016, 19:31) Что Вы ...   Jan 11 2016, 17:21
||- - RedD   Цитата(Alexashka @ Jan 11 2016, 18:21) Ва...   Jan 11 2016, 17:46
|||- - Alexashka   Цитата(RedD @ Jan 11 2016, 21:46) но дело...   Jan 11 2016, 19:38
|||- - RedD   Да не АЦП однополярный, делаем смещение и ввиду то...   Jan 11 2016, 20:42
|||- - Alexashka   Цитата(RedD @ Jan 12 2016, 00:42) И тогда...   Jan 12 2016, 01:39
|||- - RedD   Цитата(Alexashka @ Jan 12 2016, 02:39) Да...   Jan 12 2016, 09:01
|||- - RedD   А понял, если наложить ФВЧ то и получим смещение, ...   Jan 12 2016, 13:57
|||- - Alexashka   1) Да как Вам удобней, так и делайте. 2) Y0=Y1||Y2...   Jan 13 2016, 01:04
||- - RedD   Но и сигнал тогда на вход двухполярный нужен, опер...   Jan 11 2016, 17:46
|- - RedD   Цитата(Alexashka @ Jan 10 2016, 11:24) Ко...   Jan 10 2016, 12:50
- - RedD   Ок ) Возми в студенты а ? Вторую вышку хочу получ...   Jan 14 2016, 00:56
- - IMaxI   Прошу прощение. А не проще ли использовать аппарат...   Feb 5 2016, 05:00
- - Alexashka   Цитата(IMaxI @ Feb 5 2016, 08:00) А учиты...   Feb 5 2016, 05:57
- - RedD   dspic тоже не плох   Feb 6 2016, 08:43
- - RedD   http://www.cqham.ru/forum/showthread.php?3...-Mixe...   Apr 12 2017, 13:26
- - RedD   Не хотел новую тему создавать, а можно загрузить t...   Apr 11 2018, 07:29


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 22:22
Рейтинг@Mail.ru


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