Jump to content

    

Petka

Свой
  • Content Count

    1438
  • Joined

  • Last visited

Everything posted by Petka


  1. Сравнение 2 аудио сигналов

    Цитата(BVU @ May 30 2006, 11:52) Цитата(Petka @ May 30 2006, 11:38) ... Под "тупым вычитанием" я подразумеваю вычитание нормированных сигналов(одной амплитуды). Даже если вычитать так, то абсолютно ничего путнего не получится. Обьясню: один сигнал(с микрофона) как минимум имеет задержку. Вычитая даже идентичные гармонические сигналы, но смещённые по времени вы можете получить не только подавление, но и усиление! Кроме того, задержка разных частот в сигнале разная, сказывается АЧХ автомобиля, АС и пр. ИМХО ничего хорошего в "тупом" вычитании в ДАННОМ случае не получится А разьве я где-то сказал, что нормирование сигналов определяет только амплитудную составляющую сигнала? Нормирование есть широкое понятие которое Вы так подробно расписали... т.е. какие параметры учитываете такие и нормируете. так-то оно так, но не надо лукавить, говоря что дифференциальный усилитель в данном случае подойдёт.
  2. Сравнение 2 аудио сигналов

    Цитата(BVU @ May 29 2006, 10:18) Цитата(Petka @ May 26 2006, 12:42) ... Хм... Видимо Вы плохо представляете что получится если в тупую вычесть один сигнал из другого... Перед тупым вычитанием сигналы естественно нормируются. А то что я не хочу повторять прописные истины - не значит, что я что-то плохо представляю. Под "тупым вычитанием" я подразумеваю вычитание нормированных сигналов(одной амплитуды). Даже если вычитать так, то абсолютно ничего путнего не получится. Обьясню: один сигнал(с микрофона) как минимум имеет задержку. Вычитая даже идентичные гармонические сигналы, но смещённые по времени вы можете получить не только подавление, но и усиление! Кроме того, задержка разных частот в сигнале разная, сказывается АЧХ автомобиля, АС и пр. ИМХО ничего хорошего в "тупом" вычитании в ДАННОМ случае не получится
  3. Сравнение 2 аудио сигналов

    Цитата(BVU @ May 26 2006, 10:16) Изначально ответ от Stanislav давал самое оптимальное решение. Затем хорошую подсказку сделал beer_warrior - решение аналоговым способом. Я не противник цифровой обработки сигналов, но для AVR подобные задачи не совсем уместные. Однозначно что быстрое и качественное решение дает использование дифференциального входа усилителя (параметр подавления синфазного сигнала) за счет которого задача решается 'в лет'... Хм... Видимо Вы плохо представляете что получится если в тупую вычесть один сигнал из другого...
  4. Сравнение 2 аудио сигналов

    Цитата(beer_warrior @ May 25 2006, 11:07) Может в таком случае проще будет аналоговая схема? Все-таки AVR не сигнальник и будет работать на пределе. Для аналога решение будет достаточно тривиальное. Не согласен. Человеку не требуется построить прецизионный или измерительный прибор. Задача проще, всего лишь неким образом изменять громкость автомагнитолки. Для этого не требуется ничего сложного. В данном случае грамотнее всего поступить так: 1) вычислить или взять некоторую граничную частоту на которой возникает шум. т.к. задача вполне конкетная, то этот шум вполне определённый (шум двигателя, колёс и пр.) и достоточно низкочастотный. подозреваю что одного килогерца хватит. 2) выбрать время реакции на изменение шума, допустим секунды 3 3) выбрать размер окна Фурье. (допустим что бы оно помещалось в половину памяти АВРки). 4) дальше просто вычитать отнормированные спектры и принимать решение. только не надо говорить что АВРка не потянет Фурье на 128 выборок несколько раз в три секунды.... человеку надо попроще, и что бы работало, а вы ему аналог, DSPшки...
  5. Цитата([banned] @ May 24 2006, 11:23) ну есть проклятые пираты которые вложили PROTEUS 6.9.03 с лекарством я нашел в google.com и опубликовал линки в самом низу страницы - http://electronix.ru/redirect.php?http://[banned] вот как он стыкуется с компиояторами http://www.labcenter.co.uk/products/compilers.htm ....РРРРР.... Ваша реклама слала СЛИШКОМ надоедливой. Навязчивость ресурса уже напоминает спам центра американского английского. по теме: использую CV, жаль он не поддерживает C++. Отлаживаю только в железе.
  6. И мои 5 копеек. У меня ByteBlaster+, вроде тоже "LPT приблуда", но ни разу ни один чип запорот не был, кабель от PC К BB - шлейф, длиной 2 метра, от BB до чипа 20 см. шью через AVReal. скорость отличная. кроме того можно шить ещё альтеру вдобавок. Пробовал AVRISP - сначала программа решила залить ВСЮ память целиком (а не 1кб кода) и это в М128. длилась зашивка минут 10... (скорость ком порта 19200), потом разумеется мега не запустилась, и сдохла (видимо зашила ещё фузы, чего я и не просил). Оживить чип удалось, тока подпайкой кварца и AVRealом. Плюнул на это дело и отложил до лучших времён. с год назад тут(на форуме) затеяли "универсальный" и "для новичков" программаторы, но тема замялась и жизни не получила =( да и чесно говоря идея дуратская, расчитывать на интелект программатора. програматор должен быть "тупым", и шевелить ногами как ему скажет софт высокого уровня. В таком случае одним ПРОСТЫМ программатором можно будет шить ВСЁ, ну или почти всё. через LPT эту идею реализовать проще, но простыми методами нельзя обеспечить контроль ошибок при передаче к программатору. Буферизованные LPT, практически на нет сводят воздействия помех на провода. Одно не могу понять, зачем пытаются вынести в программаторах интеллект из компа? это разумно только в том случае, когда программатор может обновлять прошивку без участия компа. такое тоже полезно, но это уже другой мех! ИМХО, буферизованные LPT программаторы ничем не хуже "программаторов с мк", а иногда даже лучше =). Если удовлетворяет один, то другой не нужен.
  7. Учет времени наработки

    Цитата(rezident @ May 19 2006, 18:30) А мне вот любопытно, у кого-либо из советующих FRAM серия изделий (скажем сотня штук), имеющая в составе FRAM хотя бы года три-четыре безаварийно и безглюкаво уже отработала? Или, как обычно, все советуют чисто теоретис-с-ски? мне микросхемки с FRAM очень понравились, правда применить их негде было =) так что сразу скажу - не использовал, но и отрицательных отзывов не слышал о них.
  8. Учет времени наработки

    Цитата(rezident @ May 19 2006, 18:10) 1 способ. Сопровождайте каждую запись в DataFlash датой/временем. При включении ищите последнюю валидную дату/время. Нюансы: алгоритм усложняется (проверка валидности записи), могут быть проблемы с поиском/восстановлением последней даты (особенно если отдельного RTC нет). 2 способ. В качестве ОЗУ для хранения времени наработки используйте один из буферов DataFlash. При пропадании питания запись одной страницы много времени не займет. Нюансы: нужен узел сигнализации аварии питания, который ничего сложного не представляет - грубо говоря, TL431+оптрон в цепи первичного (сетевого) выпрямителя. Также нужен запас по времени при аварии питания. Если БП импульсный, то опять же это не проблема - при необходимости увеличить номинал электролита сетевого выпрямителя. Цитата(iosifk @ May 19 2006, 19:47) Память FRAM - не боится ограничений на число циклов перезаписи. Фраза звучит довольно забавно с монитором питания и конденсаторами не стоит заморачиваться.... проще действительно поставить изделие фирмы ramtron, которое представляет и энергонезависимую память на НЕОГРАНИЧЕННОЕ количество перезаписей + часы реального времени + некоторые дополнительные вкусности и стоит недорого. и главное всего 1 микросхема =)
  9. jpeg декомпрессор на ARM

    Попробуй jpeglib. компилится под кучу платформ. найти можно по адресу http://www.ijg.org/ пробовал компилить под винду - успешно работает, как декомпрессия, так и сжатие.
  10. Цитата(ATMEL_AVR @ May 2 2006, 21:51) Здраствуйте. хотел попросить у кого-нибудь программу QED 2000 v3.6.2 , скачал в интернете QED2000 v3.6.4, а к ней ни один кряк не подходит, фильтры она считает. а коэффициенты посмотреть нельзя. Дайте пожалуйста кому не жалко. см. мои посты выше. я Вам просчитал фильтр, о котором Вы просили.
  11. Цитата(Vyatsek @ Apr 24 2006, 10:49) Я имею ввиду кабель от усилителя до акустики. прочитал статьи и посты. Теперь точно уверен что это все шляпа. Тем более, чем выше мощность у аудиосистемы, тем кабеля меньше влияют. а вот тут вот вы и неправы, ибо при увеличении мощности увеличивается и ток, и будет уже влиять на сигнал банальное сечение проводов =). (ох как уж не хочется провоцировать бесполезный трёп =) )
  12. Цитата(ATMEL_AVR @ Apr 25 2006, 22:51) Спасибоза помощь, за советы, я действительно раньше не занимался программированием ЦФ, тем более на микроконтроллере. Просто у меня задание по диплому сделать три Лабораторных работы(для следующег поколения студентов): ЦФ, Реверс, Перестройка по спектру(надо обрабатывать звук, а потом полученное воспроизвести в динамике компьтера). Необходимо наглядно продемонстрировать как на микроконтроллере можно реализовать Цифровую обработку сигнала - Задание руководителя. Я вообще то хотел на Delphi что-нибудь сделать. взял тему по прогаммированию - оказалось микроконтроллер. Подписался под дипломом, надо делать, делаю, но уже времени маловато остается, я хотел взять за основу эксперимент DSP на AVR http://elm-chan.org/works/vp/report.html. но не могу понять как там происходит умножение на заданные коэффициенты, и как с внешней памятью там работают. Там написано что нужно записать в память микроконтроллера два файла основной и переможающую таблицу, но ведь там память всего 2к, а файлы весят 1,5 и 2,4 кбайта. Извините я новичок, может задаю глупые вопросы, но до защиты диплома остается мало времени, а делать надо, я пытаюсь разобраться, но куда ни посмотри везде примеры на Си, а просто не понимаю как этот язык устроен. Хотел в дипломе попрограммировать, придется программировать, самому придумывать. Спасибо еще раз, что по крайней даете хорошие и правильные советы. прошивки часто хранят в *.HEX файлах, где запсаны HEX представления байт прошивки(т.е. тесктовый а не бинарный вид). в итоге прошивка в HEX имеет минимум в 2 раза больше размер. Кроме того коэффициенты(те которые константы) не обязательно загружать в SRAM, можно ещё загрузить в память программ(Flash), которая в несколько раз больше. Хотя зачем я всё это рассказываю? Почитайте сами хотябы обзор AVR займёт вечер а от стандартных вопросов избавит =)
  13. Цитата(ATMEL_AVR @ Apr 22 2006, 22:02) Мне нужен полосовой фильтр, полосы пропускания fн=2000 Гц , fв=2800 Гц(полоса должна изменяться в зависимости от выбранных коэффициентов фильтра). Подскажите пожалуйста алгоритм, может быть есть код на ассемблере. если знаете Си, то вот Вам шаблончик на Ваш фильтр. Кодdouble coeff[9] = {0.0,2.181e-02,7.557e-04,-.3226,.2943,.2943,-.3226,7.557e-04,2.181e-02}; double delay[9] = {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; double KIH(double input){     double summ=0;     int i;     for (i=0;i<=7;i++){         delay[i] = delay[i+1];         summ += delay[i]*coeff[i];     }     delay[8] = input;     summ += delay[8]*coeff[8];     return summ; }
  14. Цитата(ATMEL_AVR @ Apr 21 2006, 22:37) Спасибо за ответы. Мне нужен КИХ фильтр, число коэффициентов от 5-10. Должно быть хорошее быстродействие. Результатом должен быть аналоговый сигнал, который можно прослушать, и увидеть разницу между начальным не обработанным сигналом. Еще кто-нибудь может подсказать как производить перемножение с помощью перемножающей матрицы.(Просто у меняесть пример фильтра, где умножение на коэффициенты заменено перемножающей матрицей) делать умножение с помошью матрицы(таблицы) безсмысленно. т.к. АВР делает умножение не медленнее адресации. только память израсходуете. как я понимаю ваша задача разделяется на 1) А-Ц преобразование 2) реализация цифрового фильтра 3) Ц-А преобразование собственно интересует точность. 8 бит хватит? вроде для звука худо-бедно подходит. скорость работы фильтра при количестве коэффициентов некритична, т.к. АВРка справится с примерно 200000 умножениями достаточно просто. (это из расчёта 1 умножение на коэффициент при частоте выборок 20кГц). Какой из КИХ фильтров Вы хотите реализовать? режекторный фильтр? полосовой? НЧ? ВЧ? при каких частотах пропускания/задержания?
  15. Цитата(ATMEL_AVR @ Apr 18 2006, 23:22) Помогите с алгоритмом, либо любой другой информацией по реализации цифрового фильтра на AVR микроконтроллере. Есть программатор STK500 и микроконтроллеры ATMega16 и ATTiny26. поможем. НО не умалчивайте 1) характеристики сигналов: динамический диапазон, частота сэмплов 2) что вы хотите добиться фильтром. фильтр частотный? 3) точность фильтра. практика показывает что помочь будет проще, зная изначальную задачу. а может вам вообще фильтр как таковой не нужен......
  16. DAC на AVR90PWM3 +IAR

    Цитата(Karl @ Apr 3 2006, 12:15) Если в иаре написать строчку DAC = i; (Выдаем значение в ЦАП), то непременно наступите на мои грабли: значиние на выходе ЦАП прыгает при переходе между некоторыми значениями. Дело в том, что ЦАП начинает выдавать новое значение после того, как записан старший байт в регистр DAC (начинать запись в регистр DAC надо с младшего байта). А ИАР по обыкновению начинает запись именно со старшего если более обобщённо: в архитектуре AVR 16 битные внутренние регистры "защёлкиваются" по записи _младшего_ байта.
  17. Кроссассемблер 51>AVR

    Цитата(muravei @ Mar 30 2006, 15:55) Собственно все Интересно, а как Вы себе это представляете?
  18. Умный дом.

    Цитата(ps1x @ Mar 26 2006, 19:37) выдает ошибку в строчках: disp1="d"; disp2='Preferences --- must be lvalue ???? вы перепутали понятие строки и понятие одного символа. в ДВОЙНЫХ ковычках пишутся СТРОКИ в ОДИНАРНЫХ ковычках пишется ОДИН символ
  19. Светодиоды и AVR не дружат.

    Цитата(ps1x @ Mar 22 2006, 17:30) Паленость одного из двух МК и ЛПТ на материнке ((. Вариант с ЛПТ на PCI не прокатил - программатор avreal и codevision с ним не дружат. Теперь резонный вопрос где взять схемку STK-500? Он ведь через ком шьет? Или почем можно купить дешовый вариант? ну и желательно подсказать где... (в москве) когда-то давно я уже давал совет что делать если были сожжены линиии LPT порта. варианты: 1) достать PCI LPT! AVReal через него умеет работать! хорошо читайте прилагаемый к нему readme 2) AVReal умеет использовать разные линии LPT порта, попробуйте выбрать в конфиге такие, которые остались живы.
  20. Цитата(defunct @ Mar 16 2006, 21:15) Цитата(Petka @ Mar 16 2006, 09:33) Цитата(defunct @ Mar 15 2006, 20:06) ... 2. для вывода строк хранящихся в eeprom (к тому же строки в eeprom выгоднее хранить в паскалевском представлении - первый символ - длина строки, дальше данные без нуль-терминатора) Любопытно, а почему так выгоднее? Для ускорения поиска требуемой строки. (раз планируется использовать eeprom, то скорее всего предполагается обновление строк, а коль так, то будет меняться и их размер, следовательно потребуется поиск). Разумеется, сказанное имеет смысл только в том случае если не используется массив индексов (с указателями на начало строк). Забавно, а я-то думал есть какие-то идеологические различия, может чего не знаю. =) Но всё-таки лучше использовать везде стандартный способ хранения строк, всё-таки переносимее будет. Ладно, это уже Оффтоп. По поводу топика: всё-таки я удивляюсь, насколько бывают терпеливыми люди, дающие ответы. И насколько бывают упёртыми люди, задающие вопросы, которых легко избежать, прочитав хотя бы основы... 2Zheka: В следующий раз, как будете приводить в топике исходники, приводите их с комментариями на КАЖДОЙ строчке. Я уверен, как только вы попытаетесь прокомментировать КАЖДУЮ строчку, половина вопросов исчезнет сама собой.... Да и ответ давать будет гораздо проще.
  21. Цитата(defunct @ Mar 15 2006, 20:06) ... 2. для вывода строк хранящихся в eeprom (к тому же строки в eeprom выгоднее хранить в паскалевском представлении - первый символ - длина строки, дальше данные без нуль-терминатора) Любопытно, а почему так выгоднее?
  22. Инкремент 2 пин в порте

    Цитата(Petka @ Mar 15 2006, 11:34) // вариант 2 PORTB=(( (PORTB+1<<2) & (3<<2) )) | (PORTB& ~(3<<2)); // более правильно, без порчи других пинов лень разбираться с приоритетами. попробуй так PORTB=(( (PORTB+(1<<2)) & (3<<2) )) | (PORTB& (~(3<<2))); // более правильно, без порчи других пинов или без выпендрёжей: PORTB=((PORTB+0b100) & 0b1100 ) | (PORTB & 0b11110011);
  23. Инкремент 2 пин в порте

    Цитата(TamTam @ Mar 15 2006, 11:11) вопрос ка зделать так есть 2 пина к примеру PORTB.2 и PORTB.3 надо в одну строчьку уложиться примерно так если сумма пинов 00 увеличить до 01 если 10 увеличить до 11 если 11 то 00 // вариант 1 PORTB+=4; // это минимальным количеством инструкций // вариант 2 PORTB=(( (PORTB+1<<2) & (3<<2) )) | (PORTB& ~(3<<2)); // более правильно, без порчи других пинов
  24. Я написал загрузчик

    ЦитатаМожет быть Вы путаете ГОСТ28147-89 с ГОСТ Р 34.10-2001 Опа...признаюсь, был неправ. Это я 2001 восхвалял.
  25. Я написал загрузчик

    Цитата(makc @ Mar 10 2006, 20:11) Цитата(Petka @ Mar 9 2006, 18:16) Ответ автору топика: выражаю огромный респект, что бы ни говорили шифрование по ГОСТ более криптоустойчиво, нежели DES и прочие аналоги, ибо ГОСТ строится на теории элиптических кривых, да и сами профессионалы криптоанализа не видят в DES будущего... Где Вы видели ГОСТ на алгоритм криптографического преобразования данных, который бы использовал эллиптические кривые? Выше названный ГОСТ таким и является. Обычно бывает полезно читать не только КОНКРЕТНЫЕ алгоритмы, которые описаны в каком-либо стандарте, НО и на основе чего эти алгоритмы строятся. Вот видите, словосочетание "теория эллиптических кривых" обычных инженеров сбивает с толку, поэтому в стандарте содержится всего-лишь инструкции по использованию, без обоснований и доказательств эффективности. а DES? DES был придуман для использования внутри одной фирмы... по СЛУЧАЮ он оказался очень даже удачным и разошёлся бешеной популярностью, т.к. соответствующие органы не успели его "взять под свой контроль". DES очень удачный алгоритм, НО он не был построен на основе КРУТОГО математического аппарата, в результате при неумелом использовании он например может давать "слабые ключи". существуют нехилые оптимизации по его "грубому взлому". и пр. В околокриптографических кругах иностранные эксперты облизываются на ГОСТ =)