СОДЕРЖАНИЕ РЕФЕРАТ ......................................................................................................... 2 ПЕРЕЧЕНЬ СОКРАЩЕНИЙ И ОБОЗНАЧЕНИЙ ...................................... 3 ВВЕДЕНИЕ...................................................................................................... 4 1 Аналитический раздел ................................................................................. 5 1.1 Спектральный анализ .......................................................................... 5 1.2 Преобразование Фурье ........................................................................ 5 1.3 Быстрое Преобразование Фурье. Функции ....................................... 9 2 Конструкторский раздел ........................................................................... 11 2.1 Выбор языка программирования...................................................... 11 2.2 Микроконтроллер ATMEGA328P .................................................... 11 2.3 Аналого-цифровое преобразование ................................................. 13 2.4 Дискретизация звукового сигнала ................................................... 14 3 Технологический раздел............................................................................ 16 3.1 Программная широтно-импульсная модуляция ............................. 16 3.2 Прерывания и настройка таймеров .................................................. 17 3.3 Режимы представления спектрального преобразования ............... 18 3.3.1 Спектр звукового сигнала ......................................................... 18 3.3.2 Зеркальный 4-х канальный режим. .......................................... 18 3.3.3 Режим частотной суммы звукового сигнала. .......................... 19 3.4 Обработка и вывод частотных данных на светодиоды .................. 19 4 Экспериментальный раздел ...................................................................... 21 4.1 Контроль качества разрабатываемого устройства ......................... 21 4.2 Алиасинг эффект ................................................................................ 21 4.3 Стабилизация работы устройства .................................................... 23 ЗАКЛЮЧЕНИЕ ............................................................................................. 24 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ................................... 25 ПРИЛОЖЕНИЕ А. ПРИНЦИПИАЛЬНАЯ СХЕМА УСТРОЙСТВА ..... 26 РЕФЕРАТ Отчет 26 с., 10 рис., 1 табл., 8 источн., 1 прил. ДИСКРЕТНОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ, БЫСТРОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ, ПРОГРАММИРОВАНИЕ, СПЕКТРАЛЬНЫЙ АНАЛИЗ, ЧАСТОТНО-ВРЕМЕННОЙ АНАЛИЗ ЗВУКОВОГО СИГНАЛА, ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ, МИКРОКОНТРОЛЛЕРЫ Объектами исследования являются алгоритмы спектрального и частотно-временного анализа на 8-ми битных микроконтроллерах. Цель работы – реализация алгоритмов вычисления быстрого преобразования Фурье, предназначенных для исполнения на 8-би битных микроконтроллерах, с целью представления спектрального и частотного анализа звукового сигнала. Задачи работы: аналитический обзор алгоритмов спектрального анализа, изучение программных функций обработки звукового сигнала, рассмотреть основные этапы дискретизации звука, настройку и работу аналогоцифрового преобразователя, практический обзор широтно-импульсной модуляции, с последующим применением на микроконтроллере Atmel с учётом его всех архитектурных особенностей. В результате исследования получены результаты, подтверждающие возможность и целесообразность применения микроконтроллеров в задачах выполнения алгоритмов спектрального анализа. Область применения: результаты данной работы (теоретические и программный код), могут быть использованы при разработке любого аудио- или видеооборудования, предусматривающие возможность применения спектрального анализа. 2 ПЕРЕЧЕНЬ СОКРАЩЕНИЙ И ОБОЗНАЧЕНИЙ В настоящем отчете о НИР применяют следующие сокращения и обозначения: БПФ – быстрое преобразование Фурье ДПФ – дискретное преобразование Фурье ШИМ – широтно-импульсная модуляция МК – микроконтроллер АЦП – аналого-цифровой преобразователь ЦОС – цифровая обработка сигналов 3 ВВЕДЕНИЕ Кроме естественного представления сигналов во временной области в анализе сигналов и систем широко используется частотное представление. Задачу представления сигналов в частотной области называют также спектральным анализом, гармоническим анализом, частотным анализом, или Фурье-анализом. Многие физические процессы описываются в виде суммы индивидуальных частотных составляющих. Понятие спектра широко используется в представлении звуков, радио и телевещании, в физике света, в обработке любых сигналов независимо от физической природы их возникновения. На нем базируется исключительно эффективный и очень простой в использовании частотный метод анализа линейных систем. Начала спектрального анализа заложены в 18-м веке в работах Бернулли, Эйлера, Гаусса. Основные результаты получены французскими учеными Ж. Фурье (1768 – 1830 г.г.) и П. Дирихле (1805 – 1859 г.г.) в 19-м столетии. Как самостоятельная прикладная область спектральный анализ сформировался во второй половине 20-го века. 4 1 Аналитический раздел 1.1 Спектральный анализ Спектральный анализ – это один из методов обработки сигналов, который позволяет охарактеризовать частотный состав измеряемого сигнала. Преобразование Фурье является математической основой, которая связывает временной или пространственный сигнал (или же некоторую модель этого сигнала) с его представлением в частотной области. Методы статистики играют важную роль в спектральном анализе, поскольку сигналы, как правило, имеют шумовой или случайный характер. Если бы основные статистические характеристики сигнала были известны точно или же их можно было бы без ошибки определить на конечном интервале этого сигнала, то спектральный анализ представлял бы собой отрасль точной науки. Однако в действительности по одному отрезку сигнала можно получить только некоторую оценку его спектра. К обработке сигналов в реальном масштабе времени относятся задачи анализа аудио, речевых, мультимедийных сигналов, связанных непосредственно с анализом спектрального содержания и дальнейшей классификацией последовательности отсчетов или изменения формы спектра – фильтрации в частотной области. Таким образом, основная задача спектрального анализа заключается в определении частотного спектра сигнала (функции). Любой сигнал может быть представлен своим частотным спектром. Спектральный анализ основывается на классических рядах Фурье и преобразовании Фурье. 1.2 Преобразование Фурье Анализ Фурье закладывает основы многих методов, применяющихся в области цифровой обработки сигналов (ЦОС). По сути дела, преобразование 5 Фурье (фактически существует несколько вариантов таких преобразований) позволяет сопоставить сигналу, заданному во временной области, его эквивалентное представление в частотной области. Наоборот, если известна частотная характеристика сигнала, то обратное преобразование Фурье позволяет определить соответствующий сигнал во временной области. Семейство преобразований Фурье (преобразование Фурье, ряды Фурье, дискретные ряды Фурье и дискретное преобразование Фурье) представлено на рисунке 1. С течением времени принятые определения получили развитие в зависимости от того, является ли сигнал непрерывно-апериодическим, непрерывно-периодическим, дискретно-апериодическим или дискретно- периодическим Рисунок 1– Семейство преобразований Фурье Единственный член этого семейства, который имеет отношение к цифровой обработке сигналов, – это дискретное преобразование Фурье, которое оперирует дискретной по времени выборкой периодического сигнала во временной области. Для того чтобы быть представленным в виде суммы синусоид, сигнал должен быть периодическим. Но в качестве набора входных дан6 ных для ДПФ доступно только конечное число отсчетов (N). Эту дилемму можно разрешить, если мысленно поместить бесконечное число одинаковых групп отсчетов до и после обрабатываемой группы, образуя, таким образом, математическую (но не реальную) периодичность, как показано на рисунке 3. Фундаментальное уравнение для получения N-точечного ДПФ показано на рисунке 2. Рисунок 2 – Уравнение N-точечного ДПФ По отношению к этому уравнению следует сделать некоторые терминологические разъяснения. X(k) (прописная буква X) представляет собой частотный выход ДПФ в k-ой точке спектра, где k находится в диапазоне от 0 до N-1. N представляет собой число отсчетов при вычислении ДПФ. Значение x(n) (строчная буква x) представляет собой n-ый отсчет во временной области, где n также находится в диапазоне от 0 до N-1. В общем уравнении x(n) может быть вещественным или комплексным. Периодичность анализируемого сигнала при вычислении БПФ может быть лучше всего проиллюстрирована на выполнении N-точечного БПФ с синусоидальным входным сигналом. Рассмотрим две ситуации. В первом случае соотношение между частотой дискретизации и частотой входного синусоидального сигнала таково, что в выборке содержится в точности целое число периодов синусоидального сигнала. 7 Рисунок 3–БПФ периодичного сигнала Для спектрального представления непериодических (импульсных) сигналов, заданных на конечном интервале, непосредственно воспользоваться рядом Фурье нельзя. Для гармонического разложения сигнала мысленно дополняют его такими же импульсными сигналами до периодического с некоторым интервалом. Рисунок 4 – БПФ не периодичного сигнала Рисунок 4 отражает ситуацию, когда происходит периодическое продолжение сигнала. Разрывы, которые образуются в конечных точках выборки, приводят к расширению спектра анализируемого сигнала вследствие появления дополнительных гармоник. Для решения проблемы расширения спектра, а также усиления частотной характеристики входного сигнала используют функцию окна. Входные отсчеты по времени умножаются на соответствующую функцию окна, что влечет за собой обнуление сигнала на краях выборки, как показано на рисунке 5. 8 Рисунок 5 – Применение функции окна на входной сигнал Все описанные выше этапы преобразования являются обязательными для построения спектрального анализа любого входного сигнала. Также, стоит отметить, что применение БПФ имеет смысл, если число элементов в анализируемой последовательности, т.е. размер самой выборки, является степенью числа 2. 1.3 Быстрое Преобразование Фурье. Функции В данной работе была использована математическая библиотека FastFouriertransform с размером N выборки в 128 точек. Программная библиотека быстрого преобразования Фурье имеет встроенные функции, соответствующие поэтапному преобразованию Фурье. С точки зрения программного кода (Приложение Б), все данные помещаются в один глобальный массив fft_input[],и все последующее преобразование разделяется на 4 основные функции в порядке использования: 9 fft_window() – Применение окна Ханна (Хеннинга). Эта функция умножает входные данные на функцию окна, чтобы увеличить частотное разрешение данных. fft_reorder()–Функция переупорядочивания частотных данных. После её применения, все частотные данные распределяются в массиве fft_input[] в порядке увеличения частоты. fft_run()–Это основной вызов функции БПФ. Он не принимает переменных и не возвращает переменных. Данные хранятся в массиве с именем fft_input [], который содержит 16-битное число для каждой точки данных БПФ. fft_mag_lin()–Представление данные в линейном виде. Данная функция последняя и она определяет, в каком виде будут выходные частотные данные. Для этого, суммируются квадраты мнимой и вещественной части, а затем берется квадратный корень. Данные берутся из fft_input []и возвращаются в новый массив fft_lin_out []. Все значения находятся в последовательном порядке. 10 2 Конструкторский раздел 2.1 Выбор языка программирования Для реализации данного курсового проекта был выбран язык программирования C++. Это компилируемый, статически типизированный язык программирования общего назначения. C++ сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником — языком C, — наибольшее внимание уделено поддержке объектноориентированного и обобщённого программирования. C++ широко используется для разработки программного обеспечения, являясь одним из самых популярных языков программирования. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений. Стоит также отметить, что в языке С++ все низкоуровневые операции, выполняемые компьютерами, представлены в виде абстрактных конструкций, позволяющих разработчикам сосредоточиться на программировании одной лишь логики, не заботясь о машинном коде. Таким образом, изучив язык С++, можно легко переходить от одного семейства микроконтроллеров к другому, тратя гораздо меньше времени на разработку. Выбор интегрированной среды разработки был обусловлен моделью микроконтроллера. В нашем случае это 8-битный микроконтроллер Atmel ATMEGA328P и среда разработки AtmelStudio 7. 2.2 Микроконтроллер ATMEGA328P Микроконтроллер – однокристальный компьютер на одной микросхеме. Предназначен для управления различными электронными устройствами и 11 осуществления взаимодействия между ними в соответствии с заложенной в микроконтроллер программой. В отличие от микропроцессоров, используемых в персональных компьютерах, микроконтроллеры содержат встроенные дополнительные устройства. Эти устройства выполняют свои задачи под управлением микропроцессорного ядра микроконтроллера. Устройства памяти включают оперативную память (RAM), постоянные запоминающие устройства (ROM), перепрограммируемую ROM (EPROM), электрически перепрограммируемую ROM (EEPROM). Таймеры включают, и часы реального времени, и таймеры прерываний. Средства I/O включают последовательные порты связи, параллельные порты (I/O линии), аналогоцифровые преобразователи (A/D), цифроаналоговые преобразователи (D/A), драйверы жидкокристаллического дисплея (LCD) или драйверы вакуумного флуоресцентного дисплея (VFD). Встроенные устройства обладают повышенной надежностью, поскольку они не требуют никаких внешних электрических цепей. Микроконтроллеры можно встретить в огромном количестве современных промышленных и бытовых приборов: станках, автомобилях, телефонах, телевизорах, холодильниках, стиральных машинах и даже кофеварках. Среди производителей микроконтроллеров можно назвать Intel, Motorola, Hitachi, Microchip, Atmel, Philips, TexasInstruments и многих других. Основным классификационным признаком микроконтроллеров является разрядность данных, обрабатываемых арифметико-логическим устройством (АЛУ). По этому признаку они делятся на 4-, 8-, 16-, 32- и 64разрядные. Сегодня наибольшая доля мирового рынка микроконтроллеров принадлежит восьмиразрядным устройствам (около 50 % в стоимостном выражении). За ними следуют 16-разрядные и DSP-микроконтроллеры (DSP DigitalSignalProcessor - цифровой сигнальный процессор), ориентированные на использование в системах обработки сигналов (каждая из групп занимает примерно по 20 % рынка). Внутри каждой группы микроконтроллеры делятся на CISC- и RISC-устройства. Наиболее многочисленной группой являются 12 CISC-микроконтроллеры, но в последние годы среди новых чипов наметилась явная тенденция роста доли RISC-архитектуры. Тактовая частота, или, более точно, скорость шины, определяет, сколько вычислений может быть выполнено за единицу времени. В основном производительность микроконтроллера и потребляемая им мощность увеличиваются с повышением тактовой частоты. Производительность микроконтроллера измеряют в MIPS (MillionInstruсtionsperSecond - миллион инструкций в секунду). Данный проект реализован на плате Arduino NANO с 8-битным микроконтроллером ATmega328P американской фирмы Atmel. Ниже приведены некоторые его характеристики. Таблица 1– Основные характеристики МК ATmega328P Архитектура ядра Разрядность шины данных Тактовая частота, МГц Напряжение питания, В Объем памяти, Кб Встроенная периферия Рабочая температура, ̊С AVR 8 бит 16 1,8…5,5 32 PWM, POR, WDT -40…+85 2.3 Аналого-цифровое преобразование Число в цифровой форме определяется на основании отношения входного напряжения к полному номиналу напряжения аналого-цифрового преобразователя (АЦП). Например, если на вход АЦП с номинальным напряжением 5 Вольт подать напряжение 1 Вольт то на цифровом выходе появится число, соответствующее 1/5=0,2 разрешающей способности преобразователя. Так, если используется АЦП с разрешением 8 бит, то максимальное возможное значение на его выходе 256 – 1 = 255. Таким образом, напряжению 1 В на аналоговом входе соответствует 0,2 * 255 = 51 на цифровом выходе. 13 Встроенный АЦП микроконтроллеров AVR и PIC имеет разрешение 10 бит и позволяют считывать напряжение на одном из восьми (в некоторых моделях – пяти) аналоговых входов (обычно – порт А). АЦП преобразует аналоговый сигнал в цифровой, но для этого является обязательным условие, чтобы измерения проводились точно там, где есть сигнал. Иначе будут потери данных и вовсе его полное некорректное преобразование. Для достижения данной задачи, нужно правильно установить опорное напряжение 10-битного АЦП и входного сигнала. Сделать это можно 2 способами: 1. Поднять входной сигнал до опорного напряжения АЦП 2. Изменить само опорное напряжение АЦП до уровня входного сигнала Рисунок 6 – Изменение опорного напряжения АЦП В данном устройстве был использован второй вариант. С помощью подстроечного резистора, подключенного по схеме делителя напряжения, было установлено напряжение 1.1 Вольт. Что соответствует максимальному напряжению входного звукового сигнала. Далее все дискретные входные данные будут рассчитываться так, что 1 единица данных в настоящий момент времени будет равна 1,1/1024 = 0,001 Вольт. 2.4 Дискретизация звукового сигнала Дискретизация входного сигнала происходит в методе voidcapture_wave. В процессе настройки АЦП мы выбрали частоту дискрети14 зации звука, путем деления тактовый частоты МК на делитель АЦП, равный 64. Получаем следующую частоту 16 000 000/64 = 250 000 ГЦ, но, на обработку только одного отсчета у АЦП уйдет 13 тактов МК, согласно рисунку 7 преобразования. Рисунок 7 – Потактовая схема работы АЦП В результате, делим 250000Гц /13 = 19230 Гц. Именно столько отсчетов сможет сделать АЦП за одну секунду, но, согласно теореме КотельниковаНайквиста-Шеннона, которая гласит о том, чтобы восстановить или дискретизировать сигнал без потерь, частота дискретизации должна быть в 2 раза больше самой высокой частоты восстанавливаемого сигнала. То есть, самую высокую частоту в сигнале, которую сможет оцифровать АЦП, равна 19230 / 2 = 9615 ГЦ Это и будет являться границей нашего преобразования и отображения спектра звукового сигнала. Шаг дискретизации согласно всем условиям будет равен 9615 Гц/128 = 75 Гц. 15 3 Технологический раздел 3.1 Программная широтно-импульсная модуляция ШИМ – это метод, в котором ширина импульса изменяется с фиксированной частотой ШИМ для достижения аналогового выхода в диапазоне от 0 до 100 процентов. Несмотря на то, что многие МК имеют встроенные аппаратные инструменты ШИМ, они обладают определенными ограничениями, такими как ограниченное число на выводах МК и разрядностью. Для решения это проблемы, был реализован программный ШИМ, на каждом из 8 цифровых выводов МК. Желаемый уровень скважности, а, следовательно, и яркости свечения светодиодов, достигается путем изменения значений из массива peak[]. Рисунок 8 – Принцип работы программного ШИМ В данном проекте был реализован программный широтно-импульсный модулятор, с частотой 60 Гц, и разрядностью 10 бит, т.е. 210= 1024. Разрядность формирует длину цикла модуляции, который равен 16,6 мс. При помощи счетчика pwm_cnt аналоговое значение преобразуется в двоичное представление сигнала во времени. Данный тип модуляции был реализован, используя один встроенный в МК таймер по совпадению Timer1 COMP. 16 3.2 Прерывания и настройка таймеров Тактовая частота МК равна 16 МГц, значит, время возникновения нового такта равна 1/16 000 000 = 62,5*10-9=62,5 нс. Делитель тактовой частоты выбран 1, то есть МК работает на максимальной частоте. В данном проекте был использован один встроенный таймер.Timer1 COMP–встроенный 16-битный таймер, работающий в режиме «сброс по совпадению с А или В», при максимальном допустимом числе в таймере равным 216 = 65536. Данный таймер будет выполнять написанный в нем код тогда и только тогда, когда регистр TCNT1 станет равным числу в регистре OCR1A или OCR1B (для чисел А и В соответственно). Это помогает установить желаемое время или событие для срабатывания таймера и выполнения кода внутри него. Таким образом, первый таймерTIMER1_COMPA_vect, работающий по совпадению с числом А, выполняется на скорости 16,6 мс или 60 Гц. Он же и задаёт ширину импульса и в целом ШИМ на всех 8 цифровых выводах МК. Регистр OCR1A, равен 16 000 000/(60*1024) = 260,4. Почему же именно такое число? Умножаем на скорость тактирования МК и получим ширину одного импульса 260,4*62,5 = 0,0000163 = 16 мкс. Далее умножим на разрядность ШИМ и получим время одного полного цикла ШИМ 16 мкс*1024 = 0,0166656 с = 16,6 мс. Что и соответствует частоте 60 Гц. Второй регистр OCR1B равен UINT16_MAX = 65535. Это означает, что скорость срабатывания данного таймера равна 62,5 нс*65535 = 0,004096с=4,1 мс. Отсюда следует, что таймер TIMER1_COMPB_vect, работающий по совпадению с числом В, выполняется каждые 4,1 мс или 244 раза в секунду. Данные вычисления помогли определить время и внедрить промежуточный счетчик «almostsec» внутри таймера для отсчета целых секунд времени. 17 3.3 Режимы представления спектрального преобразования Для более корректного и полного отображения спектра были реализованы 3 режима обработки частотной области входного звукового сигнала: 3.3.1 Спектр звукового сигнала В данном режиме все частоты складываются и перераспределяются в новый массив capture[]. Далее каждый элемент данного массива будут соответствовать выводу порта D и подключенным к ним светодиодам соответственно. Согласно программному преобразованию Фурье, массив распределен на 2 половины, поэтому мы будем брать только действительные данные о частотах в первой половине массива с шагом в 9615 Гц/64 = 150 Гц. Отсюда, диапазон спектра на каждый из 8 выводов будет равен 1 канал 150 – 600 Гц 2 канал 600 – 1350 Гц 3 канал 1350 – 2250 Гц 4 канал 2250 – 3600 Гц 5 канал 3600 – 5100 Гц 6 канал 5100 – 6600 Гц 7 канал 6600 – 8100 Гц 8 канал 8100 – 9615 Гц 3.3.2 Зеркальный 4-х канальный режим. В данном режиме частотная область была распределена на 4 части, и отображена в симметричном виде. Особенностью данного режима является эффектное представление звукового сигнала. Частотный диапазон в данном режиме будет описываться на каждый светодиод как 1 канал 150 – 1200 Гц 2 канал 1200 – 2250 Гц 18 3 канал 2250 – 5850 Гц 4 канал 5850 – 9615 Гц 3.3.3 Режим частотной суммы звукового сигнала. Особенностью данного режима является то, что на выходе порта D отображается вся частотной область в виде нарастающей шкалы. Все частоты складываются в одну переменную vmetr, затем умножаются на понижающий коэффициент, и делятся на 8 частей. Каждой части соответствует свой вывод на порту D и подключенные к нему светодиоды. Частотный диапазон в данном режиме будет отображаться следующим описанием с равным шагом в 1201 Гц 1 уровень От 0 Гц и более 2 уровень От 1201 Гц и более 3 уровень От 2402 Гц и более 4 уровень От 3603 Гц и более 5 уровень От 4804 Гц и более 6 уровень От 6005 Гц и более 7 уровень От 7206 Гц и более 8 уровень От 8407 Гц до 9615 Гц В результате получается «шкала частотной насыщенности звукового сигнала». 3.4 Обработка и вывод частотных данных на светодиоды После распределения частот согласно установленному режиму, все данные проходят последнюю процедуру обработки. Сначала каждый «канал» или элемент массива проверяется на минимальные и максимальные пороговые значения переменными min_value и max_value соответственно. Эти переменные содержат определенные значения для каждого режима, и при его изменении, устанавливаются в методе void SetValueMode. Это сделано для предотвращения некорректного вывода, 19 в случаях непредсказуемых изменений, как в исходных, так и в выходных данных. Затем, для каждого из каналов происходит проверка, если настоящее значения канала больше предыдущего, то выводится новое значение, иначе отображается предыдущее. Рисунок 9 – Экспоненциальное соотношение восприятия света человеческим глазом В силу того, что человеческий глаз воспринимает свет не линейно, а экспоненциально, для равномерного и плавного отображения света, согласно рисунку 9, была подобрана экспоненциальная таблица яркости ШИМ для всех целых значений, и занесены в массив. После, устанавливается соответствующее значение яркости ШИМ из массива pwmtable_10[]. 20 4 Экспериментальный раздел 4.1 Контроль качества разрабатываемого устройства Финальный этап создания любого электронного устройства – это его тестирование на наличие различных ошибок, потенциальных сбоев программы и прочих факторах, которые могут возникнуть при определенных условиях работы. Тестирование можно разделить на три основных этапа: 1) проверку основных частей устройства (процессора, памяти, прочих модулей); 2) проверку программных и периферийных интерфейсов; 3) проверка работы внутренней программы, с изначально заданными особыми входными данными и параметрами работы. Так, в данном устройстве по отдельности в ручном режиме тестировался каждый этап работы, в результате чего, были выявлены и рассмотрены такие моменты, как алиасинг эффект, защита от дребезга коммутатора кнопки, расчет резисторов для светодиодов, а также программная проверка на наличие и отсутствие входного сигнала. 4.2 Алиасинг эффект Алиасинг — одна из главных проблем при аналого-цифровом преобразовании видео - и аудиосигналов. Неправильная дискретизация аналогового сигнала приводит к тому, что его высокочастотные составляющие накладываются на низкочастотные. В результате чего восстановление сигнала во времени приводит к его искажениям. Эффект Алиасинга хорошо продемонстрирован на рисунке 10. 21 Рисунок 10 –Алиасинг эффект Алиасинг эффект возникает по причине того, что нарушается теорема Котельникова-Найквиста. Частота Найквиста – это максимально высокая частота звука умноженная на 2. Поэтому частота Найквиста, а, следовательно, и частота дискретизации должны быть 9615 Гц*2 =19230 Гц. Иначе, если же оцифрован сигнал с частотой большей, чем половина частоты дискретизации, возникает частотный сдвиг, а именно, высокие частоты будут накладываться на низкие. Другими словами, если попытаться дискретизировать сигнал с частотой более 9615 Гц, то возникнет зеркальный эффект. Не впадая в глубокое математическое описание этого эффекта, рассмотрим итог аналоговоцифрового преобразования на частоте 12000 Гц. (12000 - 9615) = 2385 Гц. Так что при 12000 Гц будет 2385 Гц поверх частоты Найквиста, результирующая волна будет 7230 Гц (9615 – 2385).То есть, АЦП будет оцифровывать сигнал с частотой 12000 ГЦ как 7230 Гц. Поскольку программа и устройство корректно отображает спектральный анализ входного сигнала, можно с уверенностью предположить, что алиасинг – это не такая уж большая проблема, о которой стоит волноваться. 22 Однако, для борьбы с алиасинг эффектом и более точной работы устройства на любых входных данных необходимо ставить фильтр нижних частот, который встроен в любую современную аудио- и видеотехнику. 4.3 Стабилизация работы устройства Так как, в устройстве присутствует такие радиоэлементы как светодиоды и кнопка переключения, был произведен расчет резисторов, а также программная «защита от дребезга» переменными ScanPeriodButton, bButton и bOldButton. В силу природы возникновения дребезг контакта, который возникает при замыкании коммутатора, имеет определенное среднее время возникновения, равное 5 мс. Для предотвращения этого явления, было выбрано значение переменной ScanPeriodButton = 4, и, как упоминалось ранее, TIMER1_COMPB_vect работает на частоте 244 Гц или каждые 4,1 мс. Отсюда следует, что время возникновения опроса кнопки равно 4*4,1 = 16,4 мс, т.е. более чем в 3 раза времени потенциального размыкания коммутатора, что сводит к минимуму неправильную работу кнопки переключения режимов. Основное уравнение для расчета резисторов представлено в формуле (1). 𝑅= (𝑈ИП −𝑈𝑉𝐷2 ) 𝐼𝑉𝐷2 = 5−3,5 0,02 = 75 Ом (1) где R – сопротивление резистора, Ом; Uип – напряжение источника питания, В; Uvd2 – падение напряжение на светодиоде, В; Ivd2 – номинальный ток потребления светодиода, А; Также, для стабилизации работы микроконтроллера, программно была создана проверка наличия входного сигнала переменными no_audio и pause. При его отсутствии прекращается выполнение основного тела программы, и производится переход работы в таймер TIMER1_COMPB_vect. В нем же реализована «защита от дребезга» кнопки и эффект бегущих огней, который можно наблюдать при отсутствии аудио сигнала. 23 ЗАКЛЮЧЕНИЕ В результате выполнения научно-исследовательской работы было разработано программное устройство для получения спектрального анализа звукового сигнала на основе микроконтроллера ATMEGA328P. В ходе работы были сделаны следующие выводы: разрешение по частоте F, получаемое при спектральном анализе с помощью БПФ, вычисляется по формуле (1): F = Fs/(13*Т), где Т – делитель АЦП, 13 – тактовая скорость преобразования АЦП, Fs – частота работы МК. частота дискретизации должна удовлетворять условиям теоремы Котельникова, то есть быть как минимум в 2 раза больше максимально необходимого для спектрального анализа частотного компонента входного сигнала. Также было проведено исследование полученного программного устройства. В результате были выявлены следующие достоинства и недостатки: достоинства: 1) простота использования и монтажа, для потенциального внедрения в иные системы и проекты; 2) реализация в проекте ШИМ и различных режимов отображения спектра позволяет детально отобразить частотную составляющую входного сигнала, и, в целом, возможности спектрального анализа; недостатки: 1) выходные данные полностью зависят от номинального уровня напряжения входного сигнала; 2) невозможность отобразить спектр входного сигнала более 9615 Гц; В целом, поставленные цели и задачи были достигнуты. Данное устройство удовлетворяет всем функциональным требованиям для получения спектрального анализа звукового сигнала. 24 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 1 IESNA Lighting Handbook, 9th Edition, (New York; IESNA, 2000), 27- 4. – URL: http://www.getchip.net/wp-content/uploads/Measured_vs_Perceived.pdf (дата обращения 2020-03-25). 2 Brent Edstrom. Arduino for Musicians: A Complete Guide to Arduino and Teensy Microcontrollers –Oxford University Press, 2016. – 304 с. 3 Важенин В.Г., Марков Ю.В., Лесная Л.Л., Аналоговые устройства на операционных усилителях : учебное пособие / Под общей редакцией Важенина В.Г. – Екатеринбург: Издательство Уральского университета, 2014. – 107 с. 4 Фолкенберри Л. Применения операционных усилителей и линейных интегральных схем: Пер. с англ. – М.: Мир, 1985. – 572 с., ил. 5 Лебедев Е.К. Быстрые алгоритмы цифровой обработки сигналов. – Красноярск, Красноярский университет, 1989. – 192 с. 6 Сергиенко А.Б. Цифровая обработка сигналов 2-е издание. Учебник для вузов. – СПб.: Питер, 2007. – 751 с. 7 Баскаков С.И. Радиотехнические цепи и сигналы: Учебник для вузов. -М.: Высшая школа, 2000. -462 с 8 Солонина А.И. и др. Основы цифровой обработки сигналов. Учебное пособие. - СПб.: БХВ Петербург, 2005. - 768 с. 25 ПРИЛОЖЕНИЕ А. ПРИНЦИПИАЛЬНАЯ СХЕМА УСТРОЙСТВА Рисунок А.1 – Принципиальная схема устройства 26