Spectrum analizator Widma (ATmega8)

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Ilnur
Встал на лапы
Сообщения: 128
Зарегистрирован: Вс мар 22, 2009 15:10:13

Spectrum analizator Widma (ATmega8)

Сообщение Ilnur »

В инете нашел интересную схемку analizator widma,вот ссылка на сайт автора http://diy.elektroda.eu/?p=40,там и видео есть,можно посмотреть как работает.
(сайт на Польском языке)

Вот ссылка на видео на Youtube http://www.youtube.com/watch?v=Ecq9a97DcmI

В прикрепленном файле есть прошивка, BascomAVR

fusebits (CKOPT=0, все остальные=1)
Вложения
.rar
Плата
(94.98 КБ) 483 скачивания
.rar
Прошивка
(21.96 КБ) 504 скачивания
analizator.png
Принципиальная схема
(48.57 КБ) 1348 скачиваний
Последний раз редактировалось Ilnur Сб дек 05, 2009 01:33:35, всего редактировалось 2 раза.
Аватара пользователя
larik
Мучитель микросхем
Сообщения: 403
Зарегистрирован: Вс окт 12, 2008 00:19:25
Откуда: Подольск, Мос. Область

Сообщение larik »

как видно из схемы там кварц на 16 мгц, вот табличка по ней моно выставить, распечатал себе помогает иногда
галочка = 0 пустой квардратик = 1 (codevision, ponyprog)
Вложения
07_fuse_table.gif
fuse
(32.76 КБ) 1040 скачиваний
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

Одно маленькое замечание:
для avr-ок последних выпусков блокировочные конденсаторы должны быть 12-22 пФ, поэтому все равно надо глянуть DS :shock:
Аватара пользователя
tom1101
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Чт янв 15, 2009 18:57:12

Сообщение tom1101 »

Сам интересуюсь работой схемы, если кто может, разъясните на пальцах, как контроллер выделяет из сигнала разные частоты, зачем нужен этот фильтр, алгоритм(словами, картинки не обязательны) разложения сигнала по каналам? Насколько я понял, на одну ножку подается исходный нормализованный сигнал с одного из каналов( например правый), а на другую обработанный 2-мя фильтрами(может фильтры управляемые? хотя я не заметил схемы управления ими) и тоже нормализованный второй канал(левый?).

Мне нужен алгоритм определения уровня сигнала определенной частоты.
Здесь я по картинке насчитал аж 25 каналов...

У меня пока такие идеи:
первая: разделять сигнал аппаратными фильтрами(типа как в схеме фнч на операционниках) и подавать выделенные сигналы на входы ацп.
Разновидность этой идеи: использовать один фильтр, но управляемый, и контроллер несколько тысяч раз в секунду перенастраивает фильтр на разные частоты и измеряет ацп уровень на выходе фильтра. Но высокие частоты к этому плохо отнесутся, да и эффективность думаю будет невысокой(погрешности большие, да и сигнал должен успеть пройти фильтр до его перенастройки).
Достоинство: простота алгоритма, почти всю работу делает аппаратная часть.
Недостаток: слишком много железа, схема сложная и большая, мало каналов ацп в контроллере(устранен в варианте с перенастраиваемым фильтром).

вторая: тупо подавать сигнал на ацп а в программе подсчитывать частоту перехода сигнала через ноль или частоту смены направлений сигнала, если он однополярный(короче длительность периода или полупериода). Например для определения сигнала частотой <80гц нужно насчитать(при частоте измерений 1500гц) больше 18 периодов сигнала. А уровень сигнала этой частоты определять из среднеарифметического этих 18(или больше) измерений.
Достоинство: минимум железа, простота схемы.
Недостаток: большая вычислительная нагрузка, большой алгоритм, нужно много памяти для хранения измерений, для сигналов высокой частоты нужен мощный контроллер.

Может есть еще какой алгоритм попроще? Мне нужно определить наличие и уровень сигнала с диапазоном от 0-30 до 0-300гц. Короче программный эквалайзер или программный фильтр...
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

tom1101 писал(а):... если кто может, разъясните на пальцах, как контроллер выделяет из сигнала разные частоты, ...
Вот здесь ("Юкио Сато. Обработка сигналов. Первое знакомство") все достаточно на пальцах.
tom1101 писал(а):...тупо подавать сигнал на ацп а в программе подсчитывать частоту перехода сигнала через ноль...
А вот из этого ничего не выйдет - если амплитуда ВЧ составляющих мала, то они могут и не привести к переходу через ноль - посмотри любую осциллограмму обычного звукового сигнала - гитара, голос, радио, что угодно. Заметнее на одной ноте, конечно.
Вот тебе кусочек из Sgt.Pepper'а, для примера:
Изображение
Аватара пользователя
tom1101
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Чт янв 15, 2009 18:57:12

Сообщение tom1101 »

Спасибо за книжку, для себя нашел программный полосовой фильтр - частный случай разложения Фурье но только для одной частоты. По описаниям работает быстро. Сижу, отлаживаю.
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

FFT тоже не медленно работает - мега8 (на 16MHz) успевает и отсчеты замерить, и разложение посчитать, и вывести на дисплей одновременно осциллограмму и спектр, вот посмотри:
Elm Chan - Audio Spectrum Monitor.
Аватара пользователя
tom1101
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Чт янв 15, 2009 18:57:12

Сообщение tom1101 »

Видел, но я пока только пару недель с контроллерами общаюсь, так что ассемблер еще плохо знаю, и для меня проще в AlgorithmBuilder собрать с нуля алгоритм, чем пытаться выдрать его из программы в виде ассемблерного листинга.

Полосовой фильтр у меня так и не запустился(и кажется я знаю почему: я ведь еще не извлек данные из регистра adc - щас в даташите ищу его регистры), хотя вроде он довольно прост:
В начале инициализация:
sum_sin=0
sum_cos=0

Подсчет по прерываниям ADC:
sum_sin=sum_sin+signal*sin(phase*2*pi);
sum_cos=sum_cos+signal*cos(phase*2*pi);
phase=phase+freq;

После 5 измерений(некоторые делают до 32, но у меня памяти мало под таблицы синусов, косинусов и корней):
power=sqrt(sum_sin^2+sum_cos^2);
Где power-мощность сигнала "signal" на частоте freq, если я правильно понял.
У меня такие параметры: freq=80, 5 измерений до подсчета power(как я понял они перекрывают фазу в 320 градусов, что неплохо).

Вообще мои рассуждения верны? Или уже здесь я допускаю ошибку? Алгоритм пока дорабатываю. Всего понадобилось 5 синусов, 5 косинусов и 37 корней для таблиц.

А так проект такой: tiny13 вшита в мышь, принимает аудиосигнал, оцифровывает его, вычисляет (очень приближенно) power сигнала с частотой <80Hz (взрывы и выстрелы), этот power загружает в подпрограмму ШИМ, которая управляет вибродвигателем. Для мыши производительности tiny13 хватает с лихвой, тем более я уже и так в нее кучу режимов зашил, остался последний и самый совершенный из них - реакция на взрывы.
Аватара пользователя
krolaka
Нашел транзистор. Понюхал.
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37
Контактная информация:

Сообщение krolaka »

собрал данную схему оч порадовала :) только жаль нет дисплея с подсветкой :( а так все прекрасно)
Ilnur
Встал на лапы
Сообщения: 128
Зарегистрирован: Вс мар 22, 2009 15:10:13

Сообщение Ilnur »

krolaka,скинь сюда свои фотки))своей схемы :))
а ты как прошил контроллер?какие фьюзы включал?подскажи пожалуйста.я сам просто в этом деле еще новичок :lol:
Аватара пользователя
krolaka
Нашел транзистор. Понюхал.
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37
Контактная информация:

Сообщение krolaka »

Прошывал програматором на COM порт програматор uniprof фюзы поставил только cksel0-3 1111 :) вчера потестировал оказалось чо он работает не очень коректно а именно схема на операционнике :( фотки не скину потому что фотик сломался на днях :(
Ilnur
Встал на лапы
Сообщения: 128
Зарегистрирован: Вс мар 22, 2009 15:10:13

Сообщение Ilnur »

в смысле как это не коректно?не в такт музыки чтоли прыгает?а дисплей у тебя какой?
Аватара пользователя
krolaka
Нашел транзистор. Понюхал.
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37
Контактная информация:

Сообщение krolaka »

ну там с 700 до 1000 грц идет затухание и оно не оч красиво потом выглядит :( дисплей 16х2 без подсветки по 1 $ набрал 4 шт других нет а те что есть подсветкой то стоят космически дорого :( но думю если все по схеме правильно собрать то будет работать все нормально просто у меня не все номиналы идельно как на схеме и ОУ не тот я 2 шт lm358 ставил :)
Аватара пользователя
ChipManyak
Потрогал лапой паяльник
Сообщения: 363
Зарегистрирован: Сб сен 20, 2008 14:59:28

Сообщение ChipManyak »

Общий привет.
Собрал сей девайс на макетке. Насколько я понял этот анализатор чисто
визуальная фенька, и толку от неё не много, прикольно только.Если и есть провал по частотам, то он практически не заметен.

Есть один косяк с дисплеями.

Поставил 16х2 от мэлта, не пашет, на дисплее тишина.Долго пытался понять где собака порылась, оказалось в дисплее.У мэлта, позже вспомнил, немного другая инициализация, а программа писалась
под буржуиские дисплеи.Внедрил от винстар и всё пошло.Может кому
поможет информация.

В BASCOM не шарю, может найдется кто вдруг, подправит исходники
под мэлт?
Радиоэлектроника, это наука о КОНТАКТАХ!
Radan
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск
Контактная информация:

Сообщение Radan »

На форуме bascomavr.3bb.ru Ведущий специалист переделал эту программу под свои нужды. Даже светомузыку сделал по этому принципу. Поспрашивайте, я думаю он поможет.
Аватара пользователя
krolaka
Нашел транзистор. Понюхал.
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37
Контактная информация:

Сообщение krolaka »

собрал фильтры на транзисторах кт315 несколько деталей полет лучше :))) даж понравилось) кстати дисплей c контролером sed1278 очень четко и бысто рисует полоски нет смазывания :) а вот mc1602ch медленно :? вобше бы хотел переделать под цветной дисплей от сименса s55 чтобы полоски были цветные но чтото меня берут сомнения что мк потянет прорисовку..
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

Дык надо попробовать, люди вон видео на S65 выводят, ничего успевает
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
krolaka
Нашел транзистор. Понюхал.
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37
Контактная информация:

Сообщение krolaka »

дик я не наю бейсика :oops: а на си писать бы написал но не знаю как там по частотам делить как ето все счтается :( ну попробую рабзиратся :)
Аватара пользователя
Man
Встал на лапы
Сообщения: 83
Зарегистрирован: Чт ноя 13, 2008 19:22:03

Сообщение Man »

Сегодня выдалось свободное время собрал данный спектр анализатор.
Заработал однако токо с WINSTAR-ским дисплеем.
Вложения
P401.JPG
Фото
(198.04 КБ) 1258 скачиваний
Аватара пользователя
krolaka
Нашел транзистор. Понюхал.
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37
Контактная информация:

Сообщение krolaka »

ManМмм красиво вышло на макетке :) у мя хуже выглядит :oops: кстати у вас тож помоему 800гц - 1кгц уровень чуть проседает :)
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»