Создание лаборатории сигналов и систем на базе смартфонов для студентов инженерных специальностей бакалавриата
Перевод статьи Creating a Smartphone-Based Signals and Systems Laboratory for Undergraduate Engineering Students.
Автор: Nasser Kehtarnavaz, University of Texas at Dallas.
Создание лаборатории сигналов и систем на базе смартфонов для студентов инженерных специальностей бакалавриата
Все студенты бакалавриата электротехники в Техасском университете в Далласе обязаны пройти курс по сигналам и системам. Мы дополняем этот курс третьего курса лабораторной работой, которая дает студентам возможность реализовать концепции, которые они изучают на лекциях.
В течение последних нескольких лет я преподавал в лаборатории сигналов и систем 3102 (3102 Signals and Systems Laboratory) с углублением на практическое кодирование. Студенты выполняют задания по свертке, рядам Фурье, преобразованию Фурье и другим ключевым сигналам и системным концепциям, написав короткие программы MATLAB. Недавно я добавил новое измерение в лабораторию: студенты теперь используют MATLAB Coder для генерации кода C из своих программ MATLAB, чтобы позволить создавать мобильные приложения, которые они запускают на своих устройствах Android или iPhone.
Такой подход позволяет студентам выполнять лабораторные работы в любое время и в любом месте, а также дает им непосредственный опыт работы с аппаратными ограничениями и практическими проблемами внедрения. Это также добавляет интереса к курсу. В своих оценках лаборатории сигналов и систем студенты сообщили, что использование смартфонов увеличило их взаимодействие с материалом.
Вывод лабораторной работы из лаборатории
Немногие университеты имеют лаборатории, связанные с сигналами и системами, а те, которые имеют лаборатории, часто связаны с запуском кода MATLAB на настольных компьютерных платформах. Из-за ограничения количества компьютерных платформ в лабораторной комнате лабораторное время строго расписано. Только в прошлом семестре около 200 студентов третьего курса электротехнической и биомедицинской инженерии поступили в лабораторию сигналов и систем 3102 . Даже после создания 10 секций сложно найти лабораторное время и пространство для такого количества студентов.
Однако процессоры в мобильных устройствах, которые студенты приносят в класс каждый день, достаточно мощные, чтобы запускать алгоритмы обработки сигналов. Создавая лабораторные задания, которые используют собственные устройства студентов в качестве оборудования для обработки, я позволил студентам экспериментировать в любом месте и в любое время. Этому способствовала общая лицензия на академическую численность персонала, которая предоставляет студентам доступ к MATLAB на их собственных ноутбуках по всему кампусу.
Создание фреймворка для мобильных приложений обработки сигналов
Прежде чем я мог просить студентов с небольшим опытом программирования создавать мобильные приложения, мне нужно было дать им простой способ перевести их код MATLAB в код C. Мне также нужен был фреймворк, который они могли бы использовать для запуска кода C на мобильных устройствах.
Я выполнил первое требование с помощью Matlab Coder, который позволяет студентам генерировать эффективный код C для своих смартфонов из кода MATLAB, который они разрабатывают и отлаживают на своих ноутбуках. Чтобы удовлетворить второе требование, я разработал две программные оболочки, которые студенты могут устанавливать на свои мобильные устройства: одну для iOS, написанную на Objective C, и одну для Android, написанную на Java® (Рис.1).
Рисунок 1. Схема программных оболочек, используемых для запуска алгоритмов C на устройствах iPhone и Android.
Знакомство с MATLAB и базовым программированием
Поскольку немногие из студентов, обучающихся в лаборатории сигналов и систем, имеют опыт работы с MATLAB или компьютерным программированием, я начал курс с введения в принципы программирования в MATLAB. Студенты сначала изучают основные понятия программирования, включая арифметические и векторные операции, индексацию массивов, выделение памяти и поток управления. Затем я рассказываю о более продвинутых методах, которые им понадобятся для выполнения своих заданий, включая загрузку и сохранение данных, чтение файлов с данными и генерацию сигналов.
В течение следующих двух недель студенты практикуются в создании кода на языке C с помощью Matlab Coder и компиляции приложений в среде программирования смартфонов для своего конкретного устройства. Все материалы и задания взяты из книги, написанной для лабораторного курса, «В любом месте - в любое время Лаборатория сигналов и систем: от MATLAB до смартфонов».
Разработка приложений для свертки, рядов Фурье и преобразования Фурье
Первое мобильное приложение, которое разрабатывают студенты, предназначено для лабораторного задания по решению линейных инвариантных по времени систем (LTI) с помощью интеграла свертки. В этом задании системами для исследования LTI являются колебательные контуры. Студенты используют MATLAB для выполнения численной аппроксимации интеграла свертки и нахождения выходного напряжения или тока в ответ на заданное входное напряжение или ток. После разработки и тестирования своего решения в MATLAB студенты генерируют код на языке C с помощью Matlab Coder. Затем они компилируют этот код C вместе с оболочками для конкретных устройств, которые я предоставляю им для создания приложения для своих мобильных устройств (Рис.2).
Рисунок 2. Мобильное приложение, разработанное для лаборатории по линейным инвариантным по времени системам и свертке.
Далее студенты исследуют суммирование рядов Фурье и восстановление периодических сигналов. Они узнают, что, если они знают отклик линейной схемы на один синусоидальный входной сигнал, они могут получить отклик на любой периодический сигнал, разложив его на синусоидальные сигналы и выполнив линейную суперпозицию синусоидальных сигналов. Как и в предыдущем задании, студенты сначала разрабатывают алгоритм, демонстрирующий этот принцип в MATLAB, а затем используют Matlab Coder для реализации этого алгоритма в коде C для мобильного приложения (Рис.3).
Рисунок 3. Мобильное приложение для лаборатории рядов Фурье.
В остальных лабораторных заданиях студенты используют этот же процесс для создания приложений, демонстрирующих их способность использовать преобразования Фурье для шумоподавления и амплитудной модуляции, а также выполнять аналого-цифровые и цифроаналоговые преобразования с помощью дискретизации сигнала, квантования и реконструкции.
Создавая лабораторные задания, я хотел бросить вызов студентам, не подавляя их. Поскольку студенты были новичками в программировании, важно было сосредоточиться на применении сигналов и системных принципов вместо того, чтобы работать с помощью сложных упражнений по программированию. Например, я разрешил им использовать функции conv()
и fft()
в MATLAB вместо того, чтобы писать свои собственные алгоритмы свертки и преобразования Фурье.
Когда я вижу понимание на лицах моих учеников, я знаю, что этот подход сработал. Некоторые студенты, например, задаются вопросом, зачем им нужно переходить в частотную область с преобразованием Фурье, если они уже решили систему со сверткой. Когда они видят проблемы, с которыми сталкиваются, поскольку фреймы становятся все длиннее и длиннее, и они больше не могут использовать свертку, они точно видят, почему это необходимо.
С помощью Matlab Coder я могу обеспечить практические занятия, которые позволят студентам испытать и преодолеть проблемы, связанные с реализацией реальных решений в реальном мире. Поступая таким образом, я добиваюсь лучших результатов и вовлеченности студентов.
Об авторе
Доктор Насер Кехтарнаваз (Nasser Kehtarnavaz) - выдающийся профессор кафедры электротехники и вычислительной техники Техасского университета в Далласе имени Эрика Йонссона. Его научные направления включают обработку сигналов и изображений, реализацию в реальном времени на встроенных процессорах, биомедицинский анализ сигналов и изображений, а также машинное обучение. Он является автором или соавтором 10 книг и более 350 журнальных статей, докладов конференций, патентов, руководств и редакционных статей в этих областях.
Доктор Кехтарнаваз был пионером и внедрил несколько инновационных подходов для студентов, чтобы обучать практическим аспектам реализации концепций обработки сигналов. Доктор Кехтарнаваз является членом IEEE, членом SPIE, лицензированным профессиональным инженером и главным редактором журнала обработки изображений в реальном времени (Journal of Real-Time Image Processing).
Комментарии