Семиполосный спектроанализатор звука на микроконтроллере


10 полосный анализатор спектра. 400 Led.

И так структура- предусилитель, 10 активных полосовых фильтров, 10 линеек индикаторов по 40 Led каждая.

Принципиальная схема блока фильтров и предусилителя ниже на рисунке. Фильтры настроены на следующие частоты: 32Гц, 63Гц, 125Гц, 250Гц, 500Гц, 1кГц, 2кГц, 4кГц, 8кГц, 16кГц.

Таблица емкостей для каждого фильтра.

Печатная плата. Изготавливалась самостоятельно при помощи фоторезиста.

Принципиальная схема линейки индикаторов.

Печатная плата в DIP и SMD вариантах все есть в архиве. Платы заказывал на производстве, так как дома такие размеры было проблематично сделать (размер в DIP 320х50).


В качестве диода можно использовать любой быстродействующий диод Шоттки. Сопротивление резисторов на светодиоды зависит от типа используемых светодиодов, (надо рассчитать по току), можно использовать любые другие светодиоды с пересчетом или переделкой схемы. ДА есть еще одно замечание- это потребление одной линейки, при задействовании все 40 светодиодов линейка потребляет 40*0,02А=0,8А а все 10 линеек будут кушать при полном задействовании светодиодов 8А!! не забудьте подобрать соответствующий блок питания. Если будете использовать покупной импульсный БП с несколькими входами как правило это +/-12В, +5В, то есть один нюанс с которым я столкнулся, если одноканальные Импульсные БП в большинстве не требуют нагрузку для запуска, то многоканальные требуют, т.е. необходимо нагрузить все каналы чтобы БП запустился.

Настройка.

Настройка заключается в установке равенства чувствительности всех каналов. Нужен генератор НЧ и низкочастотный милливольтметр. На генераторе устанавливают последовательно частоты 32 Гц, 63 Гц, 125 Гц, 250 Гц. 500 Гц, 1 кГц, 2 кГц, 4 кГц, 8 кГц и 16 кГц. Частоты поочередно подают на вход прибора. При этом параллельно выходу генератора НЧ должен быть подключен милливольтметр, по его показаниям нужно следить за тем, чтобы величины напряжения ЗЧ, подаваемые с ГНЧ на всех частотах были одинаковыми (при необходимости регулировать регулятором уровня выхода ГНЧ). Выставляем R42 предварительного усилителя в среднее положение и начиная с частоты 32 Гц на ГНЧ устанавливают такой уровень выходного напряжения при котором в среднем положении R2(блока фильтра 32Гц) горит средний светодиод индикаторной шкалы. Запоминаете этот уровень выходного напряжения ГНЧ. Затем повышаете частоту до 64 Гц. Устанавливаете такой же уровень НЧ с выхода ГНЧ (смотря по милливольтметру), и регулируете R*в фильтре 63Гц так чтобы горел средний светодиод шкалы 63 Гц.
Аналогичные операции проделать на всех других частотах. Предварительно можно точнее установить средние частоты полос, определив среднюю частоту каждого фильтра перестройкой частоты ГНЧ в некоторых пределах относительно указанной частоты на схеме. Затем, если есть существенное отличие, отрегулировать частоту соответствующим изменением емкостей конденсаторов.

Несколько фото процесса изготовления


В качестве устройства отображения используется двухстрочный символьный ЖК индикатор. Основным моментом при реализации данного проекта является не аппаратная часть, а программная, точнее реализация дискретного преобразования Фурье (ДПФ) на 8-разрядном микроконтроллере. Сразу следует отметить, что автор не является экспертом в этой области и поэтому начал с основ - с простого дискретного преобразования Фурье. Алгоритм быстрого преобразования Фурье является не только быстрым, но и достаточно сложным.

Дискретное преобразование Фурье (в англоязычной литературе DFT, Discrete Fourier Transform) - это одно из преобразований Фурье, широко применяемых в алгоритмах цифровой обработки сигналов (его модификации применяются в сжатии звука в MP3, сжатии изображений в JPEG и др.), а также в других областях, связанных с анализом частот в дискретном (к примеру, оцифрованном аналоговом) сигнале. Дискретное преобразование Фурье требует в качестве входа дискретную функцию. Такие функции часто создаются путем дискретизации (выборки значений из непрерывных функций).

Принципиальная схема анализатора спектра звукового сигнала очень проста и условно ее можно разделить на цифровую часть и аналоговую.

Цифровая часть образована микроконтроллером и подключенным к нему ЖК индикатором. Микроконтроллер тактируется от кварцевого резонатора 16 МГц, в качестве опорного напряжения для АЦП микроконтроллера используется напряжение питания +5 В.
Шина данных ЖК индикатора подключена к порту C микроконтроллера (линии ввода/вывода PC0-PC3), шина управления подключена к порту D(PD5, PD6) микроконтроллера. Индикатор работает в 4-битном режиме. Переменный резистор номиналом 4.7 кОм используется для регулировки контрастности. Для работы с индикатором были созданы пользовательские символы для отображения 8 горизонтальных столбиков анализатора, эти пользовательские символы занимают все 64 Байта ОЗУ ЖК индикатора.

Микроконтроллер работает от внешнего кварцевого резонатора 16 МГц.

Аналоговая часть устройства - это самая важная часть и представляет собой предварительный усилитель сигнала электретного микрофона, выход которого подключается к каналу ADC0 встроенного в микроконтроллер АЦП. Уровень нуля на входе АЦП нам необходимо установить равным точно половине опорного напряжения, т.е. 2.5 В. В этом случае мы сможем использовать положительную и отрицательную полуволну сигнала, но его амплитуда не должна превышать установленный предел, т.е. коэффициент усиления должен быть точно настроен для предотвращения перегрузки. Всем вышеуказанным условиям отвечает распространенная микросхема низкопотребляющего операционного усилителя .

Алгоритм ДПФ несколько медленнее в сравнении с быстрым преобразованием Фурье. Но наш анализатор спектра не требует высокой скорости, и если он способен обеспечить скорость обновления около 30 кадров в секунду, этого будет более чем достаточно для визуализации спектра звукового сигнала. В любом случае, в нашем варианте возможно достичь скорости 100 кадров в секунду, но это уже слишком высокое значение параметра для двухстрочного символьного ЖК индикатора и оно не рекомендуется. Частота дискретизации равна 20 кГц для 32 точечного дискретного преобразования Фурье и поскольку результат преобразования симметричен, нам нужно использовать только первую половину, т.е. первые 16 результатов. Следовательно, мы можем отображать частотный спектр в диапазоне до 10 кГц и разрешение анализатора составляет 10 кГц/16 = 625 Гц.

Автором конструкции были предприняты попытки увеличения скорости вычисления ДПФ. Если это преобразование имеет N точек, то мы должны найти N2/2 значений синуса и косинуса. Для нашего 32 точечного преобразования необходимо найти 512 значений синуса и косинуса. Но, прежде чем найти их нам необходимо вычислить угол (градусы), что займет некторое процессорное время, поэтому было решено использовать для этих вычислений таблицы значений. При расчетах в программе микроконтроллера не используются вычисления с плавающей точкой и числа двойной точности (double), так как это займет больше времени на обработку на 8-разрядном микроконтроллере. Вместо этого значения в таблицах поиска используются 16-разрядные данные целочисленного типа (integer), умноженные на 10000. Затем после выполнения преобразования результаты делятся на 10000. При таком подходе имеется возможность выполнять 120 32-точечных преобразований в секунду, что более чем достаточно для нашего устройства.

Демонстрация работы анализатора спектра на микроконтроллере ATmega32

Загрузки

Исходный код (программа микроконтроллера, таблицы данных синуса, косинуса и угла) -

Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться .

  • Понятно, что на АВР-ке дальше светомузыки сложно уехать, не те параметры. Но 120 32-точечных преобразований в секунду для большинства задач может быть достаточно. А выборку 625Гц, можно конечно и другую взять, по точнее потеряв частоту обновления. Стоит отметить, что МК будет себя плохо чувствовать, в плане производительности мало что на него еще навешаешь. Но тут можно же организовать выдачу результата по аппаратным методам передачи данных. Тогда это будет вспомогательный МК, а основной будет только принимать с него данный и обрабатывать совместимо с другими процессами. По большому счету все же в частоту проца упирается. Когда-то получалось разгонять мегу выше 20 МГц, но для этих задач наверно получим только глюки на высоких частотах. Идея хороша, только бы больше мат части расписано было бы... именно ее реализация на МК
  • я и поинтересней анализаторы делал: You Tube или вариант на цветном ЖКИ: You Tube в основе знаменитая библиотека Чена:)
  • "нам необходимо вычислить угол (градусы)" А может кто-нибудь подробнее рассказать как рассчитываются значения для этих таблиц?
  • С таблицей синусов и косинусов все понятно. Не понятно как рассчитываются значения в таблице degree_lookup?

Алексей Лукин

Спектроанализатор - прибор для измерения и отображения спектра сигнала - распределения энергии сигнала по частотам. В этой статье рассматриваются основные виды анализаторов спектра и иллюстрируется их применение для редактирования и реставрации звука. Особое внимание уделяется современным анализаторам, основанным на FFT - быстром преобразовании Фурье.

Зачем анализировать спектр?

Традиционно в цифровой звукозаписи аудиодорожка представляется в виде осциллограммы, отображающей форму звуковой волны (waveform), то есть зависимость амплитуды звука от времени. Такое представление достаточно наглядно для опытного звукорежиссёра: осциллограмма позволяет увидеть основные события в звуке, такие как изменения громкости, паузы между частями произведения и зачастую даже отдельные ноты в сольной записи инструмента. Но одновременное звучание нескольких инструментов на осциллограмме "смешивается" и визуальный анализ сигнала становится затруднительным. Тем не менее, наше ухо без труда различает отдельные инструменты в небольшом ансамбле. Как же это происходит?

Когда сложное звуковое колебание попадает на барабанную перепонку уха, оно с помощью серии слуховых косточек передаётся на орган, называемый улиткой. Улитка представляет собой закрученную в спираль эластичную трубочку. Толщина и жёсткость улитки плавно меняются от края к центру спирали. Когда сложное колебание поступает на край улитки, это вызывает ответные колебания разных частей улитки. При этом резонансная частота у каждой части улитки своя. Таким образом улитка раскладывает сложное звуковое колебание на отдельные частотные составляющие. К каждой части улитки подходят отдельные группы слуховых нервов, передающие информацию о колебаниях улитки в головной мозг (более подробно о слуховом восприятии можно прочитать в статье "Основы психоакустики " И. Алдошиной в журнале "Звукорежиссер" №6, 1999). В результате в мозг поступает информация о звуке, уже разложенная по частотам, и человек легко отличает высокие звуки от низких. Кроме того, как мы вскоре увидим, разложение звука на частоты помогает различить отдельные инструменты в полифонической записи, что значительно расширяет возможности редактирования.

Полосовые спектроанализаторы

Первые звуковые анализаторы спектра разделяли сигнал на частотные полосы с помощью набора аналоговых фильтров. Дисплей такого анализатора (рис. 1) показывает уровень сигнала во множестве частотных полос, соответствующих фильтрам.

Рис. 1. Третьоктавный анализатор Specan32, эмулирующий известный прибор KlarkTeknik DN60

На рис. 2 приведён пример частотных характеристик полосовых фильтров в анализаторе, удовлетворяющем стандарту ГОСТ 17168-82. Такой анализатор называется третьоктавным, так как в каждой октаве частотного диапазона имеется три полосы. Видно, что частотные характеристики полосовых фильтров перекрываются; их крутизна зависит от порядка используемых фильтров.

Рис. 2. Частотные характеристики фильтров третьоктавного спектроанализатора

Важным свойством спектроанализатора является баллистика - инерционность измерителей уровня в частотных полосах. Она может регулироваться заданием скорости нарастания (атаки) и спада уровня. Типичное время атаки и спада в таком анализаторе - порядка 200 и 1500 мс.

Полосовые спектроанализаторы часто применяются для настройки АЧХ (амплитудно-частотной характеристики) акустических систем на концертных площадках. Если на вход такому анализатору подать розовый шум (имеющий одинаковую мощность в каждой октаве), то дисплей покажет горизонтальную линию, с возможной поправкой на вариацию шума во времени. Если розовый шум, проходя через звукоусилительную систему зала, исказился, то изменения его спектра будут видны на анализаторе. При этом анализатор, как и наше ухо, будет малочувствителен к узким провалам АЧХ (менее 1/3 октавы).

Преобразование Фурье

Преобразование Фурье - это математический аппарат для разложения сигналов на синусоидальные колебания. Например, если сигнал x (t ) непрерывный и бесконечный по времени, то его можно представить в виде интеграла Фурье:

Интеграл Фурье собирает сигнал x (t ) из бесконечного множества синусоидальных составляющих всевозможных частот ω , имеющих амплитуды X ω и фазы φ ω .

На практике нас больше интересует анализ конечных по времени звуков. Поскольку музыка не является статичным сигналом, её спектр меняется во времени. Поэтому при спектральном анализе нас обычно интересуют отдельные короткие фрагменты сигнала. Для анализа таких фрагментов цифрового аудиосигнала существует дискретное преобразование Фурье :

Здесь N отсчётов дискретного сигнала x (n ) на интервале времени от 0 до N -1 синтезируются как сумма конечного числа синусоидальных колебаний с амплитудами X k и фазами φ k . Частоты этих синусоид равны kF/N , где F - частота дискретизации сигнала, а N - число отсчётов исходного сигнала x (n ) на анализируемом интервале. Набор коэффициентов X k называется амплитудным спектром сигнала . Как видно из формулы, частоты синусоид, на которые раскладывается сигнал, равномерно распределены от 0 (постоянная составляющая) до F /2 - максимально возможной частоты в цифровом сигнале. Такое линейное расположение частот отличается от распределения полос третьоктавного анализатора.

FFT-анализаторы

FFT (fast Fourier transform) - алгоритм быстрого вычисления дискретного преобразования Фурье. Благодаря ему стало возможным анализировать спектр звуковых сигналов в реальном времени.

Рассмотрим работу типичного FFT-анализатора. На вход ему поступает цифровой аудиосигнал. Анализатор выбирает из сигнала последовательные интервалы («окна») , на которых будет вычисляться спектр, и считает FFT в каждом окне для получения амплитудного спектра X k . Вычисленный спектр отображается в виде графика зависимости амплитуды от частоты (рис. 3). Аналогично полосовым анализаторам, обычно используется логарифмический масштаб по осям частот и амплитуд. Но из-за линейного расположения полос FFT по частоте спектр может выглядеть недостаточно детальным на нижних частотах или излишне осциллирующим на верхних частотах.

Рис. 3. Дисплей FFT-анализатора

Если рассматривать FFT как набор фильтров, то, в отличие от полосовых фильтров третьоктавного анализатора, фильтры FFT будут иметь одинаковую ширину в герцах, а не в октавах. Поэтому розовый шум на FFT-анализаторе будет уже не горизонтальной линией, а наклонной, со спадом 3 дБ/окт. Горизонтальной линией на FFT-анализаторе будет белый шум - он содержит равную энергию в равных линейных частотных интервалах.

Параметр N - число анализируемых отсчётов сигнала - имеет решающее значение для вида спектра. Чем больше N , тем плотнее сетка частот, по которым FFT раскладывает сигнал, и тем больше деталей по частоте видно на спектре. Для достижения более высокого частотного разрешения приходится анализировать более длинные участки сигнала. Если сигнал в пределах окна FFT меняет свои свойства, то спектр будет отображать некоторую усреднённую информацию о сигнале со всего интервала окна.

Когда нужно проанализировать быстрые изменения в сигнале, длину окна N выбирают маленькой. В этом случае разрешение анализа по времени увеличивается, а по частоте - уменьшается. Таким образом, разрешение анализа по частоте обратно пропорционально разрешению по времени. Этот факт называется соотношением неопределённостей .

Весовые окна

Один из простейших звуковых сигналов - синусоидальный тон. Как будет выглядеть его спектр на FFT-анализаторе? Оказывается, это зависит от частоты тона. Мы знаем, что FFT раскладывает сигнал не по тем частотам, которые на самом деле присутствуют в сигнале, а по фиксированной равномерной сетке частот. Например, если частота дискретизации равна 48 кГц и размер окна FFT выбран 4096 отсчётов, то FFT раскладывает сигнал по 2049 частотам: 0 Гц, 11.72 Гц, 23.44 Гц, ..., 24000 Гц.

Если частота тона совпадает с одной из частот сетки FFT, то спектр будет выглядеть "идеально": единственный острый пик укажет на частоту и амплитуду тона (рис. 4, белый график).

Если же частота тона не совпадает ни с одной из частот сетки FFT, то FFT "соберёт" тон из имеющихся в сетке частот, скомбинированных с различными весами. График спектра при этом размывается по частоте (рис. 4, зелёный график). Такое размытие обычно нежелательно, так как оно может закрыть собой более слабые звуки на соседних частотах. Можно также заметить, что амплитуда максимума зелёного графика ниже реальной амплитуды анализируемого тона. Это связано с тем, что мощность анализируемого тона равна сумме мощностей коэффициентов спектра, из которых этот тон составлен.

Рис. 4. Спектр синусоидального тона различных частот с весовыми окнами и без них

Чтобы уменьшить эффект размытия спектра, сигнал перед вычислением FFT умножается на весовые окна - гладкие функции, похожие на гауссиан, спадающие к краям интервала. Они уменьшают размытие спектра за счёт некоторого ухудшения частотного разрешения. Если рассматривать FFT как набор полосовых фильтров, то весовые окна регулируют взаимное проникновение частотных полос.

Простейшее окно - прямоугольное: это константа 1, не меняющая сигнала. Оно эквивалентно отсутствию весового окна. Одно из популярных окон - окно Хэмминга. Оно уменьшает уровень размытия спектра примерно на 40 дБ относительно главного пика.

Весовые окна различаются по двум основным параметрам: степени расширения главного пика и степени подавления размытия спектра ("боковых лепестков") . Чем сильнее мы хотим подавить боковые лепестки, тем шире будет основной пик. Прямоугольное окно меньше всего размывает верхушку пика, но имеет самые высокие боковые лепестки. Окно Кайзера обладает параметром, который позволяет выбирать нужную степень подавления боковых лепестков.

Другой популярный выбор - окно Хана. Оно подавляет максимальный боковой лепесток слабее, чем окно Хэмминга, но зато остальные боковые лепестки быстрее спадают при удалении от главного пика. Окно Блэкмана обладает более сильным подавлением боковых лепестков, чем окно Хана.

Для большинства задач не очень важно, какой именно вид весового окна использовать. Главное, чтобы оно было. Популярный выбор - Хан или Блэкман. Использование весового окна уменьшает зависимость формы спектра от конкретной частоты сигнала и от её совпадения с сеткой частот FFT.

Рисунок 4 сделан для синусоид, однако, исходя из него, нетрудно представить, как будет выглядеть спектр реальных звуковых сигналов. Каждый пик в спектре будет иметь некоторую размытую форму, в зависимости от своей частоты и выбранного весового окна.

Чтобы компенсировать расширение пиков при применении весовых окон, можно использовать более длинные окна FFT: например, не 4096, а 8192 отсчета. Это улучшит разрешение анализа по частоте, но ухудшит по времени.

Спектрограмма

Часто возникает необходимость проследить, как спектр сигнала меняется во времени. FFT-анализаторы помогают сделать это в реальном времени при воспроизведении сигнала. Однако в ряде случаев оказывается удобна визуализация изменения спектра во всём звуковом отрывке сразу. Такое представление сигнала называется спектрограммой . Для её построения применяется оконное преобразование Фурье : спектр вычисляется от последовательных окон сигнала (рис. 5), и каждый из этих спектров образует столбец в спектрограмме.

Рис. 5. Вычисление спектрограммы сигнала

По горизонтальной оси спектрограммы откладывается время, по вертикальной - частота, а амплитуда отображается яркостью или цветом. На спектрограмме гитарной ноты на рис. 6 видно развитие звучания: оно начинается с резкой атаки и продолжается в виде гармоник, кратных по частоте основному тону 440 Гц. Видно, что верхние гармоники имеют меньшую амплитуду и затухают быстрее, чем нижние. Также на спектрограмме прослеживается шум записи - равномерный фон тёмно-синего цвета. Справа показана шкала соответствия цветов и уровней сигнала (в децибелах ниже нуля).

Рис. 6. Спектрограмма гитарной ноты с разными размерами окна FFT

Если менять размер окна FFT, становится хорошо видно, как меняется частотное и временное разрешение спектрограммы. При увеличении окна гармоники становятся тоньше, и их частота может быть определена более точно. Однако размывается во времени момент атаки (в левой части спектрограммы). При уменьшении размера окна наблюдается обратный эффект.

Особенно полезна спектрограмма при анализе быстро меняющихся сигналов. На рис. 7 показана спектрограмма вокального пассажа с вибрато. По ней легко определить такие характеристики голоса, как частота и глубина вибрато, его форма и ровность, наличие певческой форманты. По изменению высоты основного тона и гармоник прослеживается исполняемая мелодия.

Рис. 7. Спектрограмма вокального пассажа с вибрато

Применения спектрограммы

Современные средства реставрации звука, такие как программа iZotope RX , активно используют спектрограмму для редактирования отдельных частотно-временных областей в сигнале. С помощью этой техники можно найти и подавить такие нежелательные призвуки, как звонок мобильного телефона во время важной записи, скрип стула пианиста, кашель в зрительном зале и т.п.

Проиллюстрируем использование спектрограммы для удаления свиста поклонников из концертной записи.


Рис. 8. Удаление нежелательных призвуков с помощью спектрограммы

На рис. 8 свист легко находится: это светлая кривая линия в районе 3 кГц. Если бы частота свиста была постоянной, то его можно было бы подавить с помощью режекторного фильтра. Однако в нашем случае частота меняется. Для выделения свиста на спектрограмме удобно воспользоваться инструментом «волшебная палочка» из программы iZotope RX II. Одно нажатие приводит к выделению основного тона свиста, повторное нажатие выделяет гармоники. После этого свист можно удалить, просто нажав на клавишу Del. Однако более аккуратный способ - воспользоваться модулем Spectral Repair: это позволит избежать "дыр" в спектре после удаления свиста. После применения этого модуля в режиме ослабления с вертикальной интерполяцией (Attenuate vertically) свист практически полностью исчезает из записи: как визуально, так и на слух.

Еще одно полезное применение спектрограммы - анализ присутствия в записи следов компрессии MP3 или других кодеков с потерями. У большинства записей оригинального (несжатого) качества частотный диапазон простирается до 20 кГц и выше; при этом энергия сигнала плавно спадает с ростом частоты (как на рис. 6, 7). В результате психоакустической компрессии верхние частоты сигнала квантуются сильнее нижних, и верхняя граница спектра сигнала обнуляется (как на рис. 8). При этом частота среза зависит от содержания кодируемого сигнала и от битрейта кодера. Ясно, что кодер стремится обнулять только те частоты в сигнале, которые в данный момент не слышны (замаскированы). Поэтому частота среза, как правило, меняется во времени, что образует на спектрограмме характерную "бахрому" с островками энергии на тёмном фоне.

Аналогичная ситуация иногда возникает и с низкочастотными помехами, такими как задувание ветра в микрофон или постоянная составляющая (смещение по постоянному току, DC offset). Они могут располагаться на инфранизких частотах и не обнаруживать себя без помощи спектроанализатора или осциллографа.

Заключение

Среди опытных звукорежиссёров старой школы распространено мнение, что анализировать и редактировать сигналы следует исключительно на слух, не полагаясь на индикаторы и анализаторы. Разумеется, анализаторы - не панацея в случае отсутствия слуха. Вряд ли кто-то серьёзно воспринимает идею сведения композиции "по приборам".

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

>



Внимание! Порядок добавления тегов имеет значение! Начинайте добавлять с наиболее важного. По возможности пользуйтесь уже существующими тегами

Данный проект является логическим продолжением проекта "Темброблок с микроконтроллерным управлением на TDA8425". Для расширения функционала я предлагаю вам собрать простой спектроанализатор звука. Анализатор спектра обрабатывает сигнал и на светодиодных шкалах показывает его интенсивность в определенных частотных диапазонах.
Итак, ниже схема устройства.

Сердцем устройства является микроконтроллер PIC12F675 фирмы MICROCHIP. Это новый представитель семейства 8-ми выводных Flash-микроконтроллеров. Фирма MICROCHIP продолжает разработку и производство передовых продуктов, предоставляющих пользователю большую функциональность и надежность. Контроллер PIC12F675 объединил все преимущества архитектуры микроконтроллеров PICmicro и гибкость Flash программной памяти. При низкой цене и малых размерах этот контроллер обеспечивают функциональность и удобство использования, которые были недоступны ранее.
Аудио сигнал подается на вход микросхемы BA3834F - симиполосный фильтр японской корпорации ROHM. BA3834F имеет семь полосовых фильтров: 68 Гц, 170 Гц, 420 Гц, 1000 Гц, 2400 Гц, 5900 Гц, 14400 Гц. Выбор соответствующего фильтра осуществляет микроконтроллер PIC12F675.
Выходной сигнал с каждого полосового фильтра оцифровывается микроконтроллером и передается на микросхемы-драйверы 74HC595 (последовательный регистр сдвига с выходной блокировкой). В свою очередь, комбинация сигналов на 74HC595 включает соответствующие светодиоды. Светодиоды сгруппированы в матрицу из 7 столбцов "X" и 16 строк "Y" с общим анодом. Всего 112 светодиодов.
Спектроанализатор конструктивно собран на двух платах - управления и индикации. Ниже рисунок и фото платы управления.

Рисунки печатных плат односторонние; изготавливаются любым доступным способом, например ЛУТ. Обратите внимание - микросхема BA3834F в корпусе SOP18. Она смонтирована со стороны дорожек способом поверхностного монтажа. Далее рисунок и фото платы индикации.

Аноды светодиодов соединены между собой над поверхностью платы и подпаяны к контактным площадкам. Для более удобного соединения были использованы штыревые разъемы типа PLS (однорядные с шагом 2,54 мм); соответственно, для кабеля понадобятся гнезда с контактами типа BLS (однорядные с шагом 2,54 мм) и кримпер 6PK-301U (клещи обжимные) для заделки разъемов на кабель.
Данный проект собирался и отлаживался с помощью PicKit2 Debug Express. Этот же программатор можно рекомендовать для прошивания микроконтроллера PIC12F675.

  • Звук
  • Как вы думаете, что делают девушки, когда собираются вместе? Идут по магазинам, фотографируются, ходят по салонам красоты? Да, так и есть, но так делают далеко не все. В данной статье пойдёт речь о том, как две девушки решили собрать радиоэлектронное устройство своими руками.

    Почему именно анализатор-визуализатор спектра?

    Ведь программных решений данной задачи довольно много и вариантов аппаратной реализации так же немало. Во-первых, очень хотелось поработать с большим количеством светодиодов (т.к. мы уже собирали led-куб, каждый для себя, но в небольших размерах), во-вторых, применить на практике полученные знания по цифровой обработке сигналов и, в-третьих, в очередной раз попрактиковаться в работе с паяльником.

    Разработка устройства

    Т.к. брать готовое решение и делать строго по инструкции – это скучно и неинтересно, поэтому мы решили разрабатывать схему сами, лишь немного опираясь на уже созданные устройства.

    В качестве дисплея выбрали светодиодную матрицу 8х32. Можно было использоваться готовые led-матрицы 8х8 и собирать из них, но мы решили не отказывать себе в удовольствии посидеть вечерком с паяльником, и поэтому собирали дисплей сами из светодиодов.

    Для управления дисплеем мы не изобретали велосипед и использовали схему управления с динамической индикацией. Т.е. выбрали один столбец, зажгли его, остальные столбцы в этот момент погасили, затем выбирали следующий, зажгли его, остальные погасили и т.д. Ввиду того, что человеческий глаз не идеален, мы можем наблюдать статическую картинку на дисплее.
    Пойдя по пути наименьшего сопротивления было решено, что все вычисления разумно будет перенести на контроллер Arduino.

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

    В качестве интерфейса подключения к компьютеру (или другому устройству, способному передавать аудио сигнал) был выбран разъём TRS (mini-jack 3.5 mm).

    Сборка устройства

    Сборку устройства начинаем с того, что делаем макет лицевой панели устройства.

    Материалом для лицевой панели был выбран чёрный пластик толщиной 5мм (т.к. диаметр линзы диода также 5мм). По разработанному макету размечаем, вырезаем лицевую панель под необходимый размер и просверливаем отверстия в пластике под светодиоды.

    Таким образом получаем готовую лицевую панель, на которой можно уже собирать дисплей.

    В качестве светодиодов для матрицы были использованы двухцветные (красный-зелёный) с общим катодом GNL-5019UEUGC. Перед началом сборки матрицы, руководствуясь правилом “лишний контроль не повредит” все светодиоды, а именно 270 шт. (брали с запасом на всякий случай), были проверены на работоспособность (для этого было собрано тестирующее устройство, включающее в себя разъём, резистор 200Ом и источник питания на 5В).

    Дальше разгибаем светодиоды следующим образом. Аноды красного и зеленого диодов отгибаем в одну сторону (вправо), катод отгибаем в другую сторону, при этом следим, чтобы катод был ниже чем аноды. И затем под 90° загибаем катод вниз.

    Сборку матрицы начинаем с правого нижнего угла, сборку производим по столбцам.

    Вспоминая про правило “лишний контроль не повредит”, после одного-двух спаянных столбцов, проверяем работоспособность.

    Готовая матрица выглядит следующим образом.

    Вид сзади:

    По разработанной схеме паяем схему управления строками и столбцами, распаиваем шлейфы и место под Arduino.

    Было решено так же выводить не только амплитудно-частотны, но и фазо-частотный спектр, а также выбирать количества отсчетов для отображения (32,16,8,4). Для этого были добавлены 4 переключателя: один на выбор типа спектра, два на выбор количества отсчётов, и один на включение и выключение устройства.

    Написание программы

    В очередной раз руководствуемся нашим правилом и убеждаемся, что наш дисплей полностью в рабочем состоянии. Для этого пишем простую программу, которая полностью зажигает все светодиоды на дисплее. Естественно, по закону Мёрфи, нескольким светодиодам не хватало тока, и их необходимо было заменить.

    Удостоверившись, что всё работает, мы приступили к написанию основного программного кода. Он состоит из трёх частей: инициализация необходимых переменных и считывание данных, получение спектра сигнала при помощи быстрого преобразования Фурье, вывод полученного спектра с необходимым форматированием на дисплей.

    Сборка конечного устройства

    В конце мы имеем лицевую панель, а под ней куча проводов, которые необходимо чем-то закрыть, да и переключатели нужно на чём-то закрепить. До этого были мысли сделать корпус из остатков пластика, но мы не вполне представляли, как это будет конкретно выглядеть и как это сделать. Решение проблемы пришло довольно неожиданно. Прогулявшись по строительному магазину, мы обнаружили пластиковый цветочный горшок, который на удивление идеально подошёл по размеру.

    Дело оставалось за малым, разметить отверстия под разъёмы, кабели и переключатели, а также вырезать две боковые панели из пластика.

    В итоге, собрав всё воедино, подключив устройство к компьютеру мы получили следующее:

    Амплитудно-частотный спектр (32 отсчёта):

    Амплитудно-частотный спектр (16 отсчётов):

    Амплитудно-частотный спектр (8 отсчётов):

    Амплитудно-частотный спектр (4 отсчёта):

    Фазо-частотный спектр:

    Вид задней панели:

    Видео работы устройства

    Для большей наглядности видео снималось в темноте. На видео устройство выводит амплитудно-частотный спектр, а затем на 7 секунде переключаем его в режим фазо-частотного спектра.

    Список необходимых элементов

    1. Светодиоды GNL-5019UEUGC – 256 шт. (Для дисплея)
    2. Транзисторы n-p-n KT863A – 8 шт. (Для управления строками)
    3. Транзисторы p-n-p С32740 – 32 шт. (Для управления столбцами)
    4. Резисторы 1кОм – 32 шт. (Для ограничения тока базы p-n-p транзисторов)
    5. Дешифраторы 3/8 IN74AC138 – 4 шт. (Для выбора столбца)
    6. Дешифраторы 2/4 IN74AC139 – 1 шт. (Для каскадирования дешифраторов)
    7. Монтажная плата 5х10см – 2 шт.
    8. Шлейфы
    9. Arduino Pro micro – 1 шт.
    10. Разъём mini-jack 3.5мм – 1 шт.
    11. Переключатель – 4 шт.
    12. Чёрный пластик 720*490*5 мм – 1 лист. (Для лицевой панели)
    13. Горшок цветочный чёрный 550*200*150 мм – 1 шт. (Для корпуса)


    Есть вопросы?

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам: