Министерство науки и образования Российской Федерации

Вид материалаРеферат

Содержание


1.6 Сжатие электрокардиограммы
1.7 Среда программирования
Подобный материал:
1   2   3   4   5   6   7

1.6 Сжатие электрокардиограммы


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

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

В системах цифровой передачи данных сокращение объема передаваемых данных снижает требования к пропускной способности канала связи, что особенно актуально для телефонных линий связи.

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

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

Среди существующих методов сжатия данных можно выделить группу методов, основанных на разложении сигнала по ортогональным функциям. Применение для целей сжатия разложения Карунена—Лоэва, ряда Фурье, преобразования Хаара позволяет достигать высоких коэффициентов сжатия, однако требует большого объема вычислений. Кроме того, возникает проблема предварительного выделения сердечного цикла, что затрудняет реализацию этих методов в системах реального времени. Такое сжатие используется для хранения ЭКГ в автоматизированных архивах и передачи ЭКГ на расстояние, когда нет жестких требований к сложности алгоритмов обработки и скорости вычислений.

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

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

Среди методов описания сигнала специальными функциями известен метод кодирования ЭКС нерегулярными отсчетами. Задача аппроксимации рассматривается здесь как определение оптимального набора восстанавливающих фильтров с выбором из них линейно-независимых, которые определяют номера существенных отсчетов сигнала. Благодаря такому способу кодирования удается достичь коэффициентов сжатия порядка 15—20 в зависимости от сложности исходных кривых ЭКГ. Успешно применяют для сжатия ЭКС аппроксимацию сигнала кубическими сплайнами. Разработанный способ построения сглаживающего кубического сплайна с адаптивным подбором шага на сетке узлов обеспечивает сокращение объема данных в 3—14 раз. Указанные методы сжатия сигнала с применением специальных функций представляются перспективными для обработки ЭКС в текущем режиме, однако в настоящее время считаются сложными для реализации из-за большого объема вычислений.


1.7 Среда программирования


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

Для решения поставленной передо мной задачи я выбрала программный продукт MATLAB. MATLAB — одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций. Это нашло отражение в названии системы — MATrix LABoratory — матричная лаборатория. Однако синтаксис языка программирования системы продуман настолько тщательно, что эта ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления. Матрицы широко применяются в сложных математических расчетах, например при решении задач линейной алгебры и математического моделирования статических и динамических систем и объектов. Они являются основой автоматического составления и решения уравнений состояния динамических объектов и систем. Примером может служить расширение MATLAB — Simulink. Однако в настоящее время MATLAB далеко вышла за пределы специализированной матричной системы и стала одной из наиболее мощных универсальных интегрированных СКМ (Система Компьютерной Математики). Слово «интегрированная» указывает на то, что в этой системе объединены удобная оболочка, редактор выражений и текстовых комментариев, вычислитель и графический программный процессор. В новой версии используются такие мощные типы данных, как многомерные массивы, массивы ячеек, массивы структур, массивы Java и разреженные матрицы, что открывает возможности применения системы при создании и отладке новых алгоритмов матричных и основанных на них параллельных вычислений и крупных баз данных. В целом MATLAB — это уникальная коллекция реализаций современных численных методов компьютерной математики, созданных за последние три десятка лет. Она вобрала в себя и опыт, правила и методы математических вычислений, накопленные за тысячи лет развития математики. Это сочетается с мощными средствами графической визуализации и даже анимационной графики. Систему с прилагаемой к ней обширной документацией вполне можно рассматривать как фундаментальный многотомный электронный справочник по математическому обеспечению ЭВМ — от массовых персональных компьютеров до супер-ЭВМ.

Система MATLAB была разработана Молером (С. В. Moler) и с конца 70-х гг. широко использовалась на больших ЭВМ. В начале 80-х гг. Джон Литл (John Little) из фирмы MathWorks, Inc. разработал версии системы PC MATLAB для компьютеров класса IBM PC, VAX и Macintosh. В дальнейшем были созданы версии для рабочих станций Sun, компьютеров с операционной системой UNIX и многих других типов больших и малых ЭВМ. Сейчас свыше десятка популярных компьютерных платформ могут работать с системой MATLAB. К расширению системы были привлечены крупнейшие научные школы мира в области математики, программирования и естествознания. И вот теперь появилась новейшая версия этой системы — MATLAB 6. Одной из основных задач системы было предоставление пользователям мощного языка программирования, ориентированного на математические расчеты и способного превзойти возможности традиционных языков программирования, которые многие годы использовались для реализации численных методов. При этом особое внимание уделялось как повышению скорости вычислений, так и адаптации системы к решению самых разнообразных задач пользователей.

Возможности MATLAB весьма обширны, а по скорости выполнения задач система нередко превосходит своих конкурентов. Она применима для расчетов практически в любой области науки и техники. Например, очень широко используется при математическом моделировании механических устройств и систем: в динамике, гидродинамике, аэродинамике, акустике, энергетике и т. д. Этому способствует не только расширенный набор матричных и иных операций и функций, но и наличие пакета расширения (toolbox) Simulink, специально предназначенного для решения задач блочного моделирования динамических систем и устройств, а также десятков других пакетов расширений. В обширном и постоянно пополняемом комплексе команд, функций и прикладных программ (пакетов расширения, пакетов инструментов, (toolbox)) системы MATLAB содержатся специальные средства для электротехнических и радиотехнических расчетов (операции с комплексными числами, матрицами, векторами и полиномами, обработка данных, анализ сигналов и цифровая фильтрация), обработки изображений, реализации нейронных сетей, а также средства, относящиеся к другим новым направлениям науки и техники.

Новейшая версия системы MATLAB 6 не только имеет перечисленные выше возможности предшествующих версий, но и характеризуется целым рядом новых и важных возможностей:
  • доведенное до более чем 600 число встроенных функций и команд;
  • новый интерфейс с набором инструментов для управления средой, включающий в себя окно команд (Command Window), окно истории команд (Command History), браузер рабочей области (Workspace Browser) и редактор массивов (Array Editor);
  • новые инструменты, позволяющие при помощи мыши интерактивно редактировать и форматировать графики, оптимизировать их коды и затраты памяти на графические команды и атрибуты;
  • улучшенные алгоритмы на основе оптимизированной библиотеки LAPACK;
  • новая библиотека FFTW (быстрых преобразований Фурье) Массачусетского технологического института Кембриджского университета (США);
  • ускоренные методы интегральных преобразований;
  • новые, более мощные и точные, алгоритмы интегрирования дифференциальных уравнений и квадратур;
  • новые современные функции визуализации: вывод на экран двумерных изображений, поверхностей и объемных фигур в виде прозрачных объектов;
  • новая инструментальная панель Camera для управления перспективой и ускорение вывода графики с помощью OpenGL;
  • новый интерфейс для вызова Java-процедур и использования Java-объектов непосредственно из MATLAB;
  • новые, современные инструменты проектирования графического пользовательского интерфейса;
  • обработка (регрессия, интерполяция, аппроксимация и вычисление основных статистических параметров) графических данных прямо из окна графики;
  • новое приложение MATLAB для системы разработки Visual Studio, позволяющее автоматически, непосредственно из Microsoft Visual Studio, преобразовывать Си и Си++ коды в выполняемые MATLAB файлы (МЕХ-файлы);
  • интеграция с системами контроля версий кода, такими как Visual Source Safe;
  • новый интерфейс (последовательный порт) для обмена данными с внешним оборудованием из MATLAB;
  • новый пакет управления измерительными приборами (Instrument Control ToolBox) для обмена информацией с приборами, подключенными к Каналу общего пользования (GPIB, HP-IB, IEEE-488)[ Существует аналогичные международные МЭК (IEC) 625.1 и российские государственные стандарты. Несмотря на логическую и электрическую совместимость, международные и отечественные стандарты предполагают использование других разъемов. — Примеч. ред. или к шине VXI через адаптер VXI — GPIB (только в версиях для Windows и Sun Solaris) и последовательному интерфейсу RS-232, RS-422, RS-485 (также и для Linux-версии), в том числе в соответствии со стандартом VISA (Virtual Instruments Systems Application) (Применение виртуальных измерительных приборов);
  • существенно обновленные пакеты расширения, в частности новые версии пакета моделирования динамических систем Simulink 4 и Real Time Workshop 4;
  • интеграция с системами управления потребностями, например DOORS.
    Поставляемый с системой MATLAB 6.0 новый пакет расширения Simulink 4 также имеет ряд новинок. Они перечислены ниже по категориям.
  • Усовершенствование пользовательского интерфейса:
    • новый графический отладчик для интерактивного поиска и диагностики ошибок в модели;
    • усовершенствован навигатор моделей (Model Browser, Windows 95/98/Me/ 2000/NT4);
    • новый однооконный режим для открытия подсистем;
    • контекстное меню для блок-диаграмм (открывается щелчком правой кнопки мыши) как в Windows, так и в Unix версиях;
    • новый диалог Finder для поиска моделей и библиотек.

Simulink поступает к пользователям с более 100 встроенными блоками, в состав которых входят наиболее необходимые функции моделирования. Блоки сгруппированы в библиотеки в соответствии с их назначением: источники сигнала, приемники, дискретные, непрерывные, нелинейные, математика, функции и таблицы, сигналы и системы. В дополнение к обширному набору встроенных блоков Simulink имеет расширяемую библиотеку блоков благодаря функции создания пользовательских блоков и библиотек. Вы можете настраивать не только функциональность встроенных и пользовательских блоков, но также пользовательский интерфейс, используя значки и диалоги. Например, вы можете создать блоки для моделирования поведения специальных механических, электрических и программных компонентов, как, например, моторы, преобразователи, серво-клапаны, источники питания, энергетические установки, фильтры, шины, модемы,
  • приемники или другие динамические компоненты. Однажды созданные пользовательские блоки могут быть сохранены в библиотеке блоков для использования в будущем. Любые пользовательские блоки или библиотеки блоков могут быть легально распространены в рабочих группах, переданы поставщикам и заказчикам как с исходным кодом, так и без него.
    Новые и улучшенные возможности блоков:
    • наряду с существовавшей ранее поддержкой скалярных и векторных сигналов обеспечена поддержка матричных сигналов многими блоками Simu-link;
    • блоки Product, Multiplication, Gain и Math Function теперь поддерживают матричные операции на матричных сигналах;
    • Мих и Demux блоки теперь поддерживают мультиплексирование матричных сигналов;
    • новый блок Reshape изменяет размер матрицы своего входного сигнала;
    • блок Probe теперь по умолчанию выводит размер матрицы сигнала, подаваемого на вход;
    • новый блок Bitwise Logical Operator (логические операции по битам) накладывает маску, инвертирует или производит логические операции с отдельными битами целочисленного сигнала без знака;
    • четыре новых блока Look-Up Table (просмотра таблиц);
    • новый Polynomial блок выводит полиномиальную функцию от входного сигнала.
  • Расширенная поддержка для крупных приложений:
    • новые объекты данных Simulink позволяют создавать специфические для приложений типы данных MATLAB;
    • новый графический пользовательский интерфейс Simulink Explorer для наблюдения и редактирования объектов данных Simulink;
    • усовершенствование блока Configurable Subsystems (конфигурируемые подсистемы);
    • новое меню выбора блока конфигурируемой подсистемы;
    • поддержка защиты интеллектуальной собственности с помощью S-функ-ций, позволяющая не передавать исходный код S-функций (требуется Real-Time Workshop 4.0 (Лаборатория реального времени)) [S-функция — пользовательский программный модуль, который определяет поведение Simulink блока. Simulink содержит шаблоны для создания S-функций с помощью существующих или разработанных заново кодов на Си, Ada (в версии Simulink 4.0/Real Workshop 4.0, нужен отдельный блок Real Workshop Ada Coder), Fortran или MATLAB. Созданную S-функцию вы можете включить в вашу модель, используя соответствующий ей блок Simulink—будь то стандартный или пользовательский. S-функции уменьшают время, необходимое для моделирования крупномасштабных систем, позволяя оперативно вставлять существующие коды в модель. Это, например, особенно важно, если система MATLAB+Simulink+Real Workshop+Real Time Windows Target используется для управления сложными объектами в реальном масштабе времени. Simulink обеспечивает многопортовую и многоскоростную поддержку и разрешает различные интервалы дискретизации (только S-функции на Си и MATLAB). — Примеч. ред.];
    • поддержка S-функций, кодируемых на языке ADA (требуется новый отдельный пакет Real Time Workshop Ada Coder);
    • улучшенная интеграция со Stateflow — пакетом инструментов моделирования систем, управляемых событиями, значительно усовершенствованный Stateflow Coder для генерации кода;
    • run-time сервер MATLAB для запуска программ MATLAB, в том числе в р-кодах, без установленной системы MATLAB;
    • улучшенная версия хРС Embedded Target для записи генерируемого кода не только на переносимые носители, но и в постоянные запоминающие устройства, твердотельные диски и на жесткий диск управляющего компьютера. Наряду с хРС поддерживаются другие платформы встроенных управляющих систем, включая VxWorks/Tornado (причем как UNIX, так и Windows хостом с MATLAB), Real Time Windows Target; Lynx Embedded OSEK Target, стандартизированную в автомобилестроении, DOS Target на управляющем компьютере Intel386 и старше (последняя только со снятым с производства компилятором Watcom Си/Си++ с расширителем DOS4GW.exe для DOS и несовместима с приложениями Windows). Но возможность работы без хоста с системой MATLAB (Stand-Alone) имеется только в хРС;
    • поддержка хРС Target стандартной полевой шины промышленной автоматизации CAN, возможность синхронизации хРС сигналами, поступающими по этой шине;
    • web-сервер, встроенный в хРС Target, позволяющий осуществлять управление встроенными компьютерами и просмотр их состояния при помощи браузеров Интернета (Microsoft Explorer 4.0 и старше и Netscape Navigator 4.5 и старше).

Важными достоинствами системы являются ее открытость и расширяемость. Большинство команд и функций системы реализованы в виде текстовых m-файлов (с расширением .m) и файлов на языке Си, причем все файлы доступны для модификации. Пользователю дана возможность создавать не только отдельные файлы, но и библиотеки файлов для реализации специфических задач[5].