RedD
Участник*-
Постов
22 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о RedD
-
Звание
Участник
- День рождения 13.01.1976
Информация
-
Город
Array
-
Цифровой Фильтр на ATmega
RedD ответил _Ie0nid тема в В помощь начинающему
Не хотел новую тему создавать, а можно загрузить tetris for led display AVR ? Ну и есть под Turbo C 3.2 Dos (отладочная), -
Цифровой Фильтр на ATmega
RedD ответил _Ie0nid тема в В помощь начинающему
http://www.cqham.ru/forum/showthread.php?3...-Mixer-RedD-%E0 -
Цифровой Фильтр на ATmega
RedD ответил _Ie0nid тема в В помощь начинающему
dspic тоже не плох -
Это называется АРУ по входу, сделать можно по разному ... Например вот так http://www.shematic.net/page-166.html
-
Цифровой Фильтр на ATmega
RedD ответил _Ie0nid тема в В помощь начинающему
Ок ) Возми в студенты а ? Вторую вышку хочу получить ! -
Цифровой Фильтр на ATmega
RedD ответил _Ie0nid тема в В помощь начинающему
А понял, если наложить ФВЧ то и получим смещение, .... Но накладно по ресурсам, можно взять резистор 50кОм, подключить к АЦП, заблокировать на корпус ну 10тью МКФдами, и другим каналом мерить, благо их у avr как минимум восемь. А усиление ослабление как делать правильно? Через коэффициенты передачи фильтров или напрямую можно ? По эквалайзеру .... Сделал три полосовых фильтра с перекрытием в 30 процентов в полосе 0,3 - 3,4 кГц, НЧ, СЧ, ВЧ, для каждого фильтра свой Кус, int Kus1,Kus2,Kus3; Прогоняем сигнал через фильтра, каждую полосу или усиливаем или ослабляем или не трогаем Кus=1. Получаем Y1,Y2,Y3 - выходные данные фильтров, Y1=Y1*Kus1; Y2=Y2*Kus2; Y3=Y3*Kus3; Правильно ли будет что Y0=Y1||Y2||Y3, где Y0 общий выходной сигнал ? По компрессору ... В статье которую я приводил формула SPL такая X(n)=10log((1/m)*((Сумма i=0,m-1)X2[n-1]) Может я чего не понял, но это формула работает только для положительных значений adc, так х в квадрате. Как быть ????????? И еще много вопросов ) А лана со знаком понятно нужно умножить на (x(n)/x(n)), да и есть более удачный вариант .... -
Цифровой Фильтр на ATmega
RedD ответил _Ie0nid тема в В помощь начинающему
x = ADСL - 128; да проще, Напрашивается мысль смещение вычислять автоматически, ну не знаю, допустим при включении, или используя второй канал АЦП, Хотя если хорошо застабилизировать цепь смещения, то и так никуда не денется Про то что 8 бит мало, это понятно, но обкатать можно и на 8 битах, Кстати у 8 бит avr, тоже есть инструкция ASR .... -
Цифровой Фильтр на ATmega
RedD ответил _Ie0nid тема в В помощь начинающему
Да не АЦП однополярный, делаем смещение и ввиду того что сигнал двуполярный он будет играть около точки смещения. И тогда получается что adc=ADCL, if (adc<128) { x=-(128-adc), } else x=adc-128, -
Цифровой Фильтр на ATmega
RedD ответил _Ie0nid тема в В помощь начинающему
Но и сигнал тогда на вход двухполярный нужен, операционник с двуполярным питанием, как то так, ну ессно смещение в половину AREF, -
Цифровой Фильтр на ATmega
RedD ответил _Ie0nid тема в В помощь начинающему
Про усиление или ослабление я Вас понял, но дело даже не в постоянной составляющей, например С АЦП прищло 10, усиливаем в два раза, 10*2=20 но дело в том что усиливаем только положительную полу волну, а отрицательную наоборот ослабляем, и усиление не то, и сигнал искажен. Делаем смещение на 128 при (256, 8 бит) пришло 10 ушло 20, пришло -10 ушло -20. В общем то дельное замечание -
Цифровой Фильтр на ATmega
RedD ответил _Ie0nid тема в В помощь начинающему
Что Вы имеете под группировкой ? Про знак ..... С АЦП не может придти отрицательное значение только положительные .... с ними и работаем, для 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 -
Цифровой Фильтр на ATmega
RedD ответил _Ie0nid тема в В помощь начинающему
Ну то что я хотел сделать я почти сделал ) На Ваши вопросы 1. То не вижу разницы в том сколько двигать 8 16 32, почему ? Ну хотя бы потому что под 16 бит АЦП и МК нужен 16 бит и т д иначе просто глупость получается. 2. Насчет отрицательных не думал, нужно будет че нить придумаем ) -
Цифровой Фильтр на ATmega
RedD ответил _Ie0nid тема в В помощь начинающему
А вообще меня интересовала практическая реализация вот этого вот Трехполосный эквалайзер + компрессор в полосе 0,3 - 3,4 кГц. На маломощном avr ) -
Цифровой Фильтр на ATmega
RedD ответил _Ie0nid тема в В помощь начинающему
Все ответы здесь .... https://ru.wikipedia.org/wiki/%D0%A4%D0%B8%...%BA%D0%BE%D0%B9 В том числе и алгоритм, это всего лишь ЦОС, если посмотреть на схему и алгоритм то один в один, остальное тоже там, обычный институтский курс -
Цифровой Фильтр на ATmega
RedD ответил _Ie0nid тема в В помощь начинающему
Кода меньше если округлять с подбором, визуально контролируя АЧХ. Допустим если округлять до двух знаков да еще с подбором на мин количество сдвигов, то и сдвигов меньше и слагаемых меньше, а результат будет чуть чуть похуже, а на практике и не заметен вообще, ну это если сделать измерения .... Оно конечно когда там полноценный DSP или STM то можно и не заморачиваться и делать по полной программе, а на avr так не получится, там каждый такт на счету )