• Регистрация
Aleksey1123581347112
Aleksey1123581347112 +4.82
н/д

Создание лаборатории сигналов и систем на базе смартфонов для студентов инженерных специальностей бакалавриата

14.09.2020

Перевод статьи 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.

Рисунок 1. Схема программных оболочек, используемых для запуска алгоритмов C на устройствах iPhone и Android.

 

Знакомство с MATLAB и базовым программированием

Поскольку немногие из студентов, обучающихся в лаборатории сигналов и систем, имеют опыт работы с MATLAB или компьютерным программированием, я начал курс с введения в принципы программирования в MATLAB. Студенты сначала изучают основные понятия программирования, включая арифметические и векторные операции, индексацию массивов, выделение памяти и поток управления. Затем я рассказываю о более продвинутых методах, которые им понадобятся для выполнения своих заданий, включая загрузку и сохранение данных, чтение файлов с данными и генерацию сигналов.

В течение следующих двух недель студенты практикуются в создании кода на языке C с помощью Matlab Coder и компиляции приложений в среде программирования смартфонов для своего конкретного устройства. Все материалы и задания взяты из книги, написанной для лабораторного курса, «В любом месте - в любое время Лаборатория сигналов и систем: от MATLAB до смартфонов».

Разработка приложений для свертки, рядов Фурье и преобразования Фурье

Первое мобильное приложение, которое разрабатывают студенты, предназначено для лабораторного задания по решению линейных инвариантных по времени систем (LTI) с помощью интеграла свертки. В этом задании системами для исследования LTI являются колебательные контуры. Студенты используют MATLAB для выполнения численной аппроксимации интеграла свертки и нахождения выходного напряжения или тока в ответ на заданное входное напряжение или ток. После разработки и тестирования своего решения в MATLAB студенты генерируют код на языке C с помощью Matlab Coder. Затем они компилируют этот код C вместе с оболочками для конкретных устройств, которые я предоставляю им для создания приложения для своих мобильных устройств (Рис.2).

Рисунок 2. Мобильное приложение, разработанное для лаборатории по линейным инвариантным по времени системам и свертке.

Рисунок 2. Мобильное приложение, разработанное для лаборатории по линейным инвариантным по времени системам и свертке.

 

Далее студенты исследуют суммирование рядов Фурье и восстановление периодических сигналов. Они узнают, что, если они знают отклик линейной схемы на один синусоидальный входной сигнал, они могут получить отклик на любой периодический сигнал, разложив его на синусоидальные сигналы и выполнив линейную суперпозицию синусоидальных сигналов. Как и в предыдущем задании, студенты сначала разрабатывают алгоритм, демонстрирующий этот принцип в MATLAB, а затем используют Matlab Coder для реализации этого алгоритма в коде C для мобильного приложения (Рис.3).

Рисунок 3. Мобильное приложение для лаборатории рядов Фурье.

Рисунок 3. Мобильное приложение для лаборатории рядов Фурье.

 

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

Создавая лабораторные задания, я хотел бросить вызов студентам, не подавляя их. Поскольку студенты были новичками в программировании, важно было сосредоточиться на применении сигналов и системных принципов вместо того, чтобы работать с помощью сложных упражнений по программированию. Например, я разрешил им использовать функции conv() и fft() в MATLAB вместо того, чтобы писать свои собственные алгоритмы свертки и преобразования Фурье.

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

С помощью Matlab Coder я могу обеспечить практические занятия, которые позволят студентам испытать и преодолеть проблемы, связанные с реализацией реальных решений в реальном мире. Поступая таким образом, я добиваюсь лучших результатов и вовлеченности студентов.

Об авторе

Доктор Насер Кехтарнаваз (Nasser Kehtarnavaz) - выдающийся профессор кафедры электротехники и вычислительной техники Техасского университета в Далласе имени Эрика Йонссона. Его научные направления включают обработку сигналов и изображений, реализацию в реальном времени на встроенных процессорах, биомедицинский анализ сигналов и изображений, а также машинное обучение. Он является автором или соавтором 10 книг и более 350 журнальных статей, докладов конференций, патентов, руководств и редакционных статей в этих областях.

Доктор Кехтарнаваз был пионером и внедрил несколько инновационных подходов для студентов, чтобы обучать практическим аспектам реализации концепций обработки сигналов. Доктор Кехтарнаваз является членом IEEE, членом SPIE, лицензированным профессиональным инженером и главным редактором журнала обработки изображений в реальном времени (Journal of Real-Time Image Processing).

Теги

    14.09.2020

    Комментарии