Книга
Книга
Digital Signal Processing
A Practical Approach
Second edition
Emmanual C. Ifeachor
University of Plymouth
Barrie W. Jervis
Sheffield Hallam University
PrenticePrenticeHallHall
Prentice
Prentice
Hall
Hall
An imprint of Pearson Education
Harlow, England • London • New York • Reading, Massachusetts * San Franciaco • Toronto • Don Mills, Ontario ♦ Sydney Tokyo • Singapore • Hong Cong • Seoul • Taipei • Cape Town • Madrid • Mexico City • Amsterdam • Munich • Paris • Milan
Цифровая обработка
СИГНАЛОВ
Практический подход
Второе издание
Эммануил Айфичер
Плимутский университет
Барри Джервис
Университет Шеффилда Халлама
Москва • Санкт-Петербург ■ Киев 2004
ББК 32.973.26-018.2.75
А36
УДК 681.3.07
Издательский дом “Вильямс”
Зав. редакцией С.Н. Тригуб
Перевод с английского И.Ю. Дорошенко, А.В. Назаренко
Под редакцией А.В. Назаренко
Научный консультант В.Ю. Чех
По общим вопросам обращайтесь в Издательский дом “Вильямс” по адресу:info@williamspublishing.com, http://www.williamspublishing.com
Айфичер, Эммануил С., Джервис, Барри У.
А36 Цифровая обработка сигналов: практический подход, 2-е издание. : Пер. с англ. — М.: Издательский дом “Вильямс”, 2004. — 992 с.: ил. — Парал. тит. англ.
ISBN 5-8459-0710-1 (рус.)
Данная книга предназначена в первую очередь для практиков — инженеров-электронщиков, программистов, людей, занимающихся техникой связи, вычислительными и электронными устройствами. Хотя теоретические основы и изложены в необходимом объеме (не зная основных принципов, работать с цифровыми системами невозможно), основной акцент все же делается на практической разработке современных цифровых устройств, которые можно будет использовать в военной сфере и биомедицине, телекоммуникациях и проигрывателях компакт-дисков, обработке изображений и цифровом телевидении. Для более полного усвоения излагаемого материала в книге подробно разбираются примеры, приводится справочная информация и предлагаются задачи для самостоятельного решения.
Данную книгу можно использовать как учебник при подготовке прикладных специалистов.
ББК 32.973.26-018.2.75
Все названия программных продуктов являются зарегистрированными торговыми марками соответствующих фирм.
Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами, будь то электронные или механические, включая фотокопирование и запись на магнитный носитель, если на это нет письменного разрешения издательства Pearson Education Limited.
Authorized translation from the English language edition published by Addison Wesley, Copyright © 1993, 2002
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher.
Russian language edition published by Williams Publishing House according to the Agreement with R&I Enterprises International, Copyright © 2004
ISBN 5-8459-0710-1 (pyc.)ISBN 0-201-59619-9 (англ.)ISBN 5-8459-0710-1 (pyc.)ISBN 0-201-59619-9 (англ.)© Издательский дом “Вильямс”, 2004
ISBN 5-8459-0710-1 (pyc.)
ISBN 0-201-59619-9 (англ.)
ISBN 5-8459-0710-1 (pyc.)
ISBN 0-201-59619-9 (англ.)
© Pearson Education Limited, 1993, 2002
Содержание
Предисловие17
Введение27
Цифровая обработка сигналов и ее преимущества27
Области применения29
Ключевые операции ЦОС31
Свертка31
Корреляция33
Цифровая фильтрация34
Дискретные преобразования36
Модуляция38
Процессоры для цифровой обработки сигнала38
Обзор реальных областей применения ЦОС39
Применение ЦОС при записи и воспроизведениизвука39
Цифровое микширование39
Синтез и распознавание речи41
Цифровая аудиосистема воспроизведениякомпакт-дисков44
Применение ЦОС в телекоммуникации48
Цифровые сотовые мобильные телефоны48
Приставка для приема цифрового телевизионного сигнала53
Адаптивное телефонное эхоподавление53
Применение ЦОС в биомедицине55
Изучение ЭКГ плода56
Анестезия с регулированием по замкнутому циклу на основе ЦОС 58
Резюме61
Аналоговый интерфейс ввода-вывода для систем ЦОС реального времени63
Характерные системы ЦОС реального времени64
Процесс преобразования аналогового сигнала в цифровой65
Дискретизация — низкочастотные и полосовые сигналы66
Дискретизация низкочастотных сигналов67
Дискретизация полосовых сигналов82
Однородное и неоднородное квантование и кодирование90
Однородное квантование и кодирование (линейная импульснокодовая модуляция, ИКМ)92
Неоднородное квантование и кодирование (нелинейная ИКМ)94
Выборка с запасом по частоте при аналого-цифровом преобразовании 96
Введение96
Выборка с запасом по частоте и фильтры защиты от наложения спектров97
Выборка с запасомпочастотеиразрешающая способностьАЦП100
Применениевыборки с запасомпо частоте — однобитовыйАЦП104
Процесс цифроаналогового преобразования: восстановление сигнала 111
Цифроаналоговый преобразователь111
Фильтры защиты от зеркальных частот113
Выборка с запасом по частоте при цифроаналоговом преобразовании113
Цифроаналоговое преобразование с запасом по частоте в
проигрывателе компакт-дисков115
Ограничения обработки сигналов в реальном времени с аналоговыми входными/выходными сигналами117
Примеры применения118
Резюме118
Дискретные преобразования135
Введение135
Ряд Фурье137
Преобразование Фурье140
ДПФ и обратное ДПФ143
Свойства ДПФ150
Вычислительная сложность ДПФ152
Алгоритм быстрого преобразования Фурье с децимацией во временной области153
“Бабочка”158
Выполнение алгоритма160
Вычислительные преимущества БПФ163
Обратное быстрое преобразование Фурье163
Реализация БПФ165
БПФ с частотной децимацией165
Сравнение алгоритмов ВД и ЧД165
Модификации для увеличения скорости166
Другие дискретные преобразования166
Дискретное косинус-преобразование167
Преобразование Уолша168
Преобразование Адамара171
Вейвлетное преобразование173
Вейвлетный метод кратномасштабного анализа176
Представление сигнала с помощью сингулярностей: метод вейвлетного преобразования178
Применение ДКП: сжатие изображений183
Дискретное косинус-преобразование184
Квантование коэффициентов двумерного ДКП185
Кодирование185
Примеры186
Приложения195
Программа на С для прямого вычисления ДПФ195
Программа на С для двоичного БПФ с временной децимацией201
ДПФ и БПФ в программном пакете MATLAB204
Применение z-преобразования в обработке сигналов207
Сигналы и системы дискретного времени208
z-преобразование209
Обратное z-преобразование214
Метод степенных рядов215
Метод разложения на элементарные дроби217
Метод вычетов223
Сравнение различных методов обратного z-преобразования229
Свойства z-преобразования229
Некоторые области применения z-преобразования в обработке сигналов 232
Описание систем дискретного времени с помощью полюсов и нулей 232
Оценка частотной характеристики235
Геометрическая оценка235
Непосредственный компьютерный расчет частотной характеристики 239
Вычисление частотной характеристики с помощью БПФ240
Единицы измерения частоты, которые используются в системах дискретного времени240
Исследование устойчивости243
Разностные уравнения244
Оценка импульсной характеристики245
Применение в проектировании цифровых фильтров247
Структуры реализации цифровых фильтров248
Резюме252
Приложения261
А. Рекурсивный алгоритм вычисления обратного z-преобразования261
Б. Программа на С для оценки обратного z-преобразования
и превращения последовательной структуры в параллельную263
В. Программа на языке С для вычисления частотной характеристики269
Г. Операции z-преобразования с помощью программного пакета MATLAB 270
Корреляция и свертка281
Введение281
Описание корреляции282
Взаимная корреляция и автокорреляция288
Применение корреляции296
Быстрая корреляция306
Описание свертки311
Свойства свертки319
Круговая свертка320
Идентификация систем320
Обращение свертки322
Слепое обращение свертки323
Быстрая линейная свертка325
Вычислительные преимущества быстрой линейной свертки326
Свертка и корреляция путем сегментации327
Метод наложения-сложения329
Метод наложения-записи334
Вычислительные преимущества быстрой свертки через сегментацию337
Связь между сверткой и корреляцией338
Реализация корреляции и свертки339
Примеры применения339
Корреляция339
Свертка344
Резюме348
Приложение354
5.А. Программа на языке С для расчета взаимной корреляции и автокорреляции354
Схема разработки цифровых фильтров355
Введение в цифровые фильтры355
Типы цифровых фильтров: КИХ- и БИХ-фильтры357
Выбор между КИХ- и БИХ-фильтрами359
Этапы разработки фильтра362
Спецификация требований362
Расчет коэффициентов364
Представление фильтра подходящейструктурой366
Анализ влияния конечной разрядности367
Реализация фильтра371
Примеры372
Резюме377
Разработка фильтров с конечной импульсной характеристикой (КИХ-фильтров)381
Вступление382
Резюме по ключевым особенностям КИХ-фильтров382
Линейная фазовая характеристика и ее следствия382
Типы КИХ-фильтров с линейной фазовой характеристикой385
Разработка КИХ-фильтров388
Спецификации КИХ-фильтра389
Методы расчета коэффициентов КИХ-фильтров390
Метод взвешивания390
Некоторые распространенные весовые функции394
Метод взвешивания: резюме397
Плюсы и минусы метода взвешивания404
Оптимизационные методы405
Основные концепции406
Параметры, требуемые для использования оптимальной программы 409
Соотношения для оценки длины фильтра N409
Резюме по процедуре вычисления коэффициентов фильтра с помощью оптимального метода410
Примеры411
Метод частотной выборки418
Нерекурсивные фильтры частотной выборки418
Рекурсивные фильтры частотной выборки428
Фильтры частотной выборки с простыми коэффициентами429
Метод частотной выборки: резюме436
Сравнение метода взвешивания, оптимального метода и метода частотной выборки437
Разработка КИХ-фильтров — специальные вопросы439
Полуполосные КИХ-фильтры439
Преобразование частоты441
Вычислительно эффективные КИХ-фильтры443
Структуры реализаций КИХ-фильтров444
Трансверсальная структура445
Структура с линейной фазовой характеристикой446
Другие структуры447
Выбор структуры449
Влияние конечной разрядности на цифровые КИХ-фильтры450
Ошибки квантования коэффициентов451
Ошибки округления457
Ошибки переполнения458
Методы реализации КИХ-фильтров459
Пример разработки460
Резюме464
Примеры применения КИХ-фильтров464
Приложения481
Программы на С для разработки КИХ-фильтров481
Разработка КИХ-фильтра с помощью MATLAB485
. Метод взвешивания485
. Оптимизационные методы489
. Метод частотной выборки495
Разработка фильтров с бесконечной импульсной характеристикой (БИХ-фильтров)499
Вступление: резюме по основным характеристикам БИХ-фильтров500
Этапы разработки цифровых БИХ-фильтров501
Спецификация производительности502
Методы расчета коэффициентов БИХ-фильтров504
Расчет коэффициентов фильтра путем размещения нулей и полюсов 504
Основные концепции и пример разработки504
Расчет коэффициентов методом инвариантного преобразования
импульсной характеристики508
Основные концепции и пример разработки508
Метод инвариантного преобразования импульсной характеристики: резюме511
Метод инвариантного преобразования импульсной характеристики: замечания511
Расчет коэффициентов с помощью согласованного z-преобразования513
Основные концепции и примеры разработки513
Метод согласованного z-преобразования: резюме516
Метод согласованного z-преобразования: замечания516
Расчет коэффициентов с помощью билинейного z-преобразования517
Основные концепции и примеры разработки517
Метод билинейного z-преобразования: резюме519
Метод билинейного z-преобразования: замечания523
Использование для разработки БИХ-фильтров билинейного z-преобразования и классических аналоговых фильтров527
Характерные особенности классических аналоговых фильтров527
Методология билинейного z-преобразования с использованием
классических аналоговых фильтров530
Примеры разработки фильтров нижних частот, верхних частот, полосовых и режекторных535
Расчет коэффициентов БИХ-фильтра путем отображения полюсов
и нулей s-плоскости544
Основные концепции544
Примеры549
Использование программ разработки БИХ-фильтров553
Выбор метода расчета коэффициентов БИХ-фильтров554
Эффект Найквиста554
Структуры реализации цифровых БИХ-фильтров562
Практические стандартные блоки БИХ-фильтров562
Каскадная и параллельная реализации БИХ-фильтров больших порядков565
Влияние конечной разрядности на БИХ-фильтры569
Ошибки квантования коэффициентов570
Реализация БИХ-фильтров573
Требования к вычислениям573
Подробный пример разработки цифрового БИХ-фильтра574
Резюме579
Примеры использования БИХ-фильтров в цифровых аудиосистемах и измерительных приборах580
Цифровые аудиосистемы580
Цифровое управление580
Цифровые частотные осцилляторы582
Примеры применения БИХ-фильтров в связи582
Генерация и прием сигналов в цифровых кнопочных телефонах 583
Цифровая телефония: детектирование двухтонального многочастотного сигнала с использованием алгоритма Горцеля 585
Восстановление тактовой частоты в сфере передачи данных 590
Приложения605
8.А. Программы на С для разработки БИХ-фильтров605
Реализации на С инвариантного преобразования импульсной характеристики606
8.Б. Разработка БИХ-фильтров спомощьюMATLAB610
Вычисление квадратных корней из комплексных величин с использованием действительной арифметики627
Цифровая обработка сигналов при нескольких скоростях629
Введение629
Некоторые области промышленного применения обработки данных при нескольких скоростях630
Концепции обработки при нескольких скоростях632
Уменьшение частоты дискретизации: децимация с целым шагом 632
Увеличение частоты дискретизации: интерполяция с целым шагом 633
Преобразование частоты дискретизации с нецелым шагом635
Многокаскадное преобразование частоты дискретизации639
Разработка практических конвертеров частоты дискретизации640
Спецификация фильтра640
Требования к фильтрам отдельных каскадов642
Определение числа каскадов и шагов децимации643
Примеры разработки644
Программная реализация дециматоров652
Программа многокаскадной децимации653
9.4.2. Тестовый пример использования программы децимации
655
9.5. Программная реализация интерполяторов
655
9.5.1. Программа многокаскадной интерполяции
659
9.5.2. Тестовый пример
661
9.6. Преобразование частоты дискретизации с использованием многофазного
фильтра
663
9.6.1. Многофазная реализация интерполяторов
663
Примеры применения
Высококачественное аналого-цифровое преобразование
668
в цифровом аудио
9.7.2. Эффективное аналого-цифровое преобразование
669
в высококачественных системах воспроизведения компакт-дисков
669
Сбор высококачественных данных
Узкополосная цифровая фильтрация с обработкой при нескольких
671
скоростях
676
9.7.5. Узкополосный спектральный анализ с высоким разрешением
683
9.8. Резюме
683
Приложения
693
9.А. Программы на С для разработки и реализации систем обработки при
нескольких скоростях
693
9.Б. Цифровая обработка сигналов с помощью MATLAB
693
10. Адаптивные цифровые фильтры
699
10.1. Когда и где стоит использовать адаптивные фильтры
699
10.2. Концепции адаптивной фильтрации
701
10.2.1. Адаптивные фильтры как средство подавления шума
701
10.2.2. Другие конфигурации адаптивного фильтра
702
10.2.3. Основные компоненты адаптивного фильтра
702
10.2.4. Адаптивные алгоритмы
702
10.3. Основы теории фильтров Винера
705
10.4. Стандартный адаптивный алгоритм наименьших квадратов
708
Реализация стандартного алгоритма наименьших квадратов
Практические ограничения стандартного алгоритма наименьших
709
квадратов
712
10.4.3. Другие алгоритмы на основе схемы наименьших квадратов
715
10.5. Рекурсивный алгоритм наименьших квадратов
717
10.5.1. Рекурсивный алгоритм наименьших квадратов
718
10.5.2. Ограничения рекурсивного алгоритма наименьших квадратов
719
10.5.3. Алгоритмы факторизации
719
10.6. Сфера приложения 1 — адаптивная фильтрация окулярных артефактов
на ЭЭГ человека
720
10.6.1. Физиологическая задача
720
10.6.2. Алгоритм обработки артефактов
721
10.6.3. Реализация в реальном времени
723
Сфера приложения 2 — адаптивное телефонное эхоподавление723
Другие приложения725
Громкоговорящие телефоны725
Компенсация многолучевого распространения725
Адаптивное подавление преднамеренной помехи727
Обработка сигналов с радаров727
Отделение сигналов речи от фонового шума727
Наблюдение за плодом — подавление ЭКГ матери при родах728
Приложения731
Программа на С для адаптивной фильтрации731
10.А.1. Адаптивное выделение узкополосных сигналов, спрятанных в шуме732
Б. Программы MATLAB для адаптивной фильтрации736
Оценка и анализ спектра737
Введение737
Принципы оценки спектра740
Традиционные методы742
Подводные камни743
Взвешивание746
Метод и свойства периодограмм756
Методы модифицированных периодограмм759
Метод Блэкмена-Тьюки760
Метод быстрой корреляции761
Сравнение методов оценки спектральной плотности мощности 761
Современные параметрические методы оценки762
Авторегрессионная оценка спектра763
Авторегрессионная модель и авторегрессионный фильтр763
Спектральная плотность мощности авторегрессионного ряда 764
Расчет параметров модели — уравнения Юла-Уокера765
Решение уравнений Юла-Уокера767
Порядок модели769
Сравнение методов оценки770
Примеры применения770
Использование спектрального анализа с помощью ДПФ для различения болезнеймозга770
Спектральный анализ ЭЭГ с использованием авторегрессионного моделирования773
Резюме774
Разобранный пример774
Приложение781
11 .А. Программы MATLAB для оценкиианализа спектра781
Универсальные и специализированные процессоры ЦОС783
Вступление784
Компьютерные архитектуры обработки сигналов784
Гарвардская архитектура786
Конвейерная обработка788
Аппаратный умножитель-накопитель792
Специальные команды795
Средства дублирования798
Встроенная память/кэш799
Расширенный параллелизм — SIMD, VLIW и статическая суперскалярная обработка799
Универсальные процессоры ЦОС804
Процессоры ЦОС с фиксированной запятой805
Процессоры ЦОС с плавающей запятой815
Выбор цифрового процессора сигналов818
Реализация алгоритмов ЦОС на универсальных процессорах ЦОС820
Цифровая КИХ-фильтрация820
Цифровая БИХ-фильтрация829
Расчет БПФ836
Обработка при нескольких скоростях842
Адаптивная фильтрация845
Специализированная аппаратура ЦОС847
Аппаратные цифровые фильтры848
Аппаратные процессоры БПФ849
Резюме852
Приложение859
12.А. Программы на языке ассемблера TMS320 для обработки сигналов
в реальном времени и программа на языке С для двоичного БПФ
с постоянной геометрией859
Анализ эффектов конечной разрядности в системах ЦОС
с фиксированной запятой867
Вступление867
Арифметика ЦОС868
Арифметика с фиксированной запятой870
Арифметика с плавающей запятой874
Шум квантования АЦП и качество сигнала877
Эффекты конечной разрядности в цифровых БИХ-фильтрах880
Влияние структуры фильтра на эффекты конечной разрядности 881
Ошибки квантования коэффициентов884
Требования к длинам коэффициентов с точки зрения устойчивости и желаемой частотной характеристики886
Ошибки переполнения при сложении890
Принципы масштабирования892
Масштабирование при каскадной реализации895
Масштабирование в параллельной реализации896
Детектирование и предотвращение переполнения на выходе 898
Ошибки округления произведения в цифровых БИХ-фильтрах 898
Влияние ошибок квантования на производительность фильтра 900
Шум округления в каскадных и параллельных реализациях 904
Влияние шума округления произведения в современных системах ЦОС909
Схемы снижения шума округления910
Определение практических значений коэффициентов обратной связи по ошибке916
Граничный цикл вследствие ошибок округления произведений 921
Другие нелинейные явления922
Эффекты конечной разрядности в алгоритмах БПФ923
Ошибки округления в БПФ923
Ошибки переполнения и масштабирование в БПФ926
Квантование коэффициентов в БПФ927
Резюме928
Приложения933
Программа анализа эффектов конечной разрядности для БИХ-фильтров 933
Уравнения масштабных множителей Ь2933
Приложения и разобранные примеры935
Платы для демонстрации обработки сигналов в реальном времени935
Основы935
Целевая плата TMS320C10936
Демонстрационный модуль для ЦОС реального времени937
Демонстрационные платы TMS320C54 и DSP56300938
Приложения ЦОС939
Детектирование сердцебиения плода во время родов939
Адаптивное устранение окулярных артефактов с ЭКГ человека 948
Выравнивание цифровых аудиосигналов964
Модельные задачи967
Вопросы по ЦОС для компьютерных тестов975
Резюме983
Приложение986
Модифицированный алгоритм UD-факторизации986
Предисловие
Цель книги
На протяжении последних пяти лет цифровая обработка сигнала (digital signal processing — DSP, ЦОС) оказывает первостепенное и постоянно возрастающее влияние на такие ключевые технологические отрасли, как телекоммуникации, цифровое телевидение и средства информации, биомедицина и цифровая звукозапись. Сегодня ЦОС является ядром множества видов новейших цифровых разработок и различных приложений в информационном обществе (например, цифровая мобильная связь, цифровые видеокамеры, телевидение и системы звукозаписи). В современном мире от инженеров- электронщиков, программистов и связистов даже еще больше, чем во времена первого издания, ожидается и требуется умение работать с ЦОС. Теперь ЦОС — это основной предмет почти во всех курсах, посвященных технике связи, вычислительной и электронной технике.
Второе издание книги стало более современным благодаря тому, что в него вошли дополнительные темы, значение которых постоянно растет, и задачи, основанные на программном пакете MATLAB, а также благодаря наличию справочника-приложения и web-страницы. Эти дополнения появились как реакция на развитие программного обеспечения, расширение доступа к информационным технологиям, достижения в области обработки сигнала и спрос читателей. В высших учебных заведениях все чаще пользуются материалами из сети Internet и такими программными средствами обработки сигналов, как MATLAB. В частности, мы заметили постепенно возрастающий интерес у наших читателей к материалам, основанным на программном пакете MATLAB. Данный язык высокого уровня позволяет осуществлять сложную обработку сигнала и немедленно выводить результат на экран с помощью относительно небольшого числа команд. Можно получать удовольствие от обработки сигнала и решения задач, не отвлекаясь на написание подробных программ. Мы надеемся, что примеры из пакета MATLAB и упражнения, которые вы найдете в этой книге, помогут учащимся приобрести практические навыки и расширят возможности преподавателей.
Целью второго издания, как и первого, было проложить мостик от теории к практике. Поэтому главные особенности книги, — освещение современных тем и предоставление практических примеров и приложений — сохранились. Как и в первом издании,
практические примеры и программы чередуются с теорией, чтобы мотивировать излагаемый материал и поддерживать заинтересованность студентов на высоком уровне для повышения эффективности обучения. Многие главы были значительно переработаны и стали более современными и понятными. Увеличено число задач, предлагаемых в конце каждой главы для проверки, закрепления и дополнения усвоенного материала. При переработке книги мы исходили из собственного опыта и пожеланий читателей первого издания.
Введены такие новые темы: выборка с запасом по частоте (oversampling) и полосовая дискретизация (bandpass sampling) для преобразования аналогового сигнала в цифровой, позволяющие воспользоваться преимуществами ЦОС; вейвлетные преобразования (wavelet transforms), которые применяются при описании и разрешении сигналов в частотной и временной областях; слепое обращение свертки сигнала (blind signal deconvolution) для идентификации входного сигнала по выходу неизвестной системы; параметрическая оценка спектра для повышения разрешения коротких сигналов и уменьшения количества ошибок; архитектура новых процессоров ЦОС и практические советы по снижению шума, возникающего в результате округления, в системах ЦОС с фиксированной запятой; компьютерные вопросы с различными вариантами ответов для улучшения контроля. Многие примеры и упражнения, приведенные в книге, основаны на программном пакете MATLAB.
Эта книга возникла на основе нашего многолетнего опыта преподавания практических специализированных курсов по цифровой обработке сигнала студентам Плимутского университета и университета Шеффилда Халлама (Sheffield Hallam University) и специалистам по применению этих знаний на производстве. Оказалось, что многие из существующих учебников либо слишком элементарны, либо слишком теоретичны для применения в прикладной области. Большинство читателей из собственного опыта знают, насколько глубока пропасть между изучением теоретических основ любого предмета и реальным их воплощением. Поэтому возникло решение написать книгу, которую, как мы надеемся, поймут и оценят студенты, и которая поможет им справиться с практическими заданиями и дипломными проектами по цифровой обработке сигнала. Также мы надеемся, что много полезной информации почерпнут из этой книги и студенты более высокого уровня, и практикующие инженеры, и ученые.
При написании книги источником вдохновения служила также наша собственная исследовательская работа по прикладной цифровой обработке, которая велась на протяжении последних 25 лет, определяя практические вопросы для обсуждения.
Скорее всего, в обозримом будущем интерес к цифровой обработке сигнала будет расти, а ее развитие, как с промышленной, так и с академической точки зрения, будет продолжаться. Существование огромного количества процессоров для цифровой обработки сигналов свидетельствует о большом коммерческом значении ЦОС. Больше всего привлекает то, что цифровая обработка сигналов, позволяющая достичь высокой точности и идеальной воспроизводимости, по своей внутренней гибкости сравнима с аналоговой обработкой сигналов. На производстве многим инженерам все еще не хватает необходимых знаний и опыта работы, чтобы использовать безмерные возможности очень мощных процессоров цифровой обработки сигналов, доступных на сего-
дняшний день. Эта книга даст практические указания и поможет инженерам научиться с помощью таких средств проектировать и разрабатывать практические системы ЦОС.
С теоретической точки зрения ЦОС обычно считают одним из математических предметов электротехнического курса, но, исходя из нашего опыта преподавания, мы свели математические выкладки до того минимума, который посчитали важным, полезным и интересным; кроме этого, мы выделили вопросы, вызывающие определенные проблемы. Как показывает опыт, студенты учатся лучше, если знают о практической востребованности предмета. И хотя теоретические сведения, без сомнения, важны, мы считаем, что выпускники должны также владеть практическими знаниями и умениями. Эта книга была написана именно исходя из таких соображений.
Наша книга не является исчерпывающей работой по ЦОС, но в ней рассматривается большинство аспектов предмета, встречающихся в курсах электротехники, электроники и техники связи. Кроме того, здесь описан ряд методик ЦОС, особенно важных для производства, которые за последние несколько лет начали появляться в курсах обучения. К таким методикам относятся адаптивная фильтрация и обработка при нескольких скоростях.
В книге основное внимание уделяется практическим аспектам ЦОС. Не последнюю роль играет то, что во второе издание включены примеры из программного пакета MATLAB и упражнения по анализу, проектированию, исследованию и обработке сигналов при рациональных затратах времени. Выполнив упражнения из MATLAB, читатель приобретет более глубокие познания в области ЦОС. Поскольку примеры программ для ЦОС на языке С из первого издания оказались достаточно популярными, они также приводятся с незначительными изменениями.
Сегодня MATLAB широко используется в качестве общепринятого инструмента в науке и технике и требует меньших навыков программирования, чем язык С. Этот пакет обладает хорошими графическими и демонстрационными возможностями и обеспечивает неплохую среду для разработки ЦОС. Мы считаем, что студентам не помешало бы ознакомиться с программным пакетом MATLAB, а умение работать с ним — это весьма полезный навык. Все m-файлы из MATLAB, которые упоминаются в книге, доступны в электронном виде в сети Internet. Кроме того, m-файлы (как и программы на языке С из первого издания) есть и на компакт-диске справочника-приложения (см. ниже).
Основные преимущества этой книги
Обеспечивается понимание теоретических основ, реализации и применения методов ЦОС с практической точки зрения.
Книга написана ясно и просто, математические выкладки сведены до необходимого для восприятия минимума.
Методы ЦОС проиллюстрированы практически ориентированными реальными примерами с полным решением, разработанными для более глубокого понимания ЦОС.
Даются практические советы, чтобы читатели могли проектировать и разрабатывать настоящие системы ЦОС. Приводятся завершенные примеры разработки и практиче-
ские детали реализации, включая программы на языке ассемблера для процессоров ЦОС.
Приведены задачи и примеры из программного пакета MATLAB для приобретения практического опыта.
Предлагаются многие алгоритмы и функции ЦОС на языке С, в том числе программы для:
разработки фильтров с конечной импульсной характеристикой (КИХ-фильтров) и с бесконечной импульсной характеристикой (БИХ-фильтров);
анализа эффекта конечной длины слова для разрабатываемых пользователем БИХ- фильтров с фиксированной запятой;
перехода от каскадной структуры реализации к параллельной;
расчета корреляции;
алгоритмов дискретного и быстрого преобразований Фурье;
обратного z-преобразования;
оценки частотной характеристики;
разработки систем обработки при нескольких скоростях.
Компьютерные m-файлы для MATLAB доступны в электронном виде в сети Internet (программы на языке С можно найти на компакт-диске к книге [Ifeachor, 2001]; подробнее см. раздел “Web-сайт, компакт-диск и справочник-приложение” этого предисловия).
Степень усвоения материала помогают проверять задачи в конце каждой главы, а также вопросы с вариантами ответов.
Для иллюстрации важных принципов и укрепления приобретенных знаний используются реальные примеры.
Предполагаемый круг читателей
Эта книга предназначена для студентов, занимающихся наукой, техникой и программированием, а также для инженеров и ученых, которые хотят приобрести практические знания о ЦОС. В частности, студентам последнего курса, изучающим электронику, электрику или технику связи, эта книга поможет овладеть общими курсами обучения и написать курсовую работу, поскольку все больше и больше студенческих работ связано с теми или иными аспектами ЦОС. Книга может пригодиться и аспирантам, занимающимся указанными науками.
Теоретические вопросы будут очень привлекательны для студентов, и мы верим, что наша книга будет ценным источником информации как на протяжении всего курса обучения, так и потом, когда они начнут работать на производстве.
Данную книгу могут брать за основу большие коммерческие организации или государственные учреждения, которые проводят свои собственные краткие внутренние курсы обучения ЦОС. Мы надеемся, что эта книга послужит как хорошим учебником, так и ценным самоучителем для студентов, аспирантов и практикующих инженеров.
Содержание и структура
Первая глава представляет собой краткий обзор цифровой обработки сигналов и ее применения. Во второй главе с практической точки зрения и с использованием реальных примеров рассмотрены многие теоретические вопросы, которые служат основой ЦОС, в частности, дискретизация и квантование сигналов и их применение в современной цифровой обработке сигналов. По сравнению с предыдущим изданием в главу включены такие новые темы, как методика выборки с запасом по частоте при цифроаналоговом и аналого-цифровом преобразованиях, дискретизация полосовых сигналов, равномерное и неравномерное квантование. В этой главе вводится понятие сигналов и систем дискретного времени, но более подробно они рассматриваются в главе 4.
Дискретные преобразования, в частности дискретное (ДПФ) и быстрое (БПФ) преобразования Фурье, обеспечивают ЦОС необходимыми математическими аппаратами, а также связывают временную и частотную области. Они описаны в главе 3 вместе с несколькими примерами их применения на практике. Если выводить дискретное преобразование Фурье (ДПФ) из преобразования Фурье и экспоненциальных рядов Фурье, то можно получить логическое обоснование ДПФ, для которого не требуется знание дискретных рядов Фурье, изложение теории которых значительно увеличило бы толщину книги (и объем работы для студентов!). В нашем изложении мы ограничились лишь описанием и осуществлением преобразований. В частности, в этой главе не рассматривается вопрос взвешивания с помощью финитной функции (windowing), более подробно он освещен в главе И, касающейся спектрального анализа. Описан также важный пример применения дискретного косинус-преобразования (ДКП) — стандарта JPEG для сжатия изображения. В различных приложениях все чаще и чаще применяется вейвлетное преобразование, благодаря тому, что его можно применять к нестационарным сигналам и разрешать сигналы как по частоте, так и по времени. Описаны примеры применения анализа с разной разрешающей способностью и выявления сингулярностей для очистки сигнала от шума.
В главе 4 изложены основные сведения, касающиеся сигналов и систем дискретного времени. Рассказывается о важных моментах ^-преобразования — незаменимого средства для описания и анализа сигналов и систем дискретного времени. Обращается внимание на многие области применения ^-преобразования, например, говорится о его пользе при разработке, анализе и вычислении частотной характеристики сигналов и систем дискретного времени. Как и во всей книге, основные принципы и области применения ^-преобразования проиллюстрированы примерами с полным решением.
Корреляция и свертка — теоретические основы и темы, близко связанные с ЦОС, — описаны в главе 5. Авторы считают, что для ЦОС необходимо знать все, что есть в этой главе, но после предварительного ознакомления с ее содержанием можно посоветовать читателю расширять свои знания постепенно, изучая эту главу поэтапно. Для студентов этот процесс можно растянуть на несколько семестров. В настоящем издании сюда же включены дополнительные темы по идентификации систем, обращению свертки и слепому обращению свертки. Особенно интересно слепое обращение свертки, поскольку
оно позволяет с помощью максимизации информации определить неизвестный входной сигнал, измеряемый на выходе системы с неизвестной импульсной характеристикой.
В главах 6-8 с практической точки зрения подробно рассматривается один из самых важных моментов ЦОС — разработка цифровых фильтров. Эта тема достаточно обширная, и тем, кто впервые с ней сталкивается, может показаться чем-то непреодолимым. В главе 6 дается общая схема построения фильтра.
Методики создания КИХ-фильтров (фильтров с конечной импульсной характеристикой) от спецификации до реализации фильтра изложены в главе 7. Здесь же приведено несколько примеров с полным решением, позволяющих закрепить важные принципы. В этом издании в число дополнительных тем входит автоматическая разработка частотных КИХ-фильтров. Чтобы показать, как свести воедино все этапы разработки фильтра, полностью разобран пример разработки фильтра.
В главе 8 дано подробное описание разработки БИХ-фильтра, в основу которого положено простое пошаговое руководство. Эта глава была существенно переделана и дополнена. В частности, в результате обратной связи с читателями для большей ясности были переписаны разделы о вычислении коэффициентов и добавлены новые материалы для освещения важных вопросов по разработке БИХ-фильтров. Кроме того, глава содержит примеры с решениями, призванные помочь читателям в разработке БИХ-фильтров от спецификации до реализации. Даны примеры разработки с использованием как программного обеспечения MATLAB, так и языка С.
Мы уменьшили общий объем материала по разработке БИХ-фильтров, переместив рассмотрение эффектов конечной длины слова в главу 13. Таким образом, в главах 1-8 собран существенный материал для большинства курсов по ЦОС. Передовые идеи ЦОС изложены в последующих главах. Детальное изучение эффектов конечной длины слова сосредоточено в главе 13.
Методы обработки при нескольких скоростях привели к возникновению таких новейших приложений, как одноразрядные аналого-цифровые и цифроаналоговые преобразователи и цифровая фильтрация с запасом по частоте, которые используются в ряде современных цифровых систем, в том числе и в хорошо знакомом всем проигрывателе компакт-дисков. В главе 9 объясняются основные принципы обработки при нескольких скоростях, проиллюстрированные примерами с решениями и разработкой реальных систем. Материал этой главы был дополнен темой о многофазной фильтрации. В теорию введено больше примеров разработки и приложений, чтобы проиллюстрировать принципы работы и практические вопросы по разработке систем с обработкой при нескольких скоростях.
В главе 10 описаны ключевые аспекты адаптивных фильтров, в основе которых лежат метод наименьших квадратов (least-mean-squares — LMS) и рекурсивный метод наименьших квадратов (recursive least-square — RLS) — два алгоритма, которые чаще всего применяются в адаптивной обработке сигнала. Они изучаются с практической точки зрения, единственный теоретический момент внесен в основной текст главы.
В главе 11 рассматривается важная тема оценки и анализа спектров, которые применяются для описания и изучения сигналов в определенной частотной области. С появлением программных пакетов для параметрической оценки спектров будет уместным подробное знакомство с этими методами. Предложенные сигналы можно точно описать
моделями правильного порядка, а параметрическая оценка спектров применяется для уменьшения длины сигнала и оценки спектра с лучшим разрешением по сравнению с непараметрическими методами. Для иллюстрации метода приведен пример применения авторегрессионной оценки спектра ответных сигналов электроэнцефалограммы. Читатели, которых особенно интересует спектральный анализ, могут изучить и главу И, и главу 3, поскольку в главе И используются объяснения и примеры с решениями из главы 3. Кто овладеет информацией, изложенной в этих двух главах, будет хорошо разбираться в анализе сигналов в частотной области.
Последние 15 лет были годами огромного прогресса в области компьютерного оборудования для ЦОС, и это привело к тому, что недорогие цифровые процессоры стали общедоступными. Для успешного применения этих процессоров в ЦОС необходимо понять принципы, на основе которых разрабатывается оборудование и программное обеспечение для ЦОС. В главе 12 обсуждаются ключевые моменты основных процессоров ЦОС общего и специального назначения, влияние алгоритмов ЦОС на структуру оборудования и программного обеспечения для этих процессоров и структурные требования, необходимые для эффективного осуществления функций ЦОС. Материалы этой главы были дополнены в соответствии с новыми данными. В частности, обсуждаются такие новые архитектуры ЦОС, как архитектура с командными словами сверхбольшой длины и суперскалярная архитектура, новые процессоры для ЦОС с фиксированной и плавающей запятой (включая процессоры с фиксированной запятой от Texas Instruments, например, TMS320C54 и TMS320C62, процессоры с фиксированной запятой от Motorola DSP56300 и Analog Devices TigerSHARC IS0001).
В главе 13 представлен подробный анализ эффектов конечной длины слова в современных системах ЦОС с фиксированной запятой. В соответствующих местах для иллюстрации явления ухудшения рабочих характеристик при использовании арифметики с фиксированной запятой разобраны задачи.
Новая глава 14 (хотя в ней и остались некоторые материалы из первого издания) служит обучающим источником для преподавателей и студентов. Эта глава содержит описание недорогих плат ЦОС для реализации алгоритмов ЦОС и ряда реально существующих приложений в форме конкретных примеров. К числу других отличительных признаков относятся компьютерные вопросы с несколькими вариантами ответов, касающиеся основных моментов всех тем, изложенных в предыдущих главах. Эти вопросы незаменимы для повторения и выставления оценок в больших группах. В главе дается полное описание лабораторных работ и предлагаются идеи для дипломных работ.
Как пользоваться книгой
При преподавании студентам полезным будет такой подход: изложить материал глав 1 и 2, изучить такие фундаментальные понятия, как теорема о дискретном представлении, сигналы и системы дискретного времени, описать преимущества и области применения ЦОС. Затем можно ввести понятие дискретного преобразования, начиная с дискретного (ДПФ) и быстрого (БПФ) преобразований Фурье (глава 3) и z-преобразования (глава 4). Для иллюстрации применения ДПФ и БПФ можно частично воспользоваться
главами 5 и 11. Ознакомившись с корреляционной обработкой с помощью главы 5, следует подробно изучить цифровые фильтры.
Как показывает опыт, студенты учатся лучше, выполняя задания, взятые из реальной жизни. Исходя из этого, поощряются существенные задания по, например, разработке фильтров, обратному ^-преобразованию или ДПФ и БПФ. Кроме того, необходимы лабораторные работы для демонстрации методов и закрепления знаний по изученным темам. Важно, чтобы студенты не только посещали лекции, а были активными участниками процесса обучения.
Для студентов последних курсов и аспирантов подход может быть таким же, но скорость прохождения курса будет выше, кроме того, в него следует включить больше специализированных тем по обработке при нескольких скоростях и адаптивным фильтрам.
Web-сайт, компакт-диск и справочник-приложение
Дополнительную информацию об этой книге можно найти на web-сайте www.booksites.net/ifeachor.
С авторами, которые очень ждут ваших отзывов и пожеланий, можно связаться, используя ссылку “Contact us” на сайте www.booksites . net/ifeachor.
Электронные копии всех m-файлов MATLAB можно загрузить через сайт-приложение к данной книге на www.booksites . net/ifeachor.
В материалы входит ряд m-файлов MATLAB, которыми читатели могут пользоваться при выполнении заданий, подобно тому, как они могли это делать с некоторыми программами на языке С в первом издании. Предлагаемые m-файлы MATLAB, программы на языке С и коды на ассемблере также доступны на компакт-диске, который поставляется со справочником-приложением. Программы на языке С из первого издания (с небольшими изменениями) доступны как в виде исполняемых программ, так и в виде исходных кодов. Компилятор для языка С необходим только для запуска исходных кодов, а для запуска исполняемых кодов он не нужен. Программы были написаны на стандартном языке ANSI С под Borland Turbo С версии 2.0. Справочник-приложение A Practical Guide for MATLAB and C Language Implementation of DSP Algorithms, опубликованный издательством Pearson, вместе с компакт-диском можно приобрести отдельно. В приложениях к основной книге также содержится множество иллюстративных примеров использования m-файлов MATLAB и программ на языке С.
Благодарности
Мы были счастливы получить множество полезных комментариев и предложений от многих наших настоящих и бывших студентов, которые помогли улучшить техническую сторону книги и сделали ее понятнее. Мы благодарны им всем, а особенно Нику Отраму (Nick Outram), Эдди Риддингтону (Eddie Riddington), Робину Кларку (Robin Clark), Стиву Харрису (Steve Hanis), Брагиму Хамадишарефу (Brahim Hamadicharef),
Яну Шоли (Ian Scholey), Франку Аманду (Francois Amand), Николя Гейтеру (Nichola Gater), Роберту Рюсу (Robert Ruse) и Эндрю Поли (Andrew Paulley). Многие упражнения, особенно из главы 14, были разработаны для наших курсов ЦОС Ником Отрамом, Эдди Риддингтоном, Робином Кларком и Брагимом Хамадишарефом. Джеймса Бриттона (James Britton) мы благодарим за вычисления и графики в примерах глав 3 и И. Некоторые из наших бывших студентов дополнили наши курсы, работая на производстве. Огромное спасибо всем им, а особенно Робину Кларку и Нику Отраму за их стимулирующий вклад.
Авторы хотели бы выразить благодарность господину Майку Фрейзеру (Mike Fraser), который несколько лет тому назад был техническим сотрудником Плимутского университета, бывшему главному инженеру компании Rank Toshiba (Плимут). Его значительный опыт и ценные комментарии оказались чрезвычайно полезными. Также мы хотели бы поблагодарить его и Пола Смитсона (Paul Smithson) за разработку и создание плат для ЦОС по нашим исходным чертежам и разработку среды, в которой реализовывались и проверялись многие программы. Мы признательны за помощь и комментарии многим другим коллегам, особенно господину Питеру ван Итвелту (Peter Van Eetvelt) за вывод формул в приложениях 8В и 8Г.
Мы в большом долгу перед множеством читателей из научных и технических кругов по всему миру за неоценимую обратную связь, за то, что они потрудились обратить наше внимание на ошибки в первом издании и сообщить нам, что они думают о нашей книге. Мы очень надеемся, что и они, и другие, продолжат поддерживать с нами связь.
Практический характер книги не всегда позволяет вкладываться в намеченные сроки. Написание каждой главы заняло намного больше времени, чем мы планировали. Мы благодарны первому редактору, Тиму Питтсу (Tim Pitts), за терпение и поддержку. Мы в большом долгу перед Анной Фаерти (Anna Faherty), вторым редактором, за то, что она уговорила нас написать второе издание, и Карен Сюзерленд (Karen Sutherland), Джулией Найт (Julie Knight) и Мэри Линц (Mary Lince) за предварительное принятие проекта.
Наконец, авторы выражают особую благодарность своим семьям за терпение, преданность и поддержку на протяжении всего этого проекта, который отнимал очень много времени.
Эммануил. Айфичер (Emmanuel Ifeachor),
Барри Джервис (Barrie Jervis) март 2001 года
Благодарности издателя
Мы благодарны следующим владельцам авторских прав за возможность воспроизведения их материалов.
Компания Allen & Heath, Корнуолл любезно предоставила рис. 1.8; рис. 1.12 и рис. 1.15 взяты из журнала Philips Technical Review Vol. 40(6), который издает Konintlyke Philips Electronics N. V; рис. 8.37-8.39 взяты из статьи “Add DTMF generation and decoding to DSP-up designs” в журнале EDN Magazine Vol. 30, издаваемом Cahners Business
Information [Моск, R, 1985]; рис. 13.2 взят из журнала Journal of Audio Engineering Society Vol. 41(9), издаваемого Audio Engineering Society, Inc. ([Wilson, R, 1993]); табл. 7.11 и 7.18 адаптированы из журнала An Approach to the Approximation Problem for Nonrecursive Digital Filters, издаваемого The Institute of Electrical and Electronics Engineers Inc. [Rabiner, L. R., Gold, B., McGonegal, C. A., 1970]; рис. 14.12 перепечатан из Clinical Neurophysiology Ireland No. 38, D. G. Girton and A. J. Kamiya “Electroencephalography and Clinical Neurophysiology”, pp. 623-639, 1973, с разрешения Excerpta Medica Inc.
Хотя мы сделали все возможное, чтобы отследить владельцев авторских прав на материалы, использованные в данной книге, в некоторых случаях сделать это было просто невозможно, поэтому мы приносим официальные извинения, если невольно посягнули на чьи-то права.
От издательства
Вы, читатель этой книги, и есть главный ее критик и комментатор. Мы ценим ваше мнение и хотим знать, что было сделано нами правильно, что можно было сделать лучше и что еще вы хотели бы увидеть изданным нами. Нам интересно услышать и любые другие замечания, которые вам хотелось бы высказать в наш адрес. Мы ждем ваших комментариев и надеемся на них. Вы можете прислать нам бумажное или электронное письмо, либо просто посетить наш Web-сервер и оставить свои замечания там. Одним словом, любым удобным для вас способом дайте нам знать, нравится или нет вам эта книга, а также выскажите свое мнение о том, как сделать наши книги более интересными для вас. Посылая письмо или сообщение, не забудьте указать название книги и ее авторов, а также ваш обратный адрес. Мы внимательно ознакомимся с вашим мнением и обязательно учтем его при отборе и подготовке к изданию последующих книг. Наши координаты:
E-mail: info@williamspublishing. com
WWW: http: //www. williamspublishing. com
Информация для писем из:
России:115419, Москва, а/я 783
Украины: 03150, Киев, а/я 152
Введение
Цифровая обработка сигналов и ее преимущества ■■ 27
Области применения■29
Ключевые операции ЦОС. ■ ■31
Процессоры для цифровой обработки сигнала■ ■38
Обзор реальных областей применения ЦОС■"39
Применение ЦОС при записи и воспроизведении звука39
Применение ЦОС в телекоммуникации■48
Применение ЦОС в биомедицине55
|ljgi||He|||||g^
|рИММЙИ!1И1|М
Литература61
Дополнительная литература62
Цель этой главы — объяснить преимущества цифровой обработки сигналов, ознакомить читателя с главными операциями ЦОС, на которых в основном и построена цифровая обработка сигналов, и обозначить широкий диапазон областей ее применения. Для иллюстрации освещаемых концепций приводятся примеры из реальной жизни.
Цифровая обработка сигналов и ее преимущества
Под сигналом мы понимаем любую переменную, которая передает или содержит некий вид информации, и которую можно, например, переносить, выводить на экран или выполнять с ней какие-то действия. Особый интерес представляют такие типы сигналов:
речь, с которой мы имеем дело, например, при разговоре по телефону, прослушивании радио и в повседневной жизни;
биомедицинские сигналы, такие как электроэнцефалограмма (сигналы мозга);
звуки и музыка, подобные тем, что воспроизводит проигрыватель компакт-дисков;
видео- и телеизображения;
сигналы радаров, которые исследуют заданный диапазон и пеленгуют отдаленные цели.
ции из сигнала. Большинство сигналов, существующих в природе, являются по своей форме аналоговыми, что часто означает непрерывное изменение во времени, и описывающими изменение физических величин (например, звуковые волны). Сигналы, применяемые в ЦОС, обычно получаются из аналоговых сигналов, дискретизованных через равные интервалы времени и преобразованных в цифровой вид.
Обработка цифрового сигнала обычно нужна для устранения интерференции или шума, получения спектра данных или преобразования сигнала в более удобную форму. В настоящее время ЦОС используется во многих областях, где раньше применялись аналоговые методы, кроме того, появились совершенно новые области применения, где было сложно или невозможно пользоваться аналоговыми устройствами. Привлекательность ЦОС обусловлена такими основными преимуществами.
Гарантированная точность.Точносгь определяется только числом задействованных битов.
Совершенная воспроизводимость. Можно идентично воспроизвести каждый элемент, поскольку отсутствуют отклонения, обусловленные устойчивостью отдельных составляющих. Например, используя методы ЦОС, цифровые записи можно копировать или воспроизводить многократно без ухудшения качества сигнала.
Отсутствует искажение характеристик из-за температуры или старости.
Полупроводниковые технологии позволяют повысить надежность, уменьшить размеры, снизить стоимость, понизить энергопотребление и увеличить скорость работы.
Большая гибкость. Системы ЦОС можно запрограммировать и перепрограммировать на выполнение различных функций без изменения оборудования. Это, пожалуй, одна из самых важных особенностей ЦОС.
Превосходная производительность. ЦОС можно использовать для выполнения функций, которые невозможны при аналоговой обработке сигналов. Например, можно получить линейную фазовую характеристику и реализовать сложные алгоритмы адаптивной фильтрации.
В некоторых случаях информация уже может быть записана в цифровом виде, и обрабатывать ее можно только методами ЦОС.
В ЦОС есть и свои недостатки. Однако благодаря новым технологиям значение этих недостатков постоянно уменьшается.
Скорость и затраты. Проекты ЦОС могут быть дорогими, особенно при большой ширине полосы сигнала. В настоящее время скоростные АЦП/ЦАП (аналого- цифровые/цифроаналоговые преобразователи) либо слишком дороги, либо не обладают достаточным разрешением для большой ширины полосы. На данный момент для обработки сигналов в мегагерцевом диапазоне можно использовать только специализированные интегральные схемы, но они достаточно дороги. Более того, большинство устройств ЦОС еще не обладают достаточной скоростью и могут обрабатывать сигналы только со средней шириной полосы. Сигналы с шириной порядка 100 МГц все еще обрабатываются аналоговыми методами. Тем не менее устройства ЦОС становятся все более скоростными.
Время на разработку. Пока вы не знакомы с методиками ЦОС, и у вас нет необходимых ресурсов (программных пакетов и т.д.), разработка средств ЦОС будет отнимать очень много времени, а в некоторых случаях будет почти невозможна. Острая нехватка специалистов в этой области хорошо известна. Однако ситуация меняется, так как уже многие выпускники вузов разбираются в цифровых методах, а коммерческие организации все чаще начинают использовать в своей продукции преимущества ЦОС.
Проблемы конечной разрядности. В реальных ситуациях экономические соображения предписывают использовать в алгоритмах ЦОС ограниченное число битов. Если для представления переменной задействуется недостаточное число битов, в некоторых системах ЦОС это приводит к существенному снижению качества работы системы.
Области применения
ЦОС — это одна из наиболее быстро развивающихся отраслей современной электроники, которая применяется в любой области, где информация содержится в цифровом виде или контролируется цифровым процессором. К числу областей применения можно отнести следующие.
■ Обработка изображений
распознавание образцов;
машинное зрение;
улучшение изображения;
факсимиле;
спутниковые карты погоды;
— анимация.
Инструментальные средства/контроль
спектральный анализ;
контроль положения и скорости;
снижение шума;
сжатие информации.
Речь/аудио
распознавание речи;
синтез речи;
озвучивание текста;
цифровые аудиосистемы;
выравнивание.
Военные цели
безопасная связь;
работа с радарами;
работа с сонарами;
управление ракетами.
Телекоммуникации
устранение эха;
адаптивное выравнивание;
транскодеры ADPCM;
расширение спектра;
видеоконференц-связь;
передача данных.
Биомедицина
наблюдение за пациентами;
сканеры;
карты электроэнцефалограммы мозга;
анализ электрокардиограмм;
хранение (улучшение) рентгеновских снимков.
Потребительские цели
цифровые сотовые мобильные телефоны;
универсальная мобильная система связи;
цифровое телевидение;
цифровые камеры;
телефонная связь, музыка и видео через Internet;
цифровые автоответчики, факсы и модемы;
системы голосовой почты;
интерактивные развлекательные системы;
активная подвеска в автомобилях.
С одного взгляда на этот отнюдь не полный список можно понять огромное значение ЦОС. Об осознании значения ЦОС свидетельствует постоянное внедрение мощных средств ЦОС производителями полупроводниковой техники. В то же время не хватает инженеров, обладающих достаточными знаниями в данной сфере. Цель этой книги — обеспечить понимание методов ЦОС и их реализации, дать читателям возможность овладеть практическими знаниями по столь важному предмету.
Ключевые операции ЦОС
Существует несколько алгоритмов ЦОС, еще больше находится в стадии разработки или ждет своего открывателя. Однако для всех этих алгоритмов, включая самые сложные, необходимы одни и те же основные операции. Для начала будет полезно рассмотреть некоторые из них, чтобы оценить простоту реализации ЦОС. Итак, основные операции ЦОС — это свертка, корреляция, фильтрация, преобразования и модуляция. Все эти операции собраны в табл. 1.1, а ниже дано краткое описание каждой из них. Следует заметить, что для всех основных операций ЦОС потребуется выполнение только простых арифметических действий — умножения, сложения, вычитания и операции сдвига. Также отметим сходство между многими операциями.
Свертка
Свертка — это одна из наиболее используемых операций в ЦОС. Например, это основная операция цифровой фильтрации. Для двух данных конечных и причинных последовательностей ж(п)и /г(п) с длиной N^ и N2 соответственно их свертка определяется какоо
у(п) = /г(п) ® ж(п) = У Цк)х(п — к) =
= 'У Цк^х^п — к), п = 0,1,..., (М — 1),
к=0
где символ ® используется для обозначения свертки, а М = Ni + N2 — 1. Как будет видно из последующих глав, производители устройств ЦОС разработали процессоры для обработки сигналов, которые эффективно выполняют операции умножения с накоплением, задействованные в свертке. Пример линейной свертки двух последовательностей, изображенных на рис. 1.1, а и б, показан на рис. 1.1, в. В этом примере к^п^п = 0,1,2,..., можно рассматривать как импульсную характеристику цифровой системы, а у(п) — как отклик системы на входную последовательность ж(п). Численные значения свертки, т.е. y(ri), получены путем прямой оценки уравнения (1.1). Например, у(1) получается следующим образом:
у(1) = /г(0)ж(1) + /г(1)т(0) + /г(2)ж(-1) + ... + /i(12)z(—11) =
= 0x1 + (-0,02)х1+0х0 + ...+0х0 =
= -0,02.
Значение свертки становится более очевидным, если рассматривать ее в частотных координатах и использовать тот факт, что свертка во временных координатах эквивалентна умножению в частотной области. Более подробное обсуждение свертки, включая ее свойства и графическую интерпретацию, дается в главе 5.
Таблица 1.1. Обзор основных операций ЦОС
Свертка. Для двух данных последовательностей конечной длины х(к) и Цк) с длиной Ni и №г соответственно линейная свертка равна
y(n) = /i(n) ® х(п) = У" /i(k)x(n — к) =
=(М)
= У2 Щк^х^п — к), п = 0,1,..., (М — 1),
ь=о
где М = Ni + Ni - 1.
Корреляция.
А. Для двух данных последовательностей r(k) и y(k) длины N с нулевыми средними значениями оценка их взаимной корреляции равна
[Гхх(0)г1(0)]1/2’П-°.±1-±2,-".С-2)
где Гху(п) — оценка взаимной ковариантности, определяемая как
ЛГ-П-1
2 £(&)?/(&+ n) п = 0,1,2,...
Гху(п) —Гху(п) —к=0
Гху(п) —
Гху(п) —
N+n — 1
£ х(к - п)у(к) п — 0, —1, —2,...
к=0
мо)=ё [^(а-)]2, rss(o)=1 ё [у(к)]2.Ь=0’ к=0
Б. Оценка автокорреляции pzz(n) последовательности х(к) длины N с нулевым средним значением задается как
(1.3)(1.3)р$х Wп = 0, ±1, ±2,...,
(1.3)
(1.3)
Гхх(О)
где Гхх(п) — оценка автоковариантности, определяемая как
1 ЛГ-п-1 Гхх(п) = — У2 х^х^кЦ-п), п = 0,1,2,...
к=0
Фильтрация. Уравнение для фильтрации с конечной импульсной характеристикой (КИХ) имеет вид:
N-1
у(п) = У2 h.^k)x(n — к1),(1.4)
ь=о
где х^и у(к) соответственно — вход и выход фильтра, a /i(fc), к = 0,1,..., N — 1 — коэффициенты фильтра.
Дискретное преобразование Фурье.
N-1
Х(п) = У2 xWWk", где W = ехр(-2тгг/Х).(1.5)
к=0
Рис. 1.1. Пример свертки двух последовательностей, у(п) — это свертка Ь(п)и я(п). Если рассматривать h(n) как импульсную характеристику системы, то у(п) — это выход системы при входе х(п). Значения у(п) были получены непосредственно из уравнения (1.1)
Корреляция
Существует две формы корреляции: автокорреляция и взаимная корреляция.
Взаимно-корреляционная функция (ВКФ) — это показатель сходства или общих свойств двух сигналов. В число областей применения ВКФ входят: взаимный спектральный анализ, детектирование (восстановление) сигналов, скрытых в шуме, например, детектирование ответных сигналов радара, подбор по образцу и измерение задержки. ВКФ определяется по формуле (1.2).
Автокорреляционная функция (АКФ) подразумевает существование только одного сигнала и дает информацию о структуре сигнала или его поведении во времени. Это частный случай ВКФ, и их сферы применения сходны. Автокорреляционная функция, определяемая по формуле (1.3), особенно полезна для выявления скрытой периодичности.
Примеры ВКФ и АКФ некоторых сигналов приведены на рис. 1.2 и 1.3. Стоит заметить, например, что по АКФ искаженного шумом сигнала ясно видно, что за шумом скрывается периодический сигнал (рис. 1.2). На рис. 1.3 показано, как с помощью ВКФ измеряется задержка, которую вводит система, — ее можно узнать, измерив время от начала отсчета до большого максимума.
Время (мс)Время (мс)Время (мс)Время (мс)Время (мс)Время (мс)Задержка (мс)Задержка (мс)Рис. 1.2. Автокорреляция: а) периодического сигнала, 6) шума; в) периодического сигнала с шумом. Обратите внимание на то, что на панели в периодический характер сигнала, скрытого за шумом, все еще заметен; по этой причине автокорреляцию часто используют для выявления скрытой периодичностиРис. 1.2. Автокорреляция: а) периодического сигнала, 6) шума; в) периодического сигнала с шумом. Обратите внимание на то, что на панели в периодический характер сигнала, скрытого за шумом, все еще заметен; по этой причине автокорреляцию часто используют для выявления скрытой периодичности
Время (мс)
Время (мс)
Время (мс)
Время (мс)
Время (мс)
Время (мс)
Задержка (мс)
Задержка (мс)
Рис. 1.2. Автокорреляция: а) периодического сигнала, 6) шума; в) периодического сигнала с шумом. Обратите внимание на то, что на панели в периодический характер сигнала, скрытого за шумом, все еще заметен; по этой причине автокорреляцию часто используют для выявления скрытой периодичности
Рис. 1.2. Автокорреляция: а) периодического сигнала, 6) шума; в) периодического сигнала с шумом. Обратите внимание на то, что на панели в периодический характер сигнала, скрытого за шумом, все еще заметен; по этой причине автокорреляцию часто используют для выявления скрытой периодичности
Цифровая фильтрация
определяется какопределяется какКак станет очевидным при изучении последующих глав, одной из операций ЦОС, имеющих первостепенное значение, является линейная цифровая фильтрация, которая
определяется как
определяется как
N-1
у(п) = У^ h.(k)x(n — к),к-0
Время (мс)Время (мс)О 102030Время (мс) б)О 102030Время (мс) б)Рис. 1.3. Взаимная корреляция случайного сигнала х^ с задержанной зашумленной версией того же сигнала y(t). Задержка между двумя сигналами равна времени от начала отсчета до времени появления максимума их взаимной корреляции на панели вРис. 1.3. Взаимная корреляция случайного сигнала х^ с задержанной зашумленной версией того же сигнала y(t). Задержка между двумя сигналами равна времени от начала отсчета до времени появления максимума их взаимной корреляции на панели в
Время (мс)
Время (мс)
О 102030
Время (мс) б)
О 102030
Время (мс) б)
Рис. 1.3. Взаимная корреляция случайного сигнала х^ с задержанной зашумленной версией того же сигнала y(t). Задержка между двумя сигналами равна времени от начала отсчета до времени появления максимума их взаимной корреляции на панели в
Рис. 1.3. Взаимная корреляция случайного сигнала х^ с задержанной зашумленной версией того же сигнала y(t). Задержка между двумя сигналами равна времени от начала отсчета до времени появления максимума их взаимной корреляции на панели в
где Ык), к = 0,1,... ,N — 1 — коэффициенты фильтра, а х(к) и ■у(к') соответственно — вход и выход фильтра. Для заданного фильтра коэффициенты, определяющие характеристики этого фильтра, однозначны.
Заметим, что фильтрация — это, по сути, свертка сигнала с импульсной характеристикой фильтра во временных координатах, те. Цк\ На рис. 1.4, а показана блок-схема фильтра, определение которого было дано выше. В таком виде этот фильтр широко известен как трансверсальный фильтр. На рисунке через z-1 обозначена задержка на один интервал дискретизации.
Как правило, целью фильтрации является устранение или снижение шума в полезном сигнале. Например, на рис. 1.4, б показана низкочастотная фильтрация некоторого биомедицинского сигнала для устранения высокочастотных искажений. Вообще в подобных сферах цифровой фильтр используется в основном для минимизации искажений внутриполосных компонентов сигнала.
а)а)Рис. 1.4. Блок-схема трансверсального фильтра. Здесь Цк), к = 0,1,..., N - 1 — коэффициенты фильтра, а каждый квадрат с z-1 обозначает задержку на один интервал дискретизации (панель а); цифровая низкочастотная фильтрация биомедицинского сигнала с целью устранения шума (панель б)Рис. 1.4. Блок-схема трансверсального фильтра. Здесь Цк), к = 0,1,..., N - 1 — коэффициенты фильтра, а каждый квадрат с z-1 обозначает задержку на один интервал дискретизации (панель а); цифровая низкочастотная фильтрация биомедицинского сигнала с целью устранения шума (панель б)
а)
а)
Рис. 1.4. Блок-схема трансверсального фильтра. Здесь Цк), к = 0,1,..., N - 1 — коэффициенты фильтра, а каждый квадрат с z-1 обозначает задержку на один интервал дискретизации (панель а); цифровая низкочастотная фильтрация биомедицинского сигнала с целью устранения шума (панель б)
Рис. 1.4. Блок-схема трансверсального фильтра. Здесь Цк), к = 0,1,..., N - 1 — коэффициенты фильтра, а каждый квадрат с z-1 обозначает задержку на один интервал дискретизации (панель а); цифровая низкочастотная фильтрация биомедицинского сигнала с целью устранения шума (панель б)
Дискретные преобразования
Дискретные преобразования позволяют описывать сигналы с дискретным временем в частотных координатах или переходить от описания во временной области к описанию в частотной. Для получения спектра сигнал раскладывается на частотные составляющие с помощью дискретного преобразования. Знание такого спектра неоценимо, например, при определении ширины полосы, что необходимо для передачи сигнала. Переход от временных координат к частотным необходим во многих приложениях ЦОС. Например, он позволяет более эффективно реализовывать такие алгоритмы ЦОС, как цифровая фильтрация, свертка и корреляция.
Существует много дискретных преобразований, из которых самым распространенным является дискретное преобразование Фурье (ДПФ), которое определяется следующим образом:
Х(п) = 52где W = ехр(-2тгг/ДГ).
к=0
Рис. 1.5. Описание цифрового фильтра во временных и частотных координатах: а) импульсная характеристика; 6) спектр фильтра. Спектр фильтра был получен с помощью дискретного преобразования Л(п), что иллюстрирует одно из возможных применений ДПФ
Пример использования ДПФ приведен на рис. 1.5. Здесь импульсная характеристика фильтра Цп), п = 0,1,... ,N — 1, с помощью ДПФ преобразуется в частотную. Более подробно дискретное преобразование Фурье и его применение описано в главах 3, 4 и 11.
Модуляция
Цифровые сигналы редко передаются на большие расстояния или хранятся в большом объеме в необработанном виде. Обычно сигналы модулируются таким образом, чтобы их частотные характеристики совпадали с характеристиками средств передачи и/или хранения, для минимизации искажения сигнала, эффективного использования доступной ширины полосы и придания сигналам некоторых желаемых свойств. Наиболее интенсивно модуляция сигнала используется в связи и цифровых аудиосистемах.
Процесс модуляции часто приводит к изменению свойств высокочастотного сигнала, известного как несущая частота, в соответствии с сигналом, который нужно передать или сохранить, называемым модулирующим сигналом. Три самые распространенные схемы цифровой модуляции для передачи цифровой информации по широкополосному каналу (например, радиорелейной линии) — это амплитудная (amplitude shift keying — ASK), фазовая (phase shift keying — PSK) и частотная манипуляции (frequency shift keying — FSK). Если цифровые данные передаются по полностью цифровой сети, обычно пользуются схемой, известной как импульсно-кодовая модуляция (pulse code modulation — PCM) (см., например, [2]). Для цифровых аудиосистем было разработано несколько других схем модуляции, подробнее о них можно прочитать в работе [21].
Процессоры для цифровой обработки сигнала
Системы ЦОС характеризуются выполнением операций в реальном времени, причем акцент делается на высокой пропускной способности, а использование алгоритмов требует интенсивных арифметических операций, в особенности, умножения и сложения или умножения-накопления. Это приводит к большому потоку информации через процессор.
Структура стандартных микропроцессоров не удовлетворяет характеристикам ЦОС, и это послужило толчком для развития нового вида процессоров, структура и набор команд которых предназначены специально для операций ЦОС. Новые процессоры, или чипы ЦОС, имеют следующие особенности.
Встроенные умножители, позволяющие быстро выполнять операции умножения. Новые чипы ЦОС содержат однотактовые команды умножения-накопления, а в некоторых есть несколько умножителей, работающих параллельно.
Отдельные шины/области памяти для программ и данных (хорошо известная гарвардская архитектура, которая позволяет перекрываться во времени процессам извлечения команд из памяти и их выполнения).
Команды, содержащие циклы, которые используются для ветвления и образования циклов. Например, следующие команды для процессора TMS320C25 (Texas Instruments) значительно уменьшают количество циклов и размер программы цифрового фильтра.
RPTK N ;повторить следующую команду N раз
MACD ;занести данные в память, умножить и накопить с задержкой
Очень большая скорость. Например, в процессоре TMS320C25 тактовая частота равна 40 МГц, а время одного такта — 100 нс.
Использование конвейерной обработки, что сокращает время, необходимое для выполнения команд, и увеличивает скорость.
Новые чипы ЦОС быстрее и многофункциональное. Сегодня некоторые из них обладают способностью выполнять арифметические действия с плавающей запятой и содержат такие черты стандартных микропроцессоров, как линии последовательной передачи, расширенная область памяти, таймеры и многоуровневые системы прерываний. Более подробно о чипах ЦОС и их применении рассказывается в главах 12-14.
Обзор реальных областей применения ЦОС
Методы ЦОС лежат в основе многих новых и только появляющихся продуктов и приложений, связанных с цифровой информацией, которые под держивают существование информационного общества. Таким продуктам и приложениям часто приходится собирать, обрабатывать, анализировать, передавать, выводить на экран и/или сохранять реально существующую информацию, иногда в реальном времени. Возможности методов ЦОС обрабатывать реальную информацию в цифровом виде позволяют создавать доступные, технически прогрессивные продукты и приложения высокого качества для широкого потребительского рынка (например, цифровые сотовые мобильные телефоны, цифровое телевидение и видеоигры). Сильное влияние ЦОС также заметно в таких областях, как медицина и здравоохранение (например, при наблюдении за пациентами в интенсивной терапии, в цифровых рентгеновских аппаратах, передовом кардиологическом оборудовании и системах составления карт мозговой деятельности), цифровые аудиосистемы (например, проигрыватели компакт-дисков, звуковые микшеры и электронная музыка) и системы для персональных компьютеров (например, диски для эффективного хранения информации и коррекции ошибок, модемы, звуковые карты и организация видеоконференций).
Благотворное влияние методов ЦОС на то, как мы живем, работаем и отдыхаем, показано на рис. 1.6. В следующих трех разделах будут более подробно описаны некоторые технически прогрессивные приложения, причем основное внимание будет уделяться аспектам цифровой обработки данных в этих приложениях.
Применение ЦОС при записи и воспроизведении звука
Цифровое микширование
Цифровое микширование звука — это отличный пример успешного применения ЦОС для улучшения качества записи и воспроизведения звука, а также повышения функциональности системы.
Сотовые/мобильные телефоны Кодирование речи и канальное кодированиеОбработка речи и информации Управление мощностью Выравнивание многолучевого распространенияСотовые/мобильные телефоны Кодирование речи и канальное кодированиеОбработка речи и информации Управление мощностью Выравнивание многолучевого распространенияЦифровые аудиосистемы Стереозвук и объемное звучание Аудиовыравнивание и микширование Электронная музыкаЦифровые аудиосистемы Стереозвук и объемное звучание Аудиовыравнивание и микширование Электронная музыкаПерсональный компьютерЗвуковые картыХранение и извлечение данныхИспранление/маскирование ошибокМультимедийные средстваМодемыТелефоны, музыка и видео в сети InternetПерсональный компьютерЗвуковые картыХранение и извлечение данныхИспранление/маскирование ошибокМультимедийные средстваМодемыТелефоны, музыка и видео в сети InternetЦифровые телефоныГенерация и декодирование тонов ДТМЧБеспроводные автоответчикиСинтезаторы речиЦифровые телефоныГенерация и декодирование тонов ДТМЧБеспроводные автоответчикиСинтезаторы речиМедицинская электроникаМониторы критического состояния и интенсивной терапииЦифровая рентгенографияАнализаторы ЭЭГМониторы сердечной деятельностиСоздание медицинских изображенийМедицинская электроникаМониторы критического состояния и интенсивной терапииЦифровая рентгенографияАнализаторы ЭЭГМониторы сердечной деятельностиСоздание медицинских изображенийРис. 1.6. Примеры применения методов ЦОС в современной жизниРис. 1.6. Примеры применения методов ЦОС в современной жизни
Сотовые/мобильные телефоны Кодирование речи и канальное кодирование
Обработка речи и информации Управление мощностью Выравнивание многолучевого распространения
Сотовые/мобильные телефоны Кодирование речи и канальное кодирование
Обработка речи и информации Управление мощностью Выравнивание многолучевого распространения
Цифровые аудиосистемы Стереозвук и объемное звучание Аудиовыравнивание и микширование Электронная музыка
Цифровые аудиосистемы Стереозвук и объемное звучание Аудиовыравнивание и микширование Электронная музыка
Персональный компьютер
Звуковые карты
Хранение и извлечение данных
Испранление/маскирование ошибок
Мультимедийные средства
Модемы
Телефоны, музыка и видео в сети Internet
Персональный компьютер
Звуковые карты
Хранение и извлечение данных
Испранление/маскирование ошибок
Мультимедийные средства
Модемы
Телефоны, музыка и видео в сети Internet
Цифровые телефоны
Генерация и декодирование тонов ДТМЧ
Беспроводные автоответчики
Синтезаторы речи
Цифровые телефоны
Генерация и декодирование тонов ДТМЧ
Беспроводные автоответчики
Синтезаторы речи
Медицинская электроника
Мониторы критического состояния и интенсивной терапии
Цифровая рентгенография
Анализаторы ЭЭГ
Мониторы сердечной деятельности
Создание медицинских изображений
Медицинская электроника
Мониторы критического состояния и интенсивной терапии
Цифровая рентгенография
Анализаторы ЭЭГ
Мониторы сердечной деятельности
Создание медицинских изображений
Рис. 1.6. Примеры применения методов ЦОС в современной жизни
Рис. 1.6. Примеры применения методов ЦОС в современной жизни
Микширование звука применяется в профессиональных и полупрофессиональных аудиоприложениях, например, для студийной звукозаписи, радиовещания, при усилении звука и в системах публичных выступлений. Микшер позволяет регулировать, смешивать и выводить на экран характеристики многоканальных аудиосигналов от различных источников для подстройки их под требования определенных приложений.
Цифровая система микширования состоит из средств аудиовыравнивания, аудиомикширования и обработки после микширования (рис. 1.7). Цифровой аудиоэквалайзер — это набор цифровых фильтров с регулируемыми характеристиками, т.е. с возможностью выполнять действия над различными частями полос входного спектра аудиосистемы для достижения желаемого звука (например, усиливать или обрезать определенные тона) подобно настройке высоких и низких частот. Затем выровненные звуковые сигналы смешиваются с помощью матрицы смешивания (позволяет смешивать любой произвольный звуковой вход с любым выходом). После смешивания обработка сигнала может продолжаться путем реверберации и выравнивания.
Система микширования обладает такими интерактивными средствами контроля для управления параметрами микшера, такими как значения операторов микшера (регуляторов уровня сигнала) и параметры контроля эквалайзера (частота, добротность и коэф-
Входные аудиосигналыВходные аудиосигналыОбработанный аудиовыходОбработанный аудиовыходРис. 1.7. Упрощенная блок-схема цифровой стереосистемы микширования на 32 входа и 16 выходовРис. 1.7. Упрощенная блок-схема цифровой стереосистемы микширования на 32 входа и 16 выходов
Входные аудиосигналы
Входные аудиосигналы
Обработанный аудиовыход
Обработанный аудиовыход
Рис. 1.7. Упрощенная блок-схема цифровой стереосистемы микширования на 32 входа и 16 выходов
Рис. 1.7. Упрощенная блок-схема цифровой стереосистемы микширования на 32 входа и 16 выходов
фициент усиления фильтра), в реальном времени. Одна из сложных проблем цифрового микширования звука — это достижение пользовательского контроля над параметрами микшера при относительно высокой скорости обработки данных без заметных искажений [6]. Каждый раз, когда пользователь передвигает рычаги управления, параметры микшера должны изменяться, чтобы соответствовать новым требованиям. Такая регулировка может привести к заметным искажениям, что недопустимо в профессиональных системах смешивания звука. Как говорится в работе [6] и в главе 12, тщательное следование алгоритму смешивания является главным условием достижения профессионального уровня звучания.
На рис. 1.8 показан обычный микшер. Его характерные особенности:
8 моновходов (8 микрофонов или 8 линий);
2 пары стереоканалов (левый и правый) сигнала;
главная кодовая шина для централизованного контроля, например, выбора области памяти, усиления по мощности и обработки сигнала.
В цифровом микшере, изображенном на рис. 1.8, используется современный процессор ЦОС, позволяющий реализовывать новейшие алгоритмы, необходимые при смешивании цифровых сигналов (например, выравнивание, стробирование шума, динамический контроль) и выполнении операций после смешивания.
Синтез и распознавание речи
Синтез речи
В прошлом синтезированная речь воспринималась как звучание механического голоса. Однако прогресс в области полупроводниковых технологий и ЦОС сделали экономически возможным достижение такого качества речи, что ее нельзя отличить от человеческой.
Примером успешного коммерческого продукта с речевым выходом является система Speak and Spell [11], с которой, вероятно, знакомы многие читатели. Это электронное пособие для обучения детей, в котором используется метод линейного кодирования с пред-
Рис. 1.8. Средства управления на обычном 8-канальном микшере (напечатано с разрешения компании Allen & Heath, Корнуолл, Великобритания)
сказанием (linear predictive coding — LPC), где настоящая человеческая речь, которую нужно воспроизвести, моделируется как отклик переменного во времени цифрового фильтра на периодический или случайный сигнал возбуждения (рис. 1.9). Периодическое возбуждение используется для генерации голосовых звуков (например, гласных) и представляет поток воздуха через вибрирующие голосовые связки. Случайное возбуждение используется для неголосовых звуков (таких, как С, Ш) и представляет шум, создаваемый при проталкивании воздуха через преграды в речевом канале. Человеческая речь содержит очень много лишней информации. Кодер оставляет только важную информацию, необходимую для сохранения таких характеристик речи, как интонация, акцент и диалект, позволяя держать целые минуты звука высокого качества в памяти среднего размера.
В пособии Speak and Spell используется микросхема синтезатора речи TMS5100, который объединяет все элементы модели LPC (цифровой фильтр и источники возбуждения), а также декодер и 8-битовый цифроаналоговый преобразователь (ЦАП). Микросхема синтезатора действует в тесной связи с 4-битовым микропроцессором и двумя 128-килобитовыми ПЗУ, которые вместе вмещают словарь из приблизительно 300 слов и фраз (рис. 1.10). Информация о речи хранится в ПЗУ в форме кадров (содержащих 25 мс речи), каждый кадр характеризуется набором из 10 или 12 параметров LPC. Параметры кадра сообщаются синтезатору каждые 25 мс и используются для обновления коэффициентов цифрового фильтра и выбора источника возбуждения и его уровня энергии. Выход цифрового фильтра преобразуется в аналоговый и подается на громкоговоритель для создания требуемого звука с определенным тоном, амплитудой
ИнформацияИнформацияПараметры фильтра речевого каналаПараметры фильтра речевого каналаРис. 1.9. Линейное кодирование речи с предсказаниемРис. 1.9. Линейное кодирование речи с предсказанием
Информация
Информация
Параметры фильтра речевого канала
Параметры фильтра речевого канала
Рис. 1.9. Линейное кодирование речи с предсказанием
Рис. 1.9. Линейное кодирование речи с предсказанием
Рис. 1.10. Структура пособия Speak and Spell
и гармоническим содержанием. Для сглаживания переходов в речевом спектре каждые 3 мс синтезатор обновляет параметры LPC, проводя интерполяцию между параметрами предыдущего и следующего кадра.
В первом режиме операции ребенка просят сказать слово по буквам. Ребенок вводит слово по одной букве с помощью клавиатуры. Если написание верно, то при нажатии клавиши <Enter> программа отвечает “Правильно” или “Верно". Если слово написано неверно, программа говорит “Неправильно, попробуй еще раз”. Если же и следующая попытка неверна, она указывает: “Это неправильно” и добавляет “Правильно это слово пишется так: ... ”.
Распознавание речи
Под распознаванием голоса подразумевается, что информация вводится в компьютер с помощью человеческого голоса, а компьютер слушает и распознает человеческую речь. Распознавание голоса все еще активно изучается, так как поставленные задачи намного сложнее, чем те, которые возникают при синтезе речи. Поэтому успешные коммерческие системы распознавания речи немногочисленны и встречаются редко. Самыми удачными из них оказались настроенные на диктора системы распознавания изолированных слов. Такие системы работают в одном из двух режимов. В режиме обучения пользователь обучает систему распознавать его или ее голос, произнося каждое слово, подлежащее распознанию, в микрофон. Система оцифровывает и создает эталон
Рис. 1.11. Блок-схема системы распознавания речи
каждого слова, сохраняя его в памяти. В режиме распознавания каждое произнесенное слово снова оцифровывается, и его эталон сравнивается с эталонами из памяти. Если есть соответствие, значит, слово распознано, и система сообщает об этом пользователю или выполняет какое-то действие. Работа таких систем зависит от того, делает ли говорящий достаточно длинные паузы перед каждым словом, существует ли некий шумовой фон и от того, насколько четко и ясно произносятся слова. Двумя самыми важными операциями ЦОС при распознавании являются извлечение параметров, когда из сказанного слова получаются отдельные образцы и создаются эталоны, и подбор по образцу, когда эталоны сравниваются с записями, которые хранятся в памяти (см. рис. 1.11).
Для большинства людей разговор — это самая естественная форма общения, ведь говорить намного быстрее, чем писать или печатать. Поэтому сейчас в офисах есть системы, которые позволяют управлять программами не нажатием клавиш, а произнесением команд. Разрабатываются системы, которые позволят создавать и отправлять с помощью голоса обычные офисные документы, такие как письма и служебные записки. Системы распознавания слов встречаются в товарах широкого потребления, таких как системы набора телефонного номера с речевым управлением, и в управляемых голосом предметах домашнего обихода для инвалидов с ограниченной способностью передвижения. Это делает таких людей более независимыми, позволяет самостоятельно выполнять некоторые простые действия, например, включать или выключать свет, радио или телевизор.
Конечно, существует еще множество возможных применений распознавания речи. Впрочем, дальнейшее развитие в этой области зависит, главным образом, от технологий искусственного интеллекта, поскольку машины должны не только распознавать, но и понимать человеческую речь.
Цифровая аудиосистема воспроизведения компакт-дисков
Многим читателям знакомы неприятные звуки, доносящиеся из проигрывателя, если пластинка повреждена либо на ней есть царапины, грязь или отпечатки пальцев. Компакт-диск — это современная аудиосистема, у которой уже нет недостатков долгоиграющих пластинок. Основные характеристики пластинок и компакт-дисков сравниваются в табл. 1.2 (согласно [4]).
На компакт-дисках информация записывается в цифровой форме в виде спиральной дорожки, которая состоит из последовательности впадин (рис. 1.12) [5]. Каждый бит, записанный на компакт-диске, занимает площадь всего лишь 1 мкм2, т.е. 106 бит на квадратный миллиметр, что обеспечивает очень высокую плотность хранения информации.
Таблица 1.2. Сравнение характеристик долгоиграющей пластинки и компакт-диска
Характеристика
Долгоиграющая пластинка
Компакт-диск
Частотная характеристика
От 30 Гц до 20 кГц (± 3 дБ)
От 20 Гц до 20 кГц (от 0,5 до -1 дБ)
Динамический диапазон
70 дБ (при 1 кГц)
>90 дБ
Соотношение сигнал-шум
60 дБ
>90 дБ
Гармоническое искажение
1-2 %
0,004 %
Разделение стереоканалов
25-30 дБ
>90 дБ
Коэффициент детонации
0,03 %
Не регистрируется
Действие пыли, царапин
Вызывает шум
Приводит к исправимым
и отпечатков пальцев
Долговечность носителей
Высокочастотная характеристика
или маскируемым ошибкам Почти вечные
Время жизни иглы
при проигрывании ухудшается
500-600 ч
Почти бесконечно
Длительность звучания
40-45 мин. (обе стороны)
50-75 мин. (или больше)
Рис. 1.12. Выжженные лазером впадины на компакт-диске. Ширина каждой впадины — 0,5 мкм, длина — 0,8-3,5 мкм, а глубина — 0,11 мкм. Расстояние между дорожками составляет 1,6 мкм. (Перепечатано с разрешения журнала Philips Technical Review, 40(6), 1982)
Упрощенная блок-схема обработки звукового сигнала на компакт-диске во время записи изображена на рис. 1.13. Аналоговый звуковой сигнал в каждом стереоканале дискретизуется с частотой 44,1 кГц и оцифровывается. Каждая выборка представляется 16-битовым кодом, множество всех кодов образует динамический диапазон 90 дБ. Таким образом, в каждый момент дискретизации получается 32 бит, по 16 бит с левого и правого звуковых каналов. Цифровые выборки кодируются с помощью двухуровневого кода Рида-Соломона, что дает возможность обнаруживать и исправлять или скрывать ошибки при воспроизведении звукового сигнала. Для контроля и отображения информации для слушателей добавляются дополнительные биты. Затем полученные потоки битов модулируются для преобразования в форму, более удобную для хранения на диске. С помощью EFM-модуляции (преобразования 8-разрядного кода в 14-разрядный) каждый байт потока данных преобразуется в 14-разрядный код. Полученный поток битов в канале после дальнейшей обработки используется для управления лазерным
Частота дискретизации 44,1 кГц
Рис. 1.13. Упрощенная блок-схема обработки аудиосигнала и записи его на компакт-диск
Громкоговоритель
Рис. 1.14. Воспроизведение звукового сигнала с компакт-диска
пучком, который записывает цифровую информацию на светочувствительный слой вращающегося стеклянного диска. С помощью процесса проявки создается узор из впадин на мастер-диске, с которого впоследствии делаются пользовательские компакт-диски.
Во время воспроизведения записи на проигрывателе компакт-дисков дорожки на диске оптически сканируются с постоянной скоростью 1,2 м/с, в то время как диск вращается со скоростью от 8 об./с до приблизительно 3,5 об./с, и таким образом считывается записанная информация (рис. 1.14). Прежде всего, цифровой сигнал с диска демодулируется, детектируется, и по возможности в нем исправляются ошибки. Ошибки могут возникнуть вследствие производственных дефектов, повреждений, наличия отпечатков пальцев или пыли на поверхности диска. Если ошибки неисправимы, они либо маскируются посредством замены неправильного элемента выборки новым, полученным путем интерполяции между соседними элементами, либо, если ошибка обнаружена более чем в одном элементе, обнуляются (приглушаются).
В результате полученные данные представляют собой ряды из 16-битовых слов, каждое из которых является элементом выборки звукового сигнала. Эти элементы могут непосредственно направляться в 16-битовый цифроаналоговый преобразователь, а затем в аналоговый фильтр нижних частот. Однако для этого понадобились бы аналоговые фильтры с весьма строгими спецификациями. В частности, уровень частот, лежащих за 20 кГц, должен быть хотя бы на 50 дБ меньше максимального, а фильтр должен
Схема декодирования Philips (БИС)Схема декодирования Philips (БИС)Цифровая фильтрация SAA7000Цифровая фильтрация SAA7000Демодуляция SAA7010Демодуляция SAA7010Оперативная память 6116Оперативная память 6116Исправление ошибок SAA7020Исправление ошибок SAA7020Интерполяция и приглушение SAA 7000Интерполяция и приглушение SAA 7000I Микрокомпьютер субкодирования** МАВ8410I Микрокомпьютер субкодирования** МАВ8410Цифроаналоговые преобразователи . TDA1540Цифроаналоговые преобразователи . TDA1540Рис. 1.15. Печатная плата декодирующей схемы проигрывателя компакт-дисков фирмы Philips. (Перепечатано с разрешения журнала Philips Technical Review, 40(6), 1982)Рис. 1.15. Печатная плата декодирующей схемы проигрывателя компакт-дисков фирмы Philips. (Перепечатано с разрешения журнала Philips Technical Review, 40(6), 1982)
Схема декодирования Philips (БИС)
Схема декодирования Philips (БИС)
Цифровая фильтрация SAA7000
Цифровая фильтрация SAA7000
Демодуляция SAA7010
Демодуляция SAA7010
Оперативная память 6116
Оперативная память 6116
Исправление ошибок SAA7020
Исправление ошибок SAA7020
Интерполяция и приглушение SAA 7000
Интерполяция и приглушение SAA 7000
I Микрокомпьютер субкодирования** МАВ8410
I Микрокомпьютер субкодирования** МАВ8410
Цифроаналоговые преобразователи . TDA1540
Цифроаналоговые преобразователи . TDA1540
Рис. 1.15. Печатная плата декодирующей схемы проигрывателя компакт-дисков фирмы Philips. (Перепечатано с разрешения журнала Philips Technical Review, 40(6), 1982)
Рис. 1.15. Печатная плата декодирующей схемы проигрывателя компакт-дисков фирмы Philips. (Перепечатано с разрешения журнала Philips Technical Review, 40(6), 1982)
иметь линейную фазовую характеристику во избежание ухудшения звукового сигнала. Для этого цифровые сигналы предварительно пропускаются через цифровой фильтр, работающий с частотой, в четыре раза большей, чем частота дискретизации 44,1 кГц. Эффект повышения частоты дискретизации помогает сглаживать выход цифроаналогового преобразователя, упрощает требования к аналоговым фильтрам. Он также позволяет достичь 16-битового отношения сигнал-шум с помощью 14-битового цифроаналогового преобразователя. Использование цифрового фильтра также способствует получению линейной фазовой характеристики, снижает вероятность взаимной модуляции и дает фильтр с характеристикой, которая изменяется с тактовой частотой, делая его нечувствительным к скорости вращения диска. На рис. 1.15 изображена печатная плата декодирующей схемы первого поколения проигрывателей компакт-дисков фирмы Philips. Хорошо различимы основные микросхемы.
Кроме работы с компакт-дисками, цифровая обработка сигналов также играет большую роль и в других областях цифровой аудиотехники. Она широко используется как в товарах массового потребления, так и для профессиональной работы, например, на студиях звукозаписи, при передаче телепрограмм телерадиокомпаниями, при создании фильмов и в музыкальной индустрии. Ниже перечислены специальные области применения ЦОС в цифровой звукозаписи и звуковоспроизведении.
Использование передовых технологий ЦОС для кодирования, выявления, исправления или маскировки ошибок при воспроизведении, для того, чтобы ограничения носителя информации (магнитного или оптического) не влияли на уровень качества, которого можно достичь при записи и воспроизведении. Таким образом, одна и та же запись будет звучать одинаково на носителях различного качества, с одинаковой частотой появления ошибок.
Расширение области слышимости и обогащение звука. Например, простые схемы цифровых фильтров применяются для создания эха, естественной реверберации и эффектов хорового звучания.
Синтез звуков, напоминающих звучание музыкальных инструментов, и даже таких, которые не может издать ни один инструмент.
На телевидении, в мультипликации и кинофильмах при создании и использовании различных звуковых эффектов, таких как выстрелы, шаги, аплодисменты, звуки машин, удары кулаком, чтобы усилить чувство реальности или сделать сцену более правдоподобной.
Улучшение качества архивных записей или стенограмм.
Применение ЦОС в телекоммуникации
Цифровые сотовые мобильные телефоны
Введение
Сегодня мобильная связь — это одна из самых быстрорастущих отраслей в мире, мобильный телефон стал незаменимым средством постоянной связи в информационном обществе. По оценкам специалистов, в течение нескольких лет количество людей, пользующихся мобильными телефонами, превысит число тех, кто пользуется стационарными телефонными линиями. В некоторых странах, например, в Финляндии, это уже произошло. ЦОС — это одна из ключевых технологий, делающих возможной революцию в области мобильной связи. ЦОС интенсивно используется для обработки сигналов и информации на базовых радиостанциях и в самих мобильных телефонах (например, для кодирования речи, многоканального выравнивания, измерения силы сигнала, голосовых сообщений, защиты от ошибок, модуляции и демодуляции). Широко доступны ЦОС-микросхемы, предназначенные для беспроводной связи, благодаря чему в области мобильной связи появилась возможность выпускать доступные высококачественные товары широкого потребления.
В современных системах мобильной связи используется принцип цифровой сотовой радиосвязи, хотя в первом поколении мобильных телефонов, с которых началось развитие сотовой радиосвязи, использовались аналоговые методы обработки и передачи голосовых сигналов. К самым удачным системам аналоговой мобильной связи можно отнести системы Advanced Mobile Phone System (AMPS), которая использовалась в Северной Америке, Nordic Mobile Telephone (NMT), разработанную совместно Данией, Финляндией, Норвегией и Швецией, и Total Access Communication Systems (TAGS), использовавшуюся в Великобритании. Первые системы были несовместимы друг с другом, поскольку разрабатывались, в основном, для отдельно взятой страны, и не могли в полной мере удовлетворить растущую потребность в мобильной связи. Современные цифровые сотовые сети предлагают более широкие возможности, расширена область покрытия, возросли качество, безопасность и надежность. Проиллюстрируем основные принципы мобильной связи на примере системы GSM (Global System for Mobile communication).
Таблица 1.3. Основные характеристики системы GSM 900
Параметры сотовой системы мобильной связи Показатели системы GSM 900
Частота
мобильный передатчик/приемник базовой станции
890-915 МГц
мобильный приемник/передатчик базовой станции
935-960 МГц
Дуплексное разделение по частоте
45 МГц
Частотный интервал канала
200 кГц
Количество каналов
124
Скорость передачи речи
13 Кбит/с (половинная скорость 5,6 Кбит/с)
Общая скорость передачи информации
270 Кбит/с
Способ передачи сигнала
Узкополосный CDMA
Характерный размер ячейки
300 м-35 км
Система GSM была первой полностью цифровой системой радиотелефонной связи, и сейчас считается фактически мировым стандартом цифровой мобильной связи. GSM была разработана в 1992 году, а к концу 1998-го у нее было более 130 миллионов пользователей в более чем 100 странах мира. По прогнозам, к 2005 году количество абонентов мобильной связи буде превышать 1 миллиард. Значительный процент из них будут составлять пользователи GSM. Некоторые характеристики системы GSM 900, которой пользуются в Европе, приведены в табл. 1.3.
Архитектура сотовой телефонной сети
Мобильная сотовая телефонная сеть — это двусторонняя телефонная система, которая позволяет отправлять и принимать информацию (речь, данные и сообщения) с помощью мобильного телефона через радиоканалы. В сотовых радиосистемах область покрытия делится на небольшие единицы, называемые ячейками (или сотами), каждая из которых обслуживается своей базовой радиостанцией. Доступная полоса частот делится на радиочастоты, или каналы, с каждой ячейкой связан набор радиочастот. Радиочастоты в пределах области покрытия используются многократно, чтобы эффективно использовать доступную полосу частот, как показано на рис. 1.16 [17, 18]. Для минимизации внутриканальной интерференции между базовыми станциями, работающими на одних радиочастотах, ячейки с одинаковым набором частот располагаются как можно дальше друг от друга.
На практике размер ячейки зависит от интенсивности “движения”. В городах и густонаселенных территориях ячейки небольшие, они удовлетворяют требованиям интенсивного “движения” (часто используются микросоты с размерами, не превышающими 300 м). В сельской местности с низким уровнем “движения” могут использоваться ячейки размером до 35 км. Для таких больших ячеек необходима большая мощность передачи сигнала, при этом могут возникать дыры в области покрытия.
Связь между мобильным телефоном и сетью осуществляется через базовую радиостанцию. Сотовая сеть объединяет базовые радиостанции в единую радиотелефонную систему по всей области покрытия. Каждая базовая станция имеет определенное количество голосовых каналов и связана с мобильным коммутационным центром (mobile switching center — MSC); см. рис. 1.17 и работы [12, 17]. Некоторые коммутационные центры непосредственно связаны с коммутируемой телефонной системой (PSTN)
Рис. 1.16. Сотовый принцип, иллюстрирующий схему повторяющихся ячеек, возникающую из-за многократного использования частоты
и таким образом связывают сотовую сеть с PSTN. Базовая радиостанция состоит из контроллеров базовых станций (для управления радиоканалами), каждому из которых соответствует набор базовых станций-передатчиков. MSC содержит информацию о расположении мобильных телефонов и обеспечивает их мобильность.
Двумя ключевыми особенностями мобильной сотовой радиосети, которые позволяют пользователям звонить и принимать звонки на большой территории, являются ее способность определять местонахождение мобильного телефона и передавать линии радиосвязи с телефоном от одной базовой станции к другой. В сети сохраняется информация о местоположении каждого мобильного телефона, зарегистрированного в ней, так что входящие и исходящие звонки могут направляться к мобильному телефону или от него, где бы он не находился в пределах области покрытия. Это крайне важно, поскольку местонахождение пользователя мобильного телефона не фиксированно. При каждом включении мобильного телефона он регистрируется в сети, и это позволяет обновлять информацию о его местонахождении. У каждого мобильного телефона есть, по меньшей мере, два регистра местоположения в сети — домашний (HLR) и регистр местоположения посетителей (VLR). HLR размещается в собственной сети пользователя и содержит информацию о его профиле, в частности перечень услуг, которыми может пользоваться владелец данного телефона. В VLR записывается информация о мобильном телефоне, когда он используется за пределами собственной сети. При регистрации мобильного телефона в сети через ближайшую базовую станцию в сеть передается характерная только для этого телефона информация. Затем она используется для получения необходимых сведений о HLR данного телефона, чтобы он был опознан и получил доступ в сеть.
Как указывалось выше, радиосвязь между мобильным телефоном и сетью осуществляется через базовую станцию. Все базовые станции регулярно передают закодированную контрольную информацию. Мобильный телефон, не задействованный в разговоре,
Рис. 1.17. Упрощенная блок-схема мобильной сотовой телефонной системыРис. 1.17. Упрощенная блок-схема мобильной сотовой телефонной системыМобильный телефон или мобильная станция
Рис. 1.17. Упрощенная блок-схема мобильной сотовой телефонной системы
Рис. 1.17. Упрощенная блок-схема мобильной сотовой телефонной системы
ловит контрольный канал ближайшей базовой станции. Перемещаясь по области покрытия, мобильный телефон при необходимости ловит новую базовую станцию, и информация о его местонахождении обновляется. Осуществляется постоянный контроль за силой сигнала от мобильного телефона, по которому разговаривают. Если сила сигнала оказывается ниже определенного порогового значения, то сеть автоматически переключает радиосвязь на другую базовую станцию, которая обеспечит лучший прием, если такая есть. Возможность перебрасывать радиосвязь от одной базовой станции к другой при плохом сигнале — это как раз то, что позволяет пользователям мобильных телефонов свободно перемещаться в пределах области покрытия, не прекращая делать и принимать звонки. Этот процесс передачи занимает несколько секунд, хотя перерыв в разговоре на 200-300 мс уже может быть заметен. Как знает большинство пользователей мобильных телефонов, бывает, что в некоторых отдаленных областях поблизости нет такой базовой станции, которая может обеспечить лучшую связь. Если сила сигнала слишком мала, то голосовой канал обрезается, и пользователь не может делать или принимать звонки. Информация о силе сигнала отображается на экране мобильного телефона в том или ином виде (например, в виде нескольких полосок).
Элементы обработки сигнала
В современных сотовых системах радиотелефонной связи, таких как GSM, используются цифровые методы, и поэтому ЦОС — это естественный выбор для обработки и передачи информации. В мобильной связи ЦОС используется для кодирования речи, выравнивания сигналов после многолучевого распространения, измерения силы и ка-
чества сигнала, передачи голосовых сообщений, кодирования с исправлением ошибок, модуляции и демодуляции [17].
В системе GSM кодек речи основан на системе возбуждения регулярными импульсами с линейным кодированием с предсказанием (Regular Pulse Excitation, Linear Predictive Coding — RPE-LPC). В отличие от системы PSTN, в которой речь кодируется со скоростью 64 или 32 Кбит/с (адаптивная дифференциальная импульсно-кодовая модуляция), в мобильной радиотелефонной связи кодирование речи происходит с относительно невысокой скоростью 13 Кбит/с с целью эффективного использования спектра радиочастот. Алгоритм кодирования речи для системы GSM реализован в самых распространенных процессорах ЦОС (таких как Motorola ЦОС56000, Texas Instrument TMS320C50). Скорость обработки данных кодека — 13 Кбит/с, причем данный кодек заменяет 13- разрядные линейные цифроаналоговый и аналого-цифровой преобразователи.
Если мобильный телефон оказывается в неподходящей среде, часто возникают проблемы, связанные с многолучевым распространением. На частотах, которые используются для сотовой радиотелефонной связи, передаваемые сигналы часто могут отражаться от высотных зданий и т.п. Отраженный сигнал задерживается и поступает в принимающее устройство позже, чем неотраженный, поскольку преодолевает большее расстояние. Это приводит к флуктуациям амплитуды и фазы суммарного сигнала в приемнике, зависящим от природы многолучевого распространения и перемещения мобильного телефона. Эффект многолучевого распространения можно снизить, воспользовавшись цифровым выравниванием в приемнике. Для этого через регулярные промежутки передается известная последовательность сигналов длиной 26 бит. По окончании приема эквалайзер, используя эту опорную последовательность, определяет коэффициенты цифрового фильтра, оценивает характеристики полученного радиосигнала и таким образом устраняет эффект многолучевого распространения из полученных данных. Если известна передаточная функция, приемник может определить наиболее вероятную последовательность передаваемых битов и демодулировать сигнал. Алгоритм выравнивания GSM также реализован во многих процессорах ЦОС.
Кроме кодирования речи и выравнивания эффектов многолучевого распространения, методы ЦОС применяются также для цифровой модуляции, в частности, для обработки при нескольких скоростях. Также ЦОС дает возможность измерять силу полученного сигнала, чтобы переключать связь, и регулировать через базовую станцию уровень выходящей мощности мобильного телефона. В сети GSM мобильный телефон следит за сигналами от окружающих базовых станций. В системах сотовой радиосвязи всегда существует проблема внутриканальной интерференции между ячейками с одинаковым набором частот, которая зависит от передаваемой мощности. В системе GSM передаваемую мощность можно контролировать автоматически, снижая таким образом уровень внутриканальной интерференции и увеличивая время работы телефона без подзарядки. Решение об изменении передаваемой мощности принимается на основе уровня и качества принимаемого сигнала. Для того чтобы можно было оценить величину этих параметров, при анализе полученного сигнала применяются методы ЦОС.
При мобильной радиосвязи возникает много ошибок, например, обусловленных случайной интерференцией или затуханием. В системе GSM для уменьшения влияния этих ошибок используется метод сверточного кодирования.
Рис. 1.18. Использование цифровой приставки для приема сигнала цифрового телевидения
Приставка для приема цифрового телевизионного сигнала
Цифровое телевидение возникло не так давно и много обещает потребителям — интерактивность, больший выбор, лучшее качество изображения и звука. Интерактивность дает абонентам возможность играть в игры, иметь доступ в сеть Internet, делать покупки, мгновенно выполнять повторное воспроизведение и т.д. Телевидение снова заявляет о себе как о неотъемлемой части информационного общества.
В цифровом телевидении цифровая информация (видео, аудио, текст) может передаваться на домашние телевизоры через спутник (с помощью спутника и существующих спутниковых антенн), по кабелю (кабельное телевидение) и по наземным линиям связи (с помощью существующих телевизионных антенн и передатчиков). Почти все телевизоры в наших домах могут принимать только аналоговый сигнал, поэтому для приема цифрового телевидения им нужен цифровой декодер (цифровая приставка) (рис. 1.18). Цифровая приставка преобразует цифровой сигнал в подходящий для приема аналоговым телевизором вид. Новейшие телевизоры оснащены встроенным декодером.
В цифровом телевидении ЦОС играет ключевую роль в обработке сигнала, кодировании и модуляции/демодуляции видео- и аудиосигналов от точки захвата сигнала до момента его появления на экране телевизора [3]. Без ЦОС замечательное качество изображения и звука, которое мы сейчас воспринимаем как должное, было бы невозможным. Например, ЦОС лежит в основе алгоритмов кодирования MPEG, которые используются для сжатия видео- и аудиоинформации перед их передачей (для эффективного использования ширины полосы). В цифровой приставке для декодирования информации используется декодер MPEG. Главный элемент алгоритма MPEG — это дискретное косинус-преобразование, подробно описанное в главе 3.
Адаптивное телефонное эхоподавление
Эффект эха в системах связи возникает преимущественно тогда, когда на пути сигнала встречается неподходящее сопротивление. На рис. 1.19 показана упрощенная схема телефонной цепи для больших расстояний. Гибридная схема телефонного аппарата преобразовывает двухпроводную линию, идущую от абонента, в четырехпроводную, и предоставляет отдельный тракт для передачи сигнала в каждом направлении. Это
Рис. 1.19. Упрощенная схема телефонной цепи для больших расстояний
Рис. 1.20. Эхоподавление в междугородной телефонной связи
делается в основном из соображений экономии, например, чтобы сделать возможной множественную или одновременную передачу нескольких звонков.
В идеале, речевой сигнал от абонента А распространяется по верхнему тракту передачи к гибридной схеме справа, а оттуда к абоненту В, тогда как сигнал от пользователя В распространяется по нижней линии передачи к пользователю А. Гибридная схема на каждом конце обеспечивает подачу речевого сигнала от удаленного пользователя только на ее двухпроводный выход (на внешний выход сигнал не поступает). Однако из-за несоответствий в сопротивлении гибридная сеть пропускает некоторые входные сигналы на выход, которые слышны говорящему как эхо. Если телефонный звонок делается с большого расстояния (например, через геостационарный спутник), то эхо может задерживаться на 540 мс и вызывать помехи, раздражающие пользователей. Эти помехи будут возрастать с увеличением расстояния. Для решения этой проблемы в сети устанавливаются пары эхоподавителей, как показано на рис. 1.20 [9].
На каждом конце системы связи (рис. 1.20) входной сигнал хк подается на гибридную схему и на адаптивный фильтр (АФ). Компенсация осуществляется с помощью оценки эха и вычитания его из возвращенного сигнала ук. Оценка эха осуществляется по формуле
N— 1
г—О
где хк — это входной сигнал от дальнего абонента, а шк^г\ г = 0,1,..., N — 1 — оценка импульсной характеристики тракта передачи эха в дискретный момент времени к.
Применение ЦОС в биомедицине
Биомедицина — это важная и очень продуктивная область как для применения традиционной цифровой обработки сигнала, так и для разработки новых мощных алгоритмов ЦОС. Часто медицинские данные не отличаются хорошими характеристиками, и это бросает вызов профессионалам в области ЦОС, которые должны предложить новый способ работы с данными. В большинстве случаев медицинские данные попадают в диапазон аудиочастот. Поэтому методы ЦОС, появившиеся благодаря биомедицинским проблемам, нашли применение и в других областях, таких как системы звукозаписи, звуковоспроизведения, телекоммуникации, и наоборот.
К ряду многочисленных приложений ЦОС в биомедицине относятся усиление сигнала и/или извлечение из него характеристик, представляющих медицинский интерес. Необходимость в усилении сигнала возникает из-за проблемы артефактов (ложных изображений) или загрязнения сигналов, что очень часто встречается в биомедицине. Артефакты могут возникать как из-за внешних источников (например, электросети или другого медицинского оборудования), так и из-за внутренних (движения головы и тела, мышечная и сердечная активность, движения глаз). Артефакты снижают медицинскую информативность сигналов и усложняют как ручной, так и автоматический его анализ, а в некоторых случаях даже делают его невозможным из-за сходства артефактов с сигналом, представляющим медицинский интерес [15].
Задачи усиления сигнала зачастую сопровождаются двумя неразрывно связанными проблемами: низкий уровень сигнала по сравнению с шумом и перекрывание спектров сигнала и шума. Следовательно, нужно приложить много усилий, чтобы минимизировать искажение сигнала, представляющего медицинский интерес (см. [20, 23]). В следующих двух разделах будут описаны два новых биомедицинских приложения ЦОС, которые подразумевают усиление сигнала и/или извлечение необходимых характеристик. Основные интересующие нас здесь биомедицинские сигналы имеют физиологическую природу, в частности это сигналы электрокардиограмм (электрической активности сердца) и электроэнцефалограмм (электрической активности мозга).
Интервал Интервал RR
PR ;।
а)а)АмплитудаQRSАмплитудаQRSб)б)SSАмплитудаQRSАмплитудаQRSРис. 1.21. ЭКГ плода, на которой показаны основные элементы, представляющие медицинский интересРис. 1.21. ЭКГ плода, на которой показаны основные элементы, представляющие медицинский интерес
а)
а)
Амплитуда
QRS
Амплитуда
QRS
б)
б)
S
S
Амплитуда
QRS
Амплитуда
QRS
Рис. 1.21. ЭКГ плода, на которой показаны основные элементы, представляющие медицинский интерес
Рис. 1.21. ЭКГ плода, на которой показаны основные элементы, представляющие медицинский интерес
Изучение ЭКГ плода
Электрокардиограмма (ЭКГ) плода показывает электрическую активность сердца ребенка, которая измеряется на поверхности тела [20]. Частота сердцебиения плода (Fetal Heart Rate — FHR) определяется по расстоянию R-R на кардиограмме (рис. 1.21). Для оценки состояния плода во время родов обычно применяют визуальный анализ непрерывного изображения FHR вместе с сокращениями матки (маточной активности), которое называют кардиотокограммой (КТГ). Сложности, возникающие при интерпретации КТГ во время родов, могут привести к ненужному медицинскому вмешательству (например, кесаревому сечению или наложению щипцов), повреждению плода или неоказанию необходимой помощи [16].
Правильное применение комбинированного анализа ЭКГ плода и КТГ может значительно снизить процент ненужных медицинских вмешательств без каких-либо неблагоприятных последствий для младенцев [22]. В частности, для этого был создан коммерческий аппарат для ЭКГ плода, ST Analyser (STAN, Neoventa AB, Швеция).
Упрощенная схема снятия ЭКГ плода изображена на рис. 1.22. ЭКГ снимается с черепного электрода, чтобы получить хорошее отношение сигнал-шум, полоса ограничивается диапазоном 0,05-100 Гц, дискретизация проводится с точностью до 12 бит с частотой 500 раз в секунду. Данные ЭКГ плода обрабатываются для снижения шума и извлечения необходимых характеристик, а затем анализируются, чтобы можно было измерить и вывести на экран изменения формы сигнала, связанные с КТГ.
Важная характеристика ЭКГ плода — это форма сегмента ST. К числу существенных изменений формы сигнала, связанных со сжатием или растяжением, относятся постоянное увеличение амплитуды Т сигнала, отрицательные значения волны Т и по-
Рис. 1.22. Снятие ЭКГ плода во время родов
давление элементов ST. Изменения формы сигнала можно измерить как отношение амплитуды Т к амплитуде QRS, которое называют отношением Т/QRS (см. рис. 1.21). К числу остальных характеристик можно отнести область ST, изменения отрезков R-R, продолжительность Р-волны и ширину комплекса QRS.
Черепная ЭКГ плода восприимчива к низкочастотному шуму и другим артефактам, дающим ложные изменения формы сигнала, например, шум от электросети, смещение базовой линии, мышечная активность или случайные шумы. Артефакты препятствуют извлечению необходимых характеристик и могут привести к неточностям анализа характеристик ЭКГ и формы сигнала.
Для снижения шума и извлечения основных характеристик из ЭКГ применяется множество методов обработки сигнала (включая подгонку кривой и цифровую фильтрацию при нескольких скоростях). Общая схема обработки ЭКГ плода показана на рис. 1.23. Первая главная задача — точно определить R-волну. Затем из необработанной ЭКГ удаляют смещение базовой линии, шум, вызванный мышечной активностью, и частоты питающей линии, чтобы получить форму сигнала, подходящую для надежного анализа. Пример оценки и устранения смещения базовой линии показан на рис. 1.24.
Очевидно, что исследование ЭКГ плода невозможно без ЦОС. Однако, хотя проблемы обработки сигнала, которые ранее препятствовали анализу ЭКГ плода, решены, исследование ЭКГ плода все еще ограничено в некоторых вопросах. В настоящее время анализ и интерпретация изменений в ЭКГ вместе с КТГ выполняются с помощью визуального наблюдения. Врачей нужно еще научить правильно снимать ЭКГ плода, но даже после соответствующего обучения существует вероятность того, что без постоянного
Рис. 1.24. Аппроксимация (панель а) и устранение (панель б) смещения базовой линии из необработанной ЭКГ плода
наблюдения специалиста могут быть пропущены важные особенности ЭКГ. Сейчас разрабатывается “сиделка” — разумная система контроля для непрерывного анализа и интерпретации изменений в ЭКГ и КТГ, которая будет помогать врачам (см. [15, 16]).
. Анестезия с регулированием по замкнутому циклу на основе ЦОС
Огромное количество примеров применения ЦОС в медицине можно встретить в отделениях интенсивной терапии всех крупных больниц. Постоянно создаются новые современные методы работы с анестезией. Во время операции пациенты обычно находятся под наркозом, например, после введения анестезирующих препаратов внутривенно, так что они не чувствуют боли, и хирург может оперировать в спокойной обстановке. Задача анестезиолога — ввести правильную дозу препарата, чтобы как можно быстрее вызвать настолько глубокое состояние анестезии, насколько это нужно, и поддерживать это состояние без изменений на протяжении необходимого времени. Если ввести слишком большую дозу, это может привести к осложнениям или другим побочным эффектам,
а при недостаточной дозе пациент может очнуться во время операции, что также может иметь долговременные физиологические последствия [13]. В большинстве случаев глубину бессознательного состояния пациента оценивает опытный анестезиолог, наблюдая за клиническими признаками. При этом анестезиолог соответствующим образом изменяет дозу препарата, чтобы контролировать состояние анестезии. Автоматический ввод препаратов, основанный на методике регулирования по замкнутому циклу, дает большие преимущества загруженным работой анестезиологам и обеспечивает лучший уход за пациентом при меньших затратах. Эта методика снижает вероятность превышения дозы и дает анестезиологу возможность заметить и должным образом отреагировать на нарушения, которые могли бы остаться незамеченными или показаться слишком незначительными, чтобы послужить причиной ручного ввода препарата.
Однако для ввода наркотических препаратов с регулированием по замкнутому циклу необходимы надежные средства контроля глубины анестетического состояния, которые могли бы определять необходимые для поддержания этого состояния изменения в дозе. В современных анестетических системах с регулированием по замкнутому циклу для измерения глубины анестетического состояния используются биологические сигналы, также они применяются для организации обратной связи, по ним определяют поправки, которые нужно сделать при вводе препаратов. В частности, для обработки электроэнцефалограмм (ЭЭГ) применяются различные методы обработки сигнала, помогающие извлечь такие характеристики, как слуховой отклик (Auditory Evoke Response — AER) и биспектральный коэффициент, и по ним оценить глубину анестетического состояния [13]. ЭЭГ — это электрическая активность мозга, измеренная с помощью электродов, прикрепленных к голове, а слуховой отклик — это электрическая реакция мозга на внешний звуковой раздражитель. Сигналы AER незаменимы при определении момента перехода от бессознательного состояния в сознательное, но их сложно получить, поскольку они скрыты в сигналах ЭЭГ, которые в несколько раз превышают AER. Для их выявления часто пользуются усреднением сигналов отклика на эффективный слуховой раздражитель. Итак, сигналы AER необходимо обработать, извлечь их из фона ЭЭГ, а затем определить по ним характеристики, представляющие медицинский интерес (например, пики, времена задержки и форму). Биспектральный коэффициент определяется путем спектрального анализа ЭЭГ высшего порядка [19]. Он представляет собой количественную меру комплексных изменений и взаимосвязей между частотными компонентами ЭЭГ при различных уровнях сознания. Известно, что он линейно зависит от концентрации в крови пропофола, самого распространенного анестетического препарата.
Упрощенная блок-схема анестетической системы с регулированием по замкнутому циклу, основанной на ЭЭГ, изображена на рис. 1.25 (согласно [7, 8]). Главный элемент системы — это анализатор ЭЭГ, подсоединенный к пациенту через бифронтальные электроды для получения необработанных сигналов ЭЭГ. Для снижения шума, извлечения характеристик, анализа изменений этих характеристик и вычисления соответствующего показателя ЭЭГ в анализаторе используются различные методы обработки сигнала. К ним относятся импульсные преобразования, усреднение сигнала, биспектральный анализ и нейронные сети.
Рассчитанный показатель ЭЭГ, такой как биспектральный коэффициент, говорит о мере воздействия введенного препарата на пациента. Кроме того, рассчитанный показа-
Биспектр альный коэффициент (БК) пациентаБиспектр альный коэффициент (БК) пациентаРис. 1.25. Основанная на ЦОС анестетическая система с регулированием по замкнутому циклуРис. 1.25. Основанная на ЦОС анестетическая система с регулированием по замкнутому циклу
Биспектр альный коэффициент (БК) пациента
Биспектр альный коэффициент (БК) пациента
Рис. 1.25. Основанная на ЦОС анестетическая система с регулированием по замкнутому циклу
Рис. 1.25. Основанная на ЦОС анестетическая система с регулированием по замкнутому циклу
Минуты
Рис. 1.26. Пример изменения биспекгрального коэффициента пациента во время анестезии с регулированием по замкнутому циклу
тель ЭЭГ играет роль сигнала обратной связи, который сравнивается с показателем ЭЭГ пациента, чтобы определить изменения, которые нужно внести в концентрацию крови пациента Ст(к\ Для вычисления биспекгрального коэффициента и других показателей (например, А-1000, Aspect Medical System) создан коммерческий анализатор ЭЭГ. С помощью фармакинетической/фармадинамической (PK/PD) модели определяют скорость введения препарата пациенту 1(к\ Эта скорость зависит от концентрации крови пациента и других его характеристик, таких как возраст, вес и пол. Внутривенные препараты обычно вводят пациенту с помощью соответствующей анестетической капельницы под контролем специальной программы (например, STANPUMP®, S. L. Shafer, Stanford University). Пример изменения биспекгрального коэффициента во время анестезии приведен на рис. 1.26.
Резюме
В этой главе рассказывается о значении цифровой обработки сигнала, обсуждаются области ее применения, и дается определение основных операций ЦОС.
Отдельные рассмотренные примеры применения показывают, что ЦОС уже оказывает значительное влияние на электронику профессионального и потребительского уровня.
Задачи
Назовите и обоснуйте два главных преимущества и два главных недостатка ЦОС по сравнению с системами аналоговой обработки сигнала.
Опишите с помощью блок-схемы процесс воспроизведения аудиосигнала в проигрывателе компакт-дисков. Назовите и обоснуйте четыре преимущества применения методов ЦОС для этой цели.
Что такое современная система GSM? Объясните, что она представляла собой в прошлом.
Опишите с помощью блок-схемы работу сотового радиотелефона.
Коротко расскажите о роли ЦОС в цифровой сотовой радиотелефонной связи. Почему ЦОС является естественным выбором для обработки голосовой информации в цифровых радиотелефонных системах? Какие проблемы возникают при использовании ЦОС в мобильных радиотелефонах?
Объясните, что представляет собой радиоячейка. Изобразите схему трехячееч- ного повторения.
Литература
Advanced Mobile Phone Service. Bell System Technical Journal, 58(1), January 1979.
Bellamy J. C. (1982) Digital Telephony. New York: Wiley.
Benoit H. (1997) Digital Television: MPEG-1, MPEG-2 and Principles of the DVB System. London: Arnold.
Bloom P. J. (1985) High-quality digital audio audio in the entertainment industry: an overview of achievements and challenges. IEEE ASSP Magazine, October, 2-25.
Carasso M. G., Peek J .В. H. and Sinjou J. P. (1982) The compact disc digital audio system. Philips Technical Rev, 40(6), 151-156.
Clark R. J., Ifeachor E. C., Rogers G. M. and Van Eetvelt P. W. J. (2000) Techniques for generating digital equaliser coefficients. Journal of Audio Engineering Society, 48(4), 281-298.
Dong C., Kehoe J., Henry J., Ifeachor E. C., Reeve C. D. and Sneyd J. R. (1998) Closed loop computer controlled sedation with propofol. British Journal of Anaesthesia, 81, 63 IP.
Dong C., Reeve C. D., Sneyd J. R. and Ifeachor E. C. (1999) Closed-loop control of intravenous drug infusion. 1EE Proc. Sci. Meas. Techno!, (submitted).
Duttweiller D. L. (1978) A twelve-channel digital echo canceler. IEEE Trans. Communications, 26,647-653.
ETSI/GSM Recommendations: ETSI, BP 152, F-06561 Valbonne CEDEX, France.
Frantz G. A. and Wiggins R. H. (1982) Design case history: Speak and Spell learns to talk. IEEE Spectrum, February, 45-49.
Horrocks R. J. and Scarr R. W. A. (1993) Future Trends in Telecommunications. New York: Wiley.
Huang J. W., Lu Y, Nayak A. and Roy R. J. (1999) Depth of anaesthesia estimation and control. IEEE Trans. Biomed. Eng., 46( 1), 71-81.
Ifeachor E. C., Hellyar M. T, Mapps D. J. and Allen E. M. (1990) Knowledge-based enhancement of EEG signals. Proceedings of IEEE Radar and Signal Processing, 37, 302-310.
Ifeachor E. C. and Outram N.J. (1995) A fuzzy expert system to assist in the management of labour. Proc. International 1CSC Symposium on Fuzzy Logic, ICSC, C97-102, Zurich, Switzerland.
Keith R. D. F., Beckley S., Garibaldi J. M., Westgate J., Ifeachor E.C. and Greene K.R. (1995) A multicentre comparison study of 17 experts and an intelligent computer system for managing labour using the cardiotocogram. Brit. J. Obstet. Gynaecol., 102, 688-700.
Macario R. С. V. (ed.) (1991) Personal and Mobile Radio Systems (Chapters 4, 9, 13 and 14). Peter Peregrinus Ltd for the Institution of Electrical Engineers.
Macario R. С. V. (ed.) (1996) Modern Personal Radio Systems (Chapters 3, 8, 11 and 12). The Institution of Electrical Engineers, London.
Nikias C. L. and Raghuveer M. R. (1987) Bispectrum estimation: a digital signal processing framework. Proc. IEEE, 75, July, 869-891.
Outram N. J., Ifeachor E. C., Van Eetvelt P. W. J. and Curnow J. S. H. (1995) Techniques for optimal enhancement and feature extraction of fetal electrocardiogram. 1EE Proc. Set. Meas. Technol, 142(6), November, 482-489.
Watkinson J. (1994) The Art of Digital Audio. Second edition. Oxford: Butterworth-Heinemann.
Westgate J., Harris M., Cumow J. and Greene K. R. (1993) Plymouth randomised trial of the cardiotocogram only versus ST waveform plus cardiotocogram for intrapartum monitoring in 2400 cases. Am. J. Obstet. Gynecol, 169, 1151-1160.
Wu J., Ifeachor E. C., Allen E. M., Wimalarantna S. K. and Hudson N. R. (1997) Intelligent artefact identification in electroencephalography signal processing. IEEE Proceedings Science, Measurement and Technology, 144(5), 193-201.
Дополнительная литература
Mitra S. K. (1998) Digital Signal Processing — A Computer-Based Approach. New York: McGraw-Hill.
Mulgrew B., Grant P. and Thompson J. (1999) Digital Signal Processing — Concepts and Applications. Basingstoke: Macmillan.
Oppenheim A. V. and Schafer R. W. (1975) Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Oppenheim A. V. and Schafer R. W. (1989) Discrete-Time Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Orfanidis S. J. (1996) Introduction to Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Papamichalis P. (1987) Practical Approaches to Speech Coding. Englewood Cliffs NJ: Prentice-Hall.
Rabiner L. R. and Gold B. (1975) Theory and Applications of Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Аналоговый интерфейс ввода-вывода для систем ЦОС реального времени
Характерные системы ЦОС реального времени64
Процесс преобразования аналогового сигнала в цифровой65
Дискретизация — низкочастотные и полосовые сигналы66
Однородное и неоднородное квантование и кодирование91
Выборка с запасом по частоте при аналого-цифровом преобразовании 96
Процесс цифроаналогового преобразования: восстановление сигнала 110
Цифроаналоговый преобразователь111
Фильтры защиты от зеркальных частот113
Выборка с запасом по частоте при цифроаналоговом преобразовании 113
Ограничения обработки сигналов в реальном времени с аналоговыми входными/выходнымисигналами117
Примеры применения118
Резюме119
Литература133
Дополнительная литература133
Во многих реальных приложениях сигналы изначально имеют аналоговую форму, а ЦОС оперирует цифровыми данными. Следовательно, для успешного взаимодействия систем ЦОС с реальным миром необходим аналоговый интерфейс ввода- вывода, позволяющий осуществлять переход от аналогового формата к цифровому. В системах ЦОС, работающих в реальном времени, аналоговый интерфейс ввода- вывода является слабым звеном, поскольку он вносит неустранимую погрешность и ограничивает скорость работы (см. далее). Главным условием успешной разработки системы ЦОС реального времени с аналоговым входом и/или выходом, а также систем, предназначенных для других областей ЦОС (например, для обработки при нескольких скоростях), является глубокое понимание вопросов, касающихся проектирования аналогового интерфейса ввода-вывода. Многие вопросы, связанные с проектированием подобных систем, рассмотрены в этой главе. В частности, прочитав эту главу, читатель будет
знать теоретические основы проектирования аналогового интерфейса ввода- вывода для систем ЦОС реального времени (например, теоремы о низкочастотной и полосовой дискретизации и то, как их применять для решения практических задач, а также природу ошибок, возникающих в аналоговом интерфейсе ввода- вывода);
уметь устанавливать, оценивать и определять основные параметры аналогового интерфейса ввода-вывода (например, частоту дискретизации и уровень искажения от наложения спектров);
понимать основные принципы метода выборки с запасом по частоте в аналоговом интерфейсе ввода-вывода (например, выборка с запасом по частоте и ограничение шума, проектирование и анализ простых преобразователей для выборки с запасом по частоте).
Для иллюстрации этих понятий мы воспользовались примерами из областей записи и воспроизведения звука, телекоммуникаций и биомедицины.
Характерные системы ЦОС реального времени
Блок-схема типичной системы ЦОС, работающей в реальном времени, изображена на рис. 2.1. Аналоговый входной фильтр используется для ограничения полосы частот входного аналогового сигнала перед его оцифровкой, чтобы уменьшить наложение (см. далее). Аналого-цифровой преобразователь (АЦП) трансформирует аналоговый входной сигнал в цифровую форму. Если у сигнала широкая полоса частот или если применяется низкоскоростной АЦП, то перед оцифровкой сигнала нужно воспользоваться схемой выборки-хранения, хотя в новейшие АЦП такие схемы уже встроены. После цифровой обработки в процессоре цифроаналоговый преобразователь (ЦАП) вновь преобразует обработанный сигнал в аналоговую форму. Выходной фильтр сглаживает выход ЦАП и устраняет нежелательные высокочастотные компоненты.
Рис. 2.1. Блок-схема упрощенной обобщенной системы цифровой обработки сигналов реального времени. В некоторых приложениях входной фильтр и АЦП или ЦАП и выходной фильтр не нужны
Сердце системы, изображенной на рис. 2.1, — это цифровой процессор, которым может быть обычный универсальный процессор, такой как Motorola MC68000, чип процессора цифровой обработки сигнала, например, Texas Instruments TMS320C50 или Motorola DSP56000, или какое-либо другое устройство. Цифровой процессор может выполнять один из нескольких алгоритмов ЦОС, например цифровую фильтрацию, и отображать вход х(п) в выход y(n).
При обработке сигнала цифровым процессором подразумевается, что перед обработкой входной сигнал нужно преобразовать в цифровую форму. В некоторых приложени-
Фильтр нижних частот Выборка-хранениеКвантованиеКодирование
код, х(л)
Рис. 2.2. Графическое представление процесса преобразования аналогового сигнала в цифровой
ях, работающих в реальном времени, данные уже представлены в цифровом виде или их не нужно преобразовывать в аналоговый сигнал. Например, после обработки сигнал может храниться в памяти компьютера с целью использования в будущем или изображаться графически на экране. В других приложениях может возникнуть необходимость создания цифровых сигналов. Примерами таких приложений служат синтез речи, цифровой синтез частот и генерация псевдослучайных бинарных последовательностей. В данной книге в большинстве случаев считается, что сигнал имеет цифровой вид или был оцифрован соответствующим образом, который описан в следующем разделе.
Процесс преобразования аналогового сигнала в цифровой
Как говорилось выше, прежде чем выполнять любой алгоритм ЦОС, сигнал нужно представить в цифровом виде. Большинство сигналов в природе существуют в аналоговом виде, поэтому для них необходим процесс аналого-цифрового преобразования, который состоит из таких этапов.
Вначале сигнал (с ограниченной полосой) дискретизуется, т.е. аналоговый сигнал преобразуется в дискретный по времени сигнал с непрерывной амплитудой.
Амплитуда каждого дискретного элемента сигнала квантуется в один из 2В уровней, где В — число битов, которым дискретная выборка представлена в АЦП.
Дискретные уровни амплитуды представляются или кодируются в виде различных бинарных слов, каждое из которых имеет длину В бит.
Описанный процесс изображен на рис. 2.2. На этом рисунке можно выделить три различных типа сигнала.'
Аналоговый входной сигнал непрерывен как по времени, так и по амплитуде.
Дискретный сигнал непрерывен по амплитуде, но определяется только в дискретных точках во времени.
Цифровой сигнал х(п)(п = 0,1,...) существует только в дискретных точках во времени и в каждой временной точке может иметь одно из 2В значений (дискретный во времени сигнал с дискретной амплитудой). Именно этот тип сигнала и будет интересовать нас в данной книге.
Рис. 2.3. Пример дискретного сигнала (идеальная дискретизация). Дискретные значения сигнала равны значениям исходного аналогового сигнала в эти моменты времени
Заметим, что и дискретный во времени (те. дискретизованный сигнал), и цифровой сигнал можно передать в виде последовательности чисел z(nT), или просто z(n)(n = 0,1,2,...). Рассмотрим процесс оцифровки сигнала подробнее, шаг за шагом.
Дискретизация — низкочастотные и полосовые сигналы
Дискретизация — это определение значений непрерывного сигнала (например, аналогового) в дискретные моменты времени. Это основное понятие обработки сигнала в реальном времени. Пример аналогового сигнала, подвергшегося дискретизации, показан на рис. 2.3. Отметим, что в данном идеальном случае после дискретизации аналоговый сигнал представлен только в дискретные моменты времени, причем значения сигнала в эти моменты равны соответствующим значениям исходного аналогового сигнала.
Ниже будет дано качественное описание теоремы о дискретном представлении, определяющей частоту, с которой должна осуществляться дискретизация аналогового сигнала, чтобы вся важная информация, содержащаяся в сигнале, собиралась и сохранялась при дискретизации. На практике чаще всего встречаются два вида дискретизации — дискретизация низкочастотных сигналов и полосовых сигналов. Как будет показано ниже, дискретизацию полосовых сигналов можно рассматривать как частный случай более общей низкочастотной дискретизации.
Дискретизация низкочастотных сигналов
Теорема о дискретном представлении
Если /тах — самый высокочастотный компонент сигнала, то, чтобы элементы выборки полностью описывали сигнал, дискретизация сигнала должна осуществляться с частотой не ниже 2/тах:
^>2/тах,(2.1)
где Fs — частота дискретизации. Следовательно, если максимальная частота аналогового сигнала составляет 4 кГц, то для того, чтобы собрать или сохранить всю информацию, содержащуюся в сигнале, его дискретизация должна осуществляться с частотой 8 кГц или больше. Дискретизация с частотой, меньшей той, которую дает теорема о дискретном представлении, приведет к появлению перегибов или наложению зеркальных частот в интересующей нас частотной области. Следовательно, если захочется преобразовать дискретную информацию обратно в аналоговую, исходный сигнал будет уже невозможно восстановить. Важно помнить о том, что часто значительная доля энергии сигнала может попадать за пределы интересующей нас частотной области, и/или сигнал может содержать шум, ширина полосы которого всегда будет большой. Например, в телефонной связи самая высокая из представляющих интерес частот составляет приблизительно 3,4 кГц, но частоты речевого сигнала могут превышать 10 кГц. Поэтому, если не удалить лишний сигнал или шум за пределы полосы интересующих нас частот, теорема о дискретном представлении выполняться не будет. На практике это достигается путем предварительного пропускания сигнала через аналоговый фильтр защиты от наложения спектров.
Наложение и спектры дискретных сигналов
Предположим, мы выполнили дискретизацию сигнала в определенной временной области с интервалом Т (в секундах) (т.е. частота дискретизации равна 1/Т (в герцах)). Видно (рис. 2.4), что в исходном сигнале есть еще одна частотная составляющая с таким же набором дискретных значений. Следовательно, этот частотный компонент можно ошибочно принять за компонент с более низкой частотой. Это и есть наложение. С точки зрения анализа следствий или поиска решения задачи наложения исследовать наложение лучше в частотных координатах.
На рис. 2.5 показан процесс дискретизации, который можно рассматривать как умножение аналогового сигнала s(t) на выборочную функцию p(t). Функция p(t) состоит из импульсов единичной амплитуды с шириной dt (бесконечно малой величиной) и периодом Т. Спектр сигнала s(t), функция p(t) и их произведение показаны на рис. 2.5. Заметим, что Х'(/) ~ это свертка Х(/) и P(J\ следовательно, умножение во временных координатах эквивалентно свертке в частотных координатах.
Для дискретного сигнала (рис. 2.5, г) следует отметить такие моменты.
ОГ2Г ЗГ 4Г 5Г 6Г 7Г
Моменты взятия выборки
Рис. 2.4. Пример наложения во временных координатах. Обратите внимание на то, что оба сигналаимеют одинаковые значения в одних и тех же точках, хотя их частоты различны
Спектр идентичен исходному аналоговому спектру, только повторяется в точках, кратных частоте дискретизации Fs. Компоненты более высокого порядка с центрами в точках, кратных Fs, называются зеркальными частотами.
Если частота дискретизации Fs недостаточно высока, то зеркальные частоты с центром в Fs будут, например, накладываться на частоты основной полосы (рис. 2.6). В этом случае полезную информацию, содержащуюся в сигнале, невозможно отличить от его образа в области наложения.
Перекрывание (или наложение) происходит в районе точки FN, равной половине частоты дискретизации. Эту точку часто называют максимальной частотой сигнала, частотой Найквиста, частотой Котельникова и т.п.
На практике наложение существует всегда, из-за шума и наличия энергии сигнала за пределами полосы частот, которая представляет интерес. Поэтому задача разработчика — определить уровень допустимого наложения, создать подходящий фильтр защиты от наложения спектров и выбрать подходящую для этого частоту дискретизации.
Фильтр защиты от наложения спектров
Для уменьшения эффектов наложения обычно используют фильтры защиты от наложения спектров с резким срезом, которые ограничивают полосу частот сигнала и/или увеличивают частоту дискретизации, чтобы отодвинуть спектр сигнала и зеркальный спектр дальше друг от друга. В идеале фильтр защиты от наложения спектров должен устранять все частотные компоненты с частотой, превышающей частоту наложения, т.е. его частотная характеристика должна быть похожей на ту, которая изображена на рис. 2.7, а. Более реальная характеристика показана на рис. 2.7, б, где fc и fs — это соответственно частота среза и частота полосы подавления. Из рис. 2.7, бив видно, что практическая характеристика искажает амплитуду сигнала, поскольку ее полоса пропускания не плоская. Кроме того, компоненты сигнала, превышающие Js, будут подавляться на Xmin, а амплитуды компонентов, которые лежат между /с и fs (ширина полосы перехода), будут спадать монотонно.
б)
Рис. 2.5. Описание процесса дискретизации во временной и частотной областях. Сравните спектры сигнала до (б) и после (г) дискретизации. Обратите внимание на изменения в дискретном сигнале и, в частности, на то, что спектр дискретного сигнала повторяется в точках, кратных частоте дискретизации Fs
Рис. 2.6. Спектр сигнала, прошедшего процесс дискретизации, на котором показано наложение. Сигналы в области наложения не поддаются восстановлению. Fr равно половине частоты дискретизации и обычно называется частотой Найквиста. Чтобы восстановить все компоненты сигнала, нужно провести выборку с частотой, превышающей удвоенную частоту самого высокочастотного компонента (или равной ей)
Таблица 2.1. Оценка минимального затухания в полосе подавления фильтра нижних частот (Amin) Дм различных значений разрешающей способности АЦП (В)
В
■^mln (дБ)
8
10
12
16
50
62
74
98
Фильтр защиты от наложения спектров должен обеспечивать достаточное подавление характеристики на частотах, превышающих частоту Найквиста. Из-за неиде- альности характеристик тех фильтров, которые используются на практике, в качестве эффективной частоты Найквиста берется fs (частота среза). При спецификации фильтра защиты от наложения спектров полезно также учитывать требования к разрешению АЦП. Итак, фильтр защиты от наложения спектров следует разрабатывать так, чтобы частоты, превышающие частоту Найквиста, подавлялись до уровня, неразличимого для АЦП, например, до уровня, меньшего, чем шум квантования (см. далее). Так, для системы, в которой используется В-битовый линейный АЦП, минимальное затухание в полосе подавления фильтра, как правило, будет равно
Amin = 20^(УЦ5 х 2В),Amin = 20^(УЦ5 х 2В),(2.2)(2.2)
Amin = 20^(УЦ5 х 2В),
Amin = 20^(УЦ5 х 2В),
(2.2)
(2.2)
где В — это количество битов АЦП (подробнее см. пример 2.3). Значения Amin для различных значений В даны в табл. 2.1.
Применение для предварительной обработки данных системы ЦОС аналогового фильтра накладывает еще одно ограничение, так называемое условие фазового искажения. На рис. 2.7, г изображена фазовая характеристика фильтра защиты от наложения спектров, амплитудная характеристика которого дана на рис. 2.7, в. Здесь показано, что фазовая характеристика зависит от частоты нелинейно, так что компоненты искомого сигнала будут иметь смещенную фазу или задерживаться на величину, не пропорцио-
Рис. 2.7. Идеальная и реальные частотные характеристики фильтров защиты от наложения спектров, показывающие ошибки, которые дают реальные фильтры: а) идеальная характеристика; б) реальная амплитудная характеристика; в) реальная полосовая амплитудная характеристика; г) реальная фазовая характеристика. Сравним, к примеру, плоскую полосовую характеристику на панели о и реальную полосовую характеристику на панели в: неравномерность реальной характеристики приводит к амплитудному искажению внутриполосных компонентов сигнала
нальную их частотам. Величина искажения зависит от характеристик фильтра, включая то, насколько круто спадает его амплитудно-частотная характеристика. В большинстве случаев, чем круче спад (т.е. чем уже полоса пропускания), тем большее фазовое искажение вносит фильтр, и тем труднее согласовать амплитуду и групповую задержку каналов в многоканальной системе. Однако применение фильтров с крутым срезом позволяет использовать низкую частоту дискретизации и менее скоростные, т.е. более дешевые АЦП.
При обработке сигналов в реальном времени наблюдается тенденция к использованию высокой частоты дискретизации, т.е. выборке с запасом по частоте, даже если это осуществляется за счет применения скоростных и дорогих АЦП. Этому есть несколько причин. Во-первых, так можно использовать простые фильтры защиты от наложения спектров, минимизирующие фазовое искажение, и, что важно для многоканальных систем, снижающих стоимость. Во-вторых, выборка с запасом по частоте в сочетании с дополнительной цифровой обработкой сигнала приводит к улучшению отношения сигнал-шум (см. главу 9). Чтобы систему ЦОС с аналоговым устройством предвари-
Г, = 40 кГц
Рис. 2.8. Устройство предварительной обработки данных системы ЦОС реального времени
тельной обработки данных можно было использовать в различных приложениях, частота среза фильтра должна быть переменной. В употребление входят программируемые аналоговые фильтры, например MF10, но их производительность не совсем удовлетворительна, а для многоканальных систем они могут оказаться слишком дорогими. Дискретизация аналогового сигнала с запасом по частоте позволяет применять метод цифрового преобразования частоты дискретизации (см. главу 9), чтобы проще было соответствовать требованиям переменной частоты среза.
Примеры, иллюстрирующие выбор частоты дискретизации и контроль за наложением спектров
К числу факторов, которые влияют на выбор частоты дискретизации, относятся:
частотное содержание входного сигнала;
требования к фильтрации для защиты от наложения спектров;
допустимый уровень искажения от наложения спектров;
разрешающая способность АЦП;
требования к памяти.
Влияние первых двух факторов на частоту дискретизации уже обсуждалось. Для определения допустимого уровня искажения от наложения спектров можно использовать один из множества разработанных методов; в большинстве случаев — это взаимосвязь между частотой дискретизации, уровнем искажения от наложения и параметрами фильтра. Например, можно определить допустимый уровень искажения для заданных характеристик фильтра защиты от наложения спектров, а затем определить частоту дискретизации, необходимую для достижения этого уровня. Можно также при заданной частоте дискретизации рассчитать минимальное затухание в полосе подавления, которое даст фильтр защиты от наложения спектров, необходимое для обеспечения определенного уровня искажения. На практике следует также учитывать разрешающую способность АЦП, так как она определяет минимальный уровень шумов в системе.
Следующие примеры иллюстрируют некоторые моменты, касающиеся выбора частоты дискретизации и контроля за наложением спектров.
Пример 2.1
Иллюстрация дискретизации и взаимосвязи между уровнем искажения от наложения и частотой дискретизации. На рис. 2.8 изображено устройство предварительной обработки данных системы ЦОС реального времени. Предположим, что входной сигнал является широкополосным.
Изобразите спектр сигнала до дискретизации (точка А) и после нее (точка В) в пределах области ±F3/2.
Б. Найдите уровень сигнала и искажения от наложения при частоте 10 кГц и частоте Найквиста (те. 20 кГц).
Определите минимальную частоту дискретизации (F3 (min)), которая дает отношение сигнала к уровню искажения от наложения 10:1 при частоте 10 кГц. Укажите все дополнительные предположения.
Решение
Спектр сигнала до и после дискретизации изображен на рис. 2.9. Заметим, что форма каждого спектрального компонента имеет ту же форму, что и характеристика фильтра Баттерворта, т.е.
Б. Спектр сигнала на выходе фильтра равен произведению спектра сигнала и характеристики фильтра, т.е. Х(/)|Н(/)|. Для входного широкополосного сигнала спектр Х(/), по сути, плоский. Если предположить, что максимальное значение Х(/) и H(f) равно единице (т.е. они нормированы), уровень сигнала до дискретизации (на выходе фильтра) и после нее (после схемы выборки-хранения) определяется характеристикой аналогового фильтра.
Итак, при частоте 10 кГц уровень нормированного сигнала (из приведенного выше уравнения) равен просто 0,707 (т.е. 1/V2). Уровень искажения от наложения (согласно рис. 2.9, б) задается как
уровень наложения, Ха = —■■— = 0,012.
V1+®*
Частота Найквиста равна 20 кГц (т.е. половине частоты дискретизации). Это точка пересечения характеристик на рис. 2.9, б, поэтому уровни сигнала и искажения от наложения одинаковы. И уровень сигнала, и уровень наложения при 20 кГц (исходя из выражения для характеристики Баттерворта, где / = 20 кГц, а /с = 10 кГц) равны 0,062.
При 10 кГц уровень сигнала составляет 0,707. Отношение уровня сигнала к уровню наложения 10:1 предполагает уровень наложения в 0,0707. Зеркальный компонент, который вызывает наложение, определяется уравнением Баттерворта. Следовательно, из указанного уравнения находим:
1=11117117
т.е. / = 19,39 кГц.
Это соответствует частоте наложения при 10 кГц, т.е. /о на приведенном выше рис. 2.9, б. Следовательно, частота дискретизации Fs = /а + 10 = 29,39 кГц.
Рис. 2.9. Спектр дискретного сигнала, на котором показано искажение, вызванное наложением и шумом квантования АЦП
Дискретный сигналДискретный сигналРис. 2.10. Устройство предварительной обработки в простой системе сбора данных. Простой активный фильтр ограничивает полосу частот сигнала перед дискретизацией с частотой ГаРис. 2.10. Устройство предварительной обработки в простой системе сбора данных. Простой активный фильтр ограничивает полосу частот сигнала перед дискретизацией с частотой Га
Дискретный сигнал
Дискретный сигнал
Рис. 2.10. Устройство предварительной обработки в простой системе сбора данных. Простой активный фильтр ограничивает полосу частот сигнала перед дискретизацией с частотой Га
Рис. 2.10. Устройство предварительной обработки в простой системе сбора данных. Простой активный фильтр ограничивает полосу частот сигнала перед дискретизацией с частотой Га
Пример 2.2
На рис. 2.10 изображено устройство предварительной обработки в простой системе сбора данных. Найдите минимальную частоту дискретизации Fs, при которой искажение от наложения будет составлять меньше 2 % от уровня сигнала в полосе пропускания.
Решение
Амплитудная характеристика активного фильтра задается следующим образом:
ТО)!-,,где/с = 1/2,ЯС = 2кГц.
Спектр входного сигнала с ограниченной полосой частот и спектр дискретного сигнала показаны на рис. 2.11, где предполагалось, что на вход подается аналоговый широкополосный сигнал.
Рис. 2.11. Спектр сигнала а) на выходе аналогового фильтра и б) после дискретизации (пример 2.2)
На рисунке видно, что спектр дискретного сигнала повторяется на частотах, кратных частоте дискретизации. Перекрывание зеркальных частот с интересующей нас полосой частот (от 0 до 2 кГц) — это наложение.
При частоте 2 кГц уровень сигнала Хь = 0,7071, так что искомый уровень наложения < 0,7071 х 2/100 = 0,01414.
Следовательно,
гДе /а — частота наложения. Решив это уравнение относительно /а, получим: /а < 141,4 кГц. Следовательно,
Fs(min) > Л + /а = 2 кГц + 141,4 кГц = 143,4 кГц.
Если учесть спецификации и появление зеркальных частот в точках 2F,, 3F, и т.д. (что ранее не учитывалось), то F,(min) > 143,4 кГц. Положим Fs(min) = 150 кГц.
Пример 2.3
Иллюстрация взаимосвязи между разрешающей способностью АЦП и параметрами фильтра. На рис. 2.12 изображена система ЦОС реального времени. Предположив, что интересующая нас полоса частот занимает положение от 0 до 4 кГц, и что используется 12-битовый биполярный АЦП, оцените:
минимальное затухание в полосе подавления Amin для фильтра защиты от наложения спектров;
Фильтр нижних частот Баттерворта третьего порядка
Рис. 2.12. Система цифровой обработки сигналов реального времени
Рис. 2.13. Типичная амплитудно-частотная характеристика реального фильтра защиты от наложения спектров
минимальную частоту дискретизации Fs;
уровень искажения от наложения спектров относительно уровня сигнала в полосе пропускания для оцененных Amin и Fs.
Изобразите спектр сигнала на выходе аналогового фильтра, предположив, что на вход подается широкополосный сигнал, а также спектр сигнала после дискретизации.
Решение
Согласно условиям теоремы о дискретном представлении фильтр защиты от наложения спектров должен ограничивать полосу частот спектра входного сигнала таким образом, чтобы во избежание наложения удалить частотные компоненты, превышающие частоту Найквиста.
На практике, поскольку идеального фильтра не существует, фильтр защиты от наложения обычно подавляет частотные компоненты, превышающие частоту Найквиста, до уровня, меньшего чем среднеквадратический уровень шума квантования АЦП, так что эти компоненты становятся неразличимы для АЦП.
Типичная амплитудно-частотная характеристика фильтра защиты от наложения спектров изображена на рис. 2.13, где показаны полосы пропускания, подавления и перехода. Фильтр защиты от наложения спектров разработан для подавления уровня частотных компонентов в полосе подавления, те. частот > /^1ах, до уровня, не превышающего среднеквадратический уровень шума квантования АЦП.
Итак, эффективная частота Найквиста равна /„„, а эффективную частоту дискретизации можно найти так:
Fs > 2/;ах.(2.3)
Теперь величина шага квантования задается как
_ Vfs _Vf,4 2В -2В’
где В — количество битов АЦП, a Vfs — полный диапазон входного сигнала.
Следовательно,
Vfs«qx2B.
Среднеквадратический уровень шума квантования задается как
V 12 2^3’
Если предположить для простоты, что входной сигнал имеет вид синусоиды с максимальной амплитудой А (такой сигнал точно вмещается в диапазон частот АЦП), то максимальный уровень сигнала полосы пропускания будет равен
Vfs = 2A = qx 2В.
Следовательно,
Отношение максимального уровня сигнала в полосе пропускания к уровню сигнала в полосе подавления показывает меру максимального затухания сигнала в полосе подавления фильтра:
максимальный уровень сигнала в полосе пропускания q X 2В/2V2
уровень сигнала в полосе подавленияq[2 \/3
= У??5 х 2В.
Итак, в системе ЦОС минимальное затухание Amin в полосе подавления (при синусоидальном входе) задается как
Amin = 201g(VH5x2B)AB =74 дБ.
Спектр сигнала до и после дискретизации (без зеркальных частот более высоких порядков) показан на рис. 2.14.
Рис. 2.14. Спектр сигнала: а) на выходе аналогового фильтра; б) после дискретизации (пример 2.3)Рис. 2.14. Спектр сигнала: а) на выходе аналогового фильтра; б) после дискретизации (пример 2.3)ИзИз4,., = 74 = 201g4,., = 74 = 201g1 +1 +_ 16 2_ 16 2
Рис. 2.14. Спектр сигнала: а) на выходе аналогового фильтра; б) после дискретизации (пример 2.3)
Рис. 2.14. Спектр сигнала: а) на выходе аналогового фильтра; б) после дискретизации (пример 2.3)
Из
Из
4,., = 74 = 201g
4,., = 74 = 201g
1 +
1 +
_ 1
6 2
_ 1
6 2
получаем.
= (501Ц87)2 - 1,
\ J с /
откуда /^ = 68,45 кГц.
Из уравнения (2.3) получаем: Fa = 2/^ = 136,9 кГц.
При частоте 4 кГц уровень наложения составляет
г = 2,73 х IO”5.
[1 + (136^4)6] 3
Уровень наложения спектров относительно уровня сигнала при частоте 4 кГц равен
2,73 х 10"50,7071 '
Если нужно подавить граничную частоту полосы пропускания настолько, чтобы она точно была ниже уровня шума квантования, частоту дискретизации можно снизить до 68,4 + 4 = 72,4 кГц.
Зеркальныйкомпонент
Уровень шума АЦП
2FS /(кГц)
Рис. 2.15. Спектр дискретного сигнала, иа котором показано искажение, вызванное наложе-нием и квантованием АЦП (пример 2.4)
Пример 2.4
Использование минимального уровня шума АЦП как эталона. Полоса частот аналогового сигнала с однородной спектральной плотностью мощности ограничена фильтром защиты от наложения спектров со следующей амплитудной характеристикой:
где /с = 5 кГц. Сигнал оцифрован с помощью линейного 12-разрядного биполярного АЦП. Найдите:
минимальную частоту дискретизации, при которой максимальное искажение от наложения не будет превышать уровень шума квантования;
максимальный уровень сигнала в полосе пропускания (в дБ) относительно минимального уровня шума квантования АЦП.
Решение
Частоту дискретизации следует выбирать так, чтобы фильтр защиты от наложения спектров ослаблял искажение от наложения, попадающее в полосу пропускания, до уровня, меньшего, чем минимальный среднеквадратический шум АЦП, чтобы оно было неразличимо для АЦП (рис. 2.15).
Предположим, что входной сигнал имеет вид синусоиды с максимальной амплитудой А (такой сигнал точно вмещается в диапазон АЦП), тогда среднеквадратическое значение входного сигнала: ^, шаг квантования: q«^,
среднеквадратический шум квантования:
При частоте 5 кГц максимальное искажение вследствие наложения равно
А 1_ Л
Х [1 + (-Ь)6] * ~(2-4)
При В = 12 бит это уравнение можно решить относительно частоты наложения /о и, следовательно, найти частоту дискретизации Fs:
fa = 85,59 кГц,
Fs = /а + 5 = 90,59 кГц.
Максимальный уровень сигнала относительно минимального уровня шума АЦП:
максимальное среднеквадратическое значение уровня сигналаЛ/у/2/-—-в
— " ' ■ ■ - ■ -.. .-- _„. _.. _ . —__—-1^5x2 .
максимальное искажение в результате квантованияAJUj^ X 25)
Сигнал-минимальный уровень шума АЦП = 201g(^/l, 5 X 2В).(2.5)
дБ.дБ.Заметим также, что отношение сигнал-минимальный уровень шума АЦП в данном случае можно найти из следующего выражения (см. уравнение (2.4)):
дБ.
дБ.
сигнал — минимальный уровень шума = 201g
Другие практические вопросы, связанные с дискретизацией: точность и ограничение ширины полосы
На практике мгновенная выборка, показанная на рис. 2.5, г, невозможна; вместо этого функция отсчетов имеет конечную ширину. Это приводит к возникновению проблемы, называемой апертурным эффектом, возникающей, поскольку сигнал измеряется за конечный отрезок времени, а не мгновенно. Ненулевое апертурное время ограничивает точность и максимальную частоту сигнала, который можно оцифровать, поскольку сам сигнал может измениться во время дискретизации. Величину апертурного эффекта можно найти, предположив, что входное напряжение на протяжении апертурного отрезка времени может изменяться, скажем, не более чем на | МЗБ (младшего значащего бита). Следовательно, для синусоидального входного сигнала максимальная частота, которая может быть оцифрована с точностью до | МЗБ, в системе с В-битовым АЦП задается как,
/max — г)В+1 >(2-6)
где т — это апертурное время (доказательство см. в примере 2.5).
Пример 2.5
В системе ЦОС реального времени используется 12-битовый АЦП со временем преобразования 35 мкс и без схемы выборки-хранения. Какова наибольшая частота, поддающаяся оцифровке в пределах точности | МЗБ, если предположить, что система бинарна с однородным квантованием? Результат прокомментируйте.
v(0 =-у sinoHv(0 =-у sinoHРис. 2.16. Синусоидальный сигнал (пример 2.5)Рис. 2.16. Синусоидальный сигнал (пример 2.5)
v(0 =-у sinoH
v(0 =-у sinoH
Рис. 2.16. Синусоидальный сигнал (пример 2.5)
Рис. 2.16. Синусоидальный сигнал (пример 2.5)
Решение
dv^dtdv^dtДртДртРассмотрим синусоидальный сигнал с максимальной амплитудой, равной половине полного диапазона АЦП, V/s/2 (рис. 2.16). На рисунке т — это апертурное время, а Др — изменение р(() за время т. Самое большое изменение происходит в точке t = О, и, чтобы АЦП выдавал сигнал с желаемой точностью, это нужно учесть. В этой точке
dv^dt
dv^dt
Дрт
Дрт
= (Vjs/Ylwcoswt = тг/^ДВ с т) = t=0
Для точности | МЗБ Др = а/2, где а = (V/S/2B). Следовательно, £Хи]т = nfVf,. Подставив значения V;s и Др и упростив выражение, получим
1тг2в+1т'1тг2в+1т'
1тг2в+1т'
1тг2в+1т'
Для рассматриваемой системы ЦОС В = 12 бит и г = 35 мкс. Следовательно, /тах = 1, И Гц. '
Ясно, что от АЦП, который может преобразовывать только максимальную частоту 1,11 Гц, мало пользы. На практике перед АЦП обычно стоит устройство выборки- хранения, которое замораживает элемент сигнала во время преобразования и дает возможность точно оцифровывать сигналы в килогерцевом диапазоне. Например, если перед АЦП, рассмотренным выше, расположить схему выборки-хранения с апертурным временем 25 нс и временем захвата сигнала 2 мкс, то максимальная частота, которую можно преобразовать, будет равна
2/max < Fs = 1/(35 + 2 + 0,025) х 10"6 кГц, т.е. /тах = 13,5 кГц.
Следовательно, сигнал с максимальной частотой 13,5 кГц будет дискретизоваться с частотой 27 кГц, или с интервалом (35 + 2 + 0,025) мкс = 37,025 мкс.
2.3.2. Дискретизация полосовых сигналов
Введение и основные понятия
В некоторых приложениях, например, в системах связи, полезный сигнал занимает только узкую часть доступной полосы частот (рис. 2.17).
В таких случаях ширина полосы сигнала В зачастую очень мала по сравнению с верхней и нижней граничными частотами полосы (JL и /и), поэтому использовать теорему о низкочастотной дискретизации неэкономно. Чтобы побороть эту трудность, можно использовать теорему о полосовой дискретизации (уравнение 2.7):
2/н / г
где,
Jh ,=-=,
71 = -=- (п — целое, округленное до ближайшего большего целого числа).
В
Теорема о полосовой дискретизации позволяет выполнять дискретизацию узкополосных высокочастотных сигналов со значительно сниженной частотой и при этом избегать наложения [4, 6]. Существует два общих метода полосовой дискретизации без наложения с недостаточной выборкой. Один из них — это так называемая дискретизация целочисленной полосы, а в другом используется квадратурная модуляция. Второй метод в данной книге не обсуждается.
Методы дискретизации с недостаточной выборкой для целочисленных полос
Если для данного полосового сигнала граничные частоты полосы (/^ и /и) — целые числа, кратные ширине полосы сигнала, сигнал можно оцифровать без наложения с теоретической минимальной частотой 25:
(2-8, а)(2-8, а)Fs(min) = *2В
(2-8, а)
(2-8, а)
а)а)ададРис. 2.18. Устройство для предварительной обработки данных системы (панель а); спектр принятого сигнала (панель б) (пример 2.6)Рис. 2.18. Устройство для предварительной обработки данных системы (панель а); спектр принятого сигнала (панель б) (пример 2.6)
а)
а)
ад
ад
Рис. 2.18. Устройство для предварительной обработки данных системы (панель а); спектр принятого сигнала (панель б) (пример 2.6)
Рис. 2.18. Устройство для предварительной обработки данных системы (панель а); спектр принятого сигнала (панель б) (пример 2.6)
Уравнение (2.8, а) справедливо, если отношение низкочастотного края полосы к ширине полосы сигнала и/или высокочастотного края к ширине полосы сигнала — целые числа:
/н/нААп = — или п = —.п = — или п = —.(2.8, б)(2.8, б)
/н
/н
А
А
п = — или п = —.
п = — или п = —.
(2.8, б)
(2.8, б)
Если условия уравнения (2.8, б) соблюдены, то полосу сигнала называют целочисленно расположенной. Если полоса сигнала не целочисленная, граничные частоты полосы можно сместить таким образом, чтобы эффективная полоса стала целочисленной.
Пример 2.6
Иллюстрация принципов полосовой дискретизации с недостаточной выборкой. На рис. 2.18, а показано устройство предварительной обработки данных приемника многоканальной системы связи. Спектр принимаемого сигнала показан на рис. 2.18, б с указанием номеров каналов. Для выделения сигнала в нужном канале перед оцифровкой сигнала с наименьшей возможной частотой служит полосовой фильтр.
Предположим, что полосовой фильтр — идеальный и имеет следующие характеристики:
H(f) = 140 кГц < / < 50 кГц
0 — в других случаях
А. Найдите минимальную теоретическую частоту дискретизации.
Б. Изобразите спектр сигнала до дискретизации (точка А) и после дискретизации (точка В).
Повторите пункты А и Б для полосового фильтра, который пропускает сигнал канала 3.
х<л
а)
■ Л/)
-I111111—-
-60-40-200204060 /№)
-И/)
в)
Рис. 2.19. Выход полосового фильтра (панель а); функция дискретизации (панель б); выход устройства дискретизации (панель в) (пример 2.6)
Решение
А. Минимальная теоретическая частота дискретизации равна 2 х 10 кГц, т.е. 20 кГц.
Б. Спектр в точке А (выход полосового фильтра) — это просто спектр сигнала для канала 4 (рис. 2.19, а).
Спектр в точке В (т.е. после дискретизации) можно найти, выполнив свертку спектра сигнала на выходе полосового фильтра (рис. 2.19, а) со спектром функции дискретизации (рис. 2.19, б). Результат данного процесса изображен на рис. 2.19, в.
А. Частота дискретизации остается 20 кГц.
Б. Производя те же действия, что и в п. 2.6.1, получаем изображенные на рис. 2,20, айв соответственно спектры в точках А и В.
Пример 2.7
Иллюстрация требований метода полосовой дискретизации с недостаточной выборкой без наложения. На рис. 2.21 изображен спектр узкополосного сигнала. Найдите и изобразите спектр дискретного сигнала в диапазоне ±F,/2 при следующих условиях: 1)^ = 4, 2) ^ = 5, 3) ^ = 6,5.
Считайте в каждом случае, что ширина полосы сигнала В = 4 кГц, а сигнал дискретизуется с частотой 2В.
Х^П
-60-40-200
а)
И►
60 /№>
Л/)
-I11]111—
-60-40-200204060 №Ги)
Рис. 2.20. Выход полосового фильтра (панель а); функция дискретизации (панель б); выход устройства дискретизации для канала 3 (панель в) (пример 2.6)
Рис. 2.21. Спектр узкополосного сигнала (пример 2.7)
Рис. 2.22. Спектр дискретного сигнала для четных целых п (п = /д/В = 4) (пример 2.7, вариант 1)
Решение
Соответствующий спектр сигнала показан на рис. 2.22, а. Дискретизуя сигнал с частотой 2S, получаем частоту дискретизации 8 кГц. Спектр дискретного сигнала можно найти с помощью графической свертки спектра сигнала (рис. 2.22, а) и выборочной функции (рис. 2.22, б). Чтобы выполнить свертку, зафиксируем спектр сигнала и сместим спектр выборочной функции. Для выполнения графической свертки перед началом смещения перевернем сигнал, чтобы его положение изменилось относительно вертикальной оси. Впрочем, поскольку функция отсчетов симметрична относительно оси частот, этот шаг необязателен, так как в конце концов мы получим сигнал точно такой же формы.
Видно, что точка, соответствующая частоте —16 кГц на рис. 2.22, б, точно совпадает с отрицательной частью спектра сигнала. Следовательно, если сместить спектр выборочной функции вправо, то произойдет свертка точки, соответствующей частоте -16 кГц, с частью спектра сигнала с отрицательной частотой. Это даст спектр в диапазоне от 0 до 4 кГц на рис. 2.22, в. Затем сворачивается точка спектра, соответствующая частоте 8 кГц на рис. 2.22, б, с частью полосы сигнала между 12 и 16 кГц, что дает спектр между 4 и 8 кГц на рис. 2.22, в.
Зеркальное изображение спектра дискретного сигнала можно получить, смещая спектр выборочной функции влево. Части спектра дискретного сигнала, полученные с помощью отрицательных частотных компонентов, заштрихованы.
Комментарий. Часть спектра дискретного сигнала между 0 и 4 кГц перевернута по сравнению с исходным спектром между 12 и 16 кГц. Кроме того, в полосе сигнала нет наложения, поэтому он может быть восстановлен с помощью соответствующего обратного спектрального алгоритма.
Рис. 2.23. Спектр дискретного сигнала для нечетных целых п (п = /я/В = 5) (пример 2.7, вариант 2)
Частота дискретизации также равна 8 кГц, а спектры сигнала и выборочной функции показаны на рис. 2.23, а и б.
Как и прежде, зафиксировав спектр сигнала и сместив спектр выборочной функции сначала вправо, а затем влево, получаем спектр дискретного сигнала, изображенный на рис. 2.23, в.
Части спектра дискретного сигнала, полученные с помощью отрицательных частотных компонентов, на рисунке заштрихованы.
Комментарий. Часть спектра дискретного сигнала между 0 и 4 кГц не перевернута по сравнению с исходным спектром между 12 и 16 кГц, а в полосе сигнала нет наложения, так что его можно восстановить.
Как и в предыдущем случае, частота дискретизации равна 8 кГц, а спектры сигнала и функции дискретизации показаны на рис. 2.24, а и б.
Как и прежде, зафиксируем спектр сигнала и сместим спектр выборочной функции сначала вправо, а затем влево. В результате получим спектр дискретного сигнала, изображенный на рис. 2.24, в.
Видно, что точка, соответствующая частоте —24 кГц, на рис. 2.24, б находится в середине отрицательной части спектра сигнала, а точка, соответствующая частоте 24 кГц, — в середине части спектра 22-26 кГц. Следовательно, если сместить спектр выборочной функции вправо, выполнится свертка точки, соответствующей частоте —24 кГц, с частью спектра, имеющей отрицательные частоты, а точки, соответствующей частоте 24 кГц, — с положительной частью спектра сигнала. В результате получим спектр в диапазоне 0-2 кГц на рис. 2.24, в. Часть спектра дискретного сигнала, полученная с помощью отрицательных частотных компонентов, показана пунктиром, а полученная с помощью положительных частотных компонентов — сплошной линией.
б)б)Рис. 2.24. Спектр дискретного сигнала (n = fu/B = 6,5) (пример 2.7, вариант 3)Рис. 2.24. Спектр дискретного сигнала (n = fu/B = 6,5) (пример 2.7, вариант 3)
б)
б)
Рис. 2.24. Спектр дискретного сигнала (n = fu/B = 6,5) (пример 2.7, вариант 3)
Рис. 2.24. Спектр дискретного сигнала (n = fu/B = 6,5) (пример 2.7, вариант 3)
После дальнейшего смещения на 4 кГц выполняется свертка точки спектра, соответствующей 16 кГц на рис. 2.24, б, с положительной полосой сигнала, что дает спектр с центром в 8 кГц на рис. 2.24, в, показанный сплошной линией. Пунктирная линия получена с помощью точки спектра, соответствующей —16 кГц. Зеркальное изображение спектра дискретного сигнала получается в результате смещения выборочной функции влево.
Комментарий. Перекрывание спектров, полученных с помощью положительных и отрицательных спектральных точек, свидетельствует о наложении, следовательно, в этом случае при дискретизации с частотой 8 кГц компоненты сигнала восстановить нельзя.
Расширение полосы частот для полосовой дискретизации с недостаточной выборкой без наложения
Как было показано для целочисленной дискретизации полосового сигнала, при условии, что одна из граничных частот полосы — целое число, кратное ширине полосы, узкую полосу высокочастотного сигнала можно дискретизовать со значительно уменьшенной частотой (2В) и при этом избежать искажения вследствие наложения.
Следовательно, важным параметром целочисленной дискретизации полосовых сигналов является отношение верхней границы полосы к ширине этой полосы В (или, что эквивалентно, отношение нижнего края полосы (Д) к ширине полосы):
/н/нВВ(2.9, а)(2.9, а)
/н
/н
В
В
(2.9, а)
(2.9, а)
ИЛИИЛИккВ'В'(2-9, б)(2-9, б)В любом из этих случаев дискретизация будет осуществляться с частотой 2В без наложения, т.е/.В любом из этих случаев дискретизация будет осуществляться с частотой 2В без наложения, т.е/.Fs = 25.Fs = 25.(2-10)(2-10)Если это отношение равно четному целому числу, спектр дискретного сигнала в области полосы частот исходного сигнала будет перевернут.Если значение п в уравнении (2.9, а) или (2.9, б) — нецелое число, то наблюдается наложение. Наложения можно избежать, сместив граничные частоты или центральную частоту таким образом, чтобы п стало целым. Например, можно перенести нижнюю граничную частоту из к в /ь так чтоЕсли это отношение равно четному целому числу, спектр дискретного сигнала в области полосы частот исходного сигнала будет перевернут.Если значение п в уравнении (2.9, а) или (2.9, б) — нецелое число, то наблюдается наложение. Наложения можно избежать, сместив граничные частоты или центральную частоту таким образом, чтобы п стало целым. Например, можно перенести нижнюю граничную частоту из к в /ь так что/г <Jl/г <Jl(2.11, а)(2.11, а)/н = «(/я - Л) = пВ'./н = «(/я - Л) = пВ'.(2.11, б)(2.11, б)Из уравнения (2.11, б) можно записать
ИЛИ
ИЛИ
к
к
В'
В'
(2-9, б)
(2-9, б)
В любом из этих случаев дискретизация будет осуществляться с частотой 2В без наложения, т.е/.
В любом из этих случаев дискретизация будет осуществляться с частотой 2В без наложения, т.е/.
Fs = 25.
Fs = 25.
(2-10)
(2-10)
Если это отношение равно четному целому числу, спектр дискретного сигнала в области полосы частот исходного сигнала будет перевернут.
Если значение п в уравнении (2.9, а) или (2.9, б) — нецелое число, то наблюдается наложение. Наложения можно избежать, сместив граничные частоты или центральную частоту таким образом, чтобы п стало целым. Например, можно перенести нижнюю граничную частоту из к в /ь так что
Если это отношение равно четному целому числу, спектр дискретного сигнала в области полосы частот исходного сигнала будет перевернут.
Если значение п в уравнении (2.9, а) или (2.9, б) — нецелое число, то наблюдается наложение. Наложения можно избежать, сместив граничные частоты или центральную частоту таким образом, чтобы п стало целым. Например, можно перенести нижнюю граничную частоту из к в /ь так что
/г <Jl
/г <Jl
(2.11, а)
(2.11, а)
/н = «(/я - Л) = пВ'.
/н = «(/я - Л) = пВ'.
(2.11, б)
(2.11, б)
к = (—Ак’
\ п у
а из уравнений (2.11, а) и (2.12) —
у п У
и получить выражение для п: _ к _ fH fH-k” В'
(2.12)(2.12)(2.13)(2.13)Следовательно, чтобы достичь желаемой связи между граничными частотами полосы и ее шириной, можно сместить нижнюю граничную частоту. В этом случае используется уравнение (2.12), где п — ближайшее меньшее целое число, найденное из уравнения (2.13).
(2.12)
(2.12)
(2.13)
(2.13)
Можно показать, что желаемой цели можно достичь также, сместив верхнюю граничную частоту:
(2.14)
где п определяется из уравнения (2.13). Доказательство уравнения (2.14) оставляется читателям в качестве упражнения.
Пример 2.8
Иллюстрация расширения полосы частот во избежание наложения. Найдите минимальную частоту дискретизации, позволяющую избежать наложения в примере 2.7 (вариант 3) путем соответствующего смещения нижней граничной частоты полосы.
Изобразите спектр измененного сигнала до и после дискретизации с новой частотой.
Решение
Отношение верхней граничной частоты к ширине полосы равно
Если п равно 6 (ближайшему меньшему целому числу), то нижнюю граничную частоту можно снизить до нового значения:
fL == 21,66 кГц.
\ п /
Теперь новая ширина полосы В' и частота дискретизации F', приобретают значения
В* = Jh - fL = 4,34 кГц,
F, = IB* = 8,68 кГц.
В качестве упражнения читателям предлагается самостоятельно изобразить спектр сигнала до и после дискретизации и таким образом показать, что наложение отсутствует.
В некоторых приложениях можно достичь условий целочисленной дискретизации без наложения, изменяя не ширину полосы, а центральную частоту. Это возможно в цифровой радиосвязи, где разработчик выбирает локальную промежуточную частоту по своему усмотрению.
Однородное и неоднородное квантование и кодирование
После дискретизации амплитуда аналоговых выборок может в зависимости от приложения подвергаться однородному и неоднородному квантованию и кодированию. В биомедицине и системах записи и воспроизведения звука обычно используется однородное квантование и кодирование, тогда как в системах связи интенсивно применяется неоднородное квантование и кодирование, поскольку здесь требуется сжимать речевые сигналы (см. далее).
Рис. 2.25. Квантование выборок аналогового сигнала. Для нахождения ошибок квантования на панели в из квантованных выборок (3-битовое устройство квантования; панель б) сигнала вычитаются выборки сигнала (панель а)
Однородное квантование и кодирование (линейная импульсно-кодовая модуляция, ИКМ)
При однородном квантовании и кодировании каждой аналоговой выборке присваивается одно из 2s значений (см. рис. 2.25), где В — количество битов АЦП. Этот процесс, называемый квантованием, вносит неустранимую погрешность. Уровень этой погрешности является функцией числа битов АЦП, которое приблизительно равно половине МЗБ (предполагая округление). Например, у 12-битового АЦП с диапазоном входных напряжений ±10 В МЗБ будет равен 20/212 В, те. 4,9 мВ, а ошибка квантования — 2,45 мВ.
Для АЦП с В двоичными цифрами количество уровней квантования равно 2s, а расстояние между уровнями, те. размер шага квантования q, задается как
д = ^/(2в-1)«У/а/(2в),д = ^/(2в-1)«У/а/(2в),(2.15)(2.15)
д = ^/(2в-1)«У/а/(2в),
д = ^/(2в-1)«У/а/(2в),
(2.15)
(2.15)
где VJs — полный диапазон АЦП со входом в виде биполярного сигнала. Максимальная ошибка квантования, когда значения округляются до ближайшего большего или меньшего числа, равна ± q/2. Для синусоидального входа с амплитудой А (такой, что удвоенная амплитуда сигнала как раз заполняет весь входной диапазон АЦП), размер шага квантования становится равным
(2.16)(2.16)q = 2А/2В.
(2.16)
(2.16)
Ошибка квантования для каждой выборки е обычно полагается случайной и однородно распределенной на отрезке ±q/2 с нулевым средним значением. В этом случае мощность шума квантования, или дисперсия, задается как
Для синусоидального входа средняя мощность сигнала равна А2 (2. Отношение сигнал- шум квантования (SNR(q)) равно (в децибелах)
Это теоретический максимум. На практике, когда используются реальные входные сигналы, достижимое SNR(q) меньше, чем это значение. Однако с увеличением количества разрядов В SNR(q) возрастает. Количество используемых битов ограничивают практические факторы, такие как скорость, внутреннее отношение сигнал-шум (signal-to-noise ratio — SNR) аналогового сигнала и затраты. Например, совсем не обязательно пользоваться преобразователем, дающим точность, превышающую SNR аналогового сигнала,
который подергается преобразованию, поскольку это даст только более точное описание шума. Во многих приложениях ЦОС подходящей разрешающей способностью АЦП является 12-16 бит.
Затем цифровые выборки х(п), которые во многих случаях представлены в двоичной форме, перекодируются в форму, удобную для дальнейших манипуляций. Это кодирование заключается в присвоении квантованным элементам дискретных кодов. Самые распространенные формы кодирования в ЦОС — это представление в формате с фиксированной запятой (дополнение до двух), плавающей запятой и блочное представление в формате с плавающей запятой. Заметим, что можно одновременно выполнять все три операции — дискретизации, квантования и кодирования. Это бывает в тех случаях, когда используется АЦП без схемы выборки-хранения.
Пример 2.9
Объясните значение динамического диапазона и апертурного времени в контексте процесса аналого-цифрового преобразования.
Если в примере 2.2 динамический диапазон АЦП больше, чем 70 дБ, а выборки нужно оцифровать с точностью | МЗБ, найдите
минимальное разрешение АЦП в битах и
максимальное допустимое апертурное время, предположив, что максимальная важная частота, которую нужно оцифровать, равна 20 кГц.
Решение
Динамический диапазон — это отношение максимального уровня сигнала к минимальному, с которыми может работать система аналого-цифрового преобразователя. Динамический диапазон чаще всего выражается в децибелах через количество битов преобразователя:
D = 20 lg 2s.(2.19)
В некоторых приложениях динамический диапазон определяется через мощность сигнала. Например, в цифровых системах записи и воспроизведения звука он может определяться как отношение максимальной мощности сигнала к минимальной, которую можно отличить от мощности шума. Если используется только АЦП, апертурное время — это, по сути, время преобразования АЦП, т.е. период времени, на протяжении которого аналоговый вход должен оставаться постоянным, чтобы можно было осуществить точное преобразование. Относительно схемы выборки-хранения это время, необходимое для записи после того, как отдана команда о сохранении.
Из выражения для D получим
70 = 201g 2s,
откуда В = 11,62. Пусть В = 12 бит (ближайшее целое число).
Максимально допустимое апертурное время т задается как
т = l/2B+4fmax = 1/(213 х тг х 20 х 103) с = 1,94 нс.
Данное небольшое апертурное время требуется для использования схемы выборки- хранения на входе АЦП.
Неоднородное квантование и кодирование (нелинейная ИКМ)
Процесс линейного аналого-цифрового преобразования, о котором шла речь выше, иногда называют линейной импульсно-кодовой модуляцией (ИКМ). В преобразователях, реализующих ИКМ, уровень шума квантования непосредственно связан с числом битов АЦП. Подобные преобразователи хорошо подходят для приложений, в которых амплитуда сигнала по каким-либо причинам распределена неоднородно, или в которых длина слова АЦП не имеет первостепенного значения. В приложениях, где амплитуда сигнала распределена неоднородно (например, телефонная связь), для точной передачи информации может понадобиться большое количество битов, а это не всегда эффективно.
Некоторые сигналы, например, речь, состоят из гармоник как большой, так и малой амплитуды, хотя малые амплитуды более вероятны. Следовательно, для речи однородное квантование не подходит. Неоднородное квантование может дать больше уровней квантования для сигнала с невысоким уровнем, чем однородное квантование с таким же количеством битов, а в телефонной связи это означает, что система более успешно может подстроиться под абонента и с громким, и с тихим голосом.
Стандартное неоднородное квантование, которое используется в телефонной связи (как в сетях общего пользования, так и в частных телефонных сетях), определяется по известному распределению амплитуды речи. Речевой сигнал дискретизуется с частотой 8 кГц, каждый элемент выборки квантуется и кодируется 8 бит, составляющими систему со скоростью передачи 64 бит/с. Амплитуды элементов речевого сигнала перед передачей сжимаются логарифмически в 8 бит. После приема уплотненные сигналы расширяются.
Процесс сжатия речевого сигнала и его расширения называют компандированием (от английского COMpressing — “сжатие” и exPANDING — “расширение"). Этот процесс изображен на рис. 2.26. На практике компандирование осуществляется с помощью кодеков или комби-кодеков (комбинации кодека ИКМ и фильтров защиты от наложения спектров и подавления зеркальных частот), которые подбираются к каждому речевому сигналу в цифровых системах телефонной связи.
В современной цифровой телефонии с кодеками необходим обратный процесс компандирования в цепи, чтобы данные могли обрабатываться методами ЦОС. Уплотненные ИКМ-данные преобразуются в линейные ИКМ-данные, а после цифровой обработки сигнала эти данные преобразуются обратно в неоднородную ИКМ. Операции обращения компандирования могут выполняться микросхемами ЦОС (например, чипами серии Texas Instrument TMS320 или Motorola 56000) как поиск в таблице или путем реализации алгоритмов сжатия и расширения в реальном времени.
Способы компандирования: ИКМ с д- и А-характеристикой
Для неоднородного квантования в телефонии используют два международных стандарта (см. [3]): стандарт с //-характеристикой (//-законом) (США и Япония) и стандарт с А-характеристикой (A-законом) (Европа). Оба стандарта сжимают речь в 8-битовые выборки, которые эквивалентны приблизительно 14 бит линейных АЦП.
Характеристики компандирования и уравнения для //-характеристики показаны на рис. 2.26. Для описания каждого элемента выборки используются разные по знаку
6)6)Уплотненные РСМ-данныеУплотненные РСМ-данныеЛогарифмически- линейное расширениеЛогарифмически- линейное расширениеРис. 2.26. Неоднородные аналого-цифровые и цифроаналоговые преобразованияРис. 2.26. Неоднородные аналого-цифровые и цифроаналоговые преобразования
6)
6)
Уплотненные РСМ-данные
Уплотненные РСМ-данные
Логарифмически- линейное расширение
Логарифмически- линейное расширение
Рис. 2.26. Неоднородные аналого-цифровые и цифроаналоговые преобразования
Рис. 2.26. Неоднородные аналого-цифровые и цифроаналоговые преобразования
восьмиразрядные слова. Характеристики компандирования приблизительно описываются набором из восьми прямолинейных отрезков (см. рис. 2.27). Видно, что последовательно возрастающие элементы входного сигнала сжимаются, формируя на выходе однородный масштаб. Величина шага входного сигнала при переходе от одного отрезка к другому постоянно удваивается. Это облегчает преобразование линейной ИКМ в неоднородную. ИКМ с /^-характеристикой состоит из 8-битовых слов. На рисунке старший значащий разряд (СЗР) — это разряд, обозначающий знак, следующие 3 разряда представляют собой номер отрезка, а последние 4 — положение на нем. На практике до передачи биты инвертируются, чтобы увеличить плотность единиц, так как это облегчает восстановление синхронизации и исправление ошибок. Данный процесс необходим, поскольку речь — это сигнал с небольшой энергией. Как правило, отношение сигнала к шуму квантования при неоднородном квантовании сравнимо с этим же отношением для 14-битового линейного АЦП.
Характеристики A-типа показаны на рис. 2.28. По своим свойствам они похожи на /^-характеристики. Однако A-характеристики дают меньшую точность для небольших сигналов, но обладают превосходной характеристикой динамического диапазона.
Адаптивная дифференциальная импульсно-кодовая модуляция (АДИКМ)
При неоднородной ИКМ элементы речевого сигнала квантуются в 8 бит для каждого элемента информации. Известно, что при таком подходе не используется преимущество избыточности речевого сигнала. При АДИКМ [1,2] значение каждого элемента зависит от значения выборки. Это снижает количество битов, которые используются для представления каждого элемента, с8до4(8кГцх4 бит = 32 Кбит/с). Коды АДИКМ передают разницу между предсказанным и действительным значением элемента выборки. На практике для повышения вместимости речевых каналов в системы ИКМ могут встраиваться транскодеры АДИКМ. Кодер АДИКМ принимает значения ИКМ как входные данные, а декодер АДИКМ дает на выходе значения ИКМ.
Рис. 2.27. Характеристики компандирования для ^-характеристики с д = 255 ([ITU, 1998]). Характеристики подчиняются уравнению F(x) = sgn(x) ‘"д1^^, где д = 255, х — нормированный входной сигнал, sgn — его знак, a F(x) — сжатый выходной сигналРис. 2.27. Характеристики компандирования для ^-характеристики с д = 255 ([ITU, 1998]). Характеристики подчиняются уравнению F(x) = sgn(x) ‘"д1^^, где д = 255, х — нормированный входной сигнал, sgn — его знак, a F(x) — сжатый выходной сигнал
Рис. 2.27. Характеристики компандирования для ^-характеристики с д = 255 ([ITU, 1998]). Характеристики подчиняются уравнению F(x) = sgn(x) ‘"д1^^, где д = 255, х — нормированный входной сигнал, sgn — его знак, a F(x) — сжатый выходной сигнал
Рис. 2.27. Характеристики компандирования для ^-характеристики с д = 255 ([ITU, 1998]). Характеристики подчиняются уравнению F(x) = sgn(x) ‘"д1^^, где д = 255, х — нормированный входной сигнал, sgn — его знак, a F(x) — сжатый выходной сигнал
Из-за разнообразия существующих стандартов кодирования речи их можно использовать в качестве своеобразных контрольных задач для тестирования многих служб и приложений в сфере коммуникаций. В большинстве случаев акцент делается на снижении скорости передачи информации. Например, скорость передачи речи в системе мобильных телефонов GSM равна 13,2 Кбит/с. Стандарт АДИКМ МККТТ G.721 работает со скоростью 32 Кбит/с.
Выборка с запасом по частоте при аналого-цифровом преобразовании
Введение
На практике выборка с запасом по частоте означает дискретизацию входного сигнала с частотой намного большей, чем частота Найквиста. Отношение действительной частоты дискретизации к частоте Найквиста называется коэффициентом перевыборки (сигнал предполагается низкочастотным):
(2.20)(2.20)коэффициент перевыборки = Fs/2fmax.
(2.20)
(2.20)
Рис. 2.28. Характеристики компандирования для A-характеристики (А = 255) [1TU, 1998]. Характеристики подчиняются уравнению F(x) = sgn(x) y^^L.O < |х| < l/A:F(x) = sgn(x) ^^щд^, 1/А < |х| < 1, где А = 87,6, х — нормированный входной сигнал, sgn — его знак, a F(x) — сжатый выходной сигнал
Во многих областях современной ЦОС существует тенденция всегда использовать выборку с запасом по частоте, чтобы сыграть на практических результатах теоремы о дискретном представлении. Для аналого-цифрового интерфейса главными преимуществами выборки с запасом по частоте являются: 1) упрощение фильтра защиты от наложения спектров; 2) возможность использовать фильтры защиты от наложения спектров с переменной частотой среза (каждая частота среза требует своей частоты дискретизации) и 3) снижение минимального уровня шума АЦП путем распределения шума квантования по более широкой полосе частот. Это позволяет использовать АЦП с меньшим количеством битов, чтобы достичь такого же отношения сигнал-шум, как и при более высоком разрешении АЦП.
Выборка с запасом по частоте и фильтры защиты от наложения спектров
В высокоточных цифровых системах из-за необходимости поддерживать низкий уровень искажения от наложения часто приходится пользоваться относительно сложными аналоговыми фильтрами защиты от наложения спектров. В многоканальных системах каждому аналоговому сигналу должен соответствовать отдельный фильтр защиты от
б)
Рис. 2.29. Спектр входного сигнала: а) до дискретизации; б) после дискретизации
наложения, поскольку такие фильтры сложно уплотнить. При большом количестве каналов это зачастую очень дорого (например, в биомедицинских приложениях бывает нужно 64 канала). Более того, может оказаться трудно согласовать по фазе узкоспециализированные аналоговые фильтры (для сохранения взаимосвязи между компонентами сигнала во всех каналах).
Многие из этих проблем позволяют преодолеть методы выборки с запасом по частоте. Как следует из теории спектра дискретного сигнала, чем выше частота дискретизации, тем дальше друг от друга находятся зеркальные компоненты и полоса частот исходного сигнала (см., например, рис. 2.29). В главе 9 показано, как методы выборки с запасом по частоте сочетаются с цифровой обработкой сигналов при нескольких скоростях и удовлетворяют требованиям высокоточных систем.
Пример 2.10
К универсальной многоканальной (до 64 каналов) системе, собирающей нейрофизиологические данные, существует одно требование. Каждый аналоговый канал должен быть индивидуально задан пользователем так, чтобы граничная частота его полосы пропускания была в пределах от 0,5 кГц до 500 Гц, а выбираемая частота дискретизации — от 1 Гц до 5 кГц. Максимально допустимая неравномерность в полосе пропускания равна 0,5 дБ, а зеркальные компоненты должны быть по крайней мере на 40 дБ ниже компонента сигнала. -
Объясните подход, использованный для удовлетворения вышеизложенного требования. Ответ должен включать следующие пункты:
рассуждения о вопросах, специфичных для данного приложения; .
указания, как в этом приложении для наиболее эффективного и экономного удовлетворения указанного требования (используйте расчет цены/числа компонентов) можно использовать методы дискретизации с запасом по частоте.
Пусть для всех каналов системы из п. 1 используются идентичные фильтры защиты от наложения спектров, каждый из которых имеет следующую характеристику типа
А(П =А(П =11Баттерворта:
А(П =
А(П =
1
1
где /с = 3 дБ — частота среза фильтра.
Изобразите спектры данных до и после дискретизации и определите:
частоту среза /с;
подходящую общую частоту дискретизации Fs.
Ответ прокомментируйте.
Решение
АЦП и ЦАП с высоким разрешением ограничивают максимально достижимую частоту дискретизации — данное ограничение является основным для ряда приложений реального времени. Для его преодоления может потребоваться использовать несколько устройств АЦП/ЦАП и/или методов ЦОС с обработкой при нескольких скоростях.
Изменение характеристики на выходе по закону sin х/х, постепенно снижающее высокочастотные компоненты сигнала, можно компенсировать, используя после обработки цифровой фильтр с характеристикой х/ sin х. (В своем ответе вы можете использовать и другие технические решения.)
а. Чтобы сохранить информацию сигнала, представляющую клинический интерес, и амплитудные, и фазовые искажения должны быть как можно ниже. Кроме того, должна сохраняться временная связь между характеристиками всех каналов. Желательно использовать идентичные фильтры защиты от наложения спектров с достаточно хорошими амплитудно-фазовыми характеристиками.
б. Чтобы уменьшить число/цену компонентов и размер устройства управления системой, всем 64 каналам должны соответствовать идентичные простые фильтры защиты от наложения спектров. Затем должна выполняться дискретизация каналов с запасом по частоте с общей фиксированной скоростью. Высокую общую скорость дискретизации можно снизить до желаемого значения с помощью методов обработки при нескольких скоростях. Во избежание чрезмерно высокой скорости общей дискретизации следует использовать фильтр Баттерворта как минимум второго порядка.
Рассмотрев спецификации и спектр данных до и после дискретизации, находим следующее.
500 V500 V20 log 1 +20 log 1 +а. Чтобы не нарушать спецификации, ошибка по амплитуде в пределах от 0 до 500 кГц должна удовлетворять следующему критерию:
500 V
500 V
20 log 1 +
20 log 1 +
< 0,5 дБ,
учитывая, что используется фильтр Баттерворта третьего порядка с частотой среза /с.
20 log 120 log 1F, - 5001000F, - 5001000> 40 дБ.> 40 дБ.
20 log 1
20 log 1
F, - 500
1000
F, - 500
1000
> 40 дБ.
> 40 дБ.
Решив это уравнение относительно fc, находим, что
Сделав поправку на дополнительные искажения на последующих этапах (и для удобства), положим /с = 1000 Гц (это эквивалентно максимальной неравномерности 0,26 дБ).
б. После ограничения полосы частот каждого канала спектр дискретного сигнала будет иметь вид, показанный на рис. 2.29.
Теперь Fs выбирается так, чтобы уровень искажения вследствие наложения при частоте 500 Гц по крайней мере был больше 40 дБ, т.е.
(2.21)(2.21)
(2.21)
(2.21)
Решив это уравнение относительно Fs, получим Fs = 5141,5 Гц.
К выбору общей частоты дискретизации Fs следует отнестись внимательно и учесть эффективное снижение скорости дискретизации. Возможное решение — 8192 Гц, что допускает снижение общей скорости в п раз (п — простое целое число).
Выборка с запасом по частоте и разрешающая
способность АЦП
При выборке с запасом по частоте энергия шума квантования входного сигнала распределяется по более широкому диапазону частот, таким образом снижается уровень шума в важной полосе и увеличивается разрешающая способность АЦП. Это используется в системах записи и воспроизведения звука для получения так называемого однобитового АЦП или АЦП с выборкой с запасом по частоте. Приведем для начала основные понятия, связанные с квантованием и его ошибками.
Квантование и ошибки квантования
В традиционном процессе аналого-цифрового преобразования каждая выборка сигнала квантуется в один из 2s уровней и описывается В бинарными разрядами, где В — число битов АЦП. Квантование вносит ошибку, которая является функцией числа битов АЦП.
Мощность шума квантования (для однородно распределенной ошибки с нулевым средним значением) задается как2
е 12’
где q — величина шага квантования. Теоретическое максимальное отношение сигнала к шуму квантования (SNR(q)) для линейного АЦП задается как
SNR(g) = 6,02В + 4, 77 - 201og(A/crI) дБ,
где ±А — входной диапазон АЦП, а ах — среднеквадратическое значение входного сигнала. Для синусоидального входа с максимальной амплитудой А, которая как раз заполняет диапазон АЦП, стх = ^, 20 log ^~^ = 3,01 дБ, таким образом, уравнение (2.21) сводится к знакомому виду:
SNR(q) = 6,02В + 1,7 дБ.(2.22)
У биполярного линейного 16-битового АЦП, например с входным диапазоном ±5 В, величина шага квантования q = 5^1 = 0,152 мВ, максимальная ошибка квантования — 2 = 76 мкВ, a SNR(q) = 98 дБ.
Задание
Синусоидальный сигнал с удвоенной амплитудой 10 В оцифровывается с помощью 12-битового АЦП. Предположив, что квантование линейно, определите
шаг квантования;
мощность шума квантования;
теоретическое максимальное отношение сигнала к шуму квантования.
Выборка с запасом по частоте и мощность шума квантования
Собственная мощность шума квантования, который вносится при преобразовании аналогового сигнала в цифровой, задается как
qi 2~2<в-1).
<7g = — = ———(нормированная),(2.23)
где В — длина слова АЦП (включая бит знака).
Для достаточно больших или случайных входных аналоговых сигналов энергия шума квантования равномерно распределяется по всему доступному спектру, т.е. от 0 до Fs/2, где Fs — частота дискретизации. В этом случае спектральная плотность мощности шума квантования РД/) задается как (см. рис. 2.30)
РЛП = у-(2-24)
Следовательно, эффективное разрешение АЦП можно увеличить, дискретизуя входные данные с высокой частотой, чтобы энергия шума квантования распределялась по более широкой полосе частот, снижая таким образом уровень шума в важной полосе. Именно это и понимается под дискретизацией с запасом по частоте.
Согласно уравнению (2.20) при преобразовании с частотой Найквиста fmax = Fs/2, а общая мощность шума в полосе задается площадью, указанной на рис. 2.30, а, т.е. <7g. При преобразовании с выборкой с запасом по частоте (рис. 2.30, а) некоторая часть мощности шума квантования попадает за пределы нужной полосы (поскольку /max < Fs/“2\ и шум в полосе меньше, чем при частоте Найквиста.
Рис. 2.30. Спектральная плотность мощности шума квантования: а) для пре-образования с частотой Найквиста; б) для выборки с запасом по частоте. (Об-щая .мощность шума одинакова в обоих случаях, но при выборке с запасом почастоте мощность шума распределяется по намного большему частотномудиапазону, что приводит к снижению уровня мощности шума в полосе)
Мощность шума в полосе при выборке с запасом по частоте задается как
Ре= j Pe(f)df=^a2e.(2.25)
Следовательно, если сигнал с ограниченной полосой частот дискретизовать с запасом по частоте, энергия шума квантования в полосе сигнала уменьшается на коэффициент перевыборки. На практике для простоты вычислений выбирается коэффициент, равный двум в целой степени.
Пример 2.11
Система записи и воспроизведения звука работает с сигналами, основная полоса частот которых лежит в диапазоне 0-20 кГц. Найдите коэффициент перевыборки и минимальную частоту дискретизации, которая необходима для достижения такого же качества при использовании 12-битового преобразователя, которое можно было бы получить с помощью 16-битового АЦП.
В цифровой системе звукозаписи для оцифровки аналогового входного сигнала с частотными компонентами в диапазоне 0-4 кГц используется метод выборки с запасом по частоте и 8-битовый биполярный преобразователь, работающий с частотой Найквиста. Оцените эффективное разрешение преобразователя (в битах), если частота дискретизации равна 40 МГц. Прокомментируйте практические проблемы, связанные с этим методом.
Решение
При частоте Найквиста (т.е. Fs = 2/тах) нормированная мощность шума квантования в полосе для 12- и 16-битового преобразователей соответственно равна
0-2 = 2 tF-^(где В: = 12),
^2 = 2 (i^” 1(где В2 = 16).
Для достижения 16-битового качества с 12-битовым АЦП вход 12-разрядного преобразователя нужно дискретизовать с запасом по частоте, чтобы снизить мощность шума квантования в полосе на величину, равную коэффициенту перевыборки
/ , ,2 _ 2/тах ,
Приравнивая новый шум квантования в полосе к шуму 16-битового АЦП, получим2/тах о 2
Таким образом,
о2 9-2(в2-1)1
Fs о2 2-2№-i^256’
Следовательно, коэффициент перевыборки задается как
Fs/(2/max) = 256, т.е. Fs = 10,24 МГц.
Шум квантования в полосе снижается в число раз, равное коэффициенту перевыборки, т.е. на
Учитывая, что ^ = ^-iftiy-i) = 22<S2-S1^ = 5000 и В] = 8 бит, находим, что разрешение АЦП В2 приблизительно равно 14 бит.
Как следует из предыдущих примеров, метод выборки с запасом по частоте сам по себе невыгоден с точки зрения достижения желаемого разрешения при использовании АЦП с небольшим разрешением, поскольку повышение разрешающей способности часто требует очень высокой частоты дискретизации, которую данный метод может не поддерживать.
На практике выборка с запасом по частоте сочетается с ограничением шума, что позволяет сместить шум квантования в область более высоких частот за пределы полосы частот сигнала, где его можно устранить с помощью фильтра. В следующем разделе описан принцип действия АЦП для дискретизации с запасом по частоте.
Применение выборки с запасом по частоте — однобитовый АЦП
Требования таких высококачественных систем ЦОС, как цифровые системы записи и воспроизведения звука, — высокое качество, большая частота и очень скоростные (и дешевые!) АЦП, — сложно удовлетворить с помощью обычного последовательного приближения или преобразователей с двойными огибающими из-за ошибок, присущих аналоговым частям таких преобразователей (например, корректирующих схем АЦП, фильтров защиты от наложения спектров и контуров выборки-хранения).
Однобитовые АЦП или, точнее, АЦП для выборки с запасом по частоте не нуждаются в усилителях выборки-хранения, в них применяются простые фильтры защиты от наложения спектров, или вообще не используется никаких фильтров, таким образом, они не имеют большей части вышеперечисленных недостатков.
Существует два подхода, делающих возможным существование однобитовых АЦП. • Выборка с запасом по частоте, которая распределяет энергию шума квантования по намного большему частотному интервалу, снижая таким образом уровень шума в представляющей интерес полосе частот.
• Формирование спектра шума, сдвигающее большую часть шума в область более высоких частот, за пределы важной полосы сигнала, где шум можно устранить с помощью цифрового фильтра.
Принцип действия АЦП выборки с запасом по частоте показан на рис. 2.31. Аналоговый входной сигнал дискретизуется с запасом по частоте (например, в 64 раза), чтобы распределить мощность шума квантования по широкой полосе частот. Впоследствии дискретные данные обрабатываются для формирования спектра шума, чтобы сместить мощность шума в область более высоких частот, удалить ее из полосы частот сигнала. Затем частота дискретизации путем децимации уменьшается до частоты Найквиста. Этот процесс также служит для преобразования данных из однобитового в многобитовый поток информации. Более подробно децимация описывается в главе 9.
Одним из самых эффективных способов формирования спектра шума является сигма- дельта-модуляция. На рис. 2.32 изображен сигма-дельта-модулятор первого порядка. Он состоит из интегратора, однобитового устройства квантования (те. однобитового АЦП,
Однобитовый потокОднобитовый потокРис. 2.31. Принципы (однобитового) аналого-цифрового преобразования с запасом по частотеРис. 2.31. Принципы (однобитового) аналого-цифрового преобразования с запасом по частотеРис. 2.32. Сигма-дельта-модулятор первого порядкаРис. 2.32. Сигма-дельта-модулятор первого порядка
Однобитовый поток
Однобитовый поток
Рис. 2.31. Принципы (однобитового) аналого-цифрового преобразования с запасом по частоте
Рис. 2.31. Принципы (однобитового) аналого-цифрового преобразования с запасом по частоте
Рис. 2.32. Сигма-дельта-модулятор первого порядка
Рис. 2.32. Сигма-дельта-модулятор первого порядка
выполняющего роль компаратора) и однобитового ЦАП для обеспечения обратной связи. Аналоговый входной сигнал т(^ дискретизуется с очень высокой частотой, а затем квантуется в однобитовый поток, который содержит очень большой шум квантования. Соответствующим подбором характеристик интегратора спектр шума ограничивают так, чтобы большая часть энергии шума смещалась за пределы полосы сигнала.
Чтобы выяснить, как модулятор формирует спектр шума квантования, рассмотрим модель сигма-дельта-модулятора первого порядка на z-плоскости (рис. 2.33), где предполагается, что элементы выборки шумового сигнала не коррелируют.
Согласно рисунку z-преобразование выхода задается как
(2.26)(2.26)y(z) = Е^ + [X(z) - y(z)z"1] (y^) -
(2.26)
(2.26)
= X(z) + E(z)(l - z-1) = X(z) + E^Hn^,
где
X (z) = z- образ входного сигнала,
У (z) = z- образ однобитового выхода,
E(z) = z- образ шума квантования,
Hn(z) = (1 — z-1) — передаточная функция шума.
Уравнение (2.26) ясно показывает, что образ выхода идентичен образу входа плюс шум квантования, модифицированный передаточной функцией шума. Передаточная функция шума (1 — z-1) описывает, по сути, фильтр верхних частот с нулем на нулевой частоте. Действие этого фильтра заключается в смещении энергии шума квантования в более высокочастотную область спектра (см. рис. 2.34).
ИнтеграторИнтегратор(0-20 кГц)(0-20 кГц)ЖдАналоговыйЖдАналоговый|ад|адКомпараторКомпараторII -г'II -г'Рис. 2.33. Модель сигма-дельта-модулятора первого порядка на z-плоскостиРис. 2.33. Модель сигма-дельта-модулятора первого порядка на z-плоскости^Цифровойвыход(3,072 МГц)^Цифровойвыход(3,072 МГц)Рис. 2.34. Влияние схемы формирования спектра шума на шум квантованияРис. 2.34. Влияние схемы формирования спектра шума на шум квантования
Интегратор
Интегратор
(0-20 кГц)
(0-20 кГц)
Жд
Аналоговый
Жд
Аналоговый
|ад
|ад
Компаратор
Компаратор
I
I -г'
I
I -г'
Рис. 2.33. Модель сигма-дельта-модулятора первого порядка на z-плоскости
Рис. 2.33. Модель сигма-дельта-модулятора первого порядка на z-плоскости
^
Цифровойвыход
(3,072 МГц)
^
Цифровойвыход
(3,072 МГц)
Рис. 2.34. Влияние схемы формирования спектра шума на шум квантования
Рис. 2.34. Влияние схемы формирования спектра шума на шум квантования
Для системы, входная полоса частот которой ограничена величиной 7тах, мощность шума в полосе после ограничения шума задается как
fmax/Fsfmax/Fs.2.2\Hn(f)\2Pddf.\Hn(f)\2Pddf.(2.27)(2.27)-/max/ Fs-/max/ Fs
fmax/Fs
fmax/Fs
.2
.2
\Hn(f)\2Pddf.
\Hn(f)\2Pddf.
(2.27)
(2.27)
-/max/ Fs
-/max/ Fs
Ясно, что действие сигма-дельта-модулятора не зависит от коэффициента перевыборки и способности сигма-дельта-модулятора ограничивать спектр шума. Для сигма-дельтамодулятора первого порядка удвоение частоты дискретизации увеличивает отношение сигнал-шум на 9 дБ, из которых 6 относится к ограничению шума, а оставшиеся 3 — к выборке с запасом по частоте. Еще большего уменьшения шума квантования можно достичь, увеличив порядок передаточной функции шума (т.е. интегратора). Можно показать, что для сигма-дельта-модулятора N-ro порядка выходное преобразование задается как
Y^^X^+E^l-z-1^. (2.28)
Это дает фильтр шума с характеристикой сглаживания 6N дБ/октаву. К сожалению, при N > 3 устойчивость модулятора гарантировать нельзя из-за большого фазового
Рис. 2.35. Модель сигма-дельта-модулятора MASH третьего порядка на z-плоскости
сдвига. Для сигма-дельта-модуляторов, порядок которых больше двух, для борьбы с настойчивостью используют специальные конфигурации. Одна из таких конфигураций известна под названием MASH. На рис. 2.35 показано устройство MASH для сигма- дельта-модулятора третьего порядка.
Выход сигма-дельта-модулятора MASH третьего порядка задается как
K(z) = X(z) + B(z)(l-z"1)3. (2.29)
Заметим, что на выход влияет только шум квантования Е3(Е) последнего этапа, а шум первых двух этапов подавляется.
Независимо от порядка сигма-дельта-модулятора полоса частот его выхода содержит очень мало шума квантования, но за пределами полосы этот шум очень велик. Для устранения шума за пределами полосы используется цифровой фильтр нижних частот. Из-за высокой частоты дискретизации непосредственно использовать цифровой фильтр непрактично. Вместо этого фильтрация осуществляется с помощью децимации, которая служит также для снижения частоты до желаемого значения. После фильтрации полученный сигнал приобретает вид В-битовых квантованных данных. Фильтрация служит для усреднения высокого шума квантования. Как правило, коэффициенты КИХ-фильтра для децимации описываются 16-24 бит.
Упрощенная блок-схема быстрого процесса однобитового аналого-цифрового преобразования показана на рис. 2.36. Сперва аналоговый звуковой сигнал преобразуется в однобитовый поток с помощью сигма-дельта-модуляции на частоте 3,071 МГц. Затем
Рис. 2.36. Упрощенный однобитовый АЦП
однобитовый поток дискретизуется с недостаточной частотой до 48 кГц с помощью многокаскадного дециматора (см. главу 9) и преобразуется в 16-битовые слова линейной ИКМ.
Для заданного типа сигнала эффективная длина слова АЦП определяется по отношению сигнал-шум, которое достигается после выборки с запасом по частоте, ограничения шума и децимации. Например, если нужно получить 16-битовый АЦП, то отношение сигнал-шум должно составлять как минимум 96 дБ. В настоящее время широко доступно множество коммерческих АЦП для выборки с запасом по частоте.
Пример 2.12
В системе цифровой обработки сигнала с аналоговым звуковым входом в интервале частот 0-20 кГц для преобразования сигнала в цифровой поток битов с частотой 3,072 МГц используется метод выборки с запасом по частоте и сигма-дельтамодулятор второго порядка. Модель сигма-дельта-модулятора на z-плоскости изображена на рис. 2.37.
Объясните, каким образом цифровой поток битов можно преобразовать в цифровой многобитовый поток с частотой 48 кГц.
Определите общее улучшение отношения сигнал-шум, возможное благодаря дискретизации с запасом по частоте и формированию спектра шума, а затем оцените (в битах) эффективную разрешающую способность устройства для оцифровки.
Рис. 2.37. Модель сигма-дельта-модулятора второго порядка на z-плоскости (пример 2.12)
Решение
Однобитовый поток преобразуется в многобитовые слова с помощью децимации (процесса понижения частоты дискретизации). Полоса частот выхода сигма-дельтамодулятора содержит очень мало шума квантования, но за пределами полосы этот шум очень велик. Для устранения шума за пределами полосы используется цифровой фильтр нижних частот. Из-за высокой частоты дискретизации непосредственно использовать цифровой фильтр непрактично. Вместо этого фильтрация осуществляется с помощью децимации, которая служит также для снижения частоты до желаемого значения. Как правило, используется двухкаскадный дециматор (с коэффициентами децимации 16 и 4). После фильтрации полученный сигнал приобретает вид В-битовых квантованных данных. Фильтрация служит для усреднения высокого шума квантования. Как правило, коэффициенты КИХ фильтра децимации описываются 16-24 бит.
Эффективное разрешение можно оценить с помощью следующего упрощенного анализа.
Мощность шума снижается путем дискретизации с запасом по частоте и ограничения шума. Снижение мощности шума, обусловленное выборкой с запасом по частоте, задается коэффициентом перевыборки.
Коэффициент перевыборки равен
Fs 3,072 х 106_
==64.
2/max 2 X 24 X 103
Это эквивалентно снижению мощности шума квантования на 18 дБ.
Из модели сигма-дельта-модулятора на z-плоскости находим, что передаточная функция шума квантования задается как
N^ = (1 - z'1)2.
Рис. 2.38. Влияние схемы формирования спектра шума на шум квантования
Эта функция, по сути, описывает фильтр верхних частот с двойным нулем на нулевой частоте, который ослабляет компоненты шума в низкочастотной области (см. рис. 2.38). Характеристика этого фильтра задается следующим образом:
При / = 24 кГц (край полосы) и Fs = 3,072 МГц, шТ — 2,8125° и
\N(eiu/r)\2 = 2,412 х КГ3.
Это позволяет снизить отношение сигнал-шум квантования на 52,35 дБ. Эффективная длина слова АЦП определяется, главным образом, по отношению сигнал-шум, которое достигается путем дискретизации с запасом по частоте и ограничения шума. Общее снижение отношения сигнал-шум квантования составляет 70,41 дБ. Это соответствует эффективному разрешению АЦП в 11,4 бит (поскольку отношение сигнал-шум квантования равно 6,02В + 1,77 дБ).
Процесс цифроаналогового преобразования: восстановление сигнала
Процесс цифроаналогового преобразования позволяет трансформировать цифровой сигнал в аналоговую форму после его цифровой обработки, передачи или хранения в цифровой форме. Такое преобразование необходимо, например, для генерации звукового сигнала, который передается в динамик (как в системе воспроизведения компактдисков), или озвучивания аварийного сигнала. Самое распространенное из используемых устройств показано на рис. 2.39; видно, что оно состоит из двух главных элементов: ЦАП (цифроаналогового преобразователя) и фильтра нижних частот, который иногда называют фильтром восстановления, сглаживания или фильтром подавления зеркальных частот, интегрирующим фильтром, но чаще всего, конечно, ФНЧ.
Рис. 2.39. Процесс цифроаналогового преобразования, который используется для восстановления аналогового сигнала после цифровой обработки. Заметим, что вход ЦАП — это серия импульсов, тогда как выход ЦАП имеет форму лесенки, поскольку каждый импульс не изменяется на протяжении времени Т(з)
Цифроаналоговый преобразователь
Стандартный ЦАП принимает параллельные цифровые данные и создает аналоговый выходной сигнал, являющийся функцией входного цифрового кода. Для буферизации входа ЦАП используется регистр, чтобы выход ЦАП оставался без изменений, пока ЦАП принимает следующую порцию цифрового входа. Регистр может быть внешним по отношению к ЦАП или являться частью чипа ЦАП, как на рис. 2.39. В некоторых приложениях может потребоваться дополнительный контур, который будет предотвращать появление на выходе ЦАП кратковременных пиков, вызванных ложными цифровыми кодами.
ЦАП, показанный на рисунке, называют ЦАП с задержкой нулевого порядка. При сравнении его выхода y(t) и входа у(пТ) становится очевидно, что для каждого цифрового кода, вводимого в ЦАП, его выход задерживается на время Т. В результате получается ступенчатая выходная характеристика ЦАП. В частотных координатах задерживающее действие ЦАП вносит некоторое искажение, известное как искажение по закону sinz/z, или апертурное искажение, где х = шТ/2.
На рис. 2.40 показаны входной и выходной сигналы ЦАП с задержкой нулевого порядка в частотных и временных координатах, позволяющее сделать следующие выводы. ■ Входной и выходной сигналы ЦАП имеют широкую полосу частот. Каждый из них состоит из спектра оцифрованного сигнала плюс бесконечное число зеркальных изображений исходного спектра, центрированных на частотах, кратных частоте дискретизации.
■ Амплитуда спектра выходного сигнала умножается на функцию sin х/х, которая действует как фильтр нижних частот, значительно ослабляя зеркальные частоты.
yWyW>Ь(Ш)>Ь(Ш)Рис. 2.40. Входной и выходной сигналы ЦАП в частотных и временных координатах. Заметим, что изменение характеристики по закону sinx/x можно представить гипотетическим фильтром иижиих частотРис. 2.40. Входной и выходной сигналы ЦАП в частотных и временных координатах. Заметим, что изменение характеристики по закону sinx/x можно представить гипотетическим фильтром иижиих частот
yW
yW
>Ь(Ш)
>Ь(Ш)
Рис. 2.40. Входной и выходной сигналы ЦАП в частотных и временных координатах. Заметим, что изменение характеристики по закону sinx/x можно представить гипотетическим фильтром иижиих частот
Рис. 2.40. Входной и выходной сигналы ЦАП в частотных и временных координатах. Заметим, что изменение характеристики по закону sinx/x можно представить гипотетическим фильтром иижиих частот
Искажение по закону sinx/x обусловлено задерживающим действием ЦАП, и при восстановлении сигнала оно является причиной амплитудного искажения. Среднюю ошибку, обусловленную этим действием, при заданной частоте можно выразить в процентном отношении:
(1 — sinx/x) х 100%. (2.30)
Для задержки нулевого порядка функция sinx/x спадает приблизительно до 4 дБ на половине частоты дискретизации (Fs /2), что дает среднюю ошибку приблизительно в 36,4%. Апертурную ошибку можно исключить с помощью выравнивания. На практике для этого сигнал до его преобразования в аналоговую форму пропускается через цифровой фильтр, амплитудно-частотная характеристика которого имеет равна sin х]х.
В некоторых приложениях для вставки новых выборок между действительными элементами выборки, которые задает ЦАП (данный процесс также называется интерполяцией), можно использовать цифровой процессор. Это помогает сглаживать аналоговый сигнал и дает значительно лучший результат, чем простая задержка нулевого порядка. Еще один способ, который пользуется все большей популярностью в тех случаях, когда нужны высококачественные звуковые сигналы, — цифроаналоговое преобразование с намного большей частотой, чем это предусмотрено теоремой о дискретном представлении (см., например, [5]). Для этого используются методы обработки при нескольких скоростях. В результате получается лучшее отношение сигнал-шум и упрощается фильтр защиты от зеркальных частот. Более подробно данный подход описывается в разделе 2.9 и главе 9.
ВХОДВХОДРис. 2.41. Блок-схема основных принципов цифроаналогового преобразования с выборкой с запасом по частотеРис. 2.41. Блок-схема основных принципов цифроаналогового преобразования с выборкой с запасом по частоте
ВХОД
ВХОД
Рис. 2.41. Блок-схема основных принципов цифроаналогового преобразования с выборкой с запасом по частоте
Рис. 2.41. Блок-схема основных принципов цифроаналогового преобразования с выборкой с запасом по частоте
Фильтры защиты от зеркальных частот
Выход ЦАП наряду с нужными частотными компонентами содержит и нежелательные высокочастотные компоненты, или зеркальные изображения, центрированные на частотах, кратных частоте дискретизации (т.е. частоте обновления). В зависимости от приложения высокочастотные компоненты могут вызывать нежелательные побочные эффекты. Например, хотя в проигрывателе компакт-дисков зеркальные частоты и не слышны, они могут перегружать усилитель и вызывать взаимную модуляцию с частотными компонентами, попадающими в основную полосу частот. Результат — недопустимое снижение качества звучания.
Роль выходного фильтра (т.е. фильтра подавления зеркальных частот) заключается в сглаживании шагов выхода ЦАП и устранении таким образом нежелательных высокочастотных компонентов. Требования к спаду характеристики выходного фильтра зависят от влияния, которое аналоговый сигнал окажет на последующие аналоговые этапы обработки. В общих чертах требования к фильтру подавления зеркальных частот похожи на требования к фильтру защиты от наложения спектров.
Выборка с запасом по частоте при цифроаналоговом преобразовании
Мотивация использования выборки с запасом по частоте в ЦАП подобна мотивации ее использования в АЦП. При ЦАП для выборки с запасом по частоте частота дискретизации данных, которые нужно преобразовать в аналоговые, возрастает во много раз (например, в 64 раза), что позволяет получать аналоговые выборки с намного меньшими промежутками между ними. Таким образом, для сглаживания или устранения шума вне полосы сигнала нужен всего лишь относительно простой фильтр подавления зеркальных частот. Дискретизация с очень высокой частотой создает сигнал с шириной полосы частот от 0 до половины частоты дискретизации. По этой более широкой полосе равномерно распределяется мощность шума квантования, в результате чего можно достичь высокого разрешения цифроаналогового преобразования при низкой разрешающей способности ЦАП.
Как и для АЦП, выборка с запасом по частоте сама по себе не позволяет достичь желаемого разрешения ЦАП, поэтому необходимо еще ограничить шум. Следовательно, реальные ЦАП для выборки с запасом по частоте, как правило, состоят из четырех основных частей: цифрового фильтра для выборки с запасом по частоте, схемы формирования спектра шума (например, сигма-дельта-модулятора), ЦАП с маленьким раз-
Рис. 2.42. Упрощенная блок-схема воспроизведения аудиосигнала в проигрывателе компакт-дисков с четырехкратной перевыборкой и формированием спектра шума
решением (например, однобитового ЦАП) и простого аналогового фильтра подавления зеркальных частот (см. рис. 2.41).
Фильтр для выборки с запасом по частоте используется для повышения частоты дискретизации и ослабления зеркальных компонентов. Уменьшение длины слова (например, с 16 бит до 1) приводит к появлению большого шума квантования, но этот шум распределяется по намного большей полосе частот, поскольку значительно увеличилась частота дискретизации. Кроме того, схема формирования спектра шума смещает большую часть шума квантования за пределы полосы сигнала в область более высоких частот. Шум за пределами полосы сглаживается с помощью простого фильтра подавления зеркальных частот.
Цифроаналоговое преобразование с запасом по частоте в проигрывателе компакт-дисков
Проиллюстрируем принципы цифроаналогового преобразования с запасом по частоте на примере его реализации в некоторых проигрывателях компакт-дисков (см. рис. 2.42). После декодирования и исправления ошибок цифровые сигналы, которые считываются с компакт-диска, имеют вид 16-битовых слов, передающих звуковую информацию с частотой 44,1 кГц. Если бы цифровые коды непосредственно преобразовывались в аналоговые, то появлялись бы полосы с зеркальными частотами, центрированные в точках, кратных частоте дискретизации 44,1 кГц (см. рис. 2.43, а). И хотя зеркальные частоты не были бы слышны (их частота превышает 20 кГц), они могли бы привести к перегрузке, если бы попали на усилитель и динамик проигрывателя, или вызвать интермодуляционное искажение сигнала. Следовательно, частотные компоненты, превышающие основную частоту, должны подавляться, как минимум, на 50 дБ. Аналоговые фильтры, которые могут обеспечить такой уровень подавления, должны будут соответствовать очень строгой спецификации, а для того, чтобы убедиться, что фильтры двух разных каналов подходят друг другу, нужна будет кропотливая подгонка.
Во избежание таких проблем в проигрывателях компакт-дисков используются фильтры выборки с запасом по частоте. Для реализации соответствующего метода можно умножить частоту дискретизации данных перед цифроаналоговым преобразование на четыре, получив 176,4 кГц (4 х 44,1 кГц). Частотный спектр сигнала с четырехкратной перевыборкой, отфильтрованного с помощью цифрового фильтра, показан на рис. 2.43, б. Видно, что зеркальные компоненты, превышающие 20 кГц, после выборки с запасом по частоте существенно уменьшаются, в результате чего их легче отфильтро-
Частота (кГц)Частота (кГц)Рис. 2.43. Спектр выборок звукового сигнала с частотой 44,1 кГц (панель а); спектр сигнала с четырехкратной перевыборной, на котором показаны значительно уменьшенные зеркальные компоненты (панель б); действие схемы ограничения шума на спектр шума (панель в). Обратите внимание на то, что в полосе звуковых частот (0-20 кГц) уровень шума значительно меньше, чем в области высоких частот, и сравним со спектром шумов, если бы не было ограничения шума (показанного пунктирной линией)Рис. 2.43. Спектр выборок звукового сигнала с частотой 44,1 кГц (панель а); спектр сигнала с четырехкратной перевыборной, на котором показаны значительно уменьшенные зеркальные компоненты (панель б); действие схемы ограничения шума на спектр шума (панель в). Обратите внимание на то, что в полосе звуковых частот (0-20 кГц) уровень шума значительно меньше, чем в области высоких частот, и сравним со спектром шумов, если бы не было ограничения шума (показанного пунктирной линией)
Частота (кГц)
Частота (кГц)
Рис. 2.43. Спектр выборок звукового сигнала с частотой 44,1 кГц (панель а); спектр сигнала с четырехкратной перевыборной, на котором показаны значительно уменьшенные зеркальные компоненты (панель б); действие схемы ограничения шума на спектр шума (панель в). Обратите внимание на то, что в полосе звуковых частот (0-20 кГц) уровень шума значительно меньше, чем в области высоких частот, и сравним со спектром шумов, если бы не было ограничения шума (показанного пунктирной линией)
Рис. 2.43. Спектр выборок звукового сигнала с частотой 44,1 кГц (панель а); спектр сигнала с четырехкратной перевыборной, на котором показаны значительно уменьшенные зеркальные компоненты (панель б); действие схемы ограничения шума на спектр шума (панель в). Обратите внимание на то, что в полосе звуковых частот (0-20 кГц) уровень шума значительно меньше, чем в области высоких частот, и сравним со спектром шумов, если бы не было ограничения шума (показанного пунктирной линией)
вать. Во временных координатах это выглядит как создание сигнала с намного меньшим шагом. В частотных же координатах зеркальные компоненты сдвигаются в область более высоких частот.
Выход фильтра выборки с запасом по частоте (28-битовые слова) подается на схему формирования спектра шума, а затем квантуется в 14-битовые слова путем округления (см. рис. 2.42). (Длина слова коэффициентов фильтра выборки с запасом по частоте составляет 12 бит, а его вход состоит из 16-битовых слов. После фильтрации выход состоит из 28-битовых слов.) Ошибка квантования возвращается и объединяется с выходом фильтра выборки с запасом по частоте. Для смещения шума квантования в сторону более высоких частот используется схема формирования спектра шума.
Объединенное действие выборки с запасом по частоте, фильтрации и ограничения шума существенно уменьшает зеркальные компоненты и уровень квантования в полосе сигнала. Это позволяет использовать 14-битовый ЦАП и при этом достигать такого отношения сигнал-шум, которое соответствует 16-битовому ЦАП. Можно показать, что фильтр с четырехкратной выборкой с запасом по частоте и ограничитель шума улучшают отношение сигнал-шум на 6 и 7 дБ соответственно.
^^ |1 + №21I/2^^ |1 + №21I/2Рис. 2.44. Устройство предварительной обработки данных системы ЦОС реального времени (панель а). Спектр на выходе ЦАП (панель б)Рис. 2.44. Устройство предварительной обработки данных системы ЦОС реального времени (панель а). Спектр на выходе ЦАП (панель б)
^^ |1 + №21I/2
^^ |1 + №21I/2
Рис. 2.44. Устройство предварительной обработки данных системы ЦОС реального времени (панель а). Спектр на выходе ЦАП (панель б)
Рис. 2.44. Устройство предварительной обработки данных системы ЦОС реального времени (панель а). Спектр на выходе ЦАП (панель б)
Эффект задержки в ЦАП приводит к искажению по закону sin х/х в спектре, что способствует дальнейшему уменьшению зеркальных компонентов. Затем для восстановления звукового сигнала используется простой фильтр подавления зеркальных частот.
Пример 2.13
На рис. 2.44, а изображено устройство, которое применяется для восстановления аналогового сигнала после его цифровой обработки в определенной цифровой системе записи и воспроизведения звука реального времени. Основная полоса частот аналогового сигнала расположена между 0 и 20 кГц, а цифроаналоговый преобразователь обновляется с частотой 176,4 кГц. Зеркальные частоты следует подавить как минимум на 50 дБ, а важные компоненты сигнала должны измениться не больше, чем на 0,5 дБ. Найдите минимальный порядок и частоту среза фильтра защиты от зеркальных частот, предполагая, что он имеет баттервортовскую характеристику. Укажите все сделанные предположения.
Решение
Если предположить задержку нулевого порядка, то спектр на выходе ЦАП представляет собой произведение спектра сигнала и характеристики sinz/a: (см. рис. 2.44, б). Ослабление сигнала, обусловленное спектром sin х/х, на двух критических частотах 20 и 156,4 кГц (ближайшие к основной полосе частот зеркальные частоты) равно:
при 20 кГц : Sm — = 0,9789(при х = шТ/2) —> — 0,184 дБ, х
ххпри 156,4 кГц : Smi = 0,125 —♦ —18 дБ.
х
х
Следовательно, неравномерность в полосе пропускания выходного фильтра не должна превышать 0,5 — 0,184 = 0,316 дБ. В полосе подавления необходимо дополнительное ослабление не меньше, чем на 50 — 18 = 32 дБ. Следовательно,
20 log [1 + (20//с)2"]1/2 < 0,316 дБ,
20log [1 + (156,4//с)2п]1/2 > 32 дБ.
Решая эту систему уравнений относительно п, получаем п = 2,4 ~ 3 (целое), а /с = 30,76 кГц.
Ограничения обработки сигналов в реальном времени с аналоговыми входными/выходными сигналами
Основные ограничения и ошибки, возникающие при процессах аналого-цифрового и цифроаналогового преобразования в системах ЦОС реального времени, обсуждались выше. Ниже кратко изложены основные ограничения и предлагаются возможные решения.
Представление данных с помощью конечного числа битов вносит исходную ошибку (ошибку квантования), которая увеличивается при дальнейшей обработке сигнала. Существует два способа устранения этой ошибки: увеличить разрешение АЦП и дискретизовать сигнал с запасом по частоте с последующей цифровой обработкой для улучшения отношения сигнал-шум (подробнее см. главу 9).
АЦП и ЦАП с большой разрешающей способностью обычно низкоскоростные (за исключением очень дорогих преобразователей). Как правило, для преобразования аналогового элемента АЦП требуется несколько микросекунд, а ЦАП тратит на решение значительную часть микросекунды. Такие задержки ограничивают максимальную возможную частоту дискретизации. Фактически при современных технологиях АЦП и ЦАП являются главным критическим параметром большинства приложений ЦОС реального времени.
АЦП и ЦАП подвержены ряду других ошибок, включая температурные эффекты и нелинейности. Таким образом, у хорошей системы ЦОС реального времени с аналоговым входом должны быть качественные элементы аналогового ввода-вывода.
Выход устройства выборки-хранения — это широкая полоса частот (“благодаря" зеркальным частотам), которая увеличивает шум на входе АЦП.
Из-за наличия энергии сигнала за пределами представляющей интерес полосы частот всегда существует искажение от наложения. Чтобы снизить его до приемлемого уровня, перед дискретизацией необходимо ограничить полосу частот сигнала и по возможности провести выборку с запасом по частоте.
При использовании ЦАП нулевого порядка возникает эффект sinx/x, который постепенно уменьшает высокочастотные компоненты сигнала. Этот эффект можно компенсировать, применив цифровой фильтр с характеристикой х] sin х.
Фильтры защиты от наложения спектров также вносят ошибки. Как правило, это амплитудные и фазовые искажения. Амплитудные характеристики этих фильтров в представляющей интерес полосе не плоские. Аналоговые фильтры с достаточно хорошей амплитудной характеристикой неизменно обладают плохой фазовой характеристикой, что означает, что гармонические отношения между компонентами сигнала искажаются. В многоканальных системах проблема осложняется тем, что искажения от генераторов аналоговых сигналов для разных каналов различаются, и может возникнуть необходимость в их компенсации.
К ошибкам дискретизации с задержкой относятся время детектирования, апертурная неопределенность, спад за время преобразования и прохождение сигнала в режиме задержки.
В современных системах ЦОС, особенно в цифровых системах записи и воспроизведения звука, таких как проигрыватели компакт-дисков, наблюдается тенденция к использованию однобитовых АЦП и ЦАП. Эти более новые устройства используют преимущества обработки при нескольких скоростях (подробнее см. главу 9).
Примеры применения
Применение аналогового интерфейса ввода-вывода широко распространено в большинстве систем ЦОС реального времени. В новейших приложениях используются теорема о дискретном представлении и факторы, связанные с дискретизацией, а именно: частота дискретизации, повторение спектра дискретных данных в точках, кратных частоте дискретизации, конечная ширина полосы реального сигнала (например, настоящие компоненты сигнала ограничены, скажем, частотами 0 и Fs/T), действие дискретизации на шум квантования и т.д. Это привело к развитию недорогих аналого-цифровых и цифроаналоговых преобразователей с высокой разрешающей способностью (см. разделы 2.5 и 2.9). В основе этих приложений лежат методы обработки при нескольких скоростях, описанные в главе 9, и поэтому мы отложим их обсуждение до этой главы.
Для улучшения характеристик приемника в системах связи используются методы полосовой дискретизации. Вопросы, связанные с этими приложениями, требуют хорошего понимания методов обработки при нескольких скоростях (эту тему мы также отложим до главы 9).
Резюме
В общих чертах, система ЦОС реального времени — это система, которая состоит из блока аналого-цифрового преобразования, цифрового процессора и блока цифроаналогового преобразования. Время, необходимое для преобразования в таких системах аналогового сигнала в цифровой, ограничивает максимальную ширину полосы сигнала, с которым может работать система, а устройства, которые используются в процессах преобразования, могут приводить к значительным ошибкам или ухудшению сигнала.
Большую часть этих ошибок можно минимизировать, тщательно подобрав устройства (АЦП, ЦАП и т.д.) и параметры системы (частоты дискретизации и т.п.). Например, наложение можно уменьшить с помощью дискретизации с достаточно высокой частотой и подходящих фильтров, ограничивающих полосу частот сигнала.
Задачи
Дискретизация и контроль за наложением
Что вы понимаете под следующими выражениями?
Частота Найквиста (Котельникова).
Б. Скорость Найквиста.
Частота дискретизации.
Г. Скорость дискретизации.
На рис. 2.45 изображен спектр сигнала. Найдите минимальную частоту дискретизации, позволяющую избежать наложения. Предположите, что сигнал дискретизуется с частотой 16 кГц, и изобразите спектр дискретного сигнала в диапазоне ±16 кГц. Укажите на своем рисунке частоты, представляющие практический интерес, в том числе и частоту наложения.
Рис. £45
Объясните, почему одной только теоремы о дискретном представлении недостаточно для определения настоящей частоты дискретизации, которая используется в практической системе ЦОС.
Объясните роль фильтров защиты от наложения спектров и фильтров подавления зеркальных частот в системе ЦОС реального времени. Почему в системах ЦОС требования к этим двум фильтрам часто бывают одинаковыми?
К аналоговому входному блоку определенной работающей в реальном времени системы ЦОС выдвигаются такие требования:
полоса частот, представляющая практический интерес,0-4 кГц,
максимально допустимая неравномерность в полосе пропускания < 0,5 дБ, затухание в полосе подавления> 50 дБ.
Найдите минимальный порядок фильтра защиты от наложения спектров с характеристикой типа Баттерворта и подходящую частоту дискретизации для удовлетворения этим требованиям.
Аналоговый вход системы ЦОС реального времени оцифровывается с помощью 16-битового АЦП в биполярном режиме. Удвоенная амплитуда входного сигнала лежит в диапазоне ±10 В, полоса частот сигнала — от 0 до 10 кГц. Оцените
минимальное затухание Amin в полосе подавления фильтра защиты от наложения спектров;
минимальную частоту дискретизации Fs, поддерживающую искажение от наложения в полосе пропускания как раз ниже уровня шума квантования (предположите, что для защиты от наложения спектров используется фильтр Баттерворта шестого порядка).
Полоса частот аналогового сигнала с однородной спектральной плотностью мощности ограничена фильтром с такой амплитудной характеристикой
где /с = 3,4 кГц. Сигнал оцифровывается с помощью линейного 8-битового АЦП. Найдите такую минимальную частоту дискретизации, чтобы максимальное искажение от наложения не превышало уровень ошибки квантования в полосе пропускания.
Полоса частот аналогового входного сигнала системы ЦОС реального времени перед оцифровкой была ограничена до 30 Гц с помощью аналогового фильтра Баттерворта третьего порядка. При условии, что обусловленное дискретизацией искажение от наложения составляет меньше 1% от уровня сигнала в полосе пропускания, найдите минимальную частоту дискретизации Fs, необходимую для этой системы.
Какова будет средняя ошибка, обусловленная апертурными эффектами при частоте 30 Гц, если сигналу после оцифровки и обработки был возвращен аналоговый вид? Предположите, что входной сигнал оцифрован с помощью идеального устройства дискретизации и АЦП, но восстановлен с помощью ЦАП с задержкой нулевого порядка. Общей частотой дискретизации на входе и на выходе можно считать частоту 256 Гц.
На рис. 2.46 изображено устройство предварительной обработки данных системы ЦОС. Предположим, что на вход подается широкополосный сигнал.
Изобразите спектр сигнала до (точка А) и после дискретизации (точка В) в диапазоне ±Fs/2.
Найдите уровень сигнала и искажения от наложения при 15 кГц и частоте Найквиста (т.е. 30 кГц).
Найдите минимальную частоту дискретизации jF,(min), которая при частоте 15 кГц даст отношение сигнала к уровню искажения от наложения 10:1. Укажите все сделанные предположения.
На рис. 2.47 изображена система ЦОС реального времени. Предположив, что полоса частот, представляющая практический интерес, находится в диапазоне 0-100 Гц, и что используется 16-битовый биполярный АЦП, оцените:
/^ = 60 кГц
Рис. 2.46
Фильтр нижних частот Баттеворта
Рис. 2.47. Система цифровой обработки сигналов реального времени
минимальное затухание Amin в полосе подавления фильтра защиты от наложения спектров;
минимальную частоту дискретизации Fs;
уровень искажения от наложения относительно уровня сигнала в полосе пропускания для оцененных Amin и Fs.
Изобразите спектр сигнала на выходе аналогового фильтра (снабдив рисунок необходимыми пометками), предположив, что на вход подается широкополосный сигнал, и спектр сигнала после дискретизации.
1. Коротко расскажите о трех основных факторах, определяющих уровень искажения от наложения в реальных системах ЦОС. Укажите значения каждого из них для контроля за наложением спектров.
Полоса частот аналогового сигнала с однородной спектральной плотностью мощности ограничена с помощью фильтра защиты от наложения спектров со следующей амплитудно-частотной характеристикой:
1
где /с = 40 Гц. Сигнал оцифрован с помощью линейного 12-битового биполярного АЦП. Найдите:
минимальную частоту дискретизации, при которой максимальное искажение от наложения в полосе пропускания не превышает уровень шума квантования;
максимальный уровень сигнала в полосе пропускания (в дБ) относительно минимального уровня шума квантования АЦП.
Укажите все сделанные предположения.
Запишите уравнение, выражающее теорему о полосовой дискретизации. Объясните, почему эта теорема представляет интерес с точки зрения цифровых систем связи.
Из уравнения, записанного в п. 3, выведите выражение для теоретической минимальной частоты дискретизации полосового сигнала. Предположите, что отношение верхнего края полосы частот к ширине полосы сигнала равно целому числу. Прокомментируйте, почему теоретическую минимальную частоту дискретизации нельзя использовать на практике.
Полосовая дискретизация с недостаточной выборкой
На рис. 2.48, а изображено устройство предварительной обработки данных приемника многоканальной системы связи. Спектр принимаемого сигнала изображен на рис. 2.48, б с указанием номеров каналов. Перед оцифровкой сигнала на минимальной возможной частоте для изоляции сигнала в нужном канале применяется полосовой фильтр.
Предположим, что используется идеальный полосовой фильтр со следующей характеристикой:
H(f) = 1, если 10 кГц < / < 20 кГц,
0 — в иных случаях.
а. Найдите минимальную теоретическую частоту дискретизации.
б. Изобразите спектр сигнала до дискретизации (точка А) и после дискретизации (точка В).
Повторите пункты а и б для полосового фильтра, пропускающего канал 2.
б)
Рис. 2.48. Устройство предварительной обработки данных системы (панель а); спектр принимаемого сигнала(панель б)
На рис. 2.49 изображен спектр узкополосного сигнала. Получите и изобразите спектр дискретного сигнала в диапазоне ±Fs/2 для каждого из следующих трех случаев:
£ = з,
^ = 4,
^ = 4,5.
Пусть ширина полосы сигнала Б = 5 кГц, и в каждом случае сигнал дискретизуется с частотой 2Б.
1. Найдите минимальную теоретическую частоту дискретизации Fs, позволяющую избежать наложения, для полосового сигнала с частотными компонентами в диапазоне 20 МГц < / < 30 МГц. Обоснуйте свой ответ и объясните, почему минимальной теоретической частотой дискретизации нельзя воспользоваться на практике.
Пусть полосовой сигнал из п. 1 имеет спектр, изображенный на рис. 2.50. Найдите граничные частоты всех частотных полос сигнала (включая зеркальные компоненты) после дискретизации в интервале ±2FS. Изобразите спектр дискретного сигнала в этом интервале, отметив на рисунке необходимые элементы.
Рассчитайте допустимый диапазон частот дискретизации, позволяющих избежать наложения спектров, если аналоговый полосовой сигнал усиливается защитной полосой в 5 кГц на каждом краю полосы.
Рис. 2.50
1. Кратко объясните принцип полосовой дискретизации с недостаточной выборкой. Прокомментируйте преимущества применения этого метода на практике.
Цифровой радиоприемник на втором этапе работает на промежуточной частоте 50 кГц.
А. Найдите минимальную частоту дискретизации Fs, позволяющую избежать наложения спектров в этой системе, если ширина полосы промежуточной частоты сигнала равна 6 кГц.
Б. Изобразите спектр дискретного сигнала в интервале ±F,. Объясните, как вы получили спектр дискретного сигнала и прокомментируйте его вид.
Пусть используется метод целочисленной дискретизации и спектр сигнала на втором этапе промежуточной частоты выглядит так, как показано на рис. 2.51.
-50050 /(кГц)
Рис. 2.51
1. На рис. 2.52, а изображен спектр сигнала на втором этапе обработки в цифровом приемнике (преобразование на промежуточную частоту), где промежуточная частота равна 2,976 МГц. С помощью соответствующих схем покажите, что сигнал промежуточной частоты можно дискретизовать без наложения с частотой 128 кГц.
С помощью соответствующих схем покажите, что если промежуточная частота сигнала будет равна 3 МГц, то появится наложение, если сигнал на промежуточной частоте дискретизован с частотой 128 МГц.
Частота (МГц) б)
Рис. 2.52. Спектр сигнала на втором промежуточном этапе (панель а); спектр выборочной функции (панель б)
1. Запишите уравнение, выражающее теорему о полосовой дискретизации. Объясните, почему теорема о полосовой дискретизации представляет интерес для цифровой связи.
Из записанного уравнения выведите выражение для теоретической минимальной частоты дискретизации полосового сигнала. Предположите, что отношение верхнего края полосы частот к ширине полосы сигнала равно целому числу. Объясните, почему теоретическая минимальная частота дискретизации может оказаться непригодной на практике.
Шум квантования при аналого-цифровом преобразовании
В системе ЦОС реального времени используется 16-битовый АЦП в биполярном режиме с входным диапазоном ± 5 В. Какова максимальная ошибка квантования? Рассчитайте теоретическое максимальное отношение сигнал-шум квантования (в децибелах) для этой системы.
Синусоидальный сигнал с удвоенной амплитудой 5 В оцифровывается с помощью 16-битового АЦП. Предположив, что квантование линейно, найдите:
величину шага квантования;
среднеквадратическое отношение сигнал-шум квантования.
Укажите все сделанные предположения.
Аналоговый вход системы ЦОС оцифровывается с частотой 100 кГц при однородном квантовании. Предполагая, что на вход подается синусоидальный сигнал с удвоенной амплитудой ± 5 В, найдите минимальное число битов АЦП, позволяющее достигать отношения сигнал-шум квантования не менее 90 дБ. Перечислите все сделанные предположения.
Покажите, что отношение сигнал-шум квантования линейного АЦП задается как
SNR(q) = 6,02В + 4,77 - 201оё(АХ)(дБ),
где В — количество битов АЦП, ±А — входной диапазон АЦП, а ах — среднеквадратическое значение входного сигнала. Найдите отношение сигнал-шум квантования, если разрешение АЦП равно 16 бит, а вход имеет вид:
синусоидального сигнала;
сигнала со среднеквадратическим значением А]4.
Укажите все сделанные предположения.
Среднеквадратическое значение аналогового входного сигнала В-битового АЦП равно ах (В). Входной диапазон АЦП подходит для значений в пределах ± Зег,. (В). Найдите выражение для отношения сигнал-шум квантования (в децибелах) преобразователя. Укажите все сделанные предположения.
Выборка с запасом по частоте при аналого-цифровом преобразовании — наложение спектров и контроль за уровнем шума квантования
1. С помощью подходящих схем объясните принцип метода выборки с запасом по частоте и его использование для увеличения эффективной разрешающей способности аналого-цифрового преобразователя, работающего на частоте Найквиста.
2. В цифровой системе записи и воспроизведения звука для оцифровки аналогового входного сигнала с частотными компонентами в диапазоне 0-4 кГц используется метод выборки с запасом по частоте и 8-битовый биполярный преобразователь, работающий на частоте Найквиста. Оцените эффективную разрешающую способность (в битах) преобразователя, если частота дискретизации равна 40 МГц. Покажите, как вы получили этот ответ. Прокомментируйте практические проблемы, возникающие в связи с этим методом.
1. Универсальная многоканальная (до 64 каналов) система сбора данных должна собирать медицинские данные. Каждый аналоговый канал должен задаваться пользователем отдельно, чтобы граничная частота его полосы пропускания была между 0,5 и 200 Гц, а выбираемая частота дискретизации — в диапазоне от 1 Гц до 2 кГц. Максимально допустимая неравномерность в полосе пропускания равна 0,5 дБ, а зеркальные компоненты должны быть как минимум на 40 дБ ниже, чем компонент сигнала.
Объясните стратегию, выбранную для удовлетворения вышеизложенным требованиям. Ответ должен включать следующие пункты:
рассуждения о вопросах, специфичных для данного приложения;
указания, как использовать в этом приложении методы дискретизации с запасом по частоте, чтобы наиболее эффективно и экономно удовлетворить данные условия (применяйте расчет цены/числа компонентов).
Пусть для всех каналов системы из п.1 используются идентичные фильтры защиты от наложения спектров, каждый из которых имеет следующую характеристику типа Баттерворта:
1
где /с = 3 дБ — частота среза фильтра.
Изобразите спектры данных до и после дискретизации и определите:
частоту среза /с;
подходящую общую частоту дискретизации Fs.
Ответ прокомментируйте.
Система записи и воспроизведения звука работает с сигналами, основная полоса частот которых занимает диапазон 0-20 кГц. Найдите коэффициент перевыбор- ки и минимальную частоту дискретизации, которая необходима для достижения с 8-битовым преобразователем того качества, которого можно было бы достичь с 16-битовым преобразователем.
1. Напишите краткое резюме по каждому из перечисленных ниже методов для однобитового АЦП:
выборка с запасом по частоте;
ограничение спектра шума.
Почему в высококачественных системах ЦОС предпочтительнее однобитовые АЦП, а не обычные АЦП с достаточной аппроксимацией?
Для оцифровки аналогового сигнала в системе цифровой обработки сигналов с аналоговым звуковым входом в диапазоне 0-20 кГц применяется метод дискретизации с запасом по частоте и сигма-дельта-модулятор первого порядка, изображенный на рис. 2.53. Предположив, что частота дискретизации равна 3,072 МГц, найдите характеристику фильтра ограничения шума при 20 кГц. Оцените эффективную разрешающую способность (в битах) устройства оцифровки.
Рис. 2.53. Сигма-дельта-модулятор первого порядка
В системе цифровой обработки сигналов с аналоговым звуковым входом в диапазоне 0-20 кГц для преобразования аналогового сигнала в цифровой поток битов с частотой 6,144 МГц применяется метод выборки с запасом по частоте и сигма-дельта-модулятор второго порядка. На рис. 2.54 изображена модель сигма-дельта-модулятора на z-плоскости.
Определите общее улучшение отношения сигнал-шум квантования, которое становится возможным благодаря дискретизации с запасом по частоте и ограничению шума, и оцените эффективную разрешающую способность (в битах) устройства оцифровки.
В системе цифровой обработки сигналов с аналоговым звуковым входом в диапазоне 0-20 кГц для преобразования аналогового сигнала в цифровой поток битов с частотой 6,144 МГц применяется метод выборки с запасом по частоте и сигма-дельта-модулятор первого порядка. На рис. 2.55 изображена модель сигма-дельта-модулятора на z-плоскости.
Объясните, как цифровой поток битов можно преобразовать в цифровой многобитовый поток с частотой 92 кГц.
Найдите общее улучшение отношения сигнал-шум квантования, которое становится возможным благодаря дискретизации с запасом по частоте и ограничению шума, и оцените эффективную разрешающую способность (в битах) устройства оцифровки.
Рис. 2.54. Результат преобразования У (г) на выходе сигма-дельта-модулятора второго порядка задается как Y^ = X(z) + £з(г)(1 - z-1)2
Цифроаналоговые преобразования и эффект sin х/х
На рис. 2.56, а показана блок-схема системы ЦОС реального времени со аналоговым выходом, а на рис. 2.56, б изображена основная полоса частот спектра сигнала, который подается на ЦДЛ. Изобразите спектр сигнала на выходе ЦАП в интервале от 0 до 2FS, где Fs — частота дискретизации. Найдите амплитуды компонентов сигнала, учитывая, что частота дискретизации равна 15 кГц.
В системе ЦОС реального времени используется 16-битовый процессор, 12битовый АЦП с временем преобразования 15 мкс и 12-битовый ЦАП со временем установки сигнала 500 нс. Необходимая операция ЦОС — это сверточное суммирование, которое задается как
rv-i
у(п) = ^2 Mk)x(n — к),к=0
где переменные имеют обычные значения, а вычисления должны выполняться между элементами выборки. Оцените пропускную способность системы в реальном времени, указав все сделанные предположения.
!Н/)|!Н/)|СистемаЦОССистемаЦОСЯ")Я")ЦАПЦАП/(»)/(»)Задержка нулевого порядка а)Задержка нулевого порядка а)
!Н/)|
!Н/)|
СистемаЦОС
СистемаЦОС
Я")
Я")
ЦАП
ЦАП
/(»)
/(»)
Задержка нулевого порядка а)
Задержка нулевого порядка а)
11Частота (кГц)
1
1
Рис. 2.56. Система ЦОС реального времени с анало-говым выходом (панель а); спектр сигнала, которыйподается на ЦАП (панель б)
Выход цифроаналогового преобразователя задается как реакция на цифровую последовательность:
y(t) = ^t/(n)/i(t - пТ),
где /г(<) — это импульсная характеристика ЦАП, а Х/Т — скорость подачи данных на ЦАП. Пусть ЦАП имеет задержку нулевого порядка, a h^t) — квадрат импульса длительностью T(s).
Изобразите выход ЦАП как реакцию на входную последовательность у(п), показанную на рис. 2.57. Покажите, что действие спектрального ограничения ЦАП на спектр сигнала можно компенсировать с помощью цифрового фильтра, спектр которого имеет вид
*Я^ = 2sin(wT/2)'*Я^ = 2sin(wT/2)'
*Я^ = 2sin(wT/2)'
*Я^ = 2sin(wT/2)'
Критически оцените основные ограничения и ошибки, возникающие в процессе аналогового/цифрового преобразования в системах цифровой обработки сигналов реального времени, и подумайте о том, как можно уменьшить каждую из этих ошибок и снизить влияние ограничивающих факторов.
Выборка с запасом по частоте в цифроаналоговом преобразовании: контроль за зеркальными частотами и шумом квантования
На рис. 2.58 изображено устройство, которое используется для восстановления аналогового сигнала после того, как он был обработан определенной цифровой системой записи и воспроизведения звука, работающей в реальном времени. Основная полоса частот аналогового сигнала простирается от 0 до 24 кГц, а частота дискретизации равна 192 кГц.
Зеркальные частоты следует приглушать как минимум на 50 дБ, чтобы при этом компоненты звукового сигнала не подавлялись больше, чем на 0,5 дБ. Воспользовавшись соответствующими изображениями спектра сигнала, найдите минимальные значения порядка и частоты среза фильтра подавления зеркальных частот, предположив, что он имеет характеристику типа Баттерворта. Перечислите все сделанные предположения.
Рис. 2.58. Выходной каскад системы ЦОС реального времени
На рис. 2.59 изображено устройство, которое используется для восстановления аналогового сигнала после обработки цифровой системой записи и воспроизведения звука, работающей в реальном времени. Основная полоса частот аналогового сигнала простирается от 0 до 20 кГц, а частота дискретизации равна 176,4 кГц.
Ограничитель шума описывается следующими уравнениями:
у'(т1) = х^тГ) — е(п — 1),е(п) = y(n) - Vl^y
Выведите выражение для передаточной функции, которая действует на шум квантования, а затем изобразите спектр шума квантования после ограничения шума.
Найдите улучшение отношения сигнал-шум квантования, возможность которого дает выборка с запасом по частоте и ограничение шума, а затем оцените эффективную разрешающую способность ЦАП (в битах). Предположите, что осуществляется четырехкратная выборка с запасом по частоте.
Рис. 2.59. Упрощенная блок-схема воспроизведения звукового сигнала проигрывателем компактдисков с четырехкратной выборкой с запасом по частоте и ограничением формы шума
Системе ЦОС предшествует устройство дискретизации с задержкой с апертурным временем 10 нс и временем детектирования 1 ^ с, за которым идет 8-битовый АЦП. Найдите максимальное время преобразования АЦП, которое поддерживает частоту дискретизации 100 кГц.
Задачи для решения с помощью MATLAB
На рис. 2.59 изображено устройство, которое используется для восстановления аналогового сигнала после обработки цифровой системой записи и воспроизведения звука реального времени. Основная полоса частот аналогового сигнала расположена от 0 до 20 кГц, а частота дискретизации равна 176,4 кГц.
С помощью MATLAB рассчитайте и постройте график спектра удобного фильтра четырехкратной выборки с запасом по частоте с КИХ. Укажите коэффициенты этого фильтра.
Представьте коэффициенты фильтра в виде 12-битовых чисел с фиксированной запятой.
Сгенерируйте звуковой сигнал (16-битовый при частоте 44,1 кГц).
Создайте в MATLAB модель цифроаналогового процесса, пользуясь арифметикой с фиксированной запятой, и постройте график сигнала на выходе каждого блока в частотных и временных координатах.
На рис. 2.60, а изображен спектр сигнала в системе связи с шириной полосы В и несущей частотой /с. Аналоговый сигнал проходит через фильтр защиты от наложения спектров и дискретизуется с частотой F,. Искомый спектр дискретного сигнала изображен на рис. 2.60, б.
Предоставьте спецификацию подходящего фильтра защиты от наложения спектров и обоснуйте свое решение.
Назовите подходящие частоты дискретизации, которые позволят восстановить спектр на рис. 2.60, б без наложения. Изобразите спектр, полученный в каждом случае.
Чтобы частота дискретизации была как можно ниже, выберите наименьшую частоту дискретизации из п. 2 и проверьте спектр повторно дискретизованного сигнала с помощью пакета MATLAB. Приведите в ответе код MATLAB. Подсказка. Дискретизация — это умножение во временных координатах, что математически равнозначно свертке в частотных координатах. Возьмите
частотный спектр выборочной функции и выполните его свертку со спектром на рис. 2.60, а.
Предоставьте спецификацию цифрового фильтра для восстановления сигнала и укажите, как добавление защитных полос упрощает этот фильтр.
/(МГц)/(МГц)-505
/(МГц)
/(МГц)
6)
Рис. 2.60
1. Спроектируйте (на уровне блок-схемы) простой цифровой АМ-приемник, в котором используется метод полосовой дискретизации с недостаточной частотой и квадратурное смешивание для демодуляции принятого сигнала. Пусть промежуточная частота имеет ширину полосы 6 кГц. Ответ должен включать следующие составляющие:
спецификацию (с обоснованием) подходящей центральной промежуточной частоты в диапазоне 40-60 кГц, оптимальной частоты дискретизации во избежание наложения спектров, соответствующей частоты квадратурного осциллятора и подходящих цифровых фильтров;
изображение спектра сигнала на промежуточной частоте до и после дискретизации;
точное описание того, как работает цифровой приемник;
указание всех сделанных предположений.
2. Постройте и проверьте (в пакете MATLAB) упрощенную модель цифрового АМ-приемника.
Литература
CCITT (1989) Possible applications for 16 kbits/sec voice coding. Appendix 3 — Annex 1 to Question 21/XV, 13-22, March.
CCITT Recommendation G.726 (1990) 40, 32, 24 and 16kbitys Adaptive Differential Pulse Code Modulation (ADPCM), ITU Geneva, Switzerland.
CCITT Recommendation G.711 (1998) Pulse Code Modulation (PCM) of Voice Frequencies, ITU Geneva, Switzerland.
Del Re E. (1978) Bandpass signal filtering and reconstruction through minimum-sampling-rate digital processing. Aha Frequenza, 47(9), September, 395E/675-398E/678.
Goedhart D., Van de Plassche R. J. and Stikvoort E. F. (1982) Digital-to-analog conversion in playing compact disc. Philips Technical Rev., 40(6), 174-179.
Vaughan R. G., Scott N. L. and White D. R. (1991) The theory of bandpass sampling. IEEE Transactions on Signal Processing, 39(9), September, 1973-1984.
Дополнительная литература
Aziz P. M., Sorensen H. V. and Spiegel J. V. D. (1996) An overview of sigma-delta converters. IEEE Signal Processing Magazine, January, 61-84.
Bellamy J. (1982) Digital Telephony. New York: John Wiley & Sons.
Berkhout P. J. and Eggermont L. D. J. (1985) Digital audio systems. IEEE ASSP Magazine, October, 45-67.
Betts J. A. (1978) Signal Processing, Modulation and Noise. Unibooks, Hodder and Stoughton.
Blesser B. A. (1978) Digitization of audio: a comprehensive examination of theory, implementation, and current practice. J. Audio Eng. Soc., 26(10), 739-771.
Blesser B., Locanthi B. and Stockham Jr, T. G. (eds) (1982) Digital Audio. New York: Audio Engineering Society. Candy J. C., Wooley B. A. and Benjamin O. J. (1981) A voice band codec with digital filtering. IEEE Trans. Communications, COM-29(6), June, 815-830.
Garret P. H. (1981) Analog I/O Design. Reston VA: Reston Publishing Co. Inc.
1TTCC (1986) Study Group XVIII P Report R26C, Recommendation G7221. 32 kbit/s Adaptive Differential Pulse-Code Modulation (ADPCM).
Jayant N. S. and Noll P. (1984) Digital Coding of Waveforms. Englewood Cliffs NJ: Prentice-Hall.
Macario R. С. V. (1991) Signal Coding В: Speech Coding. C. Xydeas, 82-99.
Mueller H. R., Schindler H. R. and Vettiger P. (1978) Signal-to-noise analysis of a PCM voice system based on analogue/digital filtering. IEEE Trans. Communications, COM-26(5), May, 653-659.
Natvig J. E. (1988) Speech coding in the pan-European digital mobile radio systems. Speech Communication Magazine, January.
Oliver В. M., Pierce J. R. and Shannon С. E. (1948) The philosophy of PCM. Proc IRE, November, 1324-1331.
Oppenheim A. and Schaffer R. W. (1975) Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Papamichalis P. (1987) Practical Approaches to Speech Coding. Englewood Cliffs NJ: Prentice-Hall.
Rabiner L. R. and Gold B. (1975) Theory and Applications of Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Sheingold D. H. (ed.) (1986) Analog-Digital Conversion Handbook. Englewood Cliffs NJ: Prentice-Hall.
Steer Jr, R. W. (1989) Antialiasing filters reduce errors in A/D converters. EDN, March, 171-186.
Tiefenthaler C. (1987) Oversampling to increase signal to noise ratio of ADCs. Electronic Product Design, March, 59-62.
Van Doren A. H. (1982) Data Acquisition Systems. Reston VA: Reston Publishing Co. Inc.
Дискретныеа4Ж##^^Дискретныеа4Ж##^^преобразованияпреобразованияВведениеДПФ и обратное ДПФВведениеДПФ и обратное ДПФСвойства ДПФ. 3.4. Вычислительная сложность ДПФ,Алгоритм быстрого преобразования Фурье с децимациейi , .областит ,'.Обратное быстрое преобразование Фурье, ।Реализация БПФ;Другие дискретные преобразования . ■ ’ l ..Применение ДКП: сжатие изображений ,. \ ,-■ .■; ...ЗЛО., Примеры Литература1 ПриложенияСвойства ДПФ. 3.4. Вычислительная сложность ДПФ,Алгоритм быстрого преобразования Фурье с децимациейi , .областит ,'.Обратное быстрое преобразование Фурье, ।Реализация БПФ;Другие дискретные преобразования . ■ ’ l ..Применение ДКП: сжатие изображений ,. \ ,-■ .■; ...ЗЛО., Примеры Литература1 ПриложенияWW. < 150. < 150153 .163 - 165■166153 .163 - 165■1668$^^^88$^^^8?Я|-'?Я|-'186186
Дискретные
а4Ж##^^
Дискретные
а4Ж##^^
преобразования
преобразования
Введение
ДПФ и обратное ДПФ
Введение
ДПФ и обратное ДПФ
Свойства ДПФ
. 3.4. Вычислительная сложность ДПФ,
Алгоритм быстрого преобразования Фурье с децимациейi , .областит ,'.
Обратное быстрое преобразование Фурье, ।
Реализация БПФ;
Другие дискретные преобразования . ■ ’ l ..
Применение ДКП: сжатие изображений ,. \ ,-■ .■; ...
ЗЛО., Примеры Литература
1 Приложения
Свойства ДПФ
. 3.4. Вычислительная сложность ДПФ,
Алгоритм быстрого преобразования Фурье с децимациейi , .областит ,'.
Обратное быстрое преобразование Фурье, ।
Реализация БПФ;
Другие дискретные преобразования . ■ ’ l ..
Применение ДКП: сжатие изображений ,. \ ,-■ .■; ...
ЗЛО., Примеры Литература
1 Приложения
W
W
. < 150
. < 150
153 .163 - 165
■166
153 .163 - 165
■166
8$^
^^8
8$^
^^8
?Я|-'
?Я|-'
186
186
В данной главе рассказывается о пользе дискретных преобразований и выводится широко распространенное быстрое преобразование Фурье. Кратко описаны дискретное косинус-преобразование, а также преобразование Уолша и Адамара. Рассказано о вейвлетном преобразовании, интерес к которому постоянно растет, и объясняется, как его можно использовать для очистки сигнала от шумов на основе анализа с переменной разрешающей способностью и детектирования сингулярностей.
В этой главе рассказывается о преобразовании дискретных данных из временной области в частотную. Зависимость напряжения от времени принято выражать через зависимость амплитуды (или фазы) от частоты, и наоборот. Эти два описания (представления) в различных областях дают дополняющую друг друга информацию об одних и тех же данных. Следовательно, в некоторых приложениях исследование графика зависимости амплитуды сигнала от частоты на предмет изменения напряжения при определенной частоте может дать больше полезной информации, чем наблюдение за формой сигнала напряжения, например, для определения первых признаков износа деталей машины. Для этого к выходным данным применяется быстрое преобразование Фурье (БПФ). Еще один пример — это использование анализатора на основе дискретного преобразования Фурье и осциллографа для проверки выхода модулятора системы связи, где пробные сигналы должны порождать амплитудные составляющие на определенных известных
частотах. Внимание, которое в этих двух примерах спектрального анализа уделяется избранному и четко ограниченному набору частот, говорит о том, что выгоднее применить преобразование, при котором маловажной информацией можно пренебречь, облегчив таким образом последующую интерпретацию данных. Дискретные преобразования, в частности, дискретное косинус-преобразование, используются также для сжатия речевых и видеосигналов, что позволяет передавать их с меньшей шириной полосы. Кроме того, они применяются при обработке изображений (распознавание образов) для сокращения набора признаков. Преобразования полезны и как математическое средство ускорения вычислений в других областях обработки сигналов, таких как нахождение корреляции (используется в гидролокации для поиска объекта на большом расстоянии), или при свертке для определения взаимосвязи между системой и ее входными или выходными данными. При таких расчетах важен переход как из частотной области во временную, так и в обратном направлении. Вообще, эта тема сугубо математическая, но сегодня можно с уверенностью сказать, что в большинстве приложений дискретные преобразования стали стандартной процедурой, так что инженерам-разработчикам едва ли понадобятся глубокие математические познания или знание специальных теорем. Исключением является спектральный анализ сигналов. Здесь каждую задачу нужно рассматривать в своем контексте, при этом важно хорошо разбираться в предмете, чтобы избежать многочисленных подводных камней, связанных с необходимостью сбора достаточного количества правильных дискретных выборок, а также наложения спектров, “эффекта частокола” и просачивания спектральных составляющих. Все это будет подробно обсуждаться в главе 11.
Из всех возможных преобразований самыми известными и, пожалуй, самыми важными являются дискретное преобразование Фурье (ДПФ) и алгоритм его быстрого вычисления — быстрое преобразование Фурье (БПФ). Этому есть несколько причин: они позволяют адекватно описывать в частотных координатах все, кроме самых кратковременных (< 1 с) сигналов; усеченные по частоте Фурье-компоненты описывают данные более правдоподобно, чем любые другие степенные ряды. Отдельные компоненты представляют собой синусоиды и не искажаются при передаче через линейные системы, что позволяет использовать их как хорошие пробные сигналы. И, наконец, БПФ можно посчитать очень быстро. Еще одна причина — это то, что анализ Фурье существует с момента опубликования работы Фурье в 1822 году, и с тех пор стал широко известен, заслужил уважение и развился вместе с рядом областей своего применения.
В последнее время значительное внимание уделяется вейвлетному преобразованию, поскольку оно позволяет описывать через амплитуду сигнала стохастические сигналы с переменным во времени частотным спектром. Эта тема также сугубо математическая, но ниже излагаются основные ее концепции, а для иллюстрации разобраны два примера извлечения сигнала из спектра шумов.
Студентов технических специальностей, изучающих электрику и электронику, с первых курсов учат анализировать электрическое поведение контуров с помощью преобразования Лапласа. Это объясняется тем, что преобразование Фурье неприменимо ни к пошаговому входу, ни к ненулевым начальным условиям.
Когда студенты переходят к изучению частотных характеристик и устойчивости таких дискретных систем, как фильтры с конечной импульсной характеристикой, воз-
никает необходимость использования z-преобразования (дискретного преобразования Лапласа). Таким образом, главная область применения преобразования Фурье — это быстрые вычисления при обработке сигналов, где применяется БПФ, и спектральный анализ. Однако эти три преобразования взаимосвязаны. Преобразование Лапласа считается более общим, поскольку из него можно вывести два остальных. Так, переменная Лапласа равна s = а + гш, тогда как переменная преобразования Фурье равна s = ш, а переменная z-преобразования задается как z = esT, где Т — это промежуток времени между двумя выборками. Наконец, переменные преобразования Фурье и z-преобразования связаны соотношением z = ешТ (см. главу 4).
Ряд Фурье
Любой периодический сигнал /(t) можно представить в виде суммы бесконечного числа синусоидальных и косинусоидальных членов и одного постоянного члена. Это представление называется рядом Фурье и задается следующим образом:
/(t) = а0 + У^ ап cos(nwT) + У^ bn sin(7iaXr),(3.1)
где t — независимая переменная, которая часто обозначает время, но может обозначать, например, расстояние или любую другую величину; /(t) часто обозначает функцию зависимости напряжения от времени, но может обозначать и любой сигнал, ш = Ъя/Тр называют циклической частотой первой (или основной) гармоники, связанной с основной частотой / соотношением w = 2тг/, Тр — период повторения сигнала, через
Тр/2
ао = ^- J f^dtР"Тр/2
обозначается постоянная, равная усредненному по времени сигналу /(t) за один период, которая может представлять, например, уровень постоянного напряжения,
Тр/2
ап- — J f(f) cos^nwt^dt
Р -Тр/2
и
Тр/2
b„ = I f(t) sm^nwt)dt.
Р-Тр/2
Частоты ши называют ш-ми гармониками частоты ш. Следовательно, бесконечный ряд (3.1) содержит зависящие от частоты синусоидальные и косинусоидальные члены с различными амплитудами ап и Ьп на положительных частотах гармоник пш. Этот ряд можно записать компактнее с помощью экспоненциального представления, кроме
того, в таком виде намного упрощается выполнение математических операций. Итак, в экспоненциальной форме ряд Фурье выглядит так:
(3.2)(3.2)(3.3)(3.3)/(О = £ V™4,
(3.2)
(3.2)
(3.3)
(3.3)
где
Тр/2
4-^ j f^e^dt
"-Тр/2
являются комплексными числами, a |dn| — величины, измеряемые в вольтах.
При суммировании учитываются и отрицательные значения п, так что половину ряда составляют отрицательные частоты —пш. Они не имеют физического значения и являются чисто математическим понятием1, но вследствие этого модули |d„| комплексных амплитуд dn численно уменьшены в два раза. Это означает равное распределение амплитуды по соответствующим отрицательной и положительной частотам. Следовательно, правильное значение амплитуды на частоте пш можно найти, удвоив рассчитанную величину. Комплексная и тригонометрическая формы связаны следующими соотношениями:
ии(3-4)(3.5)(3-4)(3.5)\d^ = la2n + by
и
и
(3-4)
(3.5)
(3-4)
(3.5)
Фп = -arctg(bn/an),
где фп — сдвиг фазы компонента n-й гармоники, который также задается как арктангенс отношения мнимой и действительной частей dn. Следовательно, каждая гармоника сигнала характеризуется своим фазовым сдвигом и амплитудой.
Пример 3.1
В качестве примера рассмотрим периодический однополюсный импульсный сигнал, показанный на рис. 3.1, а. Намеренно сместим начало отсчета относительно центра, а край импульса выберем так, чтобы проиллюстрировать фазовые особенности ряда Фурье. Подстановка соответствующих значений в уравнение (3.3) дает:
'Физический смысл отрицательной частоты — вращение в направлении, противоположном тому, которое принято за положительное. — Прим. ред.
Рис. 3.1. Сигнал /(t) (панель а); амплитудный спектр [dxl (панель б); фазовый спектр фп (панель в)
Ae’^dt =Ae’^dt =
Ae’^dt =
Ae’^dt =
АТАТ(3.6)(3.6)
А
Т
А
Т
(3.6)
(3.6)
'^—inut 1 хт
.-i^J_(T_ZT)
^ g—inufxr g—tni^r—хт)
пшТр
2АпшТр
—inwxr
*^inwr/2 ^—inujT/2*
2i
^inu?T/2
= М е<~№-.-> sinm =тшТр\ 2 )
= 2Л тиот ^пыст/г-^г) sin(nwT/2)пшТр 2пшт/2
=£sinc м
где
.sin(nuiT/2)
называется функцией отсчетов аргумента пшт/2. Модуль dn равен
At I . /пшт\I)|
и его график изображен на рис. 3.1, б. Величина nw(0,5 — т)т представляет собой фазу фп (в радианах), связанную с n-й гармоникой. Чтобы построить график зависимости этой фазы от порядка гармоники п, рассмотрим частный случай. Пусть х = 0, т.е. поместим начало отсчета в запаздывающий край импульса, и пусть т = Tp(b, причем
шит 2т т 2тг Тр 1 п
Ф- = — = "тЛ=ПТД2 = 5,Т'
График фп показан на рис. 3.1, в, где по договоренности —180° < фп < 180°. От выбора начала отсчета времени зависит вид фазового спектра (зависимости фп от п). Обычно анализ упрощается, если поместить начало отсчета времени в точку, обладающую некоторой симметрией, например, в центр импульса периодической серии импульсов. В выбранном случае амплитудный спектр (рис. 3.1, б) выглядит, как четная функция (|d„| = |d_„|), тогда как фазовый спектр (рис. 3.1, в) выглядит, как нечетная функция (ф-п = —ф„). Фазы фп, ф_п дают относительный сдвиг фаз гармоник относительно друг друга. В момент времени t абсолютный сдвиг фаз равен (из уравнения (3.2)) {тю>(0,5 — х^т + nuty
i Преобразование Фурье
Если сигнал непериодический, то метод разложения в ряд Фурье слегка модифицируется. Для яркой иллюстрации подобного подхода используем одиночный прямоугольный импульс, который можно получить из периодического сигнала на рис. 3.1, а, увеличив период Тр до бесконечности. При увеличении Тр расстояние между гармониками 1/Тр = ш)2к уменьшается до </ш/2тг, в конце концов превращаясь в нуль. Это соответствует переходу от дискретной частотной переменной пси к непрерывной
переменной w, а фазовый и амплитудный спектры становятся непрерывными. Следовательно, dn —> d(u?) при Тр —» оо. С этими изменениями уравнение (3.3) приобретает вид
ДИ =/ fW^t-ДИ =/ fW^t-(3.8)(3.8)
ДИ =/ fW^t-
ДИ =/ fW^t-
(3.8)
(3.8)
Для удобства нормируем эту формулу, разделив ее на Фш^-к, и получим
(3-9)
Здесь комплексное Е^гш) называется интегралом Фурье или просто Фурье-образом. Если положить
(3.10)(3.10)(З.П)(З.П)Е^гш) = Re(iw) + ilm(iw) = ^(гсД^*^^,
(3.10)
(3.10)
(З.П)
(З.П)
|F(iw)| = [Re2(iw) + Im^iw)]1/2,
а измеряться данная величина будет уже в В/Гц, а не в вольтах. Следовательно, | F(iw) | — это плотность амплитуды, которую еще называют спектральной плотностью амплитуды или амплитудным спектром. Соответствующий сдвиг фаз ф(ш) равен
(3.12)(3.12)ф(ш) = arctg[Im(zw)/Re(zw)].
(3.12)
(3.12)
Величина |F(zw)|2 измеряется в В2Гц~2. Поскольку нормированная электрическая мощность, те. мощность, рассеянная сопротивлением 1 Ом, измеряется в В2, что эквивалентно Дж/с или Дж-Гц (Дж обозначает джоуль, единицу энергии), то В2Гц-2 равно ДжГц х Гц-2 = ДжГц-1. Следовательно, |F(iw)|2 измеряется в единицах энергии на Гц-1, те. |F(iw)|2 — это спектральная плотность энергии. Площадь под кривой |F(iw)| на графике зависимости от f между частотами /0 — df и /0 + df выражает среднее напряжение на частоте /0, а площадь под соответствующей кривой |F(iw)|2 на графике зависимости от / выражает среднюю энергию на частоте /0. Кроме того, при спектральном анализе довольно часто строятся графики зависимости спектральной плотности энергии от частоты.
Пример 3.2
Вернемся к рассмотрению одиночного импульса и вычислим его амплитудный спектр, пользуясь уравнением (3.9) и рис. 3.1, а. Искомое выражение приобретает вид
F(iw) =F(iw) =AH^dtAH^dt(3.13)(3.13)
F(iw) =
F(iw) =
AH^dt
AH^dt
(3.13)
(3.13)
и отличается от уравнения (3.6) только постоянной 1/Тр. Отсюда следует, что
Р(гш) = Атг^-^втс^т/^,(3.14)
что в Тр раз больше, чем dn. Это соответствует тому факту, что |F(iw)| измеряется в вольтах, умноженных на единицу времени или в В/Гц. Кстати, результат (3.14) можно получить проще, чем было получено уравнение (3.7), если учесть определенные свойства преобразования Фурье. Итак, импульс с шириной т единичной высоты с центром в t = 0, обозначенный rect(t/r), имеет Фурье-образ т5шс(сит/2). Поскольку Af(t) преобразуется в ^F[/(t)], где через F обозначено преобразование Фурье, то импульс высотой А преобразуется в Атв'тс^шт/2). В контексте рис. 3.1, а импульс смещается влево на т/2 - хт и действительно является прямоугольным импульсом, reel {[t + (т/2 - тт)]/т}. Кроме того, из свойства задержки преобразования Фурье следует, что для импульса, смещенного вправо на t0, /(t — t0) = se-*u’t°F[/(t)]. Применяя это свойство к Лтзтс(сит/2), получаем искомый вид Фурье-образа:
F(uA = е+<и,(+т/2-хт)Лт51пс (—) =7V 2 /
= Лте,и,(1/2-х)т8тс,
V 2 /
т.е. тот же результат, что приведен в формуле (3.14).
Если начало отсчета времени находится в центре импульса, т.е. х = j, то Фурье- образ этого импульса задается как
Г(гш) == Ursine (о/т/2)(3.15)
и является действительным. Функция |F(iw)| непрерывна и ее график для значений Л = 1 В, Тр = 10сит = 2с изображен на рис. 3.2, а. Этот амплитудный спектр, пропорционально ограниченный функцией отсчетов, всегда порождается прямоугольными импульсами, а также любыми сигналами конечной длительности т. Последние можно рассматривать как бесконечный сигнал, умноженный на rect[(t ± <о)/т], т.е. на единичный импульс. Экспериментально полученные сигналы также подпадают под эту категорию, так как имеют конечную длительность. Используемая функция отсчетов проходит через нуль при каждом sin(cuT/2) = 0, т.е. когда шт (I = ттг(т / 0, т — целое). Следовательно, нули амплитуды появляются в точках / = 1/т, 2/т, 3/т, .... Если ш —> О, sin(cur/2) —> шт/2 и sinc(cur/2) = вт^шт/^/^шт/Т) —> 1, так что Г(1ш) = Ат при ш = О, т.е. при / = 0. График спектральной плотности энергии импульса с амплитудой 2 В изображен на рис. 3.2, б, а на рис. 3.2, а для сравнения изображен амплитудный спектр.
Отметим также, что из частотной области во временную можно перейти с помощью обратного преобразования Фурье. В этом случае
/(<) = ^ / РИ^‘с1ш= I F^e^df.(3.16)
-ОО—оо
ДПФ и обратное ДПФ
На практике Фурье-компоненты сигнала получаются как результат цифровых вычислений, а не вследствие аналоговой обработки. Поскольку аналоговый сигнал состоит из бесконечного числа соприкасающихся точек, описать все их значения практически невозможно. Следовательно, для использования в цифровой системе аналоговые значения следует дискретизовать через равные промежутки времени, а затем выборки преобразовать в цифровой бинарный вид. Это осуществляется с помощью контура выборки-хранения, за которым следует аналого-цифровой преобразователь. Получающееся число выборок в секунду достаточно велико для адекватного описания сигнала. Теоретически необходимая скорость дискретизации называется частотой Найквиста и равна 2/твх, где /тах — частота самого высокочастотного синусоидального компонента сигнала с существенной амплитудой. В этой главе будем считать, что рассматриваются цифровые значения, которые поддаются преобразованию, а такие аспекты, как обработка методом взвешивания, необходимая при спектральном анализе, будут обсуждаться в главе 11. Итак, данные, которые нужно преобразовать, — уже дискретные и, возможно, непериодические. В таком случае преобразованием Фурье воспользоваться нельзя, поскольку оно предназначено для непрерывных данных. Однако существует аналоговое преобразование, которое можно применять к дискретным данным, — дискретное преобразование Фурье (ДПФ).
Предположим, что сигнал дискретизован через равные промежутки времени Т, и в результате получена дискретная последовательность ^(пТ)} = я:(0), х(Т),..., ;r[(N — 1)Г] из N выборок, где п — номер выборки, п пробегает значения от п = 0 до п = N—1. Значения х(пТ) будут действительными только тогда, когда они представляют собой значения такого временного ряда, как спектр напряжения. В подобном случае ДПФ последовательности х^пТ) можно определить как последовательность комплексных значений {Х(А:П)} = Х(0), Х(П),... , Х^ДТ—1)Q] в частотной области, где П — частота первой гармоники, которая задается как П = 2тг/(Х - 1)7 ~ 2-k/NT для N » 1. Следовательно, X (Ш) в общем случае имеет действительные и мнимые компоненты, так что для k-й гармоники
Х(к) = Re(k) + ilm(k)(3.17)
и
' |X(k)| = [Re2(k)+Im2(k)]1/2,(3.18)
а сдвиг фазы X (к)
ф(к) = arctg[Im(k)/Re(k)],(3.19)
где под Х(к) понимают Х(Ш\ Следовательно, приведенные уравнения аналогичны уравнениям для преобразования Фурье: сравните уравнения (3.17)-(3.19) с уравнениями (З.ЮНЗ. 12).
Рис. 3.2. Импульс 2 В: а) амплитудный спектр; б) энергетический спектр
Заметим, что N действительных значений (во временной области) преобразуется в N комплексных значений ДПФ ( в частотной области). Значения ДПФ X (к") задаются как
N-1
Х(к) = Ро\х(пТ^ = 52 4пТК1кПпТ, k = 0,l,...,N-1,(3.20)
п=О
где через PD обозначено дискретное преобразование Фурье. В этом уравнении к — номер гармоники компонента преобразования. При замене х(пТ) = /(<), Ш = ш и пТ — t видно, что это уравнение переходит в преобразование Фурье (уравнение (3.9)) при /(t) = 0 для Т <0и1>(N — 1)Т, так что можно ожидать, что эти два преобразования будут иметь общие свойства. В то же время эти преобразования не равнозначны.
Так, сделав указанные замены в уравнении (3.9) и положив dt = Т, а также заменив интеграл суммой, получим частоты гармоник kfS) где /3 = l/(^ - 1)7 = 2тг/П,
N-1
52 х(тгТК1кПпТТ = F(iu)(3.21)
п=0
для 0 < t < (^ - 1)Т. Затем, сравнив уравнения (3.20) и (3.21), получим
F^ = ТХ(к),(3.22)
откуда видно, что компоненты преобразования Фурье связаны с компонентами ДПФ через интервал дискретизации, и их можно найти, умножив компоненты ДПФ на интервал дискретизации.
Заметим также, что в практических приложениях ^ » 1, и часто используется приближение П = lit (NT. Поэтому далее во всех примерах в этой главе (даже при ^ = 4) мы также будет принимать это приближение.
Пример 3.3‘
Здесь будет уместно проиллюстрировать использование уравнения (3.20), рассмотрев простой случай. Найдем ДПФ последовательности (1,0,0,1}. Стоит заметить, что если непрерывность реальных данных нарушается, то для задания значения в месте разрыва при расчетах берется среднее значение с обеих сторон от разрыва. Это касается первого и последнего значения набора данных, а также всех остальных случаев нарушения непрерывности. Однако, чтобы избежать искажения спектров, вызванного нарушением непрерывности в начале и в конце последовательности данных, при нахождении спектра сигнала необходимо реализовать процедуру вырезания (взвешивания). Подробно эта тема обсуждается в главе 11, а здесь будем просто считать, что последовательность (1,0,0,1} уже прошла предварительную обработку. Предположим, что приведенные данные описывают четыре последовательных значения напряжения ж(0) = 1, ж(Т') = 0, а^Т) = 0, ^(ЗТ) = 1, записанные с временным интервалом Т. Таким образом, N = 4. Далее нужно найти комплексные значения X(F) для к = 0, к = 1, к = 2 и к = 3 (поскольку ^ — 1 = 3). Для к = 0 уравнение (3.20) приобретает вид
з
Х(0) = ^Х(пТ)е-м =п=О
3
= 52 х^пТ) = ж(0) + х(Г) + х(2Т') + х(ЗТ) = п=О
= 1 + 0 + 0+1 = 2,
так что Х(0) = 2 полностью действительное с модулем 2 и фазой </>(0) = 0. Для к = 1 уравнение (3.20) приобретает вид
з
X(t) = ^x(nTy-innT.
п=О
Здесь Т неизвестно, но оно сокращается, если вспомнить, что П = 2тг/NT. Получим
Х(1) = ’52,i^nTKinn2"/Nn = ^x(nT)e-i2n^N =n=0n=0
= 1 + 0 + 0 + le-^3/4 = т + е-«я/2 =
./ Зтг \. . / Зтг \.
= 1 + cos I I - г sin I I = 1 + г.
Следовательно, Х(1) = 1 + г и является комплексным числом с модулем V2 и фазой <^(П) = arctg 1 = 45°. Для к = 2 уравнение (3.20) приобретает вид
з
Х(2) = '^i(jiTKi2nnT = п=О'
3
= ’52,x(nTKi2n2”/N = п=О
3
= ^х^пТК14”"^ = п=О
= 1 + 0 + О + le"*4’3/4 = I + о + 0 + е’** = 1-1 = 0.
Итак, Х(2) = 0 с модулем 0 и неопределенной фазой </>(2). Наконец, для к = 3 уравнение (3.20) приобретает вид
3
Х(3) = ^2,x(nTKi3n2"/N = 71=0
= 1 + 0 + 0 + е-<9”/2 = 1 - г.
Итак, Х(3) = 1 - г с модулем V2 и фазой </>(3) = -45°.
Таким образом, было показано, что у временного ряда {1,0,0,1} есть ДПФ-образ, который задается комплексной последовательностью {2,1 + г, О,1 - г).
ДПФ принято представлять в виде графиков зависимости |Х(к)| от Ш и ф^ от Ш. Это можно сделать через гармоники П или частоты, если П известно. Чтобы найти П, необходимо знать значение интервала дискретизации Т. Если предположить, что использованная выше последовательность данных была дискретизована с частотой 8 кГц, то Т = 1/(8 х 103) = 125 мкс. Тогда П = 2it/NT = 2д/(4 х 125 X 10"6) = 12,57 х 103 рад/с. Следовательно, 2П = 25,14 х 103 рад/с, а ЗП = 37,71 х 103 рад/с. На рис. 3.3, а показан график зависимости х(пТ) от t, на рис. 3.3, б — график зависимости |Х(к)| от АП, а на рис. 3.3, в — график зависимости ф^к) от Ш. Следует заметить, что график “амплитуды” на рис. 3.3, б симметричен относительно компонента второй гармоники,
т.е. относительно гармоники с номером N/2, а на рис. 3.3, в фазовый сдвиг является нечетной функцией с центром в этой гармонике. Отметим, что полученные результаты справедливы и в более общем случае.
Если сравнить к-й компонент ДПФ Х(к) с (к + Мум. компонентом X(k + N), можно вывести важное свойство ДПФ. Таким образом,
N-lN-1
ИИХ(к) = 52 х(пГ)е-1ШпТ = 52 x№e-ik2"n/N71=0п=0
И
И
N-1
Х(к + N) = 52 x(jiT)e~ik2”n/Ne-iN2^^ =п=0
N-1N-1n=0n=0N-lN-lx(nT)e"ik2”n/N e-i2”n =x(nT)e"ik2”n/N e-i2”n =
N-1
N-1
n=0
n=0
N-l
N-l
x(nT)e"ik2”n/N e-i2”n =
x(nT)e"ik2”n/N e-i2”n =
= 52 x(nTKik2,tn/N = x^, n=0
поскольку n — целое, то e-*2™ = 1.
Из X(k + N) = X(k) следует, что ДПФ-образ повторяется с периодом N. Это свойство цикличности ДПФ, т.е. значения компонентов ДПФ повторяются. Если к = О, то к + N = N, а Х(0) = X(N\ В вышеприведенном примере Х(0) = 2, следовательно, Х(4) также равно 2. Это явление демонстрируется на рис. 3.3, б, где амплитуда четвертой гармоники взята в точке 50,28 кГц. Симметрия распределения амплитуды относительно второй гармоники очевидна. Общий вывод: амплитудный спектр jV-точечного ДПФ симметричен относительно гармоники N/2 при условии, что график содержит нулевую и (N + 1)-ю гармоники. Аналогично функция зависимости фазового сдвига, будучи нечетной, проявляет антисимметричные свойства относительно гармоники N/2. Если на протяжении t секунд берутся 2/тах элементов выборки сигнала в секунду, то 2fmaxt = N, так что 1/t = 2fmMJN — это частота первой гармоники. Следовательно, симметрия гармоники N/2 будет повторяться на частоте (7V/2)/(2/max/W) = /тах — максимальной частоте, присутствующей в сигнале. Следовательно, все компоненты сигнала полностью описываются амплитудным спектром, график которого построен до /тах или гармоники N/2, и дальше график строить не нужно. В таком контексте /тах называют частотой перегиба, поскольку спектр между гармониками N/2 и N можно перегнуть по оси симметрии на частоте /тах, и при этом он точно наложится на низкочастотную половину спектра. Теперь видно, что N действительных значений данных преобразуются в N/2 комплексных значений ДПФ. Последние состоят из N/2 действительных и N/2 мнимых значений, дающих в сумме N значений, которые и получаются из N исходных значений данных. Наконец, значения компонентов преобразования Фурье Г(гш) последовательности данных {1,0,0,1} из примера 3.3 можно найти, умножив компоненты ДПФ на Т = 125 мкс. Следовательно, Г(0) = 250 мкВ/Гц, F(12,57 кГц) = (125 + *125) мкВ/Гц, 7^(25,14 кГц) = 0 В/Гц, Г(37,71 кГц) = (125 - 125г) мкВ/Гц.
*(«7)
1,0
-**-
125250375 '(мкс)
а)
Рис. 3.3. График зависимости z(nT) от t (панель а), график зависимости |X(fc)| от к (паиель б); график зависимости ф^к) от к (панель в)
Как объяснялось во введении к данной главе, часто возникает необходимость выполнить дискретное преобразование из частотной области во временную. Это можно сделать с помощью обратного дискретного преобразования Фурье (ОДПФ), которое определяется как
1
х^пТ) = F^1^^)] =52 X(k)eikn"T,n = 0,1,..., N - 1,(3.23)
к=0
где через Fy1 обозначено обратное дискретное преобразование Фурье.
Аналогия обратного дискретного преобразования Фурье с преобразованием, определяемым уравнением (3.16), очевидна. Здесь достаточно легко показать, что обратное преобразование Фурье можно получить из ОДПФ, разделив ОДПФ на Т. Справедливость уравнения (3.23) можно продемонстрировать, подставив х(пТ) в уравнение (3.20).
Пример 3.4
Для иллюстрации обратного дискретного преобразования Фурье выведем временной ряд {1,0,0,1} из его ДПФ-образа [2,1 + г,0,1 — г].
При п = 0n—i
х(пТ)=х(0^^Х^ =к=О
= |[Х(0) + Х(1)+Х(2) + Х(3)] =
= ^[2 + (1 + г) + 0 + (1 - г)] = 1,
как и ожидалось. При п - 1
к=О
= 1^х(кук^' =
Л^Х^е^- Л=О
= i[2 + (1 + гУ"12 + 0 + (1 - г)е‘3,г/2] =
= — [2 + (1 + г)г + (1 — г)(—г)]—(2 + г — 1 — г — 1) = 0,
чего и следовало ожидать. При п = 3
x№ = x^.T^-^XWkl,=к=0
= ^[2 + (1 + ty™ + (1 - г)е*3,г] =
= 1[2-(1 + г)-(1-г)]=0,
снова, как и ожидалось. Наконец, при п = 3
х№ = х(ЗТ) = ^Х(кук3т/2 =к=О
= ^[2 + (1 + iV3”/2 + (1 - гУ^!-2\ =
= ^[2 + (1 + г)(_0 + (1"~ 0^] = ^(2 - г + 1 + г + 1) = 1.
Таким образом, получен правильный последний член ряда.
Свойства ДПФ";“?
ДПФ обладает рядом математических свойств, которыми можно воспользоваться, чтобы упростить задачу или построить удачные приложения. Некоторые из этих свойств перечислены ниже. Для упрощения выражений последовательность данных х(пТ) записывается как х(п).
Симметрия.
Re[X(N - А;)] = ReX(k),(3.24)
где Re означает действительную часть. Данная формула выражает симметрию амплитудного спектра, которая обсуждалась выше, а формула
Im[X(N - А;)] = -Im[X(A;)](3.25)
(где Im означает мнимую часть) выражает антисимметрию фазового спектра. Данное свойство полезно при определении значений компонентов.
Четные функции. Если ж(п) — четная функция жч(п), т.е. хч(п) = хч(—п), то
N-1 ^[^(п)] = X4(fc) = 52 хч(п)соз(А:ПпТ).(3.26)
п=0
Нечетные функции. Если х(п) — нечетная функция х„(п), т.е. х„(п) = — х„(—п), то
- N-1
ГдМп)] = Х„(к) = 52 ЯнМ вт(ШпТ).(3.27)
п=0
Теорема Парсеваля. Нормированная энергия сигнала равна
N-l1 N-1
У,х(п) = -У1\Х(к)\2.(3.28)
п=0п=0
Правая часть уравнения (3.28) — это среднеквадратическая спектральная амплитуда, а левая часть — сумма квадратов амплитуд временного ряда.
Дельта-функция.
FD[6(nT)] = 1.(3.29)
С помощью ДПФ можно иайти линейную взаимную корреляцию двух последовательностей данных или рядов. Линейная взаимная корреляция двух конечных последовательностей х^п) и ^(п), каждая длиной N, определяется как
Круговую корреляцию периодических последовательностей конечной длины ж1р(п) и Х2Р(п) можно определить как
1 JV'1
Гсх^С?) = ^ У,х1р(п)х2р(п + j),j = О,. ,.,N - 1(3.31)
п=О
(поскольку круговая корреляция определяется с помощью ДПФ). Следовательно,
(332)
Уравнение (3.32) называют теоремой о корреляции. Круговую корреляцию, которая задается уравнением (3.32), можно преобразовать в линейную с помощью дополняющих нулей. Теперь для последовательностей Ж1(тг) с длиной N\ и х2(п) с длиной N2 их линейная корреляция будет иметь длину Nx + N2 — 1. Для этого последовательность Ж1(тг) заменяют последовательностью Xia(n), которая состоит из последовательности Ж1(тг) с добавленными N2 — 1 нулями, а последовательность х2(п), дополненная ^ — 1 нулями, превращается в последовательность х2а(п). Теперь линейная взаимная корреляция последовательностей Ж1(тг) и х2(п) задается как
tx^U) = рбЧх^х^,(з.зз)
где
Xia(k) - FD[Xla(n)] и X2a(k) = FD[Xlo(n)].
Более полно эта тема освещается в главе 5.
ДПФ также можно использовать для вычисления круговой и (с помощью дополняющих нулей) линейной свертки. Эти свертки могут быть как во временной, так и в частотной области. В теореме о свертке во временной области говорится, что
х3р(п) = х1р(п) ® ж2р(и) = F£;1[X1(fc)X2(k)],(3.34)
где ® обозначает круговую свертку, а х1р(п), х2р(п), х3р(п) — конечные периодические последовательности одинаковой длины.
Аналогично уравнению (3.31) х3р(п) можно также записать как
N-1
х3р(п) = У^ хгр(т)х2р(п - т).(3.35)
т=О
Кроме того,
X3(k) = X,(k)X2(k),(3.36)
где Х3(к) = Fp^n)].
Следующее уравнение — это формулировка теоремы о свертке в частотной области: ^W ® X2(fc) = ^bki(тг)о:2(7г)],(3.37)
где
N-1
Хг (к) ® Х2 (к) = ^Хг (т)Х2 (к-т).(3.38)
т=0
Уравнение (3.34) дает основания утверждать, что свертка во временной области эквивалентна умножению в частотной, тогда как уравнение (3.37) приводит к наблюдению о том, что свертка в частотной области эквивалентна умножению во временной. Более подробно свертка рассмотрена в главе 5.
Вычислительная сложность ДПФ
Для вычисления ДПФ необходимо выполнить большое количество операций сложения и умножения. Для 8-точечного ДПФ (согласно уравнению (3.20)) расписанная последовательность Х(к) имеет вид:
7
Х(к) ^^х(тг)е-1к2”п,\ fc = 0,...,7,(3.39)
п=0
а замена к2тг/8 = К позволяет записать выражение
Х(к) =x(0)e"iK0 + T(l)e"iK1 + x(2)e"iK2 + x(3)e"iK3 + а:(4)е-^4+
(3.40)
+ x(5)e~iKS + x(6)e~iK6 + x(7)e-iK7, к = 0,..., 7.
Правая сторона уравнения (3.40) содержит восемь членов. Вычисление каждого члена включает операцию умножения всегда комплексного экспоненциального множителя на другой множитель, который может быть либо действительным, либо комплексным (например, во временных рядах напряжения он действительный). Затем все эти произведения складываются. Таким образом, для вычисления этой величины необходимо выполнить восемь операций комплексного умножения и семь операций комплексного сложения. Для TV-точечного ДПФ их число будет составлять соответственно N и N — 1. Кроме этого, надо вычислить также восемь компонентов гармоник (к = 0,..., 7). Для TV-точечного ДПФ это число равно TV. Следовательно, для вычисления восьмиточечного ДПФ необходимо выполнить 82 = 64 операции комплексного умножения и 8 х 7 = 56 операций комплексного сложения. Для TV-точечного ДПФ эти числа равны соответственно TV2 и N(N - 1). Если TV = 1024, то понадобится приблизительно один миллион операций комплексного умножения и один миллион операций комплексного сложения. Ясно, что это число нужно каким-то образом уменьшить.
Объем необходимых вычислений можно сократить, если вспомнить о значительной избыточности, в частности, таких уравнений, как (3.4). Например, если к = 1, а тг = 2, то е-1к2”п^а = е~1”^2, а если к = 2, а тг = 1, то е~1к2тп^ также равно е~1Т^2.
Алгоритм быстрого преобразования Фурье с децимацией во временной области
В этом разделе будет показано, как внутреннюю избыточность вычислений, свойственную ДПФ, можно использовать для уменьшения числа требуемых операций и, соответственно, увеличения скорости вычислений. Для 1024-точечного ДПФ объем требуемых вычислений можно снизить в 204,8 раз. Соответствующие алгоритмы получили название “быстрого преобразования Фурье” (БПФ). Если этот алгоритм применяется во временной области, его называют БПФ с прореживанием во временной области (временной децимацией — ВД). Первый алгоритм БПФ-ВД появился благодаря Кули (Cooley) и Тьюки (Tukey) [9], в честь которых его часто и называют. Децимация приводит к значительному снижению числа операций, выполняемых с данными во временной области. Следует заметить, что выигрыш на вычислениях растет по закону N2 - (7V/2) log2 N.
Итак, упростим вначале запись и установим некоторые математические соотношения. Уравнение (3.20) можно переписать как
N-1 Х^к^^тпе-2^^, k = 0,...,N — l.(3.41)
п=0
Кроме того, выражение e~t2,^N запишем как IVW, следовательно
И^ = е~2"/К.(3.42)
Так что уравнение (3.41) приобретает вид
N-1
х^к) = ^xnW^n, k = 0,...,N-l.(3.43)
n=0
Здесь следует обратить внимание на некоторые соотношения, содержащие IVд-. Во-
первых,
W2 = (е"2”^)2 = e"i2”2/N = e"2”i/!-N^ = WN/2.(3.44)
Во-вторых,
W^+NW = W^W^2 = ^-^/^W2) = ^e"<7r =
(3.45)
= -wkN.
Для удобства обобщим полезные результаты, касающиеся IVW, и получим
WN = e"2Ti/N,
(3.46, a)
w2n = WN(2,
(3.46, 6)
W^'2 = _w^
(3.46, e)
При использовании вычислительной избыточности, выражаемой уравнениями (3.46), последовательность данных делится на две равные последовательности, одна из которых состоит из элементов с четными порядковыми номерами, а другая — с нечетными. Чтобы длина последовательностей была одинаковой, они должны состоять из четного количества элементов. Если исходная последовательность состоит из нечетного числа элементов, то необходимо добавить дополняющий нуль, чтобы их число стало четным. Это позволит записать ДПФ ХАМ через два ДПФ, Хп(М и Xi2(k), которые будут соответственно ДПФ-образами данных с четными и нечетными значениями (табл. 3.1). Следовательно, TV-точечное ДПФ превращается в два ДПФ, каждое из которых содержит N/2 точек. Затем этот процесс повторяется до тех пор, пока ХАМ не распадется на N/2 ДПФ, каждое из которых состоит из двух точек, представляющих собой исходные данные. Таким образом, на практике происходит переупорядочение исходных данных, и вычисляются N/2 двухточечных ДПФ, которые получают исходные данные парами. Результаты этих ДПФ удобно объединять в четверки, всего получается N/4 четырехточечных ДПФ, которые вычисляются и соответственно объединяются в N/8 восьмиточечных ДПФ, которые также вычисляются, и так далее, до тех пор, пока не получится конечное TV-точечное ДПФ Xi^k\ На каждом этапе для снижения количества комплексных операций используется общий множитель, представляющий собой IV^ в некоторой степени. Правомерность этой процедуры доказывается следующим образом.
Индекс п в уравнении (3.43) пробегает значения от п = 0 до n = N — 1, что соответствует значениям данных т0, Xi, т2, т3,..., xn-i- Последовательность с четными номерами — это х0, х2, х4,..., z^_2, а последовательность с нечетными номерами — xi, х3,..., xN_v Обе последовательности содержат по N/2 точек. Члены четной последовательности можно обозначить х2п, где п пробегает значения от нуля до N/2 — 1, тогда как члены нечетной последовательности — х2п+1. Тогда уравнение (3.43) можно переписать как
N/2-1/V/2-1
хам = Е ^х-к + е ^-нС^4 = п=0п=0
четная последовательность нечетная последовательность (3.47)
N/2-1N/2-1
= Е + ^ Е z^i^> fc = о,... л -1. п=0п=0
Из уравнения (3.46, б) W^nk = W^, так что уравнение (3.47) приобретает вид
N/2-1N/2-1
Х(к) = Е ^nW^% + Wk Е х2п^к2, к = 0,...Л-1.(3.48)
п=0п=0
Уравнение (3.48) можно переписать в виде:
XAM = XiAM"Vwnx12^\ k = 0,...,N-I-(3.49)
Сравнивая уравнение (3.49) с уравнением (3.43), видим, что Хп(М — действительно ДПФ-образ четной последовательности, тогда как X12(fc) — образ нечетной последовательности. Следовательно, как утверждалось ранее, ДПФ-образ ХАМ можно выразить
через два ДПФ-образа: Xu(fc) и X12(k). При таком подходе коэффициент И^/2 появляется и в Хи(к), и в Хх2(к), и вычислять его нужно только один раз.
В табл. 3.1 изображен процесс вычисления восьмиточечного ДПФ. В первой строке записаны данные, тогда как во второй строке дается выражение для ДПФ-образа этих данных, записанное через ДПФ-образы четной и нечетной последовательностей Xu(fc) и Х12 (к) соответственно. В третьей строке приведены переупорядоченные данные, из которых получают XnW и Х12(/с). В четвертой строке даются ДПФ-образы последовательностей из строки 3, выраженные через ДПФ-образы их четных и нечетных последовательностей X2J(A:), Х22(к), Х23(к) и Х24(А:). Эти последовательности показаны в строке 5, и видно, что оии состоят из двухточечных последовательностей, ДПФ-образы которых A^iW, X22W, X23(A:) и X24(fc) выражаются через данные из строки 6. Итак, единое восьмиточечное ДПФ раскладывается на четыре двухточечных ДПФ, каждое из которых дает два значения, например, для X21(fc) — это X2i(0) и X2i(l). Описанный процесс включает два разложения, и коэффициент W£ на каждом шаге возводится в квадрат. Из строки 6 видно, что
Х^^ = т0 + W^,4x4 к = 0,... ,N/4 - 1, т.е. к = 0,1(3.50)
Следовательно,
^21(0) — То + т4,
тогда как
^21(1) = Tq + Wn(4x4 =
= х0 + W2t4 = т0 + е~2,г,^2т4 = х0 + е-,г*т4 = х0 — х4.
Аналогично
^22 (0) = т2 + Тб, А?22(1) = Т2 — Тб,
Х23(0) = Т! + Т5, Х23(1) = т, - х5, Х24(0) = т3 + т7, Х24(0) = т3 - т7,
откуда видно, что значения при к = 0 отличаются от значений при к = 1 только знаком. Этот момент особо важен, если рассматривается случай Х^к) (к = 0,1,2,3). Теперь
(3.51)(3.52)(3.53)(3.54)(3.51)(3.52)(3.53)(3.54)XnW = ^2i(t) + W^^ky так что
(3.51)
(3.52)
(3.53)
(3.54)
(3.51)
(3.52)
(3.53)
(3.54)
Хп(0) = х21(0) + ж°/2х22(о) = Х21(0) + Х22(0)
Хп(1) = Х21(1) + ^/2^22(1) =
= Х21(1) + е-"/2Х22(1) = Х21(1) - гХ22(1)
Хп(2) = Х21(2) + W2/2X22^ = Х21(2) + е-^2х2Х22^ =
= Х21(2) + е"<1ГХ22(2) = Х21(2) - Х22(2).
Таблица 3.1. Структура 8-точечного БПФ
Номер строки
Содержание строки
Диапазон изменения к
Диапазон изменения N
1Последовательность
данных Ло
Ло
X0X1X2X3X4X5X6X7
0,. ..,7
2
Восьмиточечное ДПФ последовательности Ло
Xi(fc) =Х11(к) + ^Х12(А:)
0,...,N -V
(0,...,7)
0,7
3
Переупорядоченная последовательность Ло.' две последовательности Л1 И Л2
А,
Х0Х2Х4Х6
а2
X1X3X5X7
0,. ..,3
4
Четырехточечные ДПФ последовательностей
Л1 и Лг
Xu(fc) = Х21(к) + W*/2X22(k)
х12(к) = Х2з(к) + И^ХгЛЬ)
0,..., N/2 - 1 (0,...,3)
0,..., 3
5
Переупорядочен ные последовательности Л1 и Лз: четыре п ос ле до вател ь ноет и Аз, Ал, Аз, Аз
Лз
Х0Х4
л4
Х2Х6
As
х 1Х5
Лв
X3X7
0,1
6
Двухточечные ДПФ последовательностей Аз, Ал, Л5, Аб
A'2l(k) = Х0 + ^/4Х4
х22
(к) = х2 + И^/4х6
Х2з(к) = Xi + IV^/4x5
^24(fc) = Хз + И^/4Хт
0,..., N/4 - 1 (0,1)
0,1
Теперь
%21(2) — 2?о + ^^/4^4 — жо + И^2^4 = Жо + 2:4 = ^21(0),
И
-^22(2) = $2 + И^^Же = $2 + 2^ = А^22(0).
Следовательно, уравнение (3.54) эквивалентно уравнениям
Xn(2) = X2i(0)-X22(0)(3.55)
^п(З) = ^21(3) — И^/г-^гг^)(3.56)
Теперь
•^21(3) = 2?о + W^4X4 -
= х0 + е-,(2,г/2)3Ж4 = х0 + е-137^ = х0 — х4 = X2i(l) и
А^22(3) = $2 ~ 2:6 = Х22(1).
Следовательно, уравнение (3.56) эквивалентно уравнению
Хн(3) = X2i(l) + е-<2^3Х22(1) = Х21(1) + е-3"/2Х22(1) =
= Х21(1) + гХ22(1).
Сведя эти результаты вместе, получим
Хп(0) = Х21(0) + Х22(0) = Х21(0) + W8°X22(0),(3.58,а)
Хп(2) = Х21(0) - Х22(0) = Х21(0) - W8°X22(0),(3 58> б)
^ii(l) = ^21(1) - гХ22(1) = Х21(1) + W2X22(1),(3 58> в)
*и (3) - Х21(1) + гХ22(1) = Х21(1) + W^X2M(3.58,г)
Внимательно изучая эти уравнения, видим, как ДПФ-образы Хц(к) связаны с ДПФ- образами их последовательностей с четными и нечетными номерами, и что Хц(0) и Хп(2) задаются выражениями с одинаковыми членами, которые отличаются только знаком. То же справедливо и для Хц(1) и Хц(3). Уравнения, подобные этим, называют рекомпозиционными, поскольку, взяв пары данных и формируя X2i(fc), X22(fc), ^гз(^) и Х24^, можно найти ХИ(к) и X12(fc), а следовательно, и Хг(к\ При этом количество необходимых операций комплексного сложения и умножения уменьшается, поскольку, во-первых, рекомпозиционные уравнения записываются через рекуррентный коэффициент WN в некоторой степени, во-вторых, используются также соотношения типа X2i(2) = X2i(0) и X2i(3) = Х21(1) и, в-третьих, различие между парами используемых выражений состоит только в знаке. Этот алгоритм известен под названием алгоритма Кули-Тьюки.
в)
Рис. 3.4. “Бабочки” БПФ
“Бабочка"
Уравнения (3.58) можно изобразить на диаграмме, взяв их попарно и воспользовавшись симметрией знаков. Итак, согласно уравнениям (3.58, а) и (3.58, б) результатом рекомпозиции будут Хп(0) и Хп(0), получившиеся из входных X2i(0) и X22(0). Это показано на рис. 3.4, а. Входные данные находятся с левой стороны от креста, а выходные — с правой. На рис. 3.4, б показано, как с помощью диаграммы можно получить Хц(1) и Xn(3). При наложении рис. 3.4, а на рис. 3.4, б получается составная диаграмма, на которой выходные ДПФ расположены в порядке возрастания к (см. рис. 3.4, в). Структура, изображенная на рис. 3.4, а или б, называется “бабочкой”, поскольку диаграмма похожа на стилизованное изображение этого насекомого. Целиком восьмиточечное БПФ можно изобразить так, как показано на рис. 3.5.
Пример 3.5
Сейчас будет полезно найти ДПФ последовательности {1,0,0,1}, ранее определенное в разделе 3.2 с помощью алгоритма БПФ с временной децимацией. Это четырехточечное ДПФ с х0 = 1, xj = 0, х2 = 0, х3 = 1 и ХЦк) = Хп(к) + W^X^k^k = 0,1,2,3. Переупорядоченная последовательность — х0, х2, хь х3.
Рис. 3.5. “Бабочки” восьмиточечного ДПФ: BW3 — память, выделенная точкам, дающим вклад в самую большую “бабочку" этапа 3; В8г — память, выделенная верхним точкам “бабочки" этапа 2 с одинаковыми весовыми коэффициентами
Теперь для выполнения ДПФ можно воспользоваться верхним левым углом рис. 3.5. Точки х0, х4, т2, х6 заменим точками х0, Хг, ^1, ^з, и искомыми значениями ДПФ будут Хц(0), Хц(1), Хц(2), Хц(3). Следовательно,
ХгДО) = Xq + Хг = 1,
■^21(1) — Xq — Т2 = 1,
'^22(0) = Xj + Х3 = 1,
. ^22(1) = $1 — Хз = —1,
Х„(0) = %21(0) + ^8°Х22(0) = 1 + 1 = 2,
Хп(1) = %2i(l) + W82X22(1) = 1 + е-"/2(-1) = 1 + г,
Хи (2) = Х21(0) - W8°X22(0) = 1-1 = 0,
Xu(3) = X21(l)-W82X22(l) = l-i.
Полученные значения идентичны величинам, которые были найдены в разделе 3.2, но с помощью алгоритма БПФ их получить намного проще. Это общий вывод, причем сокращение вычислений возрастает при увеличении числа исходных выборок.
Таблица 3.2. Переупорядочение последовательности путем обращения битов
Последовательность, необходимая для вычисления “бабочки"
Бинарный адрес нужной последовательности данных
Адрес с обратным порядком битов
Соответствующая последовательность = исходная последовательность данных
То
ООО
000
То
Z4
100
001
XI
Т2
010
010
х2
Xg
по
011
Хз
X!
001
100
Т5
101
101
Х5
тз
011
по
Х7
111
111
Z7
Выполнение алгоритма
Изучая рис. 3.5, видим, что для выполнения БПФ программа должна переупорядочить входные данные и выполнить вычисления по схеме “бабочка". Обсудим эти операции по очереди (см. также [24]).
Переупорядочение входных данных
Хотя на первый взгляд может показаться, что у программы нет четкого способа переупорядочения данных, он есть. Секрет в том, что нужно перейти в двоичную систему счисления. В первом столбце табл. 3.2 показан нужный порядок входных данных для “бабочки”, изображенной на рис. 3.5. Предполагается, что каждое значение сохраняется в двоичной ячейке памяти. Адреса этих ячеек даны во втором столбце. В третьем столбце показаны эти же адреса, но с обратной последовательностью битов. Если в соответствии с этими обратными адресами взять двоичные адреса исходной последовательности данных, начав с ж(0) для ООО, то получатся значения, которые записаны в четвертом столбце. Таким образом, видно, что адреса переупорядоченных данных — это записанные с обратной последовательностью битов адреса исходных данных. Следовательно, программа должна преобразовать номера заданных точек (от 0 до N — 1) в двоичные, обратить последовательность битов в этих номерах и преобразовать их снова в десятичные номера, которые и будут адресами переупорядоченных данных. Переход в двоичную систему осуществляется многократным делением на два, при этом остатки дают цифры соответствующего двоичного числа в обратном порядке, которое и является искомым бинарным адресом переупорядоченной последовательности. Эти остатки можно найти, воспользовавшись функцией MOD, реализованной в языках высшего уровня, например, функция MOD (К, 2) выдаст остаток при делении десятичного числа К на 2. Целая часть К/2 находится путем целочисленного деления. Остальные цифры вычисляются путем повторения этого процесса до тех пор, пока не будет выполнено log2 N операций деления. Это следует из того, что, поскольку данные должны состоять из 2m = N точек, для каждого адреса нужно т цифр, и он должен делиться на два т раз, где т = log2 N. Отметим, что /-й бит нового адреса — это двоичный коэффициент числа 2т-1~/, так что новый адрес (NADDR) можно найти с помощью цикла DO для определенного значения К (K=IADDR), которое приобретает значения от I = 0
до I = m — 1 и вычисляет остатки (RMNDR) от деления К=IADDR последовательных целых чисел на два. Соответствующий псевдокод приводится ниже.
DO FOR I = О ТО m-1
RMNDR:=MOD(IADDR,2)
NADDR:=NADDR+RMNDR* 2 A(m-1-1)
IADDR:=IADDR/2
END DO
Этот цикл DO должен находиться внутри еще одного цикла DO, задача которого — извлечь исходные данные из комплексного массива DATA(K), К пробегает значения от 0 до ^ - 1, представляющие собой номер точки из набора данных (а также номер комплексного элемента массива и исходный адрес данных), и ввести переупорядоченные данные в массив NEWDATA(NADDR). Данные в массиве NEWDATA теперь стоят в последовательности, подходящей для вычисления “бабочки”. Полный псевдокод, таким образом, выглядит так:
DO FOR К = О ТО N-1
NADDR:=0
IADDR:=К
DO FOR I = О ТО m-1
RMNDR:=MOD(IADDR,2)
NADDR:=NADDR+RMNDR* 2 A(m-1-1)
IADDR:=IADDR/2
END DO
NEWDATA(NADDR):=DATA(К) END DO
Вычисление "бабочки”
Вычисление состоит из трех этапов:
вычисление весовых коэффициентов W^ = е-(2тп/лг)/д.
вычисление “бабочки” данного каскада (определение каскадов см. на рис. 3.5);
вычисление всех каскадов “бабочки”.
Достаточно эффективная реализация вычислений по схеме “бабочка" включает вычисление весовых коэффициентов W^, необходимых на данном каскаде, с последующим вычислением для каждого из них всех “бабочек” этого каскада, в которые входит данный коэффициент. После вычисления всех “бабочек” данного каскада процедура повторяется для всех каскадов. Итак, для каскада 2 на рис. 3.5 вычисляются W® и две “бабочки”, содержащие коэффициент W°. Затем вычисляются IVg и две “бабочки”, содержащие этот коэффициент. Эта процедура выполняется для каждого из трех каскадов по очереди, при этом используются каскад 1 и переупорядоченные данные. Чтобы вычислить БПФ с помощью относительно короткой программы, алгоритм должен обладать рядом свойств. Пусть ширина “бабочки” BWIDTH представляет расстояние в памяти между двумя точками, составляющими “бабочку". Для нижней “бабочки” кас-
када 3 это В W3. Это равно расстоянию между четырьмя точками. Рассмотрев “бабочки” других каскадов, можно прийти к заключению, что в общем случае
BWIDTH(3.59)
где S — номер этапа. BWIDTH — 1 — количество шагов, за которое изменяется показатель степени весового коэффициента. Пусть расстояние в памяти BSEP равно расстоянию в памяти между любыми точками ближайших “бабочек” данного каскада с одинаковым весовым коэффициентом. Для каскада 2 на рис. 3.5 BS^ представляет собой BSEP для “бабочек” с весовым коэффициентом W^. Изучая рисунок, видим, что для каскада S
BSEP = 2s.(3.60)
Наконец, для Лг-точечного БПФ показатели степени весовых коэффициентов изменяются на
Р = N/^8(3.61)
для этапа S. Это видно из рис. 3.5. Например, на этапе 2 S = 2, Р = 8/22 = 2, а весовые коэффициенты равны W^ и W^.
Каждую “бабочку” можно вычислить как
X NEW(TOP) = XOLD(TOP) + Ж* х XOLD(BOTTOM)
n(3.62)
XNEW(BOTTOM) = XOLD(TOP) -W^x XOLD(BOTTOM),
где левая сторона относится ко входу “бабочки”, а правая сторона — к выходу “бабочек”. Кроме того, для экономии памяти эти уравнения можно переписать в виде
TEMP = W^x Х(ВОТТОМ),
где Х(ВОТТОМ) означает выход XOLD(BOTTOM) “бабочки” на предыдущем этапе,
Х(ВОТТОМ) = Х(ТОР) - TEMP,(3.63, а)
где X (BOTTOM) теперь означает искомый выход “бабочки”, Х(ТОР) — предыдущее значение, а
Х(ТОР) = Х(ТОР) + TEMP,^6у ^
где значение Х(ТОР) в левой части — искомый выход “бабочки”.
10 Р1:-3.141593
20 DO FOR S=1 ТО mрассчитать для m каскадов
30BSEP:=2ASрасчет для каскада S
40P:=N/BSEP(Р = N/2AS), изменение показателя степени
50BWIDTH:=BSEP/2(BWIDTH =2A(S-1)), расстояние в памяти
между входами "бабочек"
60DO FOR J=0 ТО (BWIDTH-1) расчет весовых коэффициентов
для отдельного каскада
70R:=P.Jрасчет показателя степени WN
80THETA:=2*PI*R/Nрасчет степени еЛ(—J)
90WN:=CMPLX{cos(THETA),-sin(THETA)} расчет (WN)AR
100DO FOR TOPVAL=J STEP BSEP UNTIL N/2
для всех J-x "бабочек" данного каскада
ПОBOTVAL:=TOPVAL+BWIDTH
120TEMP:=Х(BOTVAL)*WN
130X (BOTVAL):=X(TOPVAL)-TEMP
140X(TOPVAL):=X(TOPVAL)+TEMP
Зная все это, можно записать псевдокод вычисления БПФ, как показано ниже.
150
160
170
END DO
END DO END DO
В строках 100-150 рассчитываются все “бабочки” данного каскада с одинаковыми весовыми коэффициентами. Каскад всегда содержит N/2 “бабочек”.
Вычислительные преимущества БПФ
Вычислительные преимущества БПФ можно проиллюстрировать, рассмотрев вначале алгоритм БПФ на рис. 3.5. На этом рисунке показано, что 7V-точечное БПФ содержит N/2 “бабочек” на каждом каскаде и log2 N каскадов, т.е. всего в него входит (ЛГ/2) log2 N “бабочек”. На рис. 3.4, а показано, что каждая “бабочка” содержит одну операцию комплексного умножения в виде W^RX^ky Следовательно, БПФ содержит ^N)^ log2 N операций комплексного умножения в отличие от N2 при ДПФ, как показано в разделе 3.4. Таким образом, вычислительная экономия при комплексном умножении составляет N2 — (7V/2) log2 N. Каждая “бабочка” содержит две операции комплексного сложения, так что для БПФ необходимо N log2 N операций комплексного сложения в сравнении с N(N — 1) операциями ДПФ. Следовательно, экономия при комплексном сложении составляет N(N -1) - N log2 N. Эта экономия проиллюстрирована в табл. 3.3. При обычном 1024-точечном ДПФ видно, что время, необходимое для вычислений, можно снизить на два порядка, если воспользоваться алгоритмом БПФ.
Обратное быстрое преобразование Фурье
Алгоритм БПФ для определения обратного быстрого преобразования Фурье можно легко получить из алгоритма БПФ. Этот алгоритм нужен в основном для преобразования спектров в соответствующие им сигналы и для проверки правильности вычисления
Таблица 3.3. Экономия на операциях комплексного умножения и сложения при использовании БПФ вместо ДПФ
N
ДПФ
БПФ
Отношение числа комплексного комплексного умножения при ДПФ и при БПФ
Отношение числа комплексного комплексного сложения при ДПФ и при БПФ
Число операций комплексного умножения
Число операций комплексного сложения
Число операций операций умножения
Число операций операций сложения
2
4
2
1
2
4
1
4
16
12
4
8
4
1,5
8
64
56
12
24
5,3
2,3
16
256
240
32
64
8,0
3,75
32
1024
992
80
160
12,8
6,2
64
4096
4032
192
384
21,3
10,5
128
16 384
16 256
448
896
36,6
18,1
256
65 536
65 280
1024
2048
64,0
31,9
512
262 144
261 632
2304
4608
113,8
56,8
1024
1 048 576
1 047 552
5120
10 240
204,8
102,3
2048
4 194 304
4 192 256
11 264
22 528
372,4
186,1
4096
16 777 216
16 773 120
24 576
49 152
682,7
341,3
8192
67 108 864
67 100 672
53 248
106 496
1 260,3
630,0
БПФ с помощью (как правило) того самого алгоритма. Чтобы понять, как выводится ОБПФ, произведем такие замены в уравнении (3.20). Просуммируем по переменной А, а не по п, переменную к переименуем в /z, а П = 2т:/NT, чтобы показатель экспоненты стал —ik^Zir/N^X. Снова воспользуемся выражением х(ХТ) = ж(А) и т.д. При этом уравнение (3.20) приобретет вид
N-1
Х(м) = 52М = о, 1,... Л - 1.(3.64)
А=О
Теперь сделаем аналогичную замену в уравнении (3.23), т.е. положим к = X и п — р. Уравнение (3.23) приобретет вид
1 ,v"1
ВД = м 52 ^W^^ р = 0Д,... Л-1.(3.65)
V А=О
В двух последних уравнениях Х^, Х^Х\ х(р) и ж(А) — элементы массивов Хил одинаковой размерности, так что ОБПФ х(р) отличается от БПФ Х(р) только коэффициентом 1Л и знаком показателя степени экспоненты. Следовательно, для вычисления ОБПФ можно воспользоваться БПФ с небольшими изменениями. Эти два преобразования могут составлять один алгоритм, если в приведенный выше псевдокод внести следующие изменения:
строка 5К:=1 для БПФ, К:=-1 для ОБПФ
строка 80 THETA:=K*2*PI*R/N
строка 145 IF K=-l DO
строка 146строка 147строка 148строка 146строка 147строка 148X(BOTVAL):=Х(BOTVAL)/N X(TOPVAL):=Х(TOPVAL)/N END DO
строка 146
строка 147
строка 148
строка 146
строка 147
строка 148
Реализация БПФ
Теперь очевидно, что, в принципе, для вычисления БПФ и ОБПФ создается массив данных и с этими данными выполняются действия, определяемые алгоритмами БПФ и ОБПФ (в том числе и алгоритмом обращения битов). Однако остается еще несколько моментов, которые следует обсудить. До сих пор мы пренебрегали эффектами нарушения непрерывности, которые встречаются на краях последовательности данных, а также такими явлениями, которые называют наложением и “частоколом ”. Чтобы хорошо оценить реальный спектр данных, необходимо учитывать эти эффекты, пользуясь методами, описанными в главе 11. Еще один аспект — до сих пор внимание в данной главе уделялось двоичному алгоритму временной децимации, но существуют и другие алгоритмы, в том числе и алгоритм частотной децимации (ЧД). Некоторые из этих пунктов будут обсуждаться далее.
БПФ с частотной децимацией
В разделе 3.5 описан алгоритм быстрого преобразования Фурье с временной децимацией, который заключался в многократном делении исходного дискретного преобразования Фурье в виде уравнения (3.43) на два преобразования, одно из которых состоит из четных членов, а другое — из нечетных, до тех пор, пока исходное преобразование не будет разложено на двухточечные преобразования исходных данных. Альтернативный подход состоит в разделении исходного преобразования на два, одно из которых содержит первую половину данных, а другое — вторую. Получающийся в результате алгоритм частотной децимации впервые был предложен в работе [12], хотя почему-то его часто называют алгоритмом Сэнда-Тьюки.
Сравнение алгоритмов ВД и ЧД
В алгоритме ВД порядок входных данных остается неизменным, но порядок выходной последовательности БПФ определяется обращенным порядком битов. Оба алгоритма (ВД и ЧД) плоские. При повторном их применении можно сохранить порядок как входных, так и выходных данных, но суммарные алгоритмы уже не будут плоскими, и для их выполнения нужна дополнительная память (см. главу 12). Количество операций комплексного умножения, необходимых для выполнения каждого алгоритма, одинаково. В целом, разница между ними небольшая.
Модификации для увеличения скорости
Несколько модернезировав алгоритм ВД, можно еще больше увеличить скорость вычислений. Например, для снижения количества операций комплексного умножения почти в два раза можно воспользоваться не БПФ по основанию 2, а БПФ по основанию 4. Количество операций сложения при этом также уменьшается. Кроме того, скорость можно увеличить, убрав ненужные операции умножения на коэффициент WN (который часто называют ленивым коэффициентом!), если WN = ±1 или ±г. При этом также уменьшается число операций сложения. Для реализации этого при WN = ±1 или ±г добавляется отдельная “бабочка”. В результате, например, получается двоичный плоский алгоритм ВД с двумя “бабочками”. Дополнительно можно сократить время вычислений, если вначале найти синусоидальные и косинусоидальные части WN, а затем сохранить их значения в справочной таблице. Возможны и другие усовершенствования. Итак, ясно, что существует не одно БПФ, а много. Чтобы осветить эту тему полностью, нужны значительные затраты времени и описание громоздких математических аппаратов. Также неплохо было бы разбираться в современной теории матриц, многоразмерном индексном отображении и теории чисел. Но такой всесторонний подход к этой теме выходит за рамки цели, поставленной в этой главе, задача которой — объяснить принципы дискретных преобразований тем способом, который будет понятен большинству людей, занимающихся цифровой обработкой сигналов. Существует ряд других книг, например, [3] и [5] с более специализированным подходом, и именно они и рекомендуются читателям для дальнейшего изучения. Как уже говорилось, есть множество алгоритмов, кроме того, специалисты могут написать собственные алгоритмы, наиболее подходящие для данного приложения. Однако сокращение числа необходимых операций сложения и умножения не всегда приводит к пропорциональному увеличению скорости вычислений. Результатом снижения количества операций умножения может даже оказаться увеличение программного кода или числа операций сложения. Если используются специальные процессоры обработки сигналов, то они могут налагать свои собственные ограничения, сводящие на нет все попытки усовершенствования алгоритма. Поскольку коэффициент увеличения скорости редко превышает 2, авторы склонны рекомендовать для универсальных задач, в которых скорость не так критична, основное двоичное БПФ с ВД. В книге [5] представлено большое количество программ для вычисления БПФ на языке FORTRAN. Даются также программы, которые можно реализовать аппаратным способом. В приложении ЗА рассматривается программа на языке С для вычисления двоичного БПФ с ВД.
Другие дискретные преобразования
Существует множество других преобразований. Преобразование Винограда-Фурье ([26]; см. также [3, 5, 15, 19,22]) и алгоритм первоначального множителя ([3], см. также [15]) представляют собой оригинальные, но слишком сложные методы повышения скорости вычисления БПФ. Дискретное косинус-преобразование особенно подходит для сжатия данных (см. раздел 3.8.1). При преобразовании Уолша (раздел 3.8.2) сигнал
раскладывается на прямоугольные импульсы, а не на синусоиды, и оно вычисляется быстрее, чем БПФ. Преобразование Адамара (раздел 3.8.3), построенное с помощью перестановки последовательности Уолша, вычисляется еще быстрее. Хотя для некоторых целей преобразования Уолша и Адамара позволяют получить определенные преимущества, они имеют ряд недостатков, которые ограничивают область их применения (см. разделы 3.8.2 и 3.8.3). Наконец, преобразование Хаара особенно полезно для определения краев при обработке изображений [20] и в подобных приложениях. Вообще, стоит порекомендовать книгу [3] — хороший источник информации для начинающих, которые хотели бы больше знать о преобразованиях и их применении. В 1990-х годах возрос интерес к вейвлетному преобразованию [4, 6, 10, 11], поэтому оно также представлено ниже, в разделе 3.8.4.
Дискретное косинус-преобразование
Помимо того, что преобразования используются для ускорения вычисления корреляции и свертки, а также в спектральном анализе, эти методы применяются еще и для сжатия данных при, например, передаче речи или видеосигналов, а также для записи медицинских сигналов, таких как сигналы ЭКГ или ЭЭГ. Кроме того, они используются при распознавании шаблонов. В названных приложениях задействованы только самые значительные компоненты преобразований. В результате этого снижается количество битов, необходимое для их кодирования, что позволяет ускорить передачу, использовать линии передачи с более узкой полосой, а также облегчает распознавание шаблонов (благодаря уменьшению объема информации). Эти три немаловажных признака преобразования и определяют его эффективность с точки зрения сжатия данных, которая связана с концентрацией энергии на низких частотах, простотой вычислений и минимальной среднеквадратической ошибкой. С этой точки зрения идеальным преобразованием является преобразование Карунена-Лоэва, но его нельзя задать в виде алгоритма. Впрочем, дискретное косинус-преобразование (ДКП) обладает фактически теми же свойствами, и его можно представить в виде алгоритма. По сути, оно представляет собой действительную часть ДПФ. Это определение справедливо, поскольку ряд Фурье из действительных и четных функций содержит только косинусоидальные члены, а при использовании, например, дискретных значений напряжения данные действительные, и их можно сделать симметричными — удвоить путем прибавления к ним их зеркального отображения. Итак, ДПФ задается следующим образом (уравнение (3.41)):
N-1
Х(к) = ^к = 0,1,... ,N - 1.
п=О
Определив ДКП XcQe) как действительную часть этого преобразования, получим
/ кЧтгп \
Xc(k) = Не[Х(А:)] = ^ ж"cos ( ~м~ ) ^к =-,N - 1.(3.66)
п=О''
Это одна из нескольких форм ДКП. Более общий вид (см. [1, 3, 27]:
1 N-1XCW = ^ ^Ж"С08п=01 N-1= дгЕ*"008п=01 N-1XCW = ^ ^Ж"С08п=01 N-1= дгЕ*"008п=0/г2тгп + kit2N/г2тгп + kit2N/г7г(2п + 1)/г7г(2п + 1)2N2NА; = 0,1,..., АГ-1.А; = 0,1,..., АГ-1.(3.67)(3.67)
1 N-1
XCW = ^ ^Ж"С08п=0
1 N-1
= дгЕ*"008п=0
1 N-1
XCW = ^ ^Ж"С08п=0
1 N-1
= дгЕ*"008п=0
/г2тгп + kit2N
/г2тгп + kit2N
/г7г(2п + 1)
/г7г(2п + 1)
2N
2N
А; = 0,1,..., АГ-1.
А; = 0,1,..., АГ-1.
(3.67)
(3.67)
Существуют также и другие формы (см. [2, 17, 18, 27]).
Разработаны реализации ДКП, основанные на БПФ [16], кроме того, есть также быстрое ДКП, скорость которого в шесть раз выше указанных преобразований [7]. Еще одна версия — это С-матричное преобразование, которое намного проще реализовать на аппаратном уровне [23].
Преобразование Уолша
Преобразования, обсуждавшиеся выше, были основаны на функциях косинус и синус. Намного проще и быстрее считаются преобразования, основанные на импульсоподобных сигналах, которые принимают значения только ±1. Кроме того, они больше подходят для описания сигналов с нарушением непрерывности, которые встречаются, например, в изображениях. И, наоборот, они менее пригодны для описания непрерывных сигналов и могут не быть инвариантными по фазе, а если это так, полученный спектр может искажаться. Поэтому такие сигналы обычно используются при обработке изображений (астрономия и спектроскопия), кодировании сигналов и фильтрации.
Точно так же, как ДПФ основывается на наборе гармонических косинусоидальных и синусоидальных сигналов, дискретное преобразование Уолша (ДПУ) основано на наборе гармонических прямоугольных импульсов, которые называются функциями Уолша. Однако для прямоугольных импульсов частота не определена, поэтому используется аналоговый термин “последовательность”. Последовательность — это половина среднего числа переходов через нуль за единицу времени. На рис. 3.6 показаны функции Уолша до порядка N — 8, расположенные по возрастанию. В таком виде их называют упорядоченными по Уолшу. Функция Уолша со временем t и порядком п обозначается WAL(n, 4). Внимательно изучая рис. 3.6, видим, что существует равное количество четных и нечетных функций Уолша, точно так же, как и косинусоидальных и синусоидальных компонентов ряда Фурье. Четные функции WAL(2A:, 4) записываются как CAL(A:, 4), а нечетные функции WAL(2A: + 1,4) записываются как SAL(2A: + 1,4), где k = 1,2,..., А/2 — 1.
Любой сигнал /(4) можно разложить по набору функций Уолша (аналог разложения в ряд Фурье) как
N/2-1 N/2-1
/(4) = aoWAL(0,4) + К L [OiSAL(i,4) + biCALO-, 4)],(3.68)
где at и bj — коэффициенты ряда.
Рис. 3.6. Упорядоченные по возрастанию функции Уолша до п = 7, которые показывают времена дискретизации для матрицы преобразования Уолша порядка 8x8Рис. 3.6. Упорядоченные по возрастанию функции Уолша до п = 7, которые показывают времена дискретизации для матрицы преобразования Уолша порядка 8x8
Рис. 3.6. Упорядоченные по возрастанию функции Уолша до п = 7, которые показывают времена дискретизации для матрицы преобразования Уолша порядка 8x8
Рис. 3.6. Упорядоченные по возрастанию функции Уолша до п = 7, которые показывают времена дискретизации для матрицы преобразования Уолша порядка 8x8
Для любых двух функций Уолша
N-1,
У WAL(m, t)WAL(n, t) = И "ри n = m
\ ’ / V ’ / I о принят t=o<'
т.е. функции Уолша ортогональны.
Пара дискретных Уолш-образов — это
1
(3.69)(3.69)(3.70)(3.70)Хк = ^У^Щк,г^к = 0,1,... Л-1
(3.69)
(3.69)
(3.70)
(3.70)
г=0
и
N—1
Xi = yXkWAL(k,i)k = O,l,...,N-l,i=0
где следует заметить, что, не считая множителя 1/N, обратное преобразование идентично прямому, и WAL(fc, г) = ±1. Следовательно, пару образов можно найти простым
перемножением матриц с помощью цифровых методов. Однако отсутствие фазовой инвариантности означает, что ДПУ не подходит для вычисления быстрых корреляций или сверток.
Уравнение (3.69) показывает, что к-й элемент ДПУ можно получить, умножив каждый дискретный элемент сигнала xt на функцию Уолша последовательности к и просуммировав по к = 0,1,..., N — 1. Для всех элементов к это можно записать в матричном виде как
(3.71)(3.71)Хк = х^к{,
(3.71)
(3.71)
где х4 = [жож^г... ^jv-i] — последовательность данных,
1Го1Но 2••• Wo,JV-l
Wki =
Wn
Wjv-1,1 WjV—1,2 • • • Wjv-l,lV-l
матрица преобразования Уолша, а Хк = [Хо^... XN-i] — (^ — 1) компонентов ДПУ. Заметим, что Wki — это матрица порядка N х N, где N — количество заданных точек, т.е. точек дискретного сигнала. Следовательно, если есть N точек данных, то нужно рассматривать первые N упорядоченных функций Уолша. Каждая из них дискретизуется N раз, при этом к-я строка матрицы Wki соответствует N дискретным значениям к-го компонента последовательности.
Пример 3.6
В качестве примера найдем ДПУ последовательности данных (1,2,0,3). Она состоит из N = 4 точек, так что Wkl — это матрица порядка 4x4, которая получается из первых четырех строк рис. 3.6:
Wki =Wki =(3.72)(3.72)1111 11-1-1 1-1-1 1 1-11-1
Wki =
Wki =
(3.72)
(3.72)
Следовательно, из уравнения (3.71) Х(/г) задается как
Х(к) = ^ [ 1 2 0 3 ]Х(к) = ^ [ 1 2 0 3 ]1111111111-1-111-1-111-1 -1-1 11 -111-1 -1-1 11 -11414
Х(к) = ^ [ 1 2 0 3 ]
Х(к) = ^ [ 1 2 0 3 ]
1
1
1
1
1
1
1
1
1
1
-1
-1
1
1
-1
-1
11
-1 -1
-1 1
1 -1
11
-1 -1
-1 1
1 -1
1
4
1
4
так что Хо = 1,5, Ху = 0, Х2 = 0,5 и Х3 = -1. Это вычисляется значительно проще, чем соответствующее ДПФ! Не говоря уже о том, что существуют быстрые ДПУ (БДПУ).
Дополнительно можно рассчитать соответствующий спектр с мощностными компонентами, которые задаются как
Р(к) = \\САЦк,< + \8АЦк,<У'\
гдегдеЛ0) = *ЖР(к) = Х>,€) + X2s(k,t),Л0) = *ЖР(к) = Х>,€) + X2s(k,t),(3.73)(3.73)РР= х2= х2
где
где
Л0) = *Ж
Р(к) = Х>,€) + X2s(k,t),
Л0) = *Ж
Р(к) = Х>,€) + X2s(k,t),
(3.73)
(3.73)
Р
Р
= х2
= х2
где к = 1,2,..., N/2 — 1, и фазовыми компонентами
</>(0) = 0, тг,
^ = "ctg [зд]^ = "ctg [зд],fc = l,2,... Л/2-1,,fc = l,2,... Л/2-1,(3.74)(3.74)
^ = "ctg [зд]
^ = "ctg [зд]
,fc = l,2,... Л/2-1,
,fc = l,2,... Л/2-1,
(3.74)
(3.74)
ф I — 1 = Чк-п ± тг/2, к = 0,1,2...
Итак, для вышеописанного ДПУ мы получили
Р(0) = 1,52 = 2,25; ^(0) = 0, тг,
Р(1) = О2 + 0,52 = 0,25; </>(1) = arctg [) = 0,
5 /
Р^ = (-1)2 = 1; </>(2) = | + 2/стг, к = 0,1,2.
Преобразование Адамара
Преобразование Адамара, или преобразование Уолша-Адамара, — это, по сути, то же преобразование Уолша, но с другим порядком функций Уолша и, следовательно, строк матрицы преобразования. Получающаяся при такой перестановке матрица Адамара содержит подмассивы матриц второго порядка. На рис. 3.7 показана матрица Адамара порядка 8x8 (обозначается как 8Н). Видно, что ее можно записать через матрицы
2Н =2Н =1 11 -11 11 -1ии— 2Н =— 2Н =-1 -1-1 1-1 -1-1 1
2Н =
2Н =
1 1
1 -1
1 1
1 -1
и
и
— 2Н =
— 2Н =
-1 -1
-1 1
-1 -1
-1 1
Любую матрицу Адамара порядка 2N можно рекурсивно получить из 2Н как
21VH =21VH =VH VHWH -VHVH VHWH -VH
21VH =
21VH =
VH VH
WH -VH
VH VH
WH -VH
Рис. 3.7. Матрица преобразования Адамара порядка 8x8
Рис. 3.8. Функции Уолша, расположенные в порядке Адамара, до п = 7, показывающие времена дискретизации для матрицы преобразования Адамара порядка 4x4
Из этого рекурсивного свойства следует, что получающееся при расположении функций Уолша в порядке, определенном Адамаром, быстрое преобразование Уолша-Адамара можно вычислить намного быстрее, чем ДПУ Расположенные в порядке Адамара (или в естественном порядке) функции Уолша показаны на рис. 3.8. Последовательность Адамара получается из последовательности Уолша следующим образом:
порядок расположенных по Уолшу функций Уолша представляется в двоичной системе;
биты переставляются в обратном порядке;
двоичные значения преобразуются в код Грея;
полученные значения преобразуются в десятичные.
Пример 3.7
В качестве примера рассчитаем дискретное преобразование Уолша-Адамара (Д11УА) последовательности (1,2,0,3). Матрица Адамара порядка 4x4 Щ; равна
Нь =Нь =1111 11-1-1 1-11-1 1-1-1 11111 11-1-1 1-11-1 1-1-1 11111 1-1 1 -1 11-1-1 1-1-1 11111 1-1 1 -1 11-1-1 1-1-1 1(3-76)(3-76)
Нь =
Нь =
1111 11-1-1 1-11-1 1-1-1 1
1111 11-1-1 1-11-1 1-1-1 1
1111 1-1 1 -1 11-1-1 1-1-1 1
1111 1-1 1 -1 11-1-1 1-1-1 1
(3-76)
(3-76)
согласно свойствам матрицы Адамара. Следовательно, ДПУА-образ последовательности (1,2,0,3) задается как
хР = ^ [ 1 2 0 3 ]хР = ^ [ 1 2 0 3 ]111111111-1-1 11-1-1 1
хР = ^ [ 1 2 0 3 ]
хР = ^ [ 1 2 0 3 ]
1111
1111
1-1-1 1
1-1-1 1
так что X™ = 1,5, Х™ = — 1, Х^н = 2 и Х^н = 0,5. Значения этих величин такие же, как и рассчитанные ранее компоненты преобразования Уолша, только стоят в другом порядке.
Вейвлетное преобразование
Физический принцип неопределенности Гейзенберга говорит о том, что нельзя одновременно точно знать и положение х частицы, и ее импульс р. Фактически
хр > h = 6,626 х КГ34 Дж с,(3.77)
где h — постоянная Планка. С помощью уравнения Эйнштейна Е = тс2 этот принцип можно перенести в область обработки сигналов, где он будет формулироваться так: нельзя одновременно с любой точностью определить время и частоту. Следовательно,
^fT > 1,(3.78)
где А/ и Т описывают разрешение по частоте и по времени. Если разрешение по времени высокое, то частота будет определяться менее точно, и наоборот. Следовательно, может оказаться достаточно сложно одновременно измерить с необходимой степенью точности частоту компонента сигнала и время его появления или разделить во времени различные частотные компоненты. Это может произойти, если сигнал содержит кратковременные высокочастотные компоненты, расположенные слишком близко к более продолжительным компонентам во временной области, которые также близко расположены в частотной области и возникают в различные моменты времени. Такие сигналы непериодичны. Для решения этой общей проблемы частотно-временного анализа используется вейвлетное преобразование (wavelet transform), которое предоставляет средства для анализа нестационарных сигналов. Вейвлетное преобразование применяется
Рис. 3.9. Модифицированная гауссова, или морлетовская, материнская вейвлетная функция Ф(() и ее Фурье-образ Я(ш)Рис. 3.9. Модифицированная гауссова, или морлетовская, материнская вейвлетная функция Ф(() и ее Фурье-образ Я(ш)
Рис. 3.9. Модифицированная гауссова, или морлетовская, материнская вейвлетная функция Ф(() и ее Фурье-образ Я(ш)
Рис. 3.9. Модифицированная гауссова, или морлетовская, материнская вейвлетная функция Ф(() и ее Фурье-образ Я(ш)
также для фильтрации сигналов, устранения шумов, определения местонахождения сингулярностей и их распределения.
В то время как в преобразованиях Фурье значения сигнала имеют весовые коэффициенты, в показателе степени которых стоит мнимая часть, а аргумент — гармонический и зависит от частоты, т.е, по сути, является синусоидальным членом, в вейвлетном преобразовании в качестве весовых коэффициентов значений сигнала выступают вейвлетные функции.
Все вейвлетные функции получаются из основной (материнской, базовой) вейвлет- ной функции. Существует ряд возможных материнских функций, выбранных для получения следующих свойств. Они должны: осциллировать, не содержать компонентов постоянного тока, быть полосовыми, быстро спадать во времени до нуля и быть обратимыми. Последнее свойство гарантирует, что вейвлетное преобразование сигнала будет однозначным. Основную функцию можно записать как Ф(^. Например, морлетовская, или модифицированная гауссова материнская вейвлетная функция ^вейвлет Морле), — это
Ф(0 = е^е-^,(3.79)
Фурье-образ которой —
Н^) = V^e-^-^2l\(3.80)
Эти два сигнала изображены на рис. 3.9, и видно, что Ф(^ удовлетворяет вышеизложенным требованиям, т.е. осциллирует и спадает до нуля.
Остальные (дочерние) функции получают путем такого изменения масштаба материнской, чтобы образовалось семейство функций. Каждую дочернюю функцию можно записать как
1ф{((-7)/«},
где а — переменный коэффициент масштабирования, ат — константа переноса. Если масштаб а увеличивается, то амплитуда и аргумент функции уменьшаются. Уменьше-
ние аргумента при заданной амплитуде означает, что уменьшается частота. Следовательно, увеличение масштаба а соответствует уменьшению частоты, и поэтому функция расширяется во временной области по горизонтали. Положительные значения константы переноса приводят к переносу функции вдоль положительной временной оси. Итак, с помощью коэффициента масштабирования а и константы переноса т можно создавать функции с большими или меньшими амплитудами, с высшими или низшими частотами и размещать их в различные моменты времени. Таким образом, нестационарные сигналы с различными частотными компонентами, расположенными в различных промежутках времени, можно описывать как сумму различных вейвлетных функций. Для этого и используется вейвлетное преобразование.
Есть несколько вариантов вейвлетного преобразования, определения которых представлены ниже. Они образуют естественную прогрессию с возрастающей дискретизацией. В этих определениях предполагается, что сигнал s(t) квадратично интегрируем, т.е.
У s\t)dt < оо.(3.81)
Это предположение справедливо для всех кратковременных сигналов с конечной амплитудой. Синусоидальные сигналы и сигналы постоянного тока не удовлетворяют этому условию, поэтому они исключаются из последующих рассуждений.
Непрерывное вейвлетное преобразование НВЩа, т) можно определить как
НВП(а, т) = (1/V») У s^^t - r^/a^dt.(3.82)
Параметры этого уравнения можно дискретизовать, что даст вейвлетное преобразование с дискретными параметрами ВПДП(т, тг), которое определяется как
ВПДП(ттг, тг) = оо т/2 У s^t^^t - птоа^(3.83)
где были сделаны такие замены: а = а™, т = ггтоа™. В этих заменах а0 и т0 — интервалы дискретизации для а и т, а ттг и тг — целые числа. Довольно часто выбирают а0 = 2, а т0 = 1. Тогда
ВПДП(т, тг) = 2-т/2 / з(()Ф {(t - п2т) /2т} at =
(3.84)
= 2~т/2 / s(t)^{2~mt - n^dt.
Это расширяет временную ось в 2-т раза, а вейвлетная функция переносится в положительную сторону по времени на 2ттг.
Дискретизация по времени дает вейвлетное преобразование с дискретным временем ВПДВ(ттг,тг), которое определяется как
(3.85)(3.85)ВПДВ(ттг, тг) = а0 т/2 ^ з(/с)Ф(а0 тк — тгт0).к
(3.85)
(3.85)
Если снова положить а0 = 2, а т0 — 1, то ИМДВ(т, п) станет таким:
ВПДВ(т, n) = 2-т/2 £ s^^k - п),(3 86)
к
что известно как дискретное вейвлетное преобразование. Итак, дискретное вейвлетное преобразование получается из непрерывного вейвлетного преобразования путем дискретизации масштабного параметра а, параметра переноса т и времени с последующей подстановкой а0 = 2 и т0 = 1.
Кроме того что вейвлетные преобразования используются для изучения частотновременного содержания сигналов, их можно использовать для фильтрации сигналов, т.е. для удаления какой-то части присутствующего шума. Сперва сигналы раскладывают на их компоненты. Затем идентифицируются и устраняются компоненты шума. Наконец, очищенный от шумов сигнал восстанавливают по вейвлетным функциям компонентов. При использовании непрерывного вейвлетного преобразования формула для восстановления (обратного преобразования) имеет вид
=[ [ HBH(a,T)Z-^^{(t-T)/a}(^Ladt,(3.87)
J J( у ° JI ya2 J
— oo a>0
СФ = y{№)|7ca}<k/<oo,о
а H^ — Фурье-образ основного импульса Ф(£).
Читателям, которым нужно больше информации о восстановительных формулах, рекомендуется обратиться к работам [4, 6, 8, 10, 11, 14].
Для более глубокого понимания вейвлетного преобразования рассмотрим возможные интерпретации непрерывного вейвлетного преобразования (формула (3.82)). Видно, что НВП(а, т) описывает взаимную корреляцию s(t) и ^{t/a')/у/a с задержкой —т/а. Точно такой же операцией описывается взаимная корреляция масштабированного сигнала s(at) и УаФ(^ с задержкой —т/а. НВП(а, т) может также описывать выход полосового фильтра с импульсной характеристикой НВЩа, т) и временем т/а при входном сигнале s^ty Это же преобразование описывает выход полосового фильтра с импульсной характеристикой УаФ(—i) со временем т/а при входном сигнале s(at). Таким образом, вейвлетное преобразование можно рассматривать как действие полосового фильтра или взаимную корреляцию. Отметим также, что изменение масштаба а позволяет отфильтровывать различные частотные компоненты.
Вейвлетный метод кратномасштабного анализа
Кратномасштабным анализом (КА) называют разделение компонентов сигнала на ряд частотных полос. Оно осуществляется с помощью фильтров высоких и низких частот и субдискретизации. Возможна и обратная процедура, которая позволяет восстанавливать сигнал. АПР выполняется с помощью дискретного вейвлетного преобразования и дискретных сигналов. Он применяется при анализе информационного содержания
12 Децимация с шагом 2
| х | Свертка с указанным фильтре^
AJ Сигналы, прошедшие через фильтр нижних частот, которые называют аппроксимирующими компонентами
DJ Сигналы, прошедшие через фильтр верхних частот, которые называют детализирующими компонентами. Они представляют собой разность двух соседних сигналов, прошедших через фильтр нижних частот, т.е. разность двух соседних уровней, которые можно разрешить.
Рис. 3.10. Разложение сигнала для КА вейвлетным методом
изображений [13] и наведенных потенциалов электроэнцефалограммы [25]. В работе [13] описывается вейвлетный вариант КА. Положив а = 2т и т = 2тп, можно создать фильтр нижних частот Gs(w) и фильтр верхних частот ЯДси), которые при многократном использовании в пирамидальной структуре разделяют сигнал на частотные полосы с возрастающей разрешающей способностью. Этот пирамидальный алгоритм показан на рис. ЗЛО. G^w) и Н8^ симметричны соответственно фильтру низких частот G(w) и фильтру высоких частот H(wy Это квадратурные зеркальные фильтры, связанные с подходящей вейвлетной функцией. Для восстановления сигнала воспользуйтесь пирамидальным алгоритмом, показанным на рис. 3.11.
КА можно использовать для изучения компонентов сигнала, а также для фильтрации сигналов. После разложения сигнала нежелательные компоненты убираются, а отфильтрованный сигнал восстанавливается.
На рис. 3.12 показаны характерные результаты применения КА для извлечения потенциала CNV, зависящего от событий, из зашумленного фона электроэнцефалограммы (ЭЭГ), отношение сигнал-шум которой равно —14,3 дБ. При моделировании задавались определенные переменные потенциалы, которые прибавлялись к ЭЭГ. К данным эксперимента применялся и адаптивный КА [21], и его модифицированная версия. Видно, что сигнал CNV без шума совершенно не похож на реальный потенциал CNV. Поскольку отношения сигнал-шум относительно больших потенциалов, зависящих от событий, составляют приблизительно —15 дБ, из результатов видно, что описанные методы больше подходят для очистки от шумов сигналов с намного большими отношениями сигнал-шум.
Т2 Вставка нуля после каждой выборки
Свертка с указанным фильтромУмножение на 2Свертка с указанным фильтромУмножение на 2
Свертка с указанным фильтром
Умножение на 2
Свертка с указанным фильтром
Умножение на 2
AJ Сигналы, прошедшие через фильтр нижних частот, которые называют аппроксимирующими компонентами
DJ Сигналы, прошедшие через фильтр высоких частот, которые называют детализирующими компонентами
Рис. 3.11. Восстановление сигнала с помощью вейвлетного КА
Представление сигнала с помощью сингулярностей: метод вейвлетного преобразования
В работе [14] было показано, что все сигналы и шумы можно полностью описать через их сингулярности. Сингулярности определяются через их показатели степени Липшица. Если некоторая функция /(t) непрерывно дифференцируема в точке t0, то она не сингулярна и относится к типу Липшиц-1. Сигналы, которые не относятся к типу Липшиц-1, — сингулярны. Если /(t) дифференцируема в точке t0 п раз, то ее п-я производная сингулярна и относится к типу Липшиц-а, где а > п. Показатели степени Липшица могут быть также отрицательными и показывают величину и знак сингулярности. Описывая сигналы через их сингулярности, а затем убирая нежелательные сингулярности, по оставшимся сингулярностям можно восстанавливать отфильтрованные сигналы. Этот метод применяется, например, при определении краев на изображениях [14] и фильтрации сигналов от шумов [14, 28]. Фильтрацией сигнала от шумов называется устранение шумов из сигнала, позволяющее увеличить отношение сигнал-шум.
Многие сигналы имеют сингулярности с положительными показателями Липшица, тогда как шум характеризуется отрицательными показателями Липшица. Если сингулярности, связанные с шумами, можно найти и устранить, то это, следовательно, позволяет отделять сигналы от шума. В работе [14] показано, что сингулярности и их положение могут характеризоваться амплитудами и знаками максимумов вейвлетных преобразований на графиках их зависимости от времени в разных масштабах, как показано на рис. 3.13. Следовательно, каждый максимум на графике соответствует сингулярности. Сравнивая максимумы при различных масштабах, можно определить те из них, которые связаны с шумами, и найти значения показателей Липшица.
Рис. 3.12. Реальные потенциалы ERP и потенциалы без шума, извлеченные методом анализа с переменной разрешающей способностью при отношении сигнал-шум в -14,3 дБРис. 3.12. Реальные потенциалы ERP и потенциалы без шума, извлеченные методом анализа с переменной разрешающей способностью при отношении сигнал-шум в -14,3 дБ
Рис. 3.12. Реальные потенциалы ERP и потенциалы без шума, извлеченные методом анализа с переменной разрешающей способностью при отношении сигнал-шум в -14,3 дБ
Рис. 3.12. Реальные потенциалы ERP и потенциалы без шума, извлеченные методом анализа с переменной разрешающей способностью при отношении сигнал-шум в -14,3 дБ
В дальнейшем предполагается, что у сигналов нет локальных осцилляций. Если бы они были, анализ был бы намного сложнее (см. [14]).
Рассмотрим для начала сигналы, значения максимумов вейвлетного преобразования которых лежат в пределах конуса |(t - i0)| < С а, где С — произвольная константа (рис. 3.13). Теперь рассмотрим те максимумы внутри конуса, которые лежат на линии, соединяющей различные масштабы (линия максимумов). Тогда вейвлетные преобразования W(a, т), связанные с максимумами на линии максимумов, меняются с изменением масштаба а как
(3.88)(3.88)|IV(a,r)| <Аа“,
(3.88)
(3.88)
где А — константа, а>0и0<а<1.
Следовательно, с увеличением а модуль вейвлетного преобразования увеличивается. Другими словами, модули увеличиваются при переходе к более низкочастотному масштабу. Таким образом, энергетическое содержание сигнала увеличивается на более низких частотах или (эквивалентно) уменьшается на более высоких частотах. Прологарифмировав обе части уравнения (3.88), получим уравнение (3.89):
(3.89)(3.89)log|IV(a, т)| < log А + a log а.
(3.89)
(3.89)
| Модули, связанные с сигналом
\^/ Конус |(/- Г„)| S Со
Линия максимумов
Рис. 3.13. Зависимость максимумов вейвлетного преобразования W(a, т) от времени при различных масштабах а
Это значит, что а, показатель степени Липшица, — это максимальный угол наклона прямых линий уравнения (3.89) в логарифмическом масштабе, которые превышают log | W(a, т)|. Из дальнейшего обсуждения будет понятно, что данное свойство очень полезно.
Для сравнения с вышеописанным случаем отметим, что белый шум характеризуется отрицательными показателями Липшица, и вероятность появления квадратов модулей максимумов вейвлетного преобразования изменяется как
E[|IV(a,r)|2] = ||Ф||2а7а, (3.90)
где ст2 — дисперсия шума, а Ф — вейвлетная функция. Следовательно, модули максимумов уменьшаются пропорционально 1 /х/a при увеличении масштаба. Выражаясь иначе, модули максимумов увеличиваются с частотой пропорционально х/a. Это означает, что максимумы, связанные с белым шумом, при переходе от одного масштаба к другому
Рис. 3.14. Потенциал ERP, очищенный методом определения сингулярностей, и реальный потенциал ERP (ЭЭГ, отношение сигнал-шум -5,3 дБ)
увеличиваются с частотой. Отметим, что это противоположно изменениям величины сигналов с положительными показателями Липшица, причем то же справедливо и для других шумоподобных сигналов.
На рис. 3.13 (не приведен к соответствующему масштабу) схематически показаны максимумы зашумленного сигнала. Видно, что амплитуда максимумов сигнала с заданным положением увеличивается при повышении масштаба (при понижении частоты), тогда как величина максимумов шума увеличивается при понижении масштаба (при повышении частоты) и, кроме того, возрастает их количество. В общем случае, при уменьшении масштаба в два раза число максимумов шума удваивается. Таким образом, наблюдая за изменениями максимумов в одних и тех же точках при переходе от одного масштаба к другому, можно определить максимумы, связанные с шумом. Следовательно, их можно убрать и не учитывать при восстановлении чистого сигнала.
Этот метод (см. [14, 28]) применялся к модельным ERP данных ЭЭГ из раздела 3.8.5. Очищенный и реальный потенциалы ERP для эксперимента с однократным проходом показаны на рис. 3.14 при отношении сигнал-шум —5,3 дБ. Это достаточно большое отношение сигнал-шум по сравнению с -15 дБ, и извлеченный сигнал CNV не имеет ничего общего с реальным. Почему это так? Метод определения сингулярностей основан на предположении о белом шуме, а сигнал ЭЭГ не является белым. Если повторить моделирование, воспользовавшись белым шумом вместо ЭЭГ, то получится результат,
Действительный ERP:Извлеченный ERP:Действительный ERP:Извлеченный ERP:Рис. 3.15. Потенциал ERP, очищенный методом определения сингулярностей, и реальный потенциал ERP (белый шум, отношение сигнал-шум -5,67 дБ)Рис. 3.15. Потенциал ERP, очищенный методом определения сингулярностей, и реальный потенциал ERP (белый шум, отношение сигнал-шум -5,67 дБ)
Действительный ERP:
Извлеченный ERP:
Действительный ERP:
Извлеченный ERP:
Рис. 3.15. Потенциал ERP, очищенный методом определения сингулярностей, и реальный потенциал ERP (белый шум, отношение сигнал-шум -5,67 дБ)
Рис. 3.15. Потенциал ERP, очищенный методом определения сингулярностей, и реальный потенциал ERP (белый шум, отношение сигнал-шум -5,67 дБ)
показанный на рис. 3.15. На этот раз извлеченный сигнал CNV намного больше похож на реальный. Следовательно, для удовлетворительной работы метода шум должен быть белым.
Когда положения максимумов сигнала и шума совпадают, возникает проблема. Если максимум не ликвидировать, то шум в сигнале сохранится. Если максимум убрать, то исчезнет и часть сигнала, что приведет к восстановлению искаженного сигнала. Для решения этой проблемы можно искать высокие масштабы, где преобладает сигнал (т.е. относительно большое отношение сигнал-шум), и использовать уравнение (3.89) в пределах конуса |(t — t0)| < С а для определения а. В этом случае отношение значений максимумов в одних и тех же точках при ближайших более мелких масштабах будет равно 2“. Следовательно, в этих мелких масштабах можно найти действительные величины максимумов и использовать их при восстановлении сигнала. Разумеется, подобный конус |(t - t0)| < С а можно построить для любого максимума t0.
Еще одно ограничение этого метода устранения шумов заключается в точности, с которой можно найти и устранить максимумы шума. Это зависит от точности определения а, которая, в свою очередь, зависит от выбора материнской вейвлетной функции и от алгоритма устранения сингулярностей (максимумов), а также от алгоритма восстановления. Более подробно об этом можно прочитать в литературе, указанной в конце этой главы.
Применение ДКП: сжатие изображений
Как говорилось в разделе 3.8.1, дискретное косинус-преобразование (ДКП) применяется для сжатия данных сигналов, а это имеет особое значение при хранении и передаче изображений, поскольку каждое изображение состоит из большого количества данных. Например, элемент (пиксель) изображения на рисунке размером 320 х 240, который описывается восемью бит иа пиксель, будет занимать 76,8 Кбайт, что эквивалентно приблизительно 25 страницам текста. Делаем вывод, что сжатие изображений — это очень полезная штука. Сжатые изображения, как правило, кодируют для передачи, что еще больше их сжимает. Ранее различные организации разрабатывали свои собственные подходы и стандарты, пока в 1986 году группа специалистов ие организовала Объединенную группу экспертов по обработке фотоизображений (Joint Photographic Experts Group — JPEG), которая попыталась стандартизировать сжатие и передачу неподвижных чернобелых и цветных изображений. Комитет JPEG был одним из отделов Международной организации по стандартизации (International Organization for Standardization — ISO), кроме того, в него входили члены МККТТ (Международный консультативный комитет по телеграфии и телефонии, International Telegraph and Telephone Consultative Committee — CCITT) и МЭК (Международная электротехническая комиссия, International Electronic Commission — IEC). Стандартизация необходима для того, чтобы позволить взаимный обмен изображениями между различными устройствами, такими как персональные компьютеры, локальные сети, компакт-диски и цифровые камеры. Стандарт JPEG устанавливает набор базовых функций сжатия изображений, которые могут отличаться деталями. Есть основная структура, которой должны придерживаться все системы, но кроме этого существуют расширенные и иерархические структуры. Успех JPEG способствовал появлению MPEG (Moving Pictures Expert Group — Экспертная группа по вопросам движущегося изображения) и JBIG (Joint Bi-level Image Expert Group — Объединенная группа по вопросам двухуровневых изображений). В этом разделе мы сосредоточим внимание иа некоторых основных понятиях стандарта JPEG. Полностью стандарт JPEG описан в книге [17]. Там же в качестве приложения приведены все требования и руководства, опубликованные в виде проекта международного стандарта Draft International Standard 10918-1. Краткие описания можно найти в работах [2, 18].
На рис. 3.16 представлена основная блок-схема системы сжатия стандарта JPEG для передачи данных. Для приема и восстановления сжатых данных нужна обратная система. Итак, сперва вычисляется двумерное ДКП данного изображения. Затем коэффициенты ДКП квантуются, и находится их пороговое значение. Далее коэффициенты нулевой частоты, или постоянного тока, последовательно подвергаются дифференциальной импульсно-кодовой модуляции, а получающийся в результате поток битов кодируется либо с помощью кода Хаффмана, либо с помощью арифметического кода. Остальные частотные коэффициенты (коэффициенты переменного тока) также кодируются либо с помощью кода Хаффмана, либо с помощью арифметического кода. Длинные серии нулей кодируются методом серийного кодирования. В результате получается два потока сжатых данных, состоящих из закодированных коэффициентов постоянного и переменного тока.
Коэффициенты постоянного токаСжатые данные
Условные обозначенияпеременного токаСжатые данные
ДКП — дискретное косинус-преобразование
Q — устройство квантования
ДИКМ — дифференциальная импульсно-кодовая модуляция
КХ/АК — кодер Хаффмана или арифметический кодер
Рис. 3.16. Сжатие данных в стандарте JPEG
Дискретное косинус-преобразование
Любое прямоугольное изображение можно представить как массив численных значений, которые каким-то образом передают такие признаки изображения, как интенсивность, тон и цвет (более подробно см., например, [17]). Каждое из этих значений называют элементом изображения, или пикселем, и, как мы видели, изображение, чаще всего, состоит из очень большого их количества. Статистика изображения в различных областях может быть совсем разной, поэтому для преобразования предпочтительнее разделить изображение на ряд прилегающих друг ко другу меньших участков с более или менее похожими статистическими характеристиками. Кроме того, меньшие участки позволяют получить большее сжатие из-за большей корреляции между соседними пикселями. Более того, преобразования меньших участков вычислить намного легче. Следовательно, базовый блок стандарта JPEG состоит из квадрата размером 8x8 пикселей, следовательно, все изображение делится на блоки размером 8x8 пикселей, непосредственно соседствующих друг с другом.
Эти блоки размером 8x8 пикселей двумерны (2D), поэтому для их преобразования подходит двумерное ДКП. Его можно получить, если сперва вычислить ДКП каждой горизонтальной строки пикселей, затем заменить горизонтальные строки пикселей компонентами ДКП (горизонтальное ДКП), вычислить ДКП столбцов и заменить каждый столбец его ДКП (вертикальное ДКП). Поскольку частоты компонентов горизонтального ДКП увеличиваются слева направо, а вертикального — сверху вниз, то в получающемся в результате двумерном ДКП самые низкие частоты находятся в его верхней левой части, а самые высокие частоты — в нижней правой. Поскольку амплитуда низкочастотных компонентов, как правило, больше, чем у высокочастотных, то в верхней левой части отображения содержатся относительно большие значения, а в нижней правой — малые. В стандарте JPEG двумерное ДКП задается так [17]:
S(v, и) = -С^С^и) У^ s(y, a;) cos{(2a; + 1)итг/16} cos{(2y + 1 )г?тг/16}, (3.91)
где S(u, и) — коэффициенты двумерного ДКП,
ОД =ОД =1/Л11/Л1для v = Одля v > 0 ’для v = Одля v > 0 ’ОД = ( 1/х^I 1ОД = ( 1/х^I 1для и = Одля и = Одля и > О ’для и > О ’
ОД =
ОД =
1/Л
1
1/Л
1
для v = О
для v > 0 ’
для v = О
для v > 0 ’
ОД = ( 1/х^
I 1
ОД = ( 1/х^
I 1
для и = О
для и = О
для и > О ’
для и > О ’
a s(y, ж) — значение пикселя из блока размером 8x8 пикселей.
Обратное двумерное ДКП, необходимое для восстановления изображений, задается как
s(y, ж) = - У^ У^ C^C^S^v, и) соз{(2ж + 1)шг/16} cos{(2y + l)t?7r/16}. (3.92) u=0 у=0
Как и для ДКП, существуют быстрые двумерные ДКП [17].
Квантование коэффициентов двумерного ДКП
Теперь каждый из 64 коэффициентов ДКП S(y, и) квантуется отдельно с помощью устройства однородного квантования (см. раздел 2.4.2). У каждого из 64 устройств квантования разный шаг квантования. Каждый коэффициент нормируется на шаг своего устройства квантования, а результат округляется до ближайшего целого числа. В результате этой процедуры определяется массив целых чисел, содержащий некоторое количество нулей, преимущественно в нижней правой части массива.
Кодирование
Верхний левый коэффициент в массиве соответствует члену постоянного тока в двумерном ДКП. Он описывает средний уровень сигнала для блока 8 х 8, и его значение обычно не очень быстро изменяется при переходе к соседнему блоку. Следовательно, этот коэффициент рассматривается отдельно от других коэффициентов переменного тока (см. рис. 3.16). Он кодируется с помощью дифференциальной импульсно-кодовой модуляции (ДИКМ) и ему присваивается значение разности между его значением и значением коэффициента постоянного тока предыдущего блока размером 8x8 пикселей. В результате, как правило, получаются относительно небольшие значения.
Коэффициенты переменного тока расположены последовательно в зигзагообразном порядке в массиве размером 8x8 пикселей (этот зигзаг показан на рис. 3.17). Последовательность строится согласно номерам в массиве с расположением двумерных коэффициентов в нисходящем порядке.
После этого оба набора коэффициентов кодируются (см. рис. 3.16), в результате чего данные сжимаются еще больше. Если попадаются длинные серии нулей, их можно сжать с помощью серийного кодирования. При таком кодировании просто показывается, сколько нулей в серии. Если подобная серия встречается в конце зигзага или блока, используется кодовое слово. Остальные коэффициенты кодируются с помощью кода Хаффмана по стандартной последовательной схеме или с помощью арифметического
ОI5614152728 '
2471316262942
38121725304143
911182431404453
1019233239455254
2022333846515560
2134374750565961
3536484957586263
Рис. 3.17. Зигзагообразная последовательность двумерного ДКП
кода по схеме расширенного ДКП. Оба кода содержат кодовые слова различной длины, причем чаще всего встречаются самые короткие кодовые слова. Это снижает число битов, которые будут передаваться, или, другими словами, увеличивает степень сжатия. Эти два кода самые эффективные, т.е. они передают максимум информации с помощью наименьшего количества битов. В коде Хаффмана используется оптимальный набор кодовых слов, которые содержат целое число информационных битов. При использовании арифметического кодирования сжатие увеличивается приблизительно на 10%. Используется один из видов однопроходного адаптивного кодирования, при котором список кодовых слов динамически адаптируется к данным, которые нужно закодировать. Впрочем, темы, касающиеся теории информации и кодирования, в данной книге рассматриваться не будут.
Примеры-. _ _ _
Пример 3.8
Первая четверка дискретных значений сигнала напряжения с шириной полосы 10 Гц, дискретизованного с частотой 125 Гц, — (0,5; 1; 1; 0,5). Покажите, как можно получить ДКП-образ этой последовательности с помощью быстрого преобразования Фурье, и, следовательно, найдите Фурье-образ этих данных.
Решение
На рис. 3.18 приведена функциональная схема БПФ. Имеем
Х(0) = 0(0) + W4oH(O) = 0(0) + Я(0), 0(0) = х(0) + W“x(2) = 1(0) + х^2\ Н^ = х(1) + ^>(3) = х(1) + 1(3).
Поскольку W° = 1, подставив соответствующие значения, получаем
Х(0) = а?(0) + а?(2) + а?(1) + а?(3) =
= 0,5 + 1 + 1+ 0,5 = 3,
Х(1) = 0(1) + И^Я(1),
0(1) = 1(0) - W°x(2) = i(0) - 1(2),
Я(1) = х(1) - ^(3) = х(1) - а:(3).
Рис. 3.18. Функциональная схема БПФ (пример 3.8)
Теперь WN = е~2,п/м и> следовательно, W^ = е-2”/4 = е-7"/2. При подстановке этих выражений получаем
Х(1) = т(0) - х^ + е-"/2[т(1) - т(3)] =
0,5 - 1 + [cos ^^ — г sin ^)] (1 ~ 0,5) =
= 0,5 - 1 + (0 - г)0,5 = -0,5 - гО, 5 = -0,5(1 + г),
Х(2) = G(0) - ИЗДО) =
= G(0) - Н^ = т(0) + ж(2) - [т(1) + т(3)] =
= 0,5 + 1-(1+0,5) = 0,
Х(3) = G(l) - W^H^ =
= z(0) - ж(2) - е-^2[т(1) - т(3)] =
= 0,5 — 1 — [cos ^^ — г sin ^^ (1 — 0,5) =
= -0,5 - (-г)0,5 = -0,5 + гО, 5 = 0,5(-1 + г).
Следовательно, Х(^ = {3; -0,5(1 + г); 0; 0,5(-1 + г)}.
Если интервал дискретизации Т маленький, то
ПФ = ТДПФ,
где ПФ — это преобразование Фурье. Здесь Т = 1/125 с = 0,008 с. Период сигнала равен 1/10 с = 0,1 с; следовательно,
т 0,008 „,
= —- = 0,08« 1, период U, 1
и ПФ = ТДПФ будет хорошим приближением, так что
ПФ = {0,024; -0,004(1 + г); 0; 0,004(-1 + г)}.
Пример 3.9
В системе сжатия данных информация вначале преобразовывается, а затем преобразованные значения ограничиваются пороговым значением 0,375. Рассматриваются два преобразования: дискретное косинус-преобразование Хс(/г), которое задается как
Х^ = ^ ^ a+cos’ к = 0’
71=0''
и преобразование Уолша Хк, которое задается как
1 N-1
— ^^ХЦк,^, А: = 0,1,..., jV — 1.
i=0
Предположив, что в результате получается последовательность данных {1; 2; 0; 3}, определите
какое из двух преобразований в этом случае эффективнее для сжатия данных;
максимальное достижимое сжатие данных (в процентах).
Найдите обратное преобразование данных, сжатых с помощью преобразования Уолша, и сравните с исходной последовательностью данных.
Решение
Для ДКП с т0 = 1, Ti = 2, т2 = 0, т3 = 3.
Хс(0) = |(т0 cos 0 + Т! cos 0 + т2 cos 0 + т3 cos 0) =
+ 2 + 0 + 3) = ^ = 1,5,
44
,3\
1 3
= 4£t„cos
1414/тг\/ 2тг\/ Зтг
1
4
1
4
То + Tj cos ^—J + т2 cos I — I + т3 cos ( —
= |[1 + 2 х 0 + 0 х (-1) + 3 х 0] =0,25,
X(2) = ^ t0 cosX(2) = ^ t0 cos4тг х 0 X/ 4тг х 1X/ 4тг х 2
X(2) = ^ t0 cos
X(2) = ^ t0 cos
+ Tj cos —-— + т2 cos —-—
4 /\ 4 /\ 4
/ 4тг х 3
+т3 cos —-—
\ 4
= |(т0 - Tj + т2 - т3) = ^(1 - 2 + 0 - 3) = -1,
.. 1/6тгх0\/6тг\/6тгх2\
Лс(3) =- Zq COS I ) + Ху COS I + ^2 COS I +
4\ 4 /\ 4 /\ 4 /
/ бтг х 3
+z3 cos — \ 4
= ^ [1 + 2 х 0 + 0 х (-1) + 3 х 0] = 0,25.
Следовательно,
ДКП = {1,5; 0,25;-1; 0,25}.
Значения, которые останутся после сравнения с пороговым значением (|значения| > 0,375), — это 1,5 и —1.
Для преобразования Уолша, которое рассчитывалось в разделе 3.8.2, Хк = (1,5; 0; 0,5;—!}, так что в этом случае после сравнения с порогом останутся значения 1,5, 0,5 и — 1. Следовательно, в этом случае ДКП обеспечивает более эффективное сжатие данных.
Если принять, что эффективность сжатия данных т] задается как
(ип - шт) х 100%л =,
ип
где ИП — число элементов в исходной последовательности, ПП — число элементов данных в преобразованной последовательности, то
4-2
Л = -^- х 100% = 50%.
Наконец, данные, сжатые с помощью преобразования Уолша, — это последовательность (1,5; 0; 0,5; —1}. Обратное преобразование задается уравнением (3.70):
N-1
Xi = ^ ^fcWAL(fc, г), г = 0,1,..., N - 1, i=0
Xi = [ 1,5 0 0,5Xi = [ 1,5 0 0,51111111111-1-111-1-11 11 1-1 -1-1 1-1 -1-1 11 -11 -1= [ 1 2 0 3 ] .= [ 1 2 0 3 ] .
Xi = [ 1,5 0 0,5
Xi = [ 1,5 0 0,5
1
1
1
1
1
1
1
1
1
1
-1
-1
1
1
-1
-1
1 1
1 1
-1 -1
-1 1
-1 -1
-1 1
1 -1
1 -1
= [ 1 2 0 3 ] .
= [ 1 2 0 3 ] .
Результат идентичен исходной последовательности. Это объясняется тем, что Xi = 0 < 0,375, и, хотя этот элемент не передается, в обратном преобразовании он появляется как 0 — точное значение. Как правило, восстановленная последовательность — это только приближение исходной.
Задачи
Найдите представление периодических сигналов, изображенных на рис. 3.19, в виде ряда Фурье.
Найдите представление периодических сигналов, изображенных на рис. 3.19, в виде комплексного ряда Фурье.
Покажите, что амплитуды, найденные в задаче 3.1, согласуются с амплитудами, найденными в задаче 3.2.
Постройте графики амплитудного и фазового спектров компонентов Фурье для сигналов, изображенных иа рис. 3.19.
Рассчитайте амплитуду и спектральную плотность энергии сигнала напряжения v(t), который задается как
и(0 = *и(0 = *4t + А-^t + A04t + А-^t + A0—г < t < 0—г < t < 0О < t < тО < t < тт < t < —тт < t < —т
и(0 = *
и(0 = *
4t + А
-^t + A0
4t + А
-^t + A0
—г < t < 0
—г < t < 0
О < t < т
О < t < т
т < t < —т
т < t < —т
где Л = 5 В, а т = 20 мс.
3.6.3.6.Найдите спектральную плотность энергии и фазовый спектр сигнала v(t), который задается как
3.6.
3.6.
v = J 2sin № ((+ т)]1 оv = J 2sin № ((+ т)]1 о_т <t<T4 - [ - 4в остальных случаях_т <t<T4 - [ - 4в остальных случаях
v = J 2sin № ((+ т)]1 о
v = J 2sin № ((+ т)]1 о
_т <t<T
4 - [ - 4в остальных случаях
_т <t<T
4 - [ - 4в остальных случаях
где Т = 0,0167 с.
Постройте график спектральной плотности энергии функции
w(t) = 1w(t) = 1k 0k 0sin №(<+¥)]sin №(<+¥)]1,0sin[^(t-S)]1,0sin[^(t-S)]
w(t) = 1
w(t) = 1
k 0
k 0
sin №(<+¥)]
sin №(<+¥)]
1,0
sin[^(t-S)]
1,0
sin[^(t-S)]
где Т — 4 с.
Найдите ДПФ последовательности данных {0,1,1,0} и проверьте правильность вашего ответа по ОДПФ.
Вычислите размерности X(fc) и Х2(к\ Затем найдите и постройте график энергетического спектра последовательности данных {0,1,1,0}, ДПФ которой было найдено в задачи 3.8.
Пусть последовательность (0,1,1,0} из задачи 3.8 представляет собой оцифрованные элементы выборки, взятые из сигнала напряжения, дискретизованного с частотой 125 Гц. Найдите спектральную плотность энергии и фазовый спектр Фурье-образа этой последовательности данных.
V
в)
-(2m+l)r
(m+l)r (2т + 2)т
Рис. 3.19. Периодические сигналы для задач 3.1-3.4
Воспользуйтесь свойством сдвига по времени ДПФ и решением задачи 3.8, чтобы найти амплитудный и фазовый спектры временного ряда {0,0,0,0,0,1,1,0} для данных, дискретизованных в моменты времени t = 0,1,2,..., 7 мс.
Воспользуйтесь результатом задачи 3.9 и докажите теорему Парсеваля для данных {0,1,1,0}.
Воспользовавшись теоремой о корреляции, найдите круговую корреляцию последовательностей данных {1,1,0,!} и {1,0,0,1}. Постройте график зависимости корреляционной функции от номера задержки }.
Воспользуйтесь теоремой о корреляции для вычисления линейной корреляции последовательностей данных {1,1,0,!} и {1,0,0,1}. Постройте график зависимости корреляционной функции от номера задержки и сравните результат с решением задачи 3.13. Объясните различия, если они будут.
Найдите ДПФ последовательности данных {0,1,1,0}, воспользовавшись алгоритмом БПФ с временной децимацией (алгоритм Кули-Тьюки). Сравните ответ с результатом задачи 3.8. Сравните число операций комплексного сложения и умножения в этих двух методах.
Найдите ОБПФ результата задачи 3.15 и убедитесь, что получится последовательность данных {0,1,1,0}.
Найдите БПФ последовательности данных {0,0,1,1,1,1,0,0} и постройте график амплитудного и фазового спектров. Проверьте ответ, вычислив ОБПФ и получив исходную последовательность.
Напишите программу для вычисления БПФ и ОБПФ. Проверьте БПФ путем вычисления ДПФ последовательностей {0,1,1,0} из задачи 3.8 и {1,1,0,!} и {1,0,0,!} из задачи 3.13. Проверьте ОБПФ путем вычисления ОДПФ ДПФ- образов.
Воспользуйтесь программой для вычисления БПФ и найдите 1024-точечное ДПФ сигналов из задач 3.5 и 3.7. Постройте их энергетические и фазовый спектры и сравните с графиками, полученными в решениях задач 3.5 и 3.7.
Воспользовавшись 1024-точечным БПФ, найдите и постройте энергетический спектр прямоугольного импульса с амплитудой 5 В и шириной т — 6 с. Сравните полученный результат с результатом задачи 3.7.
1. Воспользуйтесь теоремой о свертке (уравнение (3.37)) и найдите свертку спектров двух пар сигналов:
vs = 81п(2тг х 100t) и импульса с единичной высотой иш с центром в точке t = 0 и с шириной 2s;
и, = 8ш(2тг х 100t) и
Г cos(2tt х 0,25t) при 1 < t < — 1 с
10в остальных случаях.
Если Фурье-компоненты сигнала получены с помощью ДПФ дискретных данных, то в действительности используется элемент выборки сигнала длиной (N—1)Т, где N — количество данных, аТ — промежуток времени между
элементами выборки. Говорят, что сигнал был вырезан с помощью окна длиной (N - 1)Т. Тогда искомый спектр задается сверткой спектра сигнала со спектром окна. Обозначив для сигналов из пункта 1 через vs сигнал, а через ■ию — окно данных, прокомментируйте, насколько эти два окна подходят для определения элементов выборки сигнала.
Найдите дискретное косинус-преобразование, дискретное преобразование Уолша и дискретное преобразование Адамара последовательности данных {0,1;
—0,2; 0,3;—0,4; 0,5; 1,5; 2; 1,5; 0,5;—0,4; 0,3;—0,2; 0,1}. Расположите их по степени предпочтения с точки зрения эффективности сжатия данных с выбранным пороговым значением 0,35.
Дискретные значения напряжения, полученные путем сканирования распределения интенсивности на фотоизображении, равны {3,2; 3,6; 3,3; 2,9; 1,7; 1,6;
1,8; 1,5}. Обсудите преимущества преобразования этих данных с помощью БПФ и ДПУ.
Дополните рассуждения задачи 3.23, включив число возможных способов сжатия (включая применение ДКП).
Создайте таблицу, показывающую преимущества, недостатки и области применения быстрого преобразования Фурье, дискретного преобразования Уолша, дискретного косинус-преобразования и дискретного преобразования Адамара.
Задачи для решения с помощью MATLAB
1. Воспользуйтесь соответствующей функцией MATLAB, чтобы найти прямым методом коэффициенты ДПФ следующей восьмиточечной последовательности с дискретизацией во времени
4п) = {4,2,1,4,6,3,5,2}.
С помощью соответствующей функции MATLAB найдите дискретную во времени последовательность, которая соответствует следующим коэффициентам ДПФ:27+0.
-4,12132 + 3,292893г
4 + г
0,12132 - 4,707107г
5 + 0г
0,12132 + 4,707107г
4 — г
— 4,12132 — 3,292893г
1. С помощью MATLAB найдите 32-точечное БПФ дискретной во времени последовательности, которая задается как
/ х Г 1, п = 0,1,.... 15
ж(п) = <.
у 1 0, п = 16,17,..., 31
Найдите с помощью MATLAB 64-точечное БПФ последовательности данных из п. 1.
Сравните результаты пп. 1 и 2.
Объясните, почему двоичным алгоритмом БПФ можно пользоваться для оценки частотной характеристики дискретной по времени системы с функцией z- переноса в виде рационального полинома. Проиллюстрируйте ответ, воспользовавшись функцией БПФ MATLAB, чтобы найти частотную характеристику дискретного во времени фильтра со следующей передаточной функцией, запи
санной на z-плоскости:санной на z-плоскости:1- 1,618г"1 + г"21- 1,618г"1 + г"21 - 1,516г"1 +0,87z"2'1 - 1,516г"1 +0,87z"2'
санной на z-плоскости:
санной на z-плоскости:
1- 1,618г"1 + г"2
1- 1,618г"1 + г"2
1 - 1,516г"1 +0,87z"2'
1 - 1,516г"1 +0,87z"2'
Назовите все практические следствия, которые могут иметь к этому отношение.
Литература
Ahmed N. and Rao К. R. (1975) Orthogonal Transforms for Digital Signal Processing. Berlin: Springer.
Bailey D. J. and Birch N. (1989) Image compression using a discrete cosine transform image processor. Electronic Engineering, July, 9-44.
Beauchamp K. G. (1987) Transforms for Engineers. A Guide to Signal Processing. Oxford: Clarendon.
Burrus C. S. (1998) Introduction to Wavelets and Wavelet Transforms: A Primer. Englewood Cliffs NJ: Prentice-Hall.
Burrus C. S. and Parks T. W. (1985) DFT/FFT and Convolution Algorithms. Theory and Implementation. New York: Wiley.
Chan Y. T. (1995) Wavelet Basics. Boston MA: Kluwer Academic.
Chen W., Smith С. H. and Fialick S. C. (1977) A fast computational algorithm for the discrete cosine transform. IEEE Trans. Communications, 25, 1004-1009.
Chui С. K. (1992) An Introduction to Wavelets. Boston MA: Academic Press.
Cooley J. W. and Tukey J. W. (1965) An algorithm for the machine calculation of complex Fourier series. Mathematics Computation, 19, 297-301.
Daubechies I. (1990) The wavelet transform, time-frequency localisation and signal analysis. IEEE Trans. Information Theory, 36(5), 961-1005.
Daubechies 1. (1992) Ten Lectures on Wavelets. Philadelphia: The Society for Industrial and Applied Mathematics.
Gentleman W. M. and Sande G. (1966) Fast Fourier transforms for fun and profit. In Fall Joint Computing Conf, AFIPS Proc., 29, 563-578.
Mallat S. G. (1989) A theory for multiresolution signal decomposition: the wavelet representation. IEEE Trans. Pattern Analysis and Machine Intelligence, 11(7), 674-693.
Mallat S. and Hwang W. L. (1992) Singularity detection and processing with wavelets. IEEE Trans. Information Theory, 38(2), 617-643.
McClellan J. H. and Rader С. M. (1979) Number Theory in Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Narasinka M. J. and Petersen A. M. (1978) On the computation of the discrete cosine transform. IEEE Trans. Communications, 26, 934-936.
Pennebaker W. B. and Mitchell J. L. (1993) JPEG Still Image Data Compression Standard. New York: Van Nostrand Reinhold.
Pitas I. (1993) Digital Image Processing Algorithms. New York: Prentice-Hall.
Rader С. M. (1968) Discrete Fourier transform when the number of data samples is prime. IEEE Proc., 56, 1107, 1108.
Rosenfield A. and Thurston M. (1971) Edge and curve detection for visual scene analysis. IEEE Trans. Computing, 20, 562-569.
Saatchi M. R., Gibson C. and Rowe J. K. W. (1997) Adaptive multiresolution analysis based evoked potential filtering. IEE Proc.-Sci. Meas. Technol., 144(4), July, 149-155.
Signal Processing Committee (ed.) (1979) Programs for Digital Signal Processing. New York: IEEE.
Srinivassan R. and Rao K. R. (1983) An approximation to the discrete cosine transform. Signal Processing, 5, 81-85.
Strum R. D. and Kirk D. E. (1988) First Principles of Discrete Systems and Digital Signal Processing. Reading MA: Addison-Wesley.
Thakor N. V., Xin-Rong G., Yi-Chun S. and Hanley D. F. (1993) Multiresolution wavelet analysis of evoked potentials. IEEE Trans. Biomedical Engineering, 40(11), 1085-1093.
Winograd S. (1978) On computing the discrete Fourier transform. Mathematics Computation, 32, 175-199.
Yip P. and Ramamohan K. (1987) In Handbook of Digital Signal Processing Engineering Applications (Elliott D. E. (ed.)). New York: Academic Press.
Zhang J. and Zheng C. (1997) Extracting evoked potentials with the singularity detection technique. IEEE Engineering in Medicine and Biology. 155-161.
Приложения
.А. Программа на С для прямого вычисления ДПФ
Приведенная ниже программа на языке С предназначена для прямого вычисления ДПФ или ОДПФ дискретной во времени последовательности аДп):
JV-1
X(k) = ^x(n)Wnk,k = 0A,...,N -1 ДПФ, (ЗАЛ, а)
п=0
IV—1
т(п) = 52 XWw~nk ОДПФ,(ЗАЛ>
где W = el-2"^N, ап — длина последовательности.
Входная последовательность ж(п) должна представляться в комплексной форме (действительная и мнимая части). Для последовательности действительных чисел мнимые части полагаются равными нулю. Основная функция DFTD.c приведена в программе ЗАЛ, а функция, которая вычисляет ДПФ или ОДПФ, — в программе ЗА.2. Для чтения входной последовательности данных и сохранения преобразованных данных нужны две функции: read_data () и save_data () (программа ЗА.З). Входные данные хранятся во входном файле coef f. dat, а выходные записываются в файл df tout. dat.
Программа ЗАЛ. Основная функция dftd.c для вычисления ДПФ
/**/
/*Программа дляпрямого вычисления коэффициентов ДПФ*/
/*используются 3другиефункции*/
/**/
/*Э. Айфичер, июль 1992года*/
/**/
/**/
♦include "dspl.h"
♦include "dft.h"
main() {
extern long npt;
extern int inv;
printf("выберите тип преобразования\п");
printf("n");
printf("О для прямого ДПФ\п");
printf("1 для обратного ДПФ\п");
scanf("%d",&inv);
readdata();
dft();
savedata();
exit();
)
♦include "dft.c";
♦include "rdata.c";
♦include "sdata.c";
Программа 3A.2. Функция языка С для прямого вычисления ДПФ дискретной во времени последовательности. Функция записана в отдельном файле
/*
*/
/* Функция для прямого вычисления ДПФ дискретной во
времени */
/* последовательности
*/
/*
*/
/* Э. Айфичер, 31.10.91
*/
/*
*/
/*
*/
voiddft()
<
extern int inv;
extern long npt;
long k, n;
double WN, wk, c, s, XR[size], XI[size];
extern complex x[size];
WN=2*pi/npt;
if(inv==l)
WN=-WN;
for(k=0;k<npt;++k)(
XR[k]=0.0; XI[k]=0.0;
wk=k*WN;
for(n=0;n<npt;++n){
c=cos(n*wk);s=sin(n*wk);
XR[k]=XR[k]+x[n+l].real*c+x[n+l],imag*s;
XI[k]=XI[k]-x[n+l].real*s+x[n+l],imag*c;
}
if(inv==l){ /* разделить на N для ОДПФ */
XR[k)=XR[k]/npt;
XI[k]=XI[k]/npt;
}
}
for(k=l;k<=npt;++k){ /* сохранить преобразованные данные в x */ х[к].real=XR[k-l];
х[к].imag=XI[к-1];
}
2
Программа 3 А.З. Функция для чтения данных, функция для записи преобразованных данных в файл на диске, заголовочный файл, содержащий постоянные структурные определения, и заголовочный файл, содержащий общие объявления и переменные
/**/
/*Функциядлячтенияданныхвкомплексномформатедля ДПФ или БПФ */
/**/
/*Э.Айфичер,последняямодификация:июль1992года*/
/**/
/**/
voidread_data()
extern long npt;
int n;
extern complex x[size];
for(n=0;n<size;++n)(
x[n] .real=0;
x[n].imag=0;
}
if((in=fopen("coeff.dat","r"))==NULL){ printf("невозможно открыть файл coeff.dat\n");
exit(1);
}
fscanf(in,"%ld",&npt);
for(n=l;n<=npt;++n){
fscanf(in, %If%If", &x[n].real,&x[n].imag);
}
fclose(in);
}
voidsave_data()/*имя файла sdata.c */
(
long k;
int kl;
extern long npt;
extern complex x[size];
if (
(out=fopen("dftout.dat","w"))==NULL){
printf("невозможно открыть файл dftout.dat\n"); exit(1);
}
fprintf(out,"k\tXR(k)\t\tXI(k)\n");
fprintf(out,"\n");
for(k=l;k<=npt;++k){
kl=k-l;
fprintf(out,"%d,\t%f\t%f\n", kl,x[k].real,x[k].imag);
}
fclose(out);
}
/* Этот
1 файл содержит общие объявления и структуры. */
#include
<stdio.h>
#include
<math.h>
#include
<dos.h>
#define
size
600
#define
Pi
3.141592654
#define
maxbits
30
typedef
struct
{
double
real;
double
imag;
double
modulus;
double
angle;
}complex;
/* имя
файла:
dft.h */
void
dft();
void
fft();
void
realdata ();
void
savedata();
int
inv;
long
npt;
complex
x[size];
FILE
*in, *out, *fopen();
Пример ЗАЛ
Воспользуйтесь программой прямого вычисления ДПФ и найдите коэффициенты следующей восьмиточечной дискретной во времени последовательности:
х(п) = {4,2,1,4,6,3,5,2}
Файл входных данных, созданный для этой задачи с помощью ПК программы edlin (для этой цели можно использовать и другие текстовые процессоры), имеет следующий вид:
8
О
О
О
О
О
3 о
5 О
2 О
В первой строке задается длина последовательности данных.
ДПФ данных, полученное с помощью приведенной выше программы, имеет такой
вид:
к
XR(k)
ХЦЦ
0
27,000000
0,000000
1
-4,121320
3,292893
2
4,000000
1,000000
3
0,121320
-4,707107
4
5,000000
-0,000000
5
0,121320
4,707107
6
4,000000
-1,000000
7
-4,121320
-3,292893
Пример ЗА.2
С помощью программы вычисления ДПФ найдите дискретную во времени последовательность, соответствующую приведенным выше коэффициентам ДПФ. Входные данные имеют следующий вид:
8 27,000000 -4,121320 4,000000 0,121320 5,000000 0,121320 4,000000
-4,121320
0,000000
3,292893
1,000000
-4,707107
-0,000000
4,707107
-1,000000
-3,292893
Используя программу, получаем на выходе последовательность, идентичную дискретной последовательности в примере ЗА. 1.
Таблица ЗАЛ. Входная последовательность комплексных чисел
п
Действительная часть
Мнимая часть
0
0,100000501
0,0
1
0,900000500
0,300000500
2
0, 720000500
0,540000500
3
0,486000500
0, 702000500
4
0,226800500
0, 777600500
5
-0,2916005-01
0,767880500
6
-0,256608500
0,682344500
7
-0,435650500
0,537127500
8
-0,553224500
0,352719500
9
-0,603717500
0,151480500
10
-0,588789500
-0,4478285-01
И
-0,516476500
-0,216941500
12
-0,399746500
-0,350190500
13
-0,254714500
-0,435095500
14
-0,9871445-01
-0,467999500
15
0,5155695-01
-0,450814500
16
0,181645500
-0,390265500
17
0, 280560500
-0,296745500
18
0, 341528500
-0,182903500
19
0,362246500
-0,6215395-01
20
0,344667500
0,5273525-01
21
0,294380500
0,150862500
22
0,219684500
0,224090500
23 .
0,130488500
0,267586500
24
0,3716375-01
0,279974500
25
-0,5054405-01
0,263125500
26
-0,124428500
0,221649500
27
-0,178480500
0,162156500
28
-0,209279500
0,9239655-01
29
-0,216070500
0,2037325-01
30
-0,200575500
-0,4648515-01
31
-0,166572500
-0,102009500
Пример ЗА.З
В третьем примере используется последовательность комплексных чисел из работы [IEEE, 1979]:
ж(п) = Q",n = 0,l,...,31,
где Q = 0,9 + г’0,3.
Входная последовательность данных зс(п) и ее ДПФ Х^к\ полученное с помощью программы прямого вычисления ДПФ, приведены в табл. ЗАЛ и ЗА.2 соответственно.
Таблица ЗА.2. Преобразованный выход (пример ЗА.2)
0,693972
3,499714
2,792268
8,050456
9,402964
-9,135013
1,866446
-3,833833
1,131822
-2,234158
0,904794
-1,534631
0,799557
-1,139607
0,739607
-0,882315
0,700858
-0,698566
0,673577
-0,558478
0,653112
-0,446244
0,636987
-0,352691
0,623790
-0,272085
0,612613
-0,200642
0,602885
-0,135703
0,594200
-0,075314
0,586276
-0,017948
0,578899
0,037651
0,571898
0,092607
0,565139
0,147983
0,558490
0,204882
0,551858
0,264523
0,545134
0,328363
0,538217
0,398257
0, 531000
0,476679
0,523403
0,567133
0,515361
0,674850
0,506928
0,808100
0,498469
0,980906
0,491388
1,219210
0,490730
1,577083
0, 517355
2,188832
З.Б. Программа на С для двоичного БПФ с временной децимацией
Приведенная ниже программа вычисления БПФ представляет собой реализацию на С двоичного БПФ с временной децимацией [9]. Программа вычисляет ДПФ и ОДПФ дискретной во времени последовательности согласно определению (ЗА.1). Программа состоит из главной функции dftf .с и трех функций: fft(), readdata() и savedata (). Как и при вычислении непосредственно ДПФ, все функции записаны в отдельных файлах и объединяются при компиляции с помощью вызова (include) из главной функции. Функции readdata() и savedata() используются для чтения данных и записи преобразованных данных в файл. Эти два файла идентичны файлам, которые применялись для прямого вычисления ДПФ. Главная программа dftf. с и функция fft () приведены в программах ЗБ.1 и ЗБ.2 соответственно.
Использование любого из примеров, приведенных в приложении ЗА, с программой для вычисления БПФ дает такие же результаты, что и с программой для прямого вычисления ДПФ. Доказать это утверждение предлагается читателям в качестве самостоятельного упражнения.
Программа ЗБ.1. Главная функция dftf.c для вычисления ДПФ с помощью БПФ с временной децимацией
/**/
Программа для вычисления коэффициентов ДПФ с помощью БПФ с ВД используются 3 другие функции
"dspl.h "dft.h""dspl.h "dft.h"Э. Айфичер, июль 1992 года
"dspl.h "dft.h"
"dspl.h "dft.h"
♦include ♦include main()
(
eKtern long npt;
extern int inv;
printf("выберите тип преобразованияХп");
printf("\n");
printf("0 для прямого ДПФХп");
printf("1 для обратного ДПФХп");
scanf("%d",&inv);
readdata();
fft();
savedata();
exit();
}♦include♦include♦include}♦include♦include♦include"fft.c"; "rdata.c "sdata.c"fft.c"; "rdata.c "sdata.c
}
♦include
♦include
♦include
}
♦include
♦include
♦include
"fft.c"; "rdata.c "sdata.c
"fft.c"; "rdata.c "sdata.c
Программа ЗБ.2. Реализация на С двоичного алгоритма БПФ с временной децимацией
/**/
/*имя файла: fft.c*/
/**/
/*Э. Айфичер, июль 1992года*/
/**/
/*функция вычисляетДПФпоследовательности с*/
/*помощью двоичногоБПФ*/
/**/
void fft() {
int sign;
long m, irem, 1, le, lei, k, ip, i, j ;
double ur,ui,wr,wi,tr,ti,temp;
extern long npt;
extern complex x[size];
/* перестановка с замещением данных, определяемая обратным порядком битов */
>1;
for(1=1;i<npt;++i) { if(Kj) {
tr=x[j].real;ti=x[j].imag;
x[j].real=x[1].real;
x[j].imag=x[ 1 ] .imag;
x[i].real=tr;x[i],imag=ti;
k=npt/2;
while(k<j) { j=j-k; k=k/2; } } else{ k=npt/2; while(k<j) { >j-k; k=k/2; }
) j=j+k;
}
/* считается количество каскадов: m=log2(npt) и выби] либо ОБПФ */
m=0;irem=npt;
while(irem>l) { irem=irem/2; m=m+l;
}
if(inv==l) sign=l;
else
sign=-l;
/* вычисляется БПФ для каждого каскада*/ for(l=l;K=m,++l) (
le=pow(2,1);
lel=le/2;
ur=1.0; ui=0;
wr=cos(pi/lel);
wi=sign*sin(pi/lel);
for(j=l;j<=lel;++j)( i=j;
while(i<=npt)( ip=i+lel; tr=x[ip].real*ur-x[ip],imag*ui; ti=x[ip].imag*ur+x(ip].real*ui;
x[ip],real=x[i].real-tr;
x[ip].imag=x[i].imag-ti;
x[i],real=x[i].real+tr;
x[i].imag=x[i].imag+ti; i=i+le;
}
temp=ur*wr-ui*wl;
ui=ui*wr+ur*wi;
ur=temp;
)
)
/* если нужно найти БПФ, каждый коэффициент делится на npt */ if(inv=-l) {
for(i=l;i<=npt;++i) (
x[i].real=x[i].real/npt;
x [ i ] .imag=x[ 1 ] .imag/npt;
}
}
}
З.В. ДПФ и БПФ в программном пакете MATLAB
Ключевыми функциями в программном пакете MATLAB и MATLAB Signal Processing Toolbox для выполнения одномерных ДПФ и БПФ являются функции dftmtx, f ft и ifff. В Toolbox есть также функции для дискретного косинус-преобразования и двумерного БПФ.
Для вычисления дискретного преобразования Фурье A-точечной последовательности данных в виде вектора х можно использовать функцию dftmtx, которая имеет такой синтаксис:
x=x*dftmtx(N)
Функция dftmtx вычисляет и возвращает коэффициенты поворота в виде комплексной матрицы порядка N х N. Затем она умножается на последовательность данных х, что и дает дискретное преобразование Фурье этой последовательности.
Обратное ДПФ можно найти с помощью команды conj :
x=X*conj(dftmtx(N))/N
Функция f f t вычисляет ДПФ одномерной последовательности данных с помощью двоичного алгоритма БПФ (если длина данных — 2 в какой-то степени), а функция if ft используется для нахождения обратного ДПФ.
Программу из программного пакета MATLAB (программа ЗВ. 1) можно использовать для чтения данных из файла и непосредственного вычисления прямого и обратного ДПФ. Программу ЗВ.2 можно использовать для вычисления ДПФ или обратного ДПФ по БПФ.
Примеры, иллюстрирующие применение этих программ, можно найти в книге [Ifea- chor, 2001] (подробности см. в предисловии).
Программа ЗВ.1. Реализация в MATLAB прямого вычисления ДПФ
function DFTD
clear all;
% программа для прямого вычисления коэффициентов ДПФ direction=-l; %1 - прямое ДПФ, -1 - обратное ДПФ in=fopen('datain.dat','г') ;
x=fscan( in,'%g %g*, ([2, inf ]));
fclose(in);
x=x(l, :)+x(2,:)*i; % формирование комплексных чисел
if direction==l
y=x*dftmtx(length(x));% вычисление ДПФ
else
y=x*conj(dftmtx(length(x)))/length(x); % вычисление ОДПФ end
% запись/печать результатов out=fopen('dataout.dat','wl) ;
fprint(out,'%g %g\n', [real(y) ;imag(y) ]) ;
fclose(out);
subplot (2,1,1),plot(1: length (x),x); title ('Входной сигнал1) ;
subplot (2,1,2), plot (1: length(y), y); title ('Выходной сигнал') ;
Программа 3B.2. Программа MATLAB для вычисления ДПФ через БПФ
function DFTF
% программа для вычисления коэффициентов ДПФ с помощью БПФ с ВД clear all;
direction=-l; %1 - прямое ДПФ, -1 - обратное ДПФ
in=fopen('datain.dat','r');
x=fscan(in,'%g %g,([2,inf]));
fclose(in);
x=x(l,:)+x(2,:)*i; % формирование комплексных чисел
if direction==l
y=fft(x,length(x))% вычисление ДПФ
else
y=ifft(x,length(x))% вычисление ОБПФ
end
% запись/печать результатов
out=fopen('dataout.dat','wl) ;
fprint(out,'%g %g\n', [real (y); imag(y) ] ) ;
fclose(out);
subplot (2,1,1) ,plot (1: length(x), x); title ('Входной сигнал') ;
subplot (2,1,2), plot (1: length (y), y); title ('Выходной сигнал');
Литература для приложений
Cooley J.W. and Tukey J.W. (1965) An algorithm for the machine calculation of complex Fourier series. Mathematics Computation, 19(90), April, 297-301.
IEEE (1979) Programs for Digital Signal Processing. New York: IEEE Press.
Применение z-преобразования в обработке
44Сигналы и системы дискретного времени208
4
4
z-преобразование209
Обратное z-преобразование214
Свойства z-преобразования229
Некоторые области применения z-преобразования в обработке сигналов 232
Резюме252
Задачи252
Литература260
Дополнительная литература261
Приложения261
Самое удобное средство описания, анализа и проектирования сигналов и систем дискретного времени — это 2-преобразование. В системах дискретного времени оно играет такую же роль, как преобразование Лапласа в системах непрерывного времени.
В этой главе представлены важные аспекты 2-преобразования, причем акцент делается на тех, которые будут использоваться в последующих главах. Особое внимание z-преобразованию уделяется при разработке систем дискретного времени. В число областей применения 2-преобразования входят: описание сигналов и систем дискретного времени, позволяющее без труда регулировать степень их устойчивости и визуализировать их частотные характеристики; анализ ошибок квантования цифровых фильтров и вычисление частотных характеристик систем дискретного времени. Более подробно большая часть областей применения преобразования освещается в последующих главах.
Как и во всех остальных частях данной книги, в этой главе принят практический подход. Для того чтобы читатели могли глубже понять предмет, приводятся алгоритмы и программы на языке С и коды MATLAB. Значительная часть тем, обсуждаемых в этой главе, касается линейных сигналов и системы дискретного времени, поэтому мы начнем с очень краткого обзора основных характерных признаков этого класса сигналов и систем.
Сигналы и системы дискретного времени
Значения дискретного сигнала определяются только при дискретных значениях времени или какой-либо другой соответствующей переменной, например, пространства. Как уже говорилось в главах 1 и 2, такой сигнал может появиться в результате дискретизации сигнала непрерывного времени, взятого через равные отрезки времени пТ, п = 0,1,..., где Т — период дискретизации. Его можно создать и искусственным путем с помощью компьютера и определенного алгоритма. Амплитуда сигнала дискретного времени может быть либо также дискретной (дискретное время, дискретная амплитуда), либо непрерывной.
По традиции сигнал дискретного времени представляют в виде последовательности чисел:
z(n), п = 0,1,...
(4.1, п)
х(пТУ п — 0,1,...
(4.1,6)
хп, п — 0,1,...,
(4.1,в)
где под х(п), х(пГ) или х„ понимается значение сигнала в дискретный момент времени п (или пТ). Для удобства мы будем пользоваться записью х(п) как для значения последовательности в дискретный момент времени п, так и для обозначения самой последовательности, если разница между ними не важна (смысл будет понятен из контекста). Вообще, в ЦОС принято опускать символ Т, поскольку последовательность не всегда является функцией времени (это может быть, например, функция пространства). Иногда Т опускается по той причине, что частота дискретизации для удобства предполагается равной единице (т.е. нормированной).
Система дискретного времени — это, по сути, математический алгоритм, входом которого служит последовательность z(n), а на выходе появляется последовательность у(п). Примерами систем дискретного времени могут служить цифровые контроллеры, цифровые анализаторы спектров и цифровые фильтры. Система дискретного времени может быть линейной или нелинейной, инвариантной относительно времени или изменяющейся со временем. Отметим, что линейные инвариантные относительно времени (ЛИВ) системы формируют значительный класс систем, используемых в ЦОС. Пример — цифровые фильтры, которые подробно рассматриваются в главах 6-8.
Говорят, что система дискретного времени линейна, если она подчиняется принципу суперпозиции. Это означает, что отклик системы на несколько входов равен сумме откликов этой системы на каждый вход в отдельности при отсутствии всех остальных входных сигналов. Например, если вход ii(n) системы дает выход т/1(п), а другой вход z2(n) дает выход т/2(и), то отклик системы на оба входа будет равен
(4.2)(4.2)а^Цп) -f-c^fa) —» a-iUi^ + а^у^пу
(4.2)
(4.2)
где Qi и а2 — произвольные константы.
Говорят, что система дискретного времени инвариантна относительно времени (иногда ее называют инвариантной относительно сдвига), если ее выход не зависит от времени приложения входа. Например, если вход х^п) дает выход т/1(п), то вход т(п — к) даст выход у(п —/с):.
z(n) -+ у(п)(4.3, а)
х(п — к)—+ у(п - к),(4 3, б)
т.е. задержка входного сигнала приведет к такой же задержке выходного сигнала.
Взаимосвязь между входом и выходом ЛИВ-системы задается сверточной суммой
у(п) = У? Цк)х(п - к),(4.4)
где Цк) — импульсная характеристика системы. Значения h(fc) полностью определяют систему дискретного времени во временной области. ЛИВ-система устойчива, если ее импульсная характеристика удовлетворяет условию
•£ Нк)\ <(4.5)
Это условие справедливо, если Цк) имеет конечную длину, или если Цк) стремится к нулю при увеличении к. Более подробно устойчивость рассмотрена в разделе 4.5.7.
Физически реализуемой называется система, которая дает выход только при наличии сигнала на входе. В общем случае, физически реализуемая последовательность дискретного времени хЦ) или импульсная характеристика Цк) системы дискретного времени равны нулю до нулевого момента времени, т.е. х(п) = 0, п < 0 или Цк) = 0, к < 0. Большая часть материала, изложенного в этой книге, касается практических, т.е. физически реализуемых, систем.
z-преобразование
(4.6)(4.6)Определим z-преобразование последовательности х(п), действительное для всех п;
(4.6)
(4.6)
где z — комплексная переменная.
В причинных системах х^п) может быть ненулевым только в интервале 0 < п < ос, и уравнение (4.6) сводится к так называемому одностороннему z-преобразованию:
(4-7)(4-7)X(z) = ^х^г ”•
(4-7)
(4-7)
71 = 0
Рис. 4.1. Причинные и непричииные последовательности дискретного времени
Понятно, что z-преобразование — это степенной ряд с бесконечным количеством членов, поэтому он может не сходиться для всех значений г. Область, в которой z- преобразование сходится, называют областью сходимости (ОС), и в этой области значения X(z) конечны. Не удивительно, что область сходимости определяется свойствами х^п), или (эквивалентно) свойствами X(z), что иллюстрируется ниже на примерах.
Пример 4.1
Найдите z-преобразование и область сходимости всех последовательностей дискретного времени, приведенных на рис. 4.1.
Последовательность на рис. 4.1, а непричинна, поскольку х(п) не равно нулю при п < 0, но она имеет конечную длину. Значения последовательности х(—6) = 0,
z(—5) = 1, x(—4) = 3, z(—3) = 5, x(—2) = 3, r(—1) = 1 и x(0) = 0. Согласно уравнению (4.6) z-преобразование задается как
X^z) = 52 IWz"n =
= z5 + 3z4 + 5z3 + 3z2 + z.
Несложно доказать, что значение Х^ становится равным бесконечности при z = оо. Следовательно, областью сходимости будет вся плоскость z, кроме z = оо.
Последовательность на рис. 4.1, б также непричинна. Она двусторонняя и имеет конечную длину. Значения последовательности х(—3) = 0, х(—2) = 1, х(-1) = 3, ж(0) = 5, z(l) = 3, z(2) = 1 и z(3) = 0. Согласно уравнению (4.6) z-преобразование задается как
^(z) = ^ z(n)z-n =
= z2 4- 3z 4-5 4- 3z 4 4" z 2.
Очевидно, что значение Х^ равно бесконечности при z = 0 или z = оо. Следовательно, в область сходимости не входят только точки z = 0 и z = оо.
На рис. 4.1, в представлена причинная последовательность конечной длины со значениями т(0) = 0, х(1) = 1, ж(2) = 3, z(3) = 5, z(4) = 3, z(5) = 1 и z(6) = 0. Ее z-преобразование задается как
Х3^ = f^ z(n)z-" =
= z-1 4- 3z~2 4- 5z~3 4- 3z”4 4- z~5.
В этом случае X(n) = оо при z = 0. Следовательно, в область сходимости не входит только точка z = 0.
Изображенная на рис. 4.1, г дискретная во времени последовательность математически определяется как
Понятно, что это причинная последовательность бесконечной длины. Согласно уравнению (4.6) z-преобразование этой последовательности задается как
= f; х^пкп =
= 52г n = i+z”1 + z 2 + ---
п—0
Полюс Ли)Полюс Ли)Рис. 4.2. Область сходимости сигналов (пример 4.1, п. 4)Рис. 4.2. Область сходимости сигналов (пример 4.1, п. 4)Область сходимостиОбласть сходимости
Полюс Ли)
Полюс Ли)
Рис. 4.2. Область сходимости сигналов (пример 4.1, п. 4)
Рис. 4.2. Область сходимости сигналов (пример 4.1, п. 4)
Область сходимости
Область сходимости
Это геометрическая прогрессия с общим знаменателем z-1. Прогрессия сходится, если |z-1| < 1 или, что эквивалентно, если |z| > 1. Таким образом, Х^ можно выразить в аналитическом виде, предположив, что |z| > 1:
X(z) = 1 + z-1 + z-2 + ... = 1/(1 - z-1) = z/(z - 1). (4.8)
В этом случае z-преобразование действительно везде за пределами круга единичного радиуса с центром в начале координат (область сходимости; см. рис. 4.2). Можно легко доказать, что если |z| > 1 Х^ сходится, а при |z| < 1 X(z) расходится. Например, если z = 2 (за пределами единичного круга), то прогрессия из правой части уравнения (4.8) при сложении даст 2:
Х^ = 1 + 1/2 + (1/2)2 + (1/2)3 + ... = 2/(2 - 1) = 2,
поскольку очевидно, что это геометрическая прогрессия с общим знаменателем 1/2 и первым членом 1, сумма членов которой равна 2/(2 — 1) = 2. С другой стороны, если z = 1/2 (внутри единичного круга), прогрессия уравнения (4.8) приобретает такой вид:
Х^ = 1+ 1/0,5 +(1/0,5)2 + (1/0,5)3 + ... = 1 + 2 + 4 + 8 + ...,
и видно, что она расходится. На рис. 4.2 видно, что область сходимости (заштрихована) ограничена окружностью |z| = 1, радиус которой равен значению полюса функции X^z\ Значения z, для которых Х^ = оо, называются полюсами функции Х^. Значения z, для которых X^z) = 0, называются нулями функции X(zY
Из вышеприведенных примеров можно сделать вывод о том, что для причинных последовательностей конечной длины z-преобразование сходится везде, кроме точки z = 0. Для причинных последовательностей бесконечной длины z-преобразование сходится везде за пределами наибольшего круга, ограниченного радиусом, равным полюсу функции. Область сходимости устойчивых причинных систем всегда представляет собой круг единичного радиуса (это очень важно, поскольку позволяет описывать системы их частотными характеристиками).
В обычных последовательностях z-преобразования часто приводятся в аналитическом виде, например, в виде таблиц, таких как табл. 4.1. Подобные таблицы полезны также при поиске обратного z-преобразования.
Таблица 4.1. Примеры z-образов некоторых распространенных последовательностей
Номер
Последовательность дискретного времени z(n), п > 0
z-образ X(z')
Область сходимости X(z)
1
Ы(п)
к
везде
2
к
kz z-i
И >1
3
кп
kz _
C^T)7
и>1
4
кп2
kz^z + Ц («~1)3
м>1
5
ке~оп
kz
z-e*°
> е
6
кпе-""
kze'»
И > е°
7
1 - е~°"
|7| Ъ Р-°
z'^-ztl+e-^ + e-0
1*1 е
8
cos (ап)
z(z —cos о)
И>1
z" —2z cos o+l
9
sin(an)
z sin a
Н>1
z^ — 2z cos a+1
10
е-оп sin(an)
ze —° sin a
Irl Ъ р-а
z2 — 2c”az cos a+e~ ^®
11
е~“" cos(an)
ze~° (ze~° — cos o)
и > е-“
z*1 —2ze—a cos o+e —
12
ch(an)
(z^ —z ch a) x* — 2z ch o+l
|z| > ch а
13
sh(an)
_ (zsha)
|z| > sha
z’2 — 2z ch a + 1
14
ко"
kz
|z| > a
15
кпап
koz
(z-a)2
16
2|с||р|" cos(nZp + Zc)
z-p + z-p*
Здесь к и а — постоянные, с — комплексное число.
Обратное z-преобразование
Обратное z-преобразование (z-1) позволяет восстанавливать последовательность дискретного времени т(п) по ее z-образу. z"1 особенно полезно в операциях ЦОС, например, при поиске импульсной характеристики цифровых фильтров. В символической форме обратное z-преобразование можно определить как
хН = 2ЛХШ(4.9)
где Х^ — это z-образ последовательности т(п), a Z-1 — символ, обозначающий обратное z-преобразование.
Предположив, что последовательность причинна, z-образ Х^ из уравнения (4.7) можно разложить в степенной ряд как
ВД = £т(ф"" =
(4.Ю)
= т(0) + t(1)z-1 + t(2)z-2 + t(3)z-3 + ...
Видно, что значения последовательности т(п) — это коэффициенты z~n (п = 0,1,...), и поэтому их можно найти непосредственно. На практике Х^ часто выражается через отношение двух многочленов от z-1 или, что эквивалентно, от z:
Ьд + ^Z 1 + b2Z 2 + ... + byZ N.. ...
XU) =;и-(4.П)
a0 4* CL-yZ a^z 4* • • • 4*
В этом виде обратное z-преобразование х^п) можно найти с помощью одного из многих методов, например:
метода разложения в степенной ряд;
метода разложения на элементарные дроби;
метода вычетов.
У каждого метода есть свои преимущества и недостатки. С точки зрения математической строгости метод вычетов, возможно, самый элегантный. Однако метод степенных рядов лучше всего подходит для компьютерных расчетов.
В следующих разделах с помощью численных примеров, иллюстрирующих принцип их действия, описаны все указанные методы. В приложении описывается ряд программ на языке С, которые применяются для оценки обратного z-преобразования для методов а и б. Приводятся иллюстративные численные примеры использования этих программ.
Метод степенных рядов
Если дано z-преобразование X(z) причинной последовательности (уравнение (3.11)). его можно разложить в бесконечный ряд относительно г-1 или z путем деления в столбик (иногда его называют синтетическим делением):
by + by z + b^ z 2 + ... + Ьдг z ^
а0 + a1z~1 + a2z'2 + ... + aMz~M(4.12)
= а:(0) + t(1)z-1 + t(2)z-2 + t(3)z~3 + ....
В этом методе числитель и знаменатель функции X (z) сперва выражаются либо через уменьшающийся показатель степени z, либо через увеличивающейся показатель степени z-1, а затем путем деления в столбик находится частное. Проиллюстрируем этот метод на примере.
Пример 4.2
Дан следующий z-образ причинной ЛИВ-системы:
=1 + 2z 1 + z 2
vz) i-z-^o^seiz-2-
Найдите его z \ разложив в степенной ряд путем деления в столбик.
Решение
Вначале разложим X(z) в степенной ряд с числителем и знаменателем в виде многочленов с увеличивающейся степенью г-1, а затем выполним обычное деление в столбик.
+ 2z-1 + z-2|1 -z-^O^SGlz-2
- z"1 +0,3561z-21 + Зг"1 + 3,6439z"2 + 2,5756z"3 + ...
3г"1 +0,6430z'2
3Z-1 -3z-2 + l,0683z-3
3,6439z"2 - l,0683z-3
lynsoz^i^JLGlsoz^
2,5756z-3 - I,2g75g27z~4
Другой способ: выразить числитель и знаменатель через положительный показатель степени z в порядке уменьшения, а затем выполнить деление в столбик•'
z2 + 2z + 1
z2 - z+ 0,3561
3z + о, 643g
3Z- 3 + 1,0683г-1
3,6430 - 1,0683г-1
3,6430 - 3,64301г-1 + 1,2075027г~2
2,5756г”1 - 1,2075027г~2
|г2 - г + 0, 3561
b„ -^^(п- .г=1b„ -^^(п- .г=1п = 1,2,...п = 1,2,...гдегдет(0) = Ь0/а0.т(0) = Ь0/а0.(4.13,6)(4.13,6)
b„ -^^(п- .г=1
b„ -^^(п- .г=1
п = 1,2,...
п = 1,2,...
где
где
т(0) = Ь0/а0.
т(0) = Ь0/а0.
(4.13,6)
(4.13,6)
В любом случае z-образ раскладывается в знакомый степенной ряд, т.е.
X(z) = 1 + Зг”1 + 3,6439z"2 + 2,5756z”3 + ...
Теперь можно непосредственно записать обратное z-преобразование:
ж(О) = 1; т(1) = 3; т(2) = 3,6439; т(4) = 2,5756;...
Метод деления в столбик можно сформулировать иначе (см. приложение 4А), так что значения последовательности т(п) будут получаться рекурсивно:
т(0) = 60/а0,
т(1) = [bi -x(0)ai]/ao,
т(2) = [62 - ^(l)ai - т(О)а2]/ао,
(4.13, а)
т(п) =
Ниже данный пример повторяется для иллюстрации рекурсивного метода.
Пример 4.3
Рекурсивным способом найдите первые четыре члена обратного z-преобразования т(п). Пусть z-образ Х^ такой же, как и в примере 4.2, т.е.
11 +2z~1 + z~2
1 -z-1 +0,3561z-2’
Решение
Сравнив вышеприведенные коэффициенты X (z) с коэффициентами общего преобразования из уравнения (4.12), получим
a0 = 1, ai = 2, а2 = 1,60 = 1,61 = — 1,62 = 0,3561, N = М = 2
Из уравнений (4.13) получим:
ж(0) = b0/a0 = 1,
я(1) = [tj — а:(0)а1]/ао = [2 - 1 х (-1)] = 3,
х^ = [b2 - x(l)ai - а:(0)а2]/ао = 1 - 3 х (-1) - 1 x 0,3561 = 3,6439,
:г(3) = [53 — ^(2)0! — т(1)а2 + т(0)а3] = 0 — х^сц — т(1)а2 =
= 0-3,6439 х (-1) - 3 х 0,3561 = 2,5756.
Следовательно, имеем первые четыре значения обратного z-преобразования:
х(0) = 1; $(1) = 3; т(2) = 3,6439; $(4) = 2,5756.
Видно, что оба способа (рекурсивный и прямой) деления в столбик дают одинаковые решения.
Рекурсию в формуле (4.13) несложно реализовать на компьютере, как показано в следующем фрагменте кода на языке С.
х[0]=В[0]/А[0];
for(n=l;n<=npt;++п){
sum=0;
k=n;
if(n>M)
k=M;
for(i=l;K-k;++i) (
sum=sum+x[n-i]*A[i];
1
x[n]=(B[n]-sum)/А[0];
В этом коде M — порядок многочлена знаменателя, a npt — количество точек данных для z—L Предполагается, что в многочленах числителя и знаменателя степень z-1 возрастает. Программы на языке С, основанные на вышеприведенном коде, а также программы MATLAB для оценки z-1 даны в приложениях 4Б и 4Г соответственно.
Метод разложения на элементарные дроби
В этом методе z-преобразование вначале раскладывается на сумму простых дробей. Затем по таблицам, подобным табл. 4.1, находится обратное z-преобразование каждой элементарной дроби. Эти образы суммируются, и получается общее обратное z-преобразование. На практике во многих случаях z-преобразование задается как отношение многочленов по z или z-1 и имеет уже знакомый вид
, 5q + biz 1 + b2z 2 + ...+ ^z N
Afz) = — =
a0 + ayz-1 + a2z-2 + ... + aMz~M(4.14)
= t(0) + +t(1)z"1 + t(2)z-2 + x^z-3 + ...
Если полюсы функции X(z) — первого порядка и N = М, то X(z) можно разложить как
, С2 ,, См
X (z) —+ -— + 27 + • • • + i27 —
l-pxz 1 l-p2z 1 l-pMz 1
п Cxz C2zCMz „ Ckz(4Л5)
z - Pi z - p2 z-pM t^z~Pk
где pk — полюсы функции X^z\ Ck — коэффициенты элементарных дробей, a
(4-16)(4-16)Bq — bN/aN.
(4-16)
(4-16)
Ck также называют вычетами функции X(z); см. раздел 4.3.3.
Если в уравнении (4.14) порядок числителя меньше, чем порядок знаменателя, т.е. N < М, то Во будет равно нулю. Если N > М, то X^z) вначале нужно сократить, чтобы получить N < М, путем деления в столбик многочленов числителя и знаменателя, записанных через уменьшающийся показатель степени z"1. Остаток можно выразить так, как это сделано в уравнении (4.15).
Коэффициент Ск, связанный с полюсом рк, можно найти, умножив правую и левую части уравнения (4.15) на (z — Pk)jz, а затем сделав замену z = рк:
Ск =Ск =X(zV—— (z-pj zX(zV—— (z-pj z(4.17)(4.17)^=Рк^=Рк
Ск =
Ск =
X(zV
—— (z-pj z
X(zV
—— (z-pj z
(4.17)
(4.17)
^=Рк
^=Рк
Если функция X(z) имеет один или несколько полюсов больше первого порядка (т.е. совпадающих полюсов), то, чтобы учесть это, в уравнение (4.15) нужно добавить дополнительные члены. Например, если функция X^z) имеет полюс m-го порядка в точке z = рк, то в разложение на элементарные дроби должны входить члены вида
(4.18, а)
Коэффициенты Dx можно найти из зависимости
Д =Д =1 ат-‘ (т — г)! azm~l1 ат-‘ (т — г)! azm~l(z-pk)m(z-pk)mХ^Х^(4.18,6)(4.18,6)
Д =
Д =
1 ат-‘ (т — г)! azm~l
1 ат-‘ (т — г)! azm~l
(z-pk)m
(z-pk)m
Х^
Х^
(4.18,6)
(4.18,6)
Продемонстрируем оценку обратного z-преобразования методом разложения на элементарные дроби на примерах.
Пример 4.4
Функция X(z) содержит простые полюсы первого порядка. Найдите ее обратное z-преобразование.
z-i
1 — 0,25z-1 — 0,375z~2
Решение
Для простоты вначале выразим z-преобразование через положительные показатели степени z, умножив числитель и знаменатель на z2 (наивысшую степень z):
z2 — 0,25z -0,375 (z — 0,75)(z + 0,5)
X(z) имеет полюсы первого порядка в точках z = 0,75 и z = -0,5 (т.е. в каждом положении полюса находится только один полюс). Поскольку порядок числителя меньше, чем порядок знаменателя (N < М), разложение на элементарные дроби выглядит как
w х2_ Ciz , Ciz
(z-0,75)(z + 0,5) z-0,75 + z + 0,5'( ' )
Чтобы упростить поиск значений Ск, разделим правую и левую стороны на z:
М =5= _^ + _^_(420)
z z(z-0,75)(z + 0,5)z-0,75 z + 0,5"7
Чтобы найти Ci, просто умножим правую и левую части уравнения (4.20) на z - 0,75 и сделаем замену z = 0,75:
(z-0,75)X(z)z
(z-0,75)C2(z —0,75)
(z — 0,75)(z + 0,5) ~ 1+ z + 0,5
1
z + 0,5
1
4
z=o,750,75 + 0,55
Аналогично находим C2:
(z + 0,5)X(z)_
Z_Q 5
(z + 0,5)14
(z — 0,75)(z + 0,5) z=_05 - -0,5 - 0,75 ~ ~5'
Подставив значения C2 и C2 в уравнение (4.19), получим
X(z) =
(4/5)z(—4/5)z
z - 0, 75 + z + 0,5 ‘
Согласно таблице z-преобразований (строка 14 табл. 4.1) обратное z-преобразование каждого члена правой части уравнения (4.21) задается как
Z"1Z"1Z"1Z"1
Z"1
Z"1
Z"1
Z"1
" (4/5)z "z — 0,75
' (4/5)z‘z + 0,5
4(0,75)"
5’
4(-0,5)n
5
Искомое обратное z-преобразование ж (п) — это сумма двух обратных z-преобразований:
4
х(п) = -[(0,75)” - (—0,5)”],п > 0.
5
Пример 4.5
Функция Х^ имеет комплексно-сопряженные полюсы первого порядка. Воспользовавшись методом разложения на элементарные дроби, найдите сигнал дискретного времени т(п) по его z-образу
1+2Z-1 +z"2
i — z-1 + о, 356iz~2 ’
Решение
Вначале X(z) выражается через положительные степени z:
Х( 1 = ® = z2 + 2г + 1
D^ z2 — z + 0,3561"
Полюсы функции X(z) находятся из решения квадратного уравнения D(z) = z2 — z + 0,3561 = 0 с помощью формул
—Ь + (Ь2 — 4ас)1/2
(4.22)(4.22)Р1 =Та
(4.22)
(4.22)
—b — (Ь2 — 4ас)1/2Do =
где а и b — коэффициенты при z2 и z соответственно, ас — постоянный член. При а = 1, b — — 1 и с = 0,3561 полюсы будут равны:
— 1 + (1 — 4 х 0,3561W2
Pi =2
= 0,5 + 0,3257г = rei9
р2 = р* = 0,5 - 0,3257г = re”i9,
где г = 0,5967, а 6 = 33,08°. Теперь можно выразить функцию Х^ через ее полюсы: z2 + 2z + 1
(z — Pi)(z — р^) *
Поскольку числитель и знаменатель функции Х^ одного порядка, разложение на элементарные дроби будет выглядеть так:
хМ = в- + ^ + ^
Z Z Z — Pl z — pj
Из уравнения (4.16) Во = 1/0,3561 = 2,8082. Чтобы найти Сь умножим обе стороны уравнения (4.23) на (z — pi), а затем сделаем замену z = рх:
(z-pi)X(z) Bo(z-Pi)C^z-pj)
Таким образом,
(z -pi)X(z)(z -pi)X(z)(z - Pi)(z2 + 2z + 1)z(z — Pi)(z -p2)(z - Pi)(z2 + 2z + 1)z(z — Pi)(z -p2)Уте^У + 2re’9 + 1re’9 (re’9 — re-19)Уте^У + 2re’9 + 1re’9 (re’9 — re-19)z=p^=re^z=p^=re^(4.24)(4.24)
(z -pi)X(z)
(z -pi)X(z)
(z - Pi)(z2 + 2z + 1)z(z — Pi)(z -p2)
(z - Pi)(z2 + 2z + 1)z(z — Pi)(z -p2)
Уте^У + 2re’9 + 1re’9 (re’9 — re-19)
Уте^У + 2re’9 + 1re’9 (re’9 — re-19)
z=p^=re^
z=p^=re^
(4.24)
(4.24)
где r = 0,5967, 6 = 33,08°. Выполнив некоторые преобразования и упростив выражение, получаем:
2,1439 + 0,97719г
“ -0,2122 +0,3257г “
= -0,9040999 - 5,992847г =
= 6,060662 -98,58°.
Поскольку Pi и р2 — комплексно-сопряженная пара, то
С2 = С* = -0,9040999 + 5,992847г = 6,06066298,58°.
Таким образом, z-преобразование можно выразить так (см. уравнение (4.23)):
(4.25)(4.25)Х^ = 2,8082 ++ -^-
(4.25)
(4.25)
z - pi z-p\
мPi = 0,5 + 0,3257гр2 = 0,5 - 0,3257г,
Сх = -0,9041 - 5,59928гС2 = -0,9041 + 5,59928г.
Согласно таблице z-преобразований (строки 1 и 16 табл. 4.1) обратное z-преобразование членов правой части уравнения (4.25) имеет вид
Cxz ! C2z ' Z-Px z — p*Cxz ! C2z ' Z-Px z — p*2"1(2,8082) = 2,8082u(n)
Cxz ! C2z ' Z-Px z — p*
Cxz ! C2z ' Z-Px z — p*
= 2 x 6,06066(0,5967)" cos(33,08n - 98,58°) =
= 12,1213(0,5967)" cos(33,08n - 98,58°).
Таким образом, сигнал дискретного времени выражается так:
х(п) = 2,8082u(n) + 12,1213(0,5967)" cos(33,08n - 98,58°), n > 0.
Полезно проверить результаты метода разложения на элементарные дроби, вычислив значения z(n) для, скажем, п = 0,1,2, а затем сравнив их со значениями, полученными методом разложения в степенной ряд. Например, из выражения для ж(п) находим, что
ж(0) = 2,8082 - 1,80838 = 1; х(1) = 2,99959 = 3; х(2) = 3,6436,
что совпадает с результатами, полученными в примере 4.3 методом разложения в степенной ряд.
Пример 4.6
Функция X (z) содержит полюс второго порядка. Найдите дискретную во времени последовательность Х^п) со следующим z-образом:
Х^ (z — 0,5)(z — I)2'
Решение
У функции X(z) есть полюс первого порядка в точке z = 0,5 и полюс второго порядка в точке z = 1. В этом случае разложение на элементарные дроби выглядит как
(4-26)(4-26)w а С , Dx , D2ад-7^5 + т + (7^'
(4-26)
(4-26)
Чтобы найти С, будем действовать так же, как и ранее, и умножим обе стороны уравнения (4.26) на z — 0,5, положим z = 0,5 и оценим выражение
z=0,5z=0,5(z —0,5)z2z(z —0,5)(z — I)2
z=0,5
z=0,5
= 0,5/(0,5 - I)2 = 2.
Чтобы найти Dx, воспользуемся уравнением (4.18, б) при г = 1 и т = 2. Таким образом,
^ _ d (z-l)2X(z)_ d (z — l)2z2_
1 dz zdz z(z — 0,5)(z — I)2 _.
d / z X z — 0,5 — z dz \z - 0,5/г=1(z-0,5)2 г=1"
Аналогично D2 находится из уравнения (4.18, б) при подстановке г = 2 и т = 2:
(z-l)2X(z)
_(z - l)2z2
Z
г=1z(z-0,5)(z-l)2
Z = 1
= 1/(1 -0,5) = 2.
Объединив результаты, получим A(z):
v/ _ 2z 2z _ 2z(Z)z-0,5z-l + (z-l)2'
Обратное z-преобразование каждого члена из правой части уравнения можно найти по табл. 4.1, а затем просуммировать их, что даст ж(п):
z(n) = 2(0,5)" — 2 + 2n = 2[(п — 1) + (0,5)n], п > 0.(4.27)
Читатель может убедиться в правильности полученного результата, сравнив первые несколько значений последовательности х(п) со значениями, найденными методом разложения в степенной ряд.
Согласитесь, метод разложения на элементарные дроби очень трудоемкий, за исключением простых случаев, и, применяя его, очень легко ошибиться. Для удобства в приложении приведены программы на языке С и MATLAB для вычисления обратного z-преобразования с помощью разложения на элементарные дроби функции X(z) с полюсами первого порядка.
Метод вычетов
В этом методе z-1 находится путем вычисления контурного интеграла ж(п) =/ F^X^dz,(4.28)
2тгг ]с
где С — это контур интегрирования, охватывающий все полюсы функции A(z). Для рациональных многочленов контурный интеграл из уравнения (4.28) находится с помощью фундаментального результата теории комплексных переменных, называемого теоремой Коши о вычетах (или теоремой вычетов') [3]:
х(п) = дzn-1X(z)dz =
2тгг Jc(4.29)
= сумма вычетов zn-1X(z) во всех полюсах внутри С.
В предыдущем разделе упоминалось, что коэффициенты разложения на элементарные дроби С к еще называют вычетами функции X^z\ и приводился способ вычисления их значений. Главное, что нужно запомнить, — это то, что каждый вычет Ск связан с полюсом рк- В настоящем методе вычеты функции zn-1X(z) в полюсе Рк (но не вычеты функции X(z)) задаются как
Res[F(z),pfc] =—--— [(z -PkWY^n(4.30)
где F(z) = zn-1X(z), m — порядок полюса в точке рк, a Res[jF(z),pfc] — вычет F(z') в точке z = рк- Для простого (отдельного) полюса уравнение (4.30) сводится к
(4.31)(4.31)Res[F(z),pA.] = (z -pk)F(z) = (z -pk)zn-1X(z)^.
(4.31)
(4.31)
Пример 4.7
С помощью метода вычетов найдите сигнал дискретного времени, соответствующий следующему z-образу (тот же, что и в примере 4.4):
Х^ = (z — 0,75) (z+ 0,5)
Предположите, что С — окружность |z| = 1.
Решение
В разложенном виде X (z) задается как
Х^ = (z — 0,75)(z + 0,5)
Если положить F(z) = zn-1X(z'), то
1 ; (z — 0,75) (z + 0,5)zn
(z — 0,75)(z + 0,5)
Функция F(z) имеет полюсы в точках z = 0,75 и z = -0,5. Схема контура с обозначенными крестиками положениями полюсов дана на рис. 4.3. Оба полюса лежат внутри контура интегрирования (единичной окружности). Из уравнения (4.29) обратное z-преобразование задается как
ж(п) = Res[F(z), 0,75] + Res[F(z), —0,5].
Поскольку функция имеет полюсы первого порядка, воспользуемся уравнением (4.31). Таким образом,
Res[F(z),0,75] = (z - 0,75)F(z)|z=O75 =Res[F(z),0,75] = (z - 0,75)F(z)|z=O75 =(z - 0,75) z"(z - 0,75) z"(z — 0,75)(z + 0,5)(z — 0,75)(z + 0,5)z=0,75z=0,75
Res[F(z),0,75] = (z - 0,75)F(z)|z=O75 =
Res[F(z),0,75] = (z - 0,75)F(z)|z=O75 =
(z - 0,75) z"
(z - 0,75) z"
(z — 0,75)(z + 0,5)
(z — 0,75)(z + 0,5)
z=0,75
z=0,75
(0,75)"0,75 + 0,5(0,75)"0,75 + 0,54= -(0,75)" a4= -(0,75)" a
(0,75)"0,75 + 0,5
(0,75)"0,75 + 0,5
4
= -(0,75)" a
4
= -(0,75)" a
Res[F(z), —0,5] = (z + 0,5)F(z)|z=_O5 =
(z + 0,5)z"(z — 0,75) (z+ 0,5)(z + 0,5)z"(z — 0,75) (z+ 0,5)= 4w)".z=-0,50= 4w)".z=-0,50
(z + 0,5)z"
(z — 0,75) (z+ 0,5)
(z + 0,5)z"
(z — 0,75) (z+ 0,5)
= 4w)".
z=-0,50
= 4w)".
z=-0,50
Обратное z-преобразование — это сумма вычетов в точках z = 0,75 и z = — 0,5:
х(п) = (4/5)[(0,75)п - (-0,5)"],
что идентично результату, полученному методом разложения на элементарные дроби.
Контур |z| = 1Контур |z| = 1Рис. 4.3. Схема контура интегрирования, демонстрирующая роль X (z)Рис. 4.3. Схема контура интегрирования, демонстрирующая роль X (z)
Контур |z| = 1
Контур |z| = 1
Рис. 4.3. Схема контура интегрирования, демонстрирующая роль X (z)
Рис. 4.3. Схема контура интегрирования, демонстрирующая роль X (z)
Пример 4.8
Если полюсы функции X(z) — комплексно-сопряженные, найдите с помощью метода вычетов обратное z-преобразование по данному z-образу:
= z2 + 2z + 1
Решениеz2 — z + О,3561
В разложенном виде X (z) записывается так:
w х z2 + 2z + 1
X^z) = 7~ ~wv
(z -Pi)(z -p2)
где pi = 0,5 + 0,3557г, a p2 = 0,5 — 0,3557г, т.е. p2 = p^. Чтобы найти обратное z-преобразование, найдем вычеты F^z). В нашем случае это
_ 2n-1(z2 + 2z + l) _ z"(z2 + 2z + l)
UU z2-z + 0,3561 z(z2-z +0,3561)’
Полюсы F(z^ такие же, как и у X^z\ т.е. находятся в точках z = рг и z = р2, плюс полюс в точке z — 0 при п = 0. Схема контура с обозначенными положениями полюсов показана на рис. 4.4. Все полюсы лежат внутри контура. Полюса в точке z = 0 при п > 0 не существует, поэтому нам придется рассмотреть два отдельных случая.
При п = 0 F(z) сводится к z 4“ 2z 1 z(z2 — z + 0,3561)
и
т(0) = Res[F(z),0] + Res[F(z),pi] + Res[F(z),p2].
Следовательно,Следовательно,
Следовательно,
Следовательно,
Res[F(z),0] = zF^\z=0^
z(z2 + 2z +1)
~ z(z2 -z + 0,3561) г=0
= 1/0,3561 = 2,8082
Res[F(z),PJ=(z-P0F(z^
_ (z -P1)(z2 + 2z + 1) _
z(z-P1)(z-P2)
(reief + 2re*6 + 1
re*6 (re16 — re-16
где r = 0,5967, a 9 = 33,08°. Учитывая, что это выражение идентично уравнению (4.24), можем записать
Res[F(z),Pi] = —0,9041 — 5,9928г.
Поскольку Pi и Р2 — комплексно-сопряженная пара, то
Res[F(z),P2] = -0,9041 +5,9928г.
Следовательно,
ж(0) = Res[F(z),0] + Res[F(z),P1] + Res[F(z),P2] =
= 2,8082 - 0,9041 - 5,9928г - 0,9041 + 5,9928г = = 1.
При п > 0 полюс в точке z = 0 исчезает, и мы имеем
z"(z2 + 2z + l)
z(z2 — z + 0,3561)
ж(п) = Res[F(z),Pi] + Res[F(z),P2]
Res[^(z),P1] = (г-Р1)Г(г)|г=и =
_ (z -P1)zn(z2 + 2z + 1)
(432)(432)z(z -Pi)(z-P2)
(432)
(432)
(reie)"[(rei6)2 + 2reie + 1]
Рис. 4.4. Контур интегрирования, показывающий область сходимости (пример 4.8)
где г = 0,5967, а 9 = 33,08°. Учитывая, что это выражение аналогично уравнению (4.24), можем записать
Res[F(z),P1] = (0,5967е*33,08)п(6,06066е~*98’58) =
= 6,06066(0,5967)" [cos(33,08п - 98,58) + г sin(33,08п - 98,58)].
Поскольку pi и р2 — комплексно-сопряженная пара, то
Res[F(z),p2] = 6,06066(0,5967)" [cos(33,08n - 98,58) - г sin(33,08n - 98,58)].
Следовательно,
т(0) = Res^z)^] + Res[F(z),p2] =
= 12,1213(0,5967)" cos(33,08n - 98,58°), n > 0,
что совпадает с результатами, полученными при разложении на элементарные дроби.
Пример 4.9
Функция X (z) содержит полюс второго порядка. Найдите последовательность дискретного времени т(п) по следующему z-образу:
z2
= (z — 0,5)(z — I)2
Решение
Исходные данные задачи такие же, как в примере 4.6 разложения на элементарные дроби. Согласно методу вычетов последовательность дискретного времени задается как
м
k=l
гдегдеF(F) = z^'X^ =F(F) = z^'X^ =^n+l(z — 0,5)(z — I)2'^n+l(z — 0,5)(z — I)2'
где
где
F(F) = z^'X^ =
F(F) = z^'X^ =
^n+l
(z — 0,5)(z — I)2'
^n+l
(z — 0,5)(z — I)2'
Функция F^ имеет простой полюс в точке z = 0,5 и полюс второго порядка в точке z = 1; таким образом, последовательность ж(п) задается как
ж(п) = Res[F(z),pi] + Res[F(z),p2]
zn+l
= (7^ г=015 =
= 0,5(0,5)п/(0,5)2 = 2(0,5)п
" (z - l)2z"+1__(z-0,5)(z-l)2 ~-0,5)(n+ l)zn -zn+1(z-0,5)2" (z - l)2z"+1__(z-0,5)(z-l)2 ~-0,5)(n+ l)zn -zn+1(z-0,5)2„ х „ d \ (z-lYzn+1 "
" (z - l)2z"+1_
_(z-0,5)(z-l)2 ~
-0,5)(n+ l)zn -zn+1
(z-0,5)2
" (z - l)2z"+1_
_(z-0,5)(z-l)2 ~
-0,5)(n+ l)zn -zn+1
(z-0,5)2
Res[F(z),l] - —-
(z — 0,5)(n+l)zn — zn+1
- (z —0,5)2г=1 ~
= [(0,5)(п +1) - 1]/(0,5)2 - 2(п - 1).
Объединив результаты, получим
т(п) = 2[(п — 1) + (0, 5)п],
что аналогично результату, полученному методом разложения на элементарные дроби.
Возможно, вы заметили, что методы вычетов и разложения на элементарные дроби взаимосвязаны. И в том, и в другом методе нужно находить вычеты, хотя это делается различными способами. В методе разложения на элементарные дроби находятся вычеты функции Х^, т.е. коэффициенты Ск, тогда как метод вычетов требует поиска вычетов функции zn-1X(z\ Если функция X(z) содержит полюсы первого порядка, то
(4.33)(4.33)Res[z" 1X(z'),pk\ = znRes[X(z),pk] = znCk.
(4.33)
(4.33)
Следовательно, программой на языке С для разложения на элементарные дроби, описанной в приложении, можно воспользоваться и для расчетов по методу вычетов.
Сравнение различных методов обратного z-преобразования
Мы более или менее подробно рассмотрели три метода вычисления обратного z- преобразования: разложение в степенной ряд, разложение на элементарные дроби и метод вычетов. Ограничение метода разложения в степенной ряд состоит в том, что он не дает решения в аналитическом виде (хотя в простых случаях его можно вывести),
но зато он прост и пригоден для вычислений с помощью компьютера. Однако из-за его рекурсивной природы нужно внимательно следить (например, используя двойную точность) за возможным нарастанием численных ошибок, при большом числе заданных точек обратного z-преобразования.
Как метод разложения на элементарные дроби, так и метод вычетов, дают результат в аналитическом виде. Главный недостаток этих методов — необходимость раскладывать на множители многочлен знаменателя, т.е. находить полюсы функции Х(гУ Если порядок функции X(z') высокий, то поиск полюсов X^zY если функция не представлена в разложенном виде, — довольно трудная задача. Более глубоко эта тема рассмотрена в разделе 4.5.1. Если функция Х^ имеет полюсы высокого порядка, оба метода могут также включать дифференцирование высокого порядка. Ясно, что если нужно найти решение в аналитическом виде, то лучше выбрать метод вычетов или разложения на элементарные дроби. Метод разложения на элементарные дроби особенно полезен для генерации коэффициентов параллельных структур для цифровых фильтров (см. раздел 4.5.11). Метод вычетов нашел широкое применение в анализе ошибок квантования в системах дискретного времени (см. главу 13).
Использование такого удобного инструмента, как программный пакет MATLAB или программы на языке С из данной книги, значительно упрощает операции вычисления z-преобразования и обратного z-преобразования. Для иллюстрации сказанного в приложениях дается несколько примеров.
Свойства z-преобразования
Ниже кратко описываются некоторые полезные свойства z-преобразования, которые нашли практическое применение в ЦОС. Доказательства некоторых из этих свойств предлагаются в качестве задач в конце этой главы.
Линейность. Если последовательности жДп) и ж2(п) имеют z-образы Xi(z') и ХДг), то z-образ их линейной комбинации будет
ажДп) + ЬжДп) —»• aXi(z') 4- bX2(zy(4.34)
Задержки или смещения. Если z-образ последовательности ж(п) равен X^z\ то z- образ последовательности с задержкой на т элементов будет z~mX(zY Это свойство широко используется для превращения передаточной функции z систем дискретного времени в разностные уравнения во временной области, и наоборот; см. раздел 4.5.8.
х(п) —> X(z)
х(п — т) —> z-mX(z)
Свертка. Дана ЛИВ-система дискретного времени со входом х^ и импульсной характеристикой Цку Выход системы задается как
2/(п) = ^ h(k)x(n - ку(4.35, а)
Выраженные через z-образы вход и выход связаны соотношением
Y(z) = H(z)X(z\(4.35,6)
где X(z), H(z) и y(z) — соответственно z-образы последовательностей х(п), h(k) и у(п). При заданных X(z) и Я(г) выход у(п) можно найти с помощью обратного z-преобразования Y(z).
Видно, что операция свертки в уравнении (4.35, а) превратилась в процесс умножения в z-области. Записанную выше функцию H(z) часто называют передаточной функцией системы.
Дифференцирование. Если X(z) — z-образ последовательности ж(п), то z-образ ni(n) можно найти, продифференцировав X(z)-.
(4.36)(4.36)х(п) —> X(z),
(4.36)
(4.36)
, , dX(z)dz
Это свойство полезно для вычисления обратного z-преобразования, когда X (z) содержит полюсы высокого порядка.
Взаимосвязь с преобразованием Лапласа. Системы или сигналы непрерывного времени, как правило, описываются с помощью преобразования Лапласа. Если z = esT, где s — комплексная переменная Лапласа, которая задается как
s = d + гш,
то
z = el'd+luj)T = е^е^7.(4.37)
Следовательно,
|z| = edt и Zz = wT 2tt//Fs = 2тгш/сс>а,
где w8 (рад/с) — частота дискретизации. Поскольку ш пробегает значения от — оо до оо, s-плоскость отображается в z-плоскость так, как показано на рис. 4.5. Вся ось гш на s-плоскости отображается в единичную окружность. Левая сторона s-плоскости отображается внутрь круга единичного радиуса, а правая сторона s-плоскости — на внешнюю сторону окружности единичного радиуса.
Если выражать это через частотную характеристику, то ось гш имеет самое большое значение на s-плоскости. В этом случае d — 0 и частотные точки на s-плоскости связаны с точками единичной окружности на z-плоскости соотношением
Z = е“Т.(4.38)
Рис. 4.5. Отображение s-плоскости в z-плоскость. Левая сторона s-плоскости отображается на внутреннюю часть z-плоскости, правая сторона отображается на внешнюю часть, а ось ш отображается на единичную окружностьРис. 4.5. Отображение s-плоскости в z-плоскость. Левая сторона s-плоскости отображается на внутреннюю часть z-плоскости, правая сторона отображается на внешнюю часть, а ось ш отображается на единичную окружность
Рис. 4.5. Отображение s-плоскости в z-плоскость. Левая сторона s-плоскости отображается на внутреннюю часть z-плоскости, правая сторона отображается на внешнюю часть, а ось ш отображается на единичную окружность
Рис. 4.5. Отображение s-плоскости в z-плоскость. Левая сторона s-плоскости отображается на внутреннюю часть z-плоскости, правая сторона отображается на внешнюю часть, а ось ш отображается на единичную окружность
В табл. 4.2 показано, как некоторые особые частоты отображаются из s-плоскости в z-плоскость. Ясно, что такое отображение неоднозначно, поскольку, например, две частоты ш ш, и ш = 2ws на s-плоскости отображаются в одну и ту же точку единичной окружности.
Таблица 4.2. Отображение частот из s-плоскости в z-плоскость
s-плоскость: ш (рад/с)
z-плоскость: шТ (рад)
0
0
ы=/4
тг/2
7Г
Зш,/4
1,25тг
2тг
1,25ш,
тг/2
1,5ш,
7Г
1,75си$
1,25тг
2ш,
2тг
Некоторые области применения z-преобразования в обработке сигналов
Существует множество областей применения z-преобразования в ЦОС. Несколько из них подробно рассматривается в последующих главах, особенно в главе 8. Следующие несколько разделов посвящены выяснению некоторых фундаментальных понятий, общих для всех этих областей.
Описание систем дискретного времени с помощью полюсов и нулей.
Для большинства практических систем дискретного времени z-преобразование, те. передаточную функцию системы Н^, можно выразить через ее полюсы и нули. Рассмотрим, например, следующее z-преобразование, представляющее собой обычный фильтр дискретного времени N-го порядка (где N = М);
ИИ = ®,(4.39)
где
N^ = bozN + b^"1 + b2zN"2 + ... + bN,
D^ = aozN + ayzN-1 + a2zN~2 + ... + ayv,
ak и bk — коэффициенты фильтра.
Если функция Н^ имеет полюсы в точках z = pi,p2, - - - ,Pn и нули в точках z = zb z2,..., zN, то H(z) можно разложить на множители и представить в виде
- K^z-zx^z-z^.-.^z-zn)
/ w х / х ,(4.40)
kz - pi)k,z - р2) ... k,z - Pn)
где z, — г-й нуль, pt — г-й полюс, а К — коэффициент усиления. Напомним, что полюсы такого z-преобразования, как H(z), — это значения z, в которых функция H^z) равна бесконечности. Значения z, в которых Н^ равна нулю, называют нулями. Полюсы и нули функции H(z) могут быть действительными или комплексными. Если они комплексные, они идут комплексно-сопряженными парами, чтобы коэффициенты ак и Ьк были действительными. Из уравнения (4.40) видно, что если известны положения полюсов и нулей функции H{z), то и саму функцию Н^ можно легко восстановить с точностью до константы.
Информацию, содержащуюся в z-образе, можно удобно изобразить в виде диаграммы нулей и полюсов; см., например, рис. 4.6. На этой диаграмме крестиком (X) обозначены положения полюсов, а кружком (О) — положения нулей. В данном примере полюсы находятся в точках z = 0,5 ± 0,5г и z = 0,75, единственный нуль — в точке z = — 1. Важной особенностью диаграммы нулей и полюсов является единичная окружность, т.е. окружность, которая задается уравнением |zj = 1 (см. рис. 4.6). Как вскоре станет понятно, единичная окружность играет немаловажную роль в анализе и проектировании систем дискретного времени.
Рис. 4.6. Описание z-преобразования в виде диаграммы нулей и полюсов: X — полюс; О — нульРис. 4.6. Описание z-преобразования в виде диаграммы нулей и полюсов: X — полюс; О — нуль
Рис. 4.6. Описание z-преобразования в виде диаграммы нулей и полюсов: X — полюс; О — нуль
Рис. 4.6. Описание z-преобразования в виде диаграммы нулей и полюсов: X — полюс; О — нуль
Диаграмма нулей и полюсов раскрывает свойства данной системы дискретного времени. Например, из расположения полюсов и нулей можно получить частотную характеристику системы, а также ее степень устойчивости. Для устойчивых систем все полюсы должны лежать внутри единичной окружности (или совпадать с нулями на единичной окружности).
Часто z-преобразование нельзя представить в разложенном виде, его можно записать только как отношение многочленов, как в уравнении (4.39). В таких случаях для описания z-образа Н^ через его нули и полюсы необходимо найти корни многочлена знаменателя D^ и многочлена числителя N^z\
Корни многочлена второго порядка, который задается в виде ах2 + Ьх + с, ищут по формуле
-Ь± (Ь2 -4ас)1/2 (4 41) 2а
Определение корней многочленов N^z) и D(z) более высоких порядков — задача не из легких. На практике это часто делают с помощью численных методов, в том числе, например, с помощью алгоритмов Ньютона и/или Бэйстоу (Baistow) (см., например, [1]). Необходимость поиска нулей и полюсов часто возникает в связи с проектированием цифровых фильтров и анализом устойчивости. К счастью, при проектировании фильтров дискретного времени полюсы и нули автоматически выдаются программой проектирования фильтров, избавляя от необходимости находить корни многочленов вручную.
Пример 4.10
Выразите следующую передаточную функцию через ее полюсы и нули и постройте диаграмму нулей и полюсов:
Н^ =Н^ =1 - z”1 - Sz”2
Н^ =
Н^ =
1-1,75z-1 + 1,25z-2 - 0,375z~3'
Найдите передаточную функцию Н^ фильтра дискретного времени, диаграмма нулей и полюсов которого показана на рис. 4.7.
Рис. 4.7. Диаграмма нулей и полюсов для примера 4.10, п. 2
Рис. 4.8. Диаграмма нулей и полюсов для примера 4.10
Решение
Во-первых, выразим Н^ через положительные показатели степени z, а затем разложим ее таким образом, чтобы можно было найти полюсы и нули. Если умножить числитель и знаменатель на z3 — самую высокую степень z, получится
z3 - z2 - 2z
z3 - l,75z2 + l,25z —0,375
В результате разложения получаем
ш х =(z--2)(z+_l)z
’ (z-0,5 + z0,5)(z —0,5-z0,5)(z —0,75)’
Следовательно, полюсы находятся в точках z = 0,5 ± 0,5г и в точке z = 0,75. Нули — в точках z = 2, г — 1 и z = 0. Соответствующая диаграмма нулей и полюсов изображена на рис. 4.8.
Согласно диаграмме нулей и полюсов нули передаточной функции находятся в точках z = ±г, а полюсы — в точках z = 0,5 ± О,5г. Далее можно записать непосредственно саму передаточную функцию:
н(х =Я(г-г)(г + г)=
k 1 (z — 0,5 — 0,5z)(z — 0,5+ 0,5г)
_ K(z2 + 1) _
z2 — z + 0,5
К(1 + г-2)
1 -z"1 -0,5z~2'
Оценка частотной характеристики
Существует множество случаев, когда нужно оценить частотную характеристику системы дискретного времени. Например, при проектировании дискретных фильтров часто приходится проверять спектр фильтра, чтобы убедиться в том, что он удовлетворяет искомым спецификациям. Отметим, что частотную характеристику системы можно запросто найти из ее z-преобразования.
Например, если взять z = ешТ, т.е. найти z-преобразование по единичной окружности, получим Фурье-образ системы:
н^ = £ hW~n -
n=-°°(4.42)
= Н(ешТ) = Цп)е"1пшТ.
Н(ешТ) называют частотной характеристикой системы. Мы воспользовались символом Т, чтобы подчеркнуть зависимость частотной характеристики системы дискретного времени от частоты дискретизации. В общем случае Я(е,и,т) — комплексная величина. Ее модуль дает амплитудную, а фаза — фазовую характеристику системы.
Частотную характеристику по z-преобразованию можно найти несколькими методами, три из них описаны ниже.
Геометрическая оценка
Это простой, но полезный метод, основанный на диаграмме нулей и полюсов, с помощью которого можно получить приблизительное представление о том, как выглядит частотная характеристика системы дискретного времени. Напомним, что z- преобразования ЛИВ-системы можно выразить через ее полюсы и нули:
(4-43)(4-43)N
(4-43)
(4-43)
"^-P^-P2)...(Z-PN^^К(2_р^
Рис. 4.9. Геометрическая оценка частотной характеристики по диаграмме нулей и полюсовРис. 4.9. Геометрическая оценка частотной характеристики по диаграмме нулей и полюсов
Рис. 4.9. Геометрическая оценка частотной характеристики по диаграмме нулей и полюсов
Рис. 4.9. Геометрическая оценка частотной характеристики по диаграмме нулей и полюсов
где для простоты предполагается, что порядки числителя и знаменателя совпадают. Чтобы найти частотную характеристику, подставим z = ешТ в уравнение (4.43) и вычислим H(e*wT) на отрезке (0 < w < ws/2).
Ще^т) = ^,(4.44)
П к^т -р^ г=1
Геометрическая интерпретация уравнения (4.44) для z-преобразования со всего лишь двумя нулями и двумя полюсами показана на рис. 4.9. В этом случае частотная характеристика задается как
==
Рг)Рг)(4.45)(4.45)(e»wT _ р1)(е*шТ —
Рг)
Рг)
(4.45)
(4.45)
KUXZ.9XU2Z.92- Ух^фхУ2^ф2 ’
где Ux и U2 представляют расстояния от нулей до точки z = ешТ, a Vx и V2 — расстояния от полюсов до этой же точки, как показано на рис. 4.9. Следовательно, амплитудная и фазовая характеристики системы согласно уравнению (4.45) равны
\Н^\ = ^,К = 1
^Н^т^=9х + 92-(фх+ф2\
Для того чтобы найти частотную характеристику, вычислим Н(ешТ) при перемещении точки Ротг = 0дог = - 1. Очевидно, что при перемещении точки Р ближе к полюсу рх длина вектора Vx уменьшается, следовательно, амплитудная характеристика растет. С другой стороны, при перемещении точки Р ближе к нулю zx вектор нуля Ux уменьшается, и поэтому амплитудная характеристика |Н(еш,г)| увеличивается. Таким
образом, в полюсе амплитудная характеристика имеет максимальное значение, тогда как в нуле амплитудная характеристика спадает до нуля.
В общем случае в геометрическом методе частотная характеристика при заданной частоте w (при угле wT) определяется отношением произведения векторов нулей UiZ9i; г = 1,2,... к произведению векторов полюсов 1^2^, г = 1,2,...
Пример 4.11
Найдите геометрическим методом частотную характеристику на постоянной составляющей и при частотах, равных 1/8, 1/4, 3/8 и 1/2 частоты дискретизации, причинной системы дискретного времени со следующим г-образом:
ИМ =
Изобразите амплитудно-частотную характеристику на отрезке 0 < w < ws, где ws (рад/с) — частота дискретизации.
Решение
В этом примере функция H(z) имеет единственный полюс и единственный нуль, как показано на диаграмме нулей и полюсов на рис. 4.10, а. Согласно уравнению (4.44) характеристика при частоте w задается как
я iwT = UZ9, = е^т +1= l+cos(^T)+zsin^T)
V Лф е<“т —0,7071 cos(wT) — 0,7071 + г sin(wT)
На постоянной составляющей шТ = 0, а векторы полюсов и нулей до точки z = 0 равны 220° и 0,292920°. Следовательно, частотная характеристика задается как
Я(е^т) = 2/0,2929 = 6,82820°.
При ш = ш81& шТ = wsj%Fs = тг/4. Векторы полюсов и нулей в этом случае показаны на рис. 4.10, б. Далее воспользуемся не действительными измерениями углов и длин векторов, а явным выражением из правой части уравнения (4.46). Таким образом,
Я(е^т)Я(е^т)1 + cos(tt/4) + г 81п(тг/4)cos(tt/4) — 0, 7071 + г sin(rr/4)
Я(е^т)
Я(е^т)
1,8477222,5°0,7071290°1,8477222,5°0,7071290°= 2,61312 — 67,5°.= 2,61312 — 67,5°.
1,8477222,5°0,7071290°
1,8477222,5°0,7071290°
= 2,61312 — 67,5°.
= 2,61312 — 67,5°.
Ниже приведены характеристики при остальных частотах, полученные аналогичным образом, а соответствующие векторы даны на рис. 4.10, в-д.
Рис. 4.10. Оценка частотной характеристики с помощью геометрического метода и диаграмма нулей и полюсов
ш (в рад/с)
wT (в рад)
\Н^\
Z.H(eiu,T) (в градусах)
0
0
6,828
0
ws/8
тг/4
2,6131
-67,5
Ws(4
тг/2
1,1547
-80,26
3oV8
Зтг/4
0,4840
-85,93
ws/2
7Г
0
0
Схематическое изображение амплитудной и фазовой характеристики показано на рис. 4.11. Следует отметить один важный момент — амплитудная характеристика |Н(ешТ)| симметрична относительно половины частоты дискретизации (частоты Найквиста), а фазовая характеристика антисимметрична относительно этой же частоты. Это всегда так, когда коэффициенты ак и Ьк системы дискретного времени действительные. Более того, частотная характеристика таких систем периодична с периодом ш8 (частота дискретизации). Отметим, что такое поведение согласуется с теоремой о дискретном представлении.
Непосредственный компьютерный расчет частотной характеристики
Геометрический расчет частотной характеристики дает нам представление о частотной характеристике, но понятно, что он может оказаться очень трудоемким, если нужно знать точную характеристику на многих частотах. Несмотря на то что этот процесс
Рис. 4.11. Схематическое изображение частотной характеристики системы дискретного времени из примера 4.11Рис. 4.11. Схематическое изображение частотной характеристики системы дискретного времени из примера 4.11
Рис. 4.11. Схематическое изображение частотной характеристики системы дискретного времени из примера 4.11
Рис. 4.11. Схематическое изображение частотной характеристики системы дискретного времени из примера 4.11
можно автоматизировать, его пригодность ограничивает сложность определения положения полюсов и нулей. Если необходимо знать полную частотную характеристику, как правило, в передаточную функцию непосредственно подставляют значение z = ешТ и вычисляют получающееся в результате этого выражение:
ЩегшТ) =ЩегшТ) =bo 4- b^z 1 4-4- bNz N do 4- 0-iZ 1 4~ • • • 4~ a-м2bo 4- b^z 1 4-4- bNz N do 4- 0-iZ 1 4~ • • • 4~ a-м2z^e^^'z^e^^'b0 + bxe-^T + ... + bNe-iN“Ta0 + агв-^т + ... + аме-1МшТb0 + bxe-^T + ... + bNe-iN“Ta0 + агв-^т + ... + аме-1МшТ(4.47)(4.47)
ЩегшТ) =
ЩегшТ) =
bo 4- b^z 1 4-4- bNz N do 4- 0-iZ 1 4~ • • • 4~ a-м2
bo 4- b^z 1 4-4- bNz N do 4- 0-iZ 1 4~ • • • 4~ a-м2
z^e^^'
z^e^^'
b0 + bxe-^T + ... + bNe-iN“Ta0 + агв-^т + ... + аме-1МшТ
b0 + bxe-^T + ... + bNe-iN“Ta0 + агв-^т + ... + аме-1МшТ
(4.47)
(4.47)
(4.48)(4.48)_ b0 + bj[cos(wT) — i sin(TVwT)] + ... + bN\cos(NwT) — г sin(wT)] a0 + ax [cos(wT) — г sin(wT)] + ... + ам [cos(MwT) — г sin(MwT)]'
(4.48)
(4.48)
Реализация уравнения (4.48) на языке С обсуждается в приложении 4Б. Программа вычисляет H(etwT)| на отрезке (0 < ш < ш8(2\ В приложении 4Г описано использование программного пакета MATLAB с примерами вычисления частотной характеристики.
Вычисление частотной характеристики с помощью БПФ
Для оценки частотной характеристики систем дискретного времени также можно использовать БПФ. Для БИХ-систем это делается следующим образом: сперва находится импульсная характеристика системы, например, методом разложения в степенной ряд, а затем вычисляется БПФ импульсной характеристики. Такая последовательность действий связана непосредственно с уравнением (4.42, б), которое показывает, что частотная характеристика системы дискретного времени — это просто Фурье-образ ее импульсной характеристики. Чтобы частотная характеристика получилась гладкой, прежде, чем искать БПФ, важно взять достаточное количество значений импульсной характеристики и/или дополнить значения импульсной характеристики нулями. Реализации этого алгоритма на языке Сив программном пакете MATLAB обсуждаются в приложениях к данной главе.
Альтернативный метод — вначале дополнить нулями числитель и знаменатель, например,
{Ь(п)} = {Ьо, bi, Ь2, - - -, Ьм, 0,0,..., 0},
(4.49) {a(n)} = {a0,ai, а2,..., ак, 0,0,..., 0},
а затем найти БПФ последовательностей {Ь(п)} и {а(п)}, А(к) и В(к) соответственно. Отношение этих двух БПФ и даст частотную характеристику:
Н^) = А(к)/В(к), к = 0,1,..., N/2.(4.50)
Единицы измерения частоты, которые используются в системах дискретного времени
Системы или сигналы непрерывного времени, как правило, описываются с помощью преобразования Лапласа. Следовательно, частотная характеристика системы непрерывного времени традиционно оценивается путем подстановки s = гы в передаточную функцию системы H(s), где s — комплексная переменная Лапласа. В ЦОС мы имеем дело с системами и сигналами дискретного времени. В этом случае частотную характеристику ищут путем подстановки z = е’“т и последующего вычисления функции z-преобразования H(z) на отрезке 0 < w < ws/2. Здесь стоит остановиться на ключевом моменте систем дискретного времени — зависимости эффективного интервала частот от частоты дискретизации ws.
В табл. 4.3 показано, как изменяются шТ и z при изменении w от 0 до ws. Можно показать, что если угол шТ пробегает значения от 0 до 2тг, то значение z изменяется от 1 до г и обратно до 1. Эту информацию в графическом виде можно найти на рис. 4.12. Из рисунка также очевидно, что частотная характеристика системы дискретного времени циклична: если пройти полный круг один или несколько раз, то значения z будут просто повторяться.
Как правило, для описания частотной характеристики систем дискретного времени пользуются двумя единицами измерения частоты — w (рад/с) и / (Гц). Если частота измеряется в рад/с, частотная характеристика пробегает значения от w = 0 до w =
Таблица 4.3. Единицы частоты, которые используются в системах дискретного времени, и их связь с точками на единичной окружности
f (Гц)
ш (рад/с)шТ (рад)z = е,шТ
0
4
2
зк
4 lFa
8 Fs
001
8422 1
2 Зкv2 i v2
84226
^я-1
5ws5kV*2 ^2•
84224
3u/eЗК -•
421
7kx/2V2-
8422 6
ш52тг1
F, = 1/Т — частота дискретизации в Гц; Т — период дискретизации; ш5 = 2я/Т — частота дискретизации в рад/с.
ws/2 или, что эквивалентно, от w = 0 до w = т^Т (поскольку ws 2ttFs = 2тг/Т). Если пользоваться стандартной единицей измерения частоты, которая выражается в герцах, частотный диапазон будет от 0 до Fs/“2, или от 0 до 1/2Т. Обе эти единицы измерения частоты можно записать в нормированном виде, т.е. при Т = 1 или, что эквивалентно, F, = 1. Взаимосвязь между этими двумя единицами измерения частоты показана в табл. 4.3. Следовательно, представляющие интерес частотные интервалы можно выразить одним из шести следующих эквивалентных способов:
О < ш < ш,/2О < ш < ш,/2О < ш < тг/ТО < ш < тг/ТО < шО < ш(рад/с)(рад/с) >(нормированный)(рад/с)(рад/с) >(нормированный)(4.51)(4-52)(4.51)(4-52)О < / < Fs/2 0<f< 1/2Г О < / < 1/2О < / < Fs/2 0<f< 1/2Г О < / < 1/2(Гц)(Гц) >(нормированный)(Гц)(Гц) >(нормированный)Рис. 4.12. Единичная окружность г-плоскости, на которой показаны критические точки частотыРис. 4.12. Единичная окружность г-плоскости, на которой показаны критические точки частоты
О < ш < ш,/2
О < ш < ш,/2
О < ш < тг/Т
О < ш < тг/Т
О < ш
О < ш
(рад/с)
(рад/с) >
(нормированный)
(рад/с)
(рад/с) >
(нормированный)
(4.51)
(4-52)
(4.51)
(4-52)
О < / < Fs/2 0<f< 1/2Г О < / < 1/2
О < / < Fs/2 0<f< 1/2Г О < / < 1/2
(Гц)
(Гц) >
(нормированный)
(Гц)
(Гц) >
(нормированный)
Рис. 4.12. Единичная окружность г-плоскости, на которой показаны критические точки частоты
Рис. 4.12. Единичная окружность г-плоскости, на которой показаны критические точки частоты
Измерение частоты в герцах больше привлекает (и меньше запутывает), если пользоваться графиками частотной характеристики или спецификацией системы дискретного времени. Однако при оценке численных математических формул в ЦОС удобнее пользоваться величинами, выраженными в рад/с.
Пример 4.12
Дано описание частотной характеристики полосового фильтра дискретного времени в виде
6-10 кГц,0-4 и 12-16 кГц,6-10 кГц,0-4 и 12-16 кГц,полоса пропускания полосы подавления
6-10 кГц,
0-4 и 12-16 кГц,
6-10 кГц,
0-4 и 12-16 кГц,
частота дискретизации 32 кГц.
Выразите спецификацию через нормированную частоту /.
Б. Переведите спецификацию из стандартных единиц (Гц) в рад/с.
Переведите спецификацию из рад/с (п. Б) в нормированную частоту ш.
Решение
Граничные частоты, которые измеряются в Гц, можно записать в нормированном виде, просто разделив каждую из них на частоту дискретизации. Таким образом, спецификация в нормированном виде будет выглядеть так:
полоса пропускания 0,1875-0,3125,
полосы подавления 0-0,125 и 0,375-0,5,
частота дискретизации 1.
2.2.Поскольку со = 2тг/, для того, чтобы перейти к рад/с, каждая граничная частота просто умножается на 2тг. Теперь спецификация частотной характеристики будет следующей:
2.
2.
полоса пропускания12000тг-20000тг рад/с,
полосы подавления0-8000тг и 24000тг-32000тг рад/с,
частота дискретизации 64000тг рад/с.
Граничные частоты из п. Б можно записать в нормированном виде, разделив каждую из них на 32 кГц (частоту дискретизации), например,
12000^ _ 1^ = ^.320008
Таким образом, спецификация приводится к виду: полоса пропусканияЗтг/8—5тг/8,
полосы подавления0-4 тг и Зтг/4-тг,
частота дискретизации 2тг.
Исследование устойчивости
Зачастую для разработки систем дискретного времени необходим анализ устойчивости. Полезный достаточный критерий устойчивости ЛИВ-систем можно сформулировать так: все ограниченные входные сигналы должны давать ограниченные выходные
Мп)па =0,5а =0,99а = 1а = 1,500,00000е+000,00000е+000,00000е+000,00000е+0011,00000е+011,00000е+011,00000е+011,00000е+0125,00000е+009,90000с+001,00000е+011,50000е+0132,5ООООе+ОО9,80100е+001,00000е+012,25ОООе+О141,25ОООе+ОО9,70299е+001,00000е+013,375ООе+О156,25000е-019,60596е+001,00000е+015,06250е+0163,125ООе-О19,50990е+001,00000е+017,59375е+0171,56250е-019,41480е+001,00000е+011,139О6е+О287,81250е-029,32О65е+ОО1,00000е+011,70859с+0293,90625е-029,22745е+001,00000е+012,56289е+02Мп)па =0,5а =0,99а = 1а = 1,500,00000е+000,00000е+000,00000е+000,00000е+0011,00000е+011,00000е+011,00000е+011,00000е+0125,00000е+009,90000с+001,00000е+011,50000е+0132,5ООООе+ОО9,80100е+001,00000е+012,25ОООе+О141,25ОООе+ОО9,70299е+001,00000е+013,375ООе+О156,25000е-019,60596е+001,00000е+015,06250е+0163,125ООе-О19,50990е+001,00000е+017,59375е+0171,56250е-019,41480е+001,00000е+011,139О6е+О287,81250е-029,32О65е+ОО1,00000е+011,70859с+0293,90625е-029,22745е+001,00000е+012,56289е+02а)а)Рис. 4.13. Иллюстрация поведения импульсной характеристики системы при различных степенях устойчивости: а — импульсная характеристика; 6 — диаграмма нулей и полюсов в z-плоскости; z- образ системы равен 10z-1/(l - az-1). 1. При a = 0,5 система устойчива. 2. При a = 0,99 она минимально устойчива. 3. При a = 1 система потенциально неустойчива. 4. При a = 1,5 она неустойчива. Заметим, например, что при a = 0,5 значения импульсной характеристики быстро спадают при увеличении п, тогда как прн a = 1,5 значения импульсной характеристики быстро возрастаютРис. 4.13. Иллюстрация поведения импульсной характеристики системы при различных степенях устойчивости: а — импульсная характеристика; 6 — диаграмма нулей и полюсов в z-плоскости; z- образ системы равен 10z-1/(l - az-1). 1. При a = 0,5 система устойчива. 2. При a = 0,99 она минимально устойчива. 3. При a = 1 система потенциально неустойчива. 4. При a = 1,5 она неустойчива. Заметим, например, что при a = 0,5 значения импульсной характеристики быстро спадают при увеличении п, тогда как прн a = 1,5 значения импульсной характеристики быстро возрастают
Мп)
п
а =0,5
а =0,99
а = 1
а = 1,5
0
0,00000е+00
0,00000е+00
0,00000е+00
0,00000е+00
1
1,00000е+01
1,00000е+01
1,00000е+01
1,00000е+01
2
5,00000е+00
9,90000с+00
1,00000е+01
1,50000е+01
3
2,5ООООе+ОО
9,80100е+00
1,00000е+01
2,25ОООе+О1
4
1,25ОООе+ОО
9,70299е+00
1,00000е+01
3,375ООе+О1
5
6,25000е-01
9,60596е+00
1,00000е+01
5,06250е+01
6
3,125ООе-О1
9,50990е+00
1,00000е+01
7,59375е+01
7
1,56250е-01
9,41480е+00
1,00000е+01
1,139О6е+О2
8
7,81250е-02
9,32О65е+ОО
1,00000е+01
1,70859с+02
9
3,90625е-02
9,22745е+00
1,00000е+01
2,56289е+02
Мп)
п
а =0,5
а =0,99
а = 1
а = 1,5
0
0,00000е+00
0,00000е+00
0,00000е+00
0,00000е+00
1
1,00000е+01
1,00000е+01
1,00000е+01
1,00000е+01
2
5,00000е+00
9,90000с+00
1,00000е+01
1,50000е+01
3
2,5ООООе+ОО
9,80100е+00
1,00000е+01
2,25ОООе+О1
4
1,25ОООе+ОО
9,70299е+00
1,00000е+01
3,375ООе+О1
5
6,25000е-01
9,60596е+00
1,00000е+01
5,06250е+01
6
3,125ООе-О1
9,50990е+00
1,00000е+01
7,59375е+01
7
1,56250е-01
9,41480е+00
1,00000е+01
1,139О6е+О2
8
7,81250е-02
9,32О65е+ОО
1,00000е+01
1,70859с+02
9
3,90625е-02
9,22745е+00
1,00000е+01
2,56289е+02
а)
а)
Рис. 4.13. Иллюстрация поведения импульсной характеристики системы при различных степенях устойчивости: а — импульсная характеристика; 6 — диаграмма нулей и полюсов в z-плоскости; z- образ системы равен 10z-1/(l - az-1). 1. При a = 0,5 система устойчива. 2. При a = 0,99 она минимально устойчива. 3. При a = 1 система потенциально неустойчива. 4. При a = 1,5 она неустойчива. Заметим, например, что при a = 0,5 значения импульсной характеристики быстро спадают при увеличении п, тогда как прн a = 1,5 значения импульсной характеристики быстро возрастают
Рис. 4.13. Иллюстрация поведения импульсной характеристики системы при различных степенях устойчивости: а — импульсная характеристика; 6 — диаграмма нулей и полюсов в z-плоскости; z- образ системы равен 10z-1/(l - az-1). 1. При a = 0,5 система устойчива. 2. При a = 0,99 она минимально устойчива. 3. При a = 1 система потенциально неустойчива. 4. При a = 1,5 она неустойчива. Заметим, например, что при a = 0,5 значения импульсной характеристики быстро спадают при увеличении п, тогда как прн a = 1,5 значения импульсной характеристики быстро возрастают
сигналы. Это так называемое условие ОВОВ (ограниченного входа, ограниченного выхода). Говорят, что ЛИВ-система ОВОВ-устойчива тогда и только тогда, когда она удовлетворяет условию
^M^l < оо, (4.53) к=0
где /г(/с) — импульсная характеристика системы. Очевидно, что если импульсная характеристика конечна, то вышеприведенное условие удовлетворяется, поскольку сумма коэффициентов импульсной характеристики будет конечной. Таким образом, исследование устойчивости применимо только к системам с импульсной характеристикой бесконечной длины.
Чтобы выход был ограниченным, все полюсы должны лежать внутри единичной окружности. Если полюс лежит за пределами единичной окружности, система неустойчива. На практике система с полюсом, лежащим на единичной окружности, также считается неустойчивой или потенциально неустойчивой, поскольку незначительное возмущение или ошибка обязательно приведут систему в состояние неустойчивости. Исключение составляет тот случай, когда полюс на единичной окружности совпадает с нулем, так что его действие компенсируется. Импульсная характеристика неустойчивой системы будет бесконечно расти со временем.
В принципе, проверка на устойчивость очень проста: найти положение полюсов z- преобразования. Если какой-либо полюс находится на единичной окружности или за ее пределами (если только он не совпадает с нулем на единичной окружности), система неустойчива. На практике же определение положения полюсов может оказаться совсем не простой задачей.
Простая проверка, которой можно воспользоваться, если z-образ системы Н(z) нельзя разложить на множители, — это найти достаточное количество значений импульсной характеристики и построить их график, вычислив обратное z-преобразование. Если импульсная характеристика бесконечно увеличивается со временем или достаточно быстро спадает до нуля, то система либо неустойчива, либо минимально устойчива. На рис. 4.13 показаны примеры поведения импульсной характеристики простой системы дискретного времени при различных степенях устойчивости. Другие, более изощренные, тесты на устойчивость можно найти в специализированных учебниках по z-преобразованию (например, [2, 4]). Далее тема исследования устойчивости для систем второго порядка развивается в главе 8.
Разностные уравнения
Разностное уравнение описывает реальные действия, которые система дискретного времени должна произвести над входными данными во временной области, чтобы получить необходимый выход. Разностное уравнение для большинства важных практических случаев можно записать в таком виде:
(4-54)(4-54)у(п) = 52 акх^ ~к^~^ ЬкУ^ ~ к),
(4-54)
(4-54)
где т(п) — элемент входной последовательности, у(п) — элемент выходной последовательности, у(п — к) — предыдущий выход, а ак, Ьк — коэффициенты системы. Как следует из уравнения (4.54), текущий выход у(п) получается из настоящего и прошлого элементов входной последовательности и предыдущего выхода у(п - к).
акх(п) <-> akX^z\akx(n — к) <-> akz~kX(z\акх(п) <-> akX^z\akx(n — к) <-> akz~kX(z\Воспользовавшись свойством задержки z-преобразования, разностные уравнения для систем дискретного времени можно легко получить из передаточных функций, и наоборот: . . .
акх(п) <-> akX^z\akx(n — к) <-> akz~kX(z\
акх(п) <-> akX^z\akx(n — к) <-> akz~kX(z\
Таким образом, уравнение (4.54) можно записать как
(4.55)(4.55)K(z) = £ akz"kX^ - £ bkz-kY^
(4.55)
(4.55)
Упростив выражение, получим передаточную функцию H(z) дискретной системы в z-области:
Если все коэффициенты знаменателя Ьк равны нулю, уравнения (4.54) и (4.55) сводятся к
(4.57, а)(4.57, а)NуМ = 52 ^^(^ - к),
(4.57, а)
(4.57, а)
(4-57’6>
' 'к—О
Теперь выход системы у(п) зависит только от настоящего и прошлого элементов входной последовательности, а не от предыдущего выхода, как в уравнении (4.54). Коэффициенты ак в данном случае представляют собой импульсную характеристику системы и обычно обозначаются символом Цк\ Этот класс ЛИВ-систем называют системами с конечной импульсной характеристикой (КИХ), поскольку длина последовательности /i(fc) определенно конечна.
Системы, которые характеризуются уравнениями (4.54) и (4.56), где по меньшей мере один из коэффициентов знаменателя не равен нулю, называются системами с бесконечной импульсной характеристикой (БИХ). В системах БИХ по меньшей мере один из полюсов будет ненулевым, а системы КИХ обычно не имеют полюсов.
Оценка импульсной характеристики
При проектировании систем дискретного времени часто возникает необходимость вычисления значений импульсной характеристики. Например, при проектировании системы КИХ импульсная характеристика требуется для реализации системы, а при проектировании системы БИХ эти значения нужны для анализа устойчивости. Также импульсной характеристикой можно воспользоваться для оценки частотной характеристики системы.
Импульсную характеристику системы дискретного времени можно определить как результат применения обратного z-преобразования к передаточной функции системы H(z):
ОД = Z"1^)], А: = 0,1,...
Если z-преобразование Н^ разложить в степенной ряд, т.е.
Н^ЦпК” =
(4.58)
= /z(0) + ЦОД1 + ОДг"2 + ...,
то коэффициенты z-преобразования дают непосредственно импульсную характеристику. Н(z) БИХ-систем часто выражается в виде отношения многочленов, как в уравнении (4.47). В этом случае для определения импульсной характеристики системы можно воспользоваться методами z-1, описанными в разделе 4.3. Для этой цели также используются программы на языке С или коды MATLAB, которые приводятся в приложении.
Импульсную характеристику можно также рассматривать как отклик системы дискретного времени на единичный импульс u(n), значение которого равно 1 при п = О и 0 при всех остальных значениях п. Такой подход оправдывается тем, что если вход системы сделать равным единичному импульсу, х(п) = и(пу то выход системы будет
фактически равен Л(п) — импульсной характеристике системы (строго говоря, характеристике единичного элемента):
(4.59)(4.59)у(п) = У^ h^i^-ri — к) — УУ /z(fc)u(n — к) =/с=0/с=0
(4.59)
(4.59)
= h^n^n) + /z(l)u(n — 1) + /i(2)u(n — 2) + ... =
= 7i(n), n = 0,1,...
Это дает простой альтернативный метод вычисления /г(п) (в действительности получаем еще один метод вычисления обратного z-преобразования), что и проиллюстрировано с помощью следующего примера.
Пример 4.13
Найдите импульсную характеристику фильтра дискретного времени, который характеризуется приведенным ниже z-образом
с помощью метода разложения в степенной ряд;
воспользовавшись единичным импульсом системы.
Решение
С помощью метода разложения в степенной ряд значения импульсной характеристики можно найти таким образом:
1 - г"1|1 + 0,5г-1
+ 0,52-!1-1,5z-1+0,75z-2 -0,375z-3 + ...
-1,5г-1
-1,5г-1 — 0,75z~2
0,75z“2
0,75z~2 +0,375z-3
-0,375z~3
Исходя из коэффициентов, вычислим значения импульсной характеристики:
/г(0) = 1; Л(1) = -1,5; Л(2) = 0,75; Л(3) = -0,325
Конечно, значения импульсной характеристики можно найти и с помощью данной в приложении программы на языке С для разложения в степенной ряд.
Во-первых, исходя из передаточной функции нужно найти разностное уравнение фильтра:
Х^ 1 + 0,5z-1’
Выполнив перекрестное умножение и воспользовавшись свойством задержки z- преобразования, найдем разностное уравнение:
Y^ + 0,SY^z" = X(z)-X(z)z"1,
у(п) + 0,5у(п — 1) = Цп) — х(п — 1).
После упрощения получаем:
у(п) = Цп) — х(п — 1) — О,5у(п — 1).
Теперь импульсную характеристику фильтра можно найти, сделав замену х(п) = и(п), где
, .fl п = О
v '[О п^О’
и предположив существование начального условия у(—1) = 0:
у(0) = 1
у(1) = х(1) - х(0) - 0,5у(0) = 0—1— 0,5 = —1,5
у(2) = х(2) - Ц1) - 0,5у(1) = -0,5 х -1,5 = 0,75
у(3) = х(3) - х(2) - 0,5у(2) = -0,5 х 0,75 = -0,325
Отсюда значения импульсной характеристики равны
ЦО) = 1;Ц1) = —l,5;/z(2) = 0,75;/г(3) = -0,325.
Видно, что оба метода приводят к одинаковым результатам.
а)а)Рис. 4.14. Диаграммы реализации разностного уравнения: а — в виде блок-схемы; б — в виде функциональной схемыРис. 4.14. Диаграммы реализации разностного уравнения: а — в виде блок-схемы; б — в виде функциональной схемы
а)
а)
Рис. 4.14. Диаграммы реализации разностного уравнения: а — в виде блок-схемы; б — в виде функциональной схемы
Рис. 4.14. Диаграммы реализации разностного уравнения: а — в виде блок-схемы; б — в виде функциональной схемы
Еще одна важная область применения z-преобразования при проектировании цифровых фильтров — это описание структуры цифрового фильтра. Рассмотрим этот вопрос подробнее, поскольку он требует использования программы разложения на элементарные дроби, которая упоминалась ранее.
Структуры реализации цифровых фильтров
Фильтры дискретного времени часто представляют в виде блок-схем или функциональных схем. Такие диаграммы — удобный способ представления разностных уравнений или, что эквивалентно, передаточных функций. Рассмотрим, например, простой дискретный фильтр со следующим разностным уравнением:
у(п) = х(п - 1) - bvy(n - 1) + Ь2у(п - 2) + Ь3у(п - 3)(4.60)
Представление этого уравнения в виде блок-схемы показано на рис. 4.14, а. На этом рисунке символ z-1 обозначает задержку на 1 единицу времени. Стрелочками обозначены усилители, а постоянные, стоящие рядом с ними, — это коэффициенты усиления. Связь между разностным уравнением и блок-схемой очевидна. Представление того же разностного уравнения в виде функциональной схемы показано на рис. 4.14, б. В литературе блок-схему (или функциональную схему) принято называть диаграммой реализации.
Если Н^ высокого порядка, фильтр дискретного времени редко реализуется непосредственно, как показано на рис. 4.14, поскольку при представлении коэффициентов и разностного уравнения небольшим числом битов будут получены большие ошибки (см. главы 8 и 13). Обычно передаточную функцию представляют в виде комбинации параллельно или последовательно соединенных z-образов первого и/или второго порядка. Для последовательного представления передаточная функция H(z) раскладывается как
к
н& = н^ад... тад = П #М(4-61)
1=1
А")А")нмнмРис. 4.15. Общая структура последовательной реализацииРис. 4.15. Общая структура последовательной реализации
А")
А")
нм
нм
Рис. 4.15. Общая структура последовательной реализации
Рис. 4.15. Общая структура последовательной реализации
где H^z) — звено второго либо первого порядка:
НМ = T^FT^S второй ПОРТОК
Ht(z) = ^^Fr первый порядок
а К — целая часть (М + 1)/2. Все z-преобразование — это произведение отдельных z-преобразований (рис. 4.15).
При выборе параллельной реализации передаточная функция раскладывается на элементарные дроби, что дает
к
(4.62)(4.62)Н^ = В0^Н^\
(4.62)
(4.62)
где, как и прежде, Н;(х) — звено второго либо первого порядка, но на этот раз в виде
НМ = ТТё^Й^ ~ ВТ°Р°Й порядок
Щ^ = T+bi°z-r— первый порядок
где К — целая часть (М + 1)/2, а
Sq — aN(bM.
Общая схема параллельной реализации показана иа рис. 4.16.
Ап)Ап)Рис. 4.16. Общая схема параллельной реализацииРис. 4.16. Общая схема параллельной реализации
Ап)
Ап)
Рис. 4.16. Общая схема параллельной реализации
Рис. 4.16. Общая схема параллельной реализации
При разработке цифровых фильтров вышеприведенные коэффициенты а^ и bk, как правило, определяют с помощью программных пакетов. К сожалению, большая часть программных пакетов выдает коэффициенты только для последовательной реализации. Коэффициенты же параллельной реализации можно найти по коэффициентам последовательной реализации с помощью метода разложения на элементарные дроби. Проиллюстрируем это на примере.
Пример 4.14
Система дискретного времени характеризуется следующим z-образом передаточной функции:
1 - 2z~ + z-4
н^ = Г^оГИ+й^ч^бГт^
Запишите Н^ в виде, удобном для построения последовательной структуры с использованием звеньев второго порядка.
Повторите п. 1 для параллельной структуры.
Решение
В разложенном виде Н^ задается как
Н^ = H1(z)S2(z),
где
Нх^ =Нх^ =1 — 2z-1 +Z-21-1,14121г"1 +Z-2’1 — 2z-1 +Z-21-1,14121г"1 +Z-2’(4.63, а)(4.63, а)НМ =НМ =1 - 2г"1 + г"21 + г~1 + 0,5г"2’1 - 2г"1 + г"21 + г~1 + 0,5г"2’(4.63, 6)(4.63, 6)
Нх^ =
Нх^ =
1 — 2z-1 +Z-21-1,14121г"1 +Z-2’
1 — 2z-1 +Z-21-1,14121г"1 +Z-2’
(4.63, а)
(4.63, а)
НМ =
НМ =
1 - 2г"1 + г"2
1 + г~1 + 0,5г"2’
1 - 2г"1 + г"2
1 + г~1 + 0,5г"2’
(4.63, 6)
(4.63, 6)
Н (г) — So -IНz - piН (г) — So -IНz - piС2 | С3 । С4г - р2 z - р3 z - р4"С2 | С3 । С4г - р2 z - р3 z - р4"(4.64)(4.64)Воспользовавшись программой для разложения на элементарные дроби (приложение 4Б), найдем полюсы от рх до р4 и коэффициенты So и Ci-C4:
Н (г) — So -IН
z - pi
Н (г) — So -IН
z - pi
С2 | С3 । С4
г - р2 z - р3 z - р4"
С2 | С3 । С4
г - р2 z - р3 z - р4"
(4.64)
(4.64)
Р! =0,7071 +0,7071i = ei0'785; р2 = р?
р3 =—0,5 + 0,5г = 0,7071е*2,35619; р4 = р^
So = 2
Сх = 0,114383 + 0,666669г = 0,6764104/1,400877; С2 = С* (4.65)
С3 = -0,61438276 - 0,58088079г =
= 0,8455108976/3,898969; С4 = С*,
где углы измеряются в радианах. Найдя полюсы и коэффициенты Ск и Во, дроби из уравнения (4.64) нужно объединить так, чтобы функция H^z') описывала сумму звеньев второго порядка в виде
2
гдегде(4.66, а)(4.66, а)(4.66, б)(4.66, б)вд = во + £вд,1=1
где
где
(4.66, а)
(4.66, а)
(4.66, б)
(4.66, б)
_ а0 + aHz 1
1 + b^z”1 + b21z"2'
Чтобы коэффициенты aki и bki из уравнения (4.65, б) были действительными, элементарные дроби из уравнения (4.64), содержащие Ct и С2 (комплексно-сопряженную пару), нужно объединить. Аналогично нужно объединить также дроби с коэффициентами С3 и С4. Объединив дроби с коэффициентами Су и С2, получим:
C^z । C2z _ (Ci + C^z2 — (С4р2 + C2Py)z _
Z-Pl Z-p2 Z2 - (рг + p2)z + ргр2
,(4.67)
_ Cj + C2 — (C1P2 + C2p^z
1 - (Pl + P2>-1 ZPyPiZ"2 '
Сравнив уравнения (4.65, б) и (4.67) при г = 1 в уравнении (4.65, б), находим, что
«01 — Cj + С2, 0ц = — (Схр2 + C2pi)
6ц = -(Pi + Рг), 612 = Р1Р2(4.68)
Если учесть тот факт, что р2 = p*v С2 = С*, и подставить значения рг и С], то а01 = G + С* = 2 х О,114383 = 0,2288 «и = ЧС1Р\ + С^ =
= -(IC^MPil^1 + IGIe-^lp^^) =
= -^iHPil^1-^ +=(4.69)
= -2|C1||pi|cos(61 - ф^ =
= -2 x 0,6764104 х 1 cos(l, 400877 - 0,78540068) =
= -1,1046,
где 6Х = Z.CX, фх = Z-px. Следовательно, мы получим:
0,228^04^ 1-1.4142Z"1+z-2’
где значения коэффициентов знаменателя берутся прямо из уравнения (4.63). Аналогично из элементарных дробей с коэффициентами С3 и С4 получаем
тт , .-1,2288-0,0335г-1
= —’ Г4.7П
Объединив результаты, получим
х „ 0,2288 — 1,1046г-*-1,2288-0,03352"*
1 - 1.41422-* + z"21 + 2-*+0,52-2
Хотя вышеприведенный процесс по своей сути и прост, он очень трудоемкий, кроме того, существует большая вероятность допустить ошибку, особенно если вычислять коэффициенты элементарных дробей вручную. В приложении 4Б приводится стандартная программа на языке С, которую можно использовать для поиска коэффициентов параллельной структуры по известной передаточной функции, представленной в последовательной форме. В действительности эта программа представляет собой простое дополнение к программе разложения на элементарные дроби, описанной в том же приложении. В главе 8 мы несколько подробнее остановимся на областях применения последовательной и параллельной структур.
Резюме
При работе в области ЦОС очень важно разбираться в г-преобразовании — бесценном средстве описания, анализа и проектирования систем дискретного времени.
В главе показано, как находится 2-образ последовательностей дискретного времени и как восстанавливаются последовательности по их г-образам. Предлагается несколько программ на языке С и кодов MATLAB, которые позволят читателям на практике изучить основные принципы и примеры применения г-преобразования в обработке сигналов.
Задачи
Найдите 2-образы следующих последовательностей дискретного времени:
т(п) = sin(nwT), п — 0,1,...
3.3.а",О,а",О,п > О п < Оп > О п < О
3.
3.
а",О,
а",О,
п > О п < О
п > О п < О
/ ,[ 1,0 < n < N — 1
Tin) = {
I 0, в остальных случаях
Экспоненциальная последовательность задается как
а;(п) = е кп,п > 0.
Найдите ее z-образ и условие на z, при выполнении которого z-образ сходится, для каждого из следующих случаев:
к действительное;
к комплексное.
Даны причинные последовательности ж(п) и пх^п) с z-образам X(z) и X'(z). Покажите, что
Пусть z-образ последовательности дискретного времени задается как
X(z) = ^a;(n)z-n.
71 = 0
Исходя из этого уравнения, покажите, оговорив все сделанные предположения, что обратное z-преобразование задается как
х(п) — 2^ ^ zn~1X(z')dz, п > 0.
Подумайте о роли теоремы о вычетах в вычислении этого интеграла.
1. С помощью метода разложения в степенной ряд найдите первые пять значений причинной последовательности дискретного времени, соответствующей каждому из следующих z-образов:
X(z") — (г_0jo7i)2 ’
X(z) — (^То^дТ^эут,
х^ =
г) ВД =
Повторите п. 1, воспользовавшись методом разложения на элементарные дроби.
Повторите п. 1, воспользовавшись методом вычетов.
1. Дан z-образ Х^ в виде
где N(z) и B(z) — многочлены. Предположив, что X(z) имеет полюс в точке z = рк, покажите, что
где
Воспользуйтесь этим результатом, чтобы найти обратное z-преобразование следующего выражения:
Дана следующая передаточная функция устойчивой причинной системы:
Н^ = l + ^z^ + b^"
С помощью метода вычетов найдите ее импульсную характеристику /г(п) в аналитическом виде. Предположите, что полюсы разные и комплексные.
Разложение системы дискретного времени N-ro порядка на элементарные дроби выглядит так:
Х^ = ® = Во + £ -CkZ
ВИ ^tz-PkZ
где
N(z) = а0 + a^z-1 + a2z-2 + ... + aNz~N
D^ = bo + b^z 1 + b2z 2 + ... + bMz M,
Pk — полюсы функции X^z) (предположим, что они отдельные), а Ск — коэффициенты элементарных дробей. Найдите общее выражение для Ск, к = 1,2,..., записанное через полюсы рк и N(z\ Предположив, что N — 3, покажите путем деления в столбик, что Во задается как
Во — Чз/Ьз-
Дано разностное уравнение
у(п) + В^п - 1) + В2у(п - 2) = Л, п > О,
где A, Bi и В2 — произвольные постоянные. Найдите z-образ Y^z\ Воспользовавшись подходящим методом вычисления обратного z-преобразования, найдите аналитическое выражение для у(п).
Система дискретного времени второго порядка характеризуется следующим z- образом передаточной функции:
Я^ = (z-0,9)2’ lzl>0’9‘
С помощью метода вычетов найдите соответствующую последовательность дискретного времени h(n\
Для системы дискретного времени, изображенной на рис. 4.17, найдите разностное уравнение, связывающее выход у^п) и вход т(п). Выведите ее передаточную функцию H(z\
-1,619
-0,878
Рис. 4.17. Блок-схема системы дискретного времени из задачи 4.11
Передаточная функция системы дискретного времени имеет полюсы в точках z = 0,5, z = 0,1 ± 0,2г и нули в точках z = -1 и z = 1.
Изобразите диаграмму нулей и полюсов для этой системы.
Выведите из диаграммы нулей и полюсов передаточную функцию H(z) системы.
Запишите разностное уравнение.
Изобразите схему реализации в виде функциональной диаграммы.
На рис. 4.18 показана функциональная схема системы дискретного времени. Найдите двухэтапное разностное уравнение, связывающее выход у(п) и вход х(пУ Из разностного уравнения выведите передаточную функцию H(z).
Дана спецификация частотной характеристики полосового фильтра дискретного времени в нормированном виде:
полоса пропускания0,4тг-0, бтг,
полосы подавления0-0, Зтг и 0,7тг-тг,
интервал дискретизации Т = 100 мкс.
Рис. 4.18. Функциональная схема системы дискретного времени из задачи 4.13
Выразите эту спецификацию в рад/с (денормируйте ее).
Переведите спецификацию из рад/с в стандартные единицы — герцы.
Переведите спецификацию из герц (п. 2) в нормированный вид.
Изобразите частотные характеристики для всех трех случаев на интервале от 0 до частоты дискретизации.
ЛИВ-система характеризуется следующим г-образом:
1 + z—2
1 + 1.81Z-2'
Найдите частотную характеристику на постоянной составляющей, а также при 1/4 и 1/2 частоты дискретизации. Изобразите частотную характеристику на интервале 0 < ш < ш3, где ш3 — частота дискретизации в рад/с.
Требуется простой фильтр нижних частот со следующей спецификацией:
частота среза1 кГц,
частота дискретизации 10 кГц.
Определите и изобразите подходящую диаграмму нулей и полюсов для этого фильтра.
Найдите передаточную функцию фильтра по его диаграмме нулей и полюсов. Определите амплитудную и фазовую характеристику при частоте 1, 2,5 и 5 кГц. Изобразите амплитудно-частотную характеристику.
Передаточная функция некоторой системы определяется как
(1 - 1,094621г-1 - z2)(l - 0,350754z-1 + г-2)(1 - 1,340228г-1 + 0,796831г-2)(1 - 0,5z-1 - 0,5z-2) "
Найдите полюсы и нули и изобразите диаграмму нулей и полюсов.
Определите, устойчива система или нет, и обоснуйте свой ответ.
Задачи для решения с помощью языковых средств и MATLAB
Передаточная функция системы дискретного времени задается как
г2 -0,9051г +0,4096"
Определите положения полюсов и нулей с помощью команды MATLAB roots (нули должны быть в точках z = 0, z = ±1; полюсы — на радиусе 0,64245°).
Повторите п. 1 для случая, когда многочлены в числителе и знаменателе записаны через возрастающие отрицательные показатели степени:
1 -0,9051г"1 + 0,4096z-2’
Сравните результаты п. 1 и 2 и прокомментируйте разницу, если она есть. Что нужно сделать, чтобы ответы были одинаковыми?
С помощью команды MATLAB zplane постройте диаграмму нулей и полюсов для H(z) из п. 1 для следующих случаев:
в качестве входных данных используются коэффициенты многочленов числителя и знаменателя 6(z) и a(z);
в качестве входных данных используются положения полюсов и нулей функции H(z).
Передаточная функция узкополосного режекторного фильтра дискретного времени задается как,„.„
- 2 cos У + z~2
1 — 2r cos 9z~x + r2z~2 ’
где т — радиус полюсов, а 9 — угол полюсов и нулей.
С помощью программы MATLAB постройте график амплитудно-частотной характеристики фильтра и оцените степень режекции (относительно амплитудной характеристики при частоте 0 кГц) для каждого из следующих случаев:
г = 0,5; 9 = ±15°;
г = 0,5; 0 = ±60°;
г = О,5;0 = ±90°;
г = 0,5; 0 = ±120°.
Постройте график амплитудно-частотной характеристики фильтра и оцените степень режекции (относительно амплитудной характеристики при частоте 0 кГц) для каждого из следующих случаев:
г = 0,5; 9 = ±45°;
г = О,8;0 = ±45°;
г = 0,9; 0 = ±45°;
г = 0,99; 9 = ±45°.
Объясните, как положения (радиусы и углы) полюсов и нулей влияют на частотную характеристику узкополосного режекторного фильтра.
Пусть z-образ системы дискретного времени задается как
8/ 8
H(z^ = '^akz”k ^bkz~k ,fc=0/ fc=O
гдегдеа0 = 2,740584 х 10-2 О1 = 2,825341 х 10-3 а2 = -2,932353 х 10-2 а3 = 3,563199 х 10-4 а4 = 4,924136 х 10-2 а5 = 3, 563226 х 10-4 а6 = -2,932353 х 10-2 а7 = 2,825337 х 10-3 а8 = 2,740582 х 10-2а0 = 2,740584 х 10-2 О1 = 2,825341 х 10-3 а2 = -2,932353 х 10-2 а3 = 3,563199 х 10-4 а4 = 4,924136 х 10-2 а5 = 3, 563226 х 10-4 а6 = -2,932353 х 10-2 а7 = 2,825337 х 10-3 а8 = 2,740582 х 10-26о — 1Ьг = 2,233030 х 10-162 = 2,35376263 = 4,369285 х 10-164 = 2,71241165 =3,571619 х 10-166 = 1,59395767 = 1,141820 х 10-168 = 4,143201 х 10-16о — 1Ьг = 2,233030 х 10-162 = 2,35376263 = 4,369285 х 10-164 = 2,71241165 =3,571619 х 10-166 = 1,59395767 = 1,141820 х 10-168 = 4,143201 х 10-1
где
где
а0 = 2,740584 х 10-2 О1 = 2,825341 х 10-3 а2 = -2,932353 х 10-2 а3 = 3,563199 х 10-4 а4 = 4,924136 х 10-2 а5 = 3, 563226 х 10-4 а6 = -2,932353 х 10-2 а7 = 2,825337 х 10-3 а8 = 2,740582 х 10-2
а0 = 2,740584 х 10-2 О1 = 2,825341 х 10-3 а2 = -2,932353 х 10-2 а3 = 3,563199 х 10-4 а4 = 4,924136 х 10-2 а5 = 3, 563226 х 10-4 а6 = -2,932353 х 10-2 а7 = 2,825337 х 10-3 а8 = 2,740582 х 10-2
6о — 1
Ьг = 2,233030 х 10-1
62 = 2,353762
63 = 4,369285 х 10-1
64 = 2,712411
65 =3,571619 х 10-1
66 = 1,593957
67 = 1,141820 х 10-1
68 = 4,143201 х 10-1
6о — 1
Ьг = 2,233030 х 10-1
62 = 2,353762
63 = 4,369285 х 10-1
64 = 2,712411
65 =3,571619 х 10-1
66 = 1,593957
67 = 1,141820 х 10-1
68 = 4,143201 х 10-1
Найдите и постройте график импульсной характеристики системы, воспользовавшись программой для обратного z-преобразования (метод разложения в степенной ряд), описанной в приложении, или подходящей программой из пакета MATLAB. Опираясь на полученный график, определите, устойчива эта система, минимально устойчива или неустойчива.
Передаточная функция БИХ-системы третьего порядка в разложенном виде выглядит как
№ =№ =Wi(z))V2(z)Wi(z))V2(z)D1(z)D2(z)’D1(z)D2(z)’
№ =
№ =
Wi(z))V2(z)
Wi(z))V2(z)
D1(z)D2(z)’
D1(z)D2(z)’
где
М(z) = 1 - 0,971426г-1 + z-2,
N^z^ = 1 + z-1,
Dx (z) = 1 - 0,935751z-1 + 0,726879г-2, D2(z) = 1 + 0,18311z-1.
Изобразите диаграмму реализации системы с последовательной структурой, используя звенья первого и второго порядка.
Выразите H(z) в виде суммы элементарных дробей
3
и воспользуйтесь для вычисления коэффициентов Во и С^ программой разложения на элементарные дроби из приложения 4В или подходящей командой MATLAB.
Объедините элементарные дроби так, чтобы систему можно было реализовать в виде параллельной структуры с помощью звеньев первого и второго порядка.
С помощью результата п. 3 изобразите схему реализации параллельной структуры.
Цифровой узкополосный режекторный фильтр характеризуется следующим z- образом:
z2 + 1
Z2 + г2
Найдите частотную характеристику, воспользовавшись методом БПФ и частотой дискретизации в 1 кГц, для каждого из нижеследующих случаев: а) г = 0,8;
г = 0,95; в) г = 1. Объясните полученный результат.
Передаточная функция фильтра нижних частот дискретного времени имеет следующий вид:
а0 + a4z 1 + a2z 2 + ... + a4z 4bo + byz-1 + b2z~2 + ... + 64Z-4
где
a0 = 0,193441 ai = 0,378331 a2 = 0,52414 a3 = 0,378331 a4 = 0,193441a0 = 0,193441 ai = 0,378331 a2 = 0,52414 a3 = 0,378331 a4 = 0,1934415g — 1^ = -2,516884b2 = 1,054118b3 = -0,240603 b4 = 0,19858615g — 1^ = -2,516884b2 = 1,054118b3 = -0,240603 b4 = 0,1985861
a0 = 0,193441 ai = 0,378331 a2 = 0,52414 a3 = 0,378331 a4 = 0,193441
a0 = 0,193441 ai = 0,378331 a2 = 0,52414 a3 = 0,378331 a4 = 0,193441
5g — 1
^ = -2,516884
b2 = 1,054118
b3 = -0,240603 b4 = 0,1985861
5g — 1
^ = -2,516884
b2 = 1,054118
b3 = -0,240603 b4 = 0,1985861
Найдите частотную характеристику фильтра, воспользовавшись
программой непосредственного вычисления частотной характеристики, описанной в приложении 4В;
методом разложения в степенной ряд и БПФ.
Сравните эти два результата и прокомментируйте различия, если они есть.
В табл. 4.4 приведены коэффициенты простой полосовой КИХ-системы. Предположив, что частота дискретизации равна 10 кГц, рассчитайте амплитудночастотную характеристику системы, воспользовавшись программой, предложенной в приложении 4В.
Дан z-образ
н(х =L±2£l±£i±r!
1 + (1 — k)z-1 + (к 4- 0,3561)z-2 + 0,3561/с
С помощью программы разложения в степенной ряд из приложения 4Б найдите достаточное количество значений импульсной характеристики системы для каждого из следующих случаев:
к = -1;
к = 1;
к = 2;
к = 0,9.
Таблица 4.4. Коэффициенты полосового КИХ-фильтра из задачи 4.24
HW =
-0,672996005 - 02
= Я(35)
H® =
0,167994205 - 01
= Я(34)
ЩЗ) =
0,171957005 - 01
= Я(33)
H(4) =
-0,278490805 - 01
= Я(32)
нт =
-0,174868105 - 01
= Я(31)
Я(6) =
0,135155805 - 01
= Я (30)
нт =
0,455705105 - 02
= Я(29)
нт =
0,332930605 - 01
= Я(28)
нт =
0,951621505 — 02
= Я(27)
Я(10) =
-0,685485605 - 01
= Я(26)
Я(11) =
-0,689922305 - 02
= Я(25)
Я(12) =
0, 238023705 - 01
= Я(24)
Я(13) =
—0,115975105 — 01
= Я(23)
Я(14) =
0,120737805 + 00
= Я(22)
Я(15) =
0,238069005 - 01
= Я(21)
Я(16) =
-0,290956905 + 00
= Я(20)
Я(17) =
-0,123623805 - 01
= Я(19)
Я(18) =
0,367177005 + 00
= Я(18)
Для каждого случая постройте график импульсной характеристики и определите по нему, устойчива система, минимально устойчива или неустойчива.
Напишите на языке С программу проверки результата разложения на элементарные дроби. Программа должна принимать в качестве входа значения полюсов Рк (к = 1,2,..., М) и связанные с ними коэффициенты Ск (к = 1,2,..., М) и выдавать на выходе коэффициенты многочленов А^ и В^, где
ВД =ВД =А^В^А^В^
ВД =
ВД =
А^
В^
А^
В^
A(z)=ao + a!Z 1 + a2z 2 + . • • + aNz N,
В^ — bo + b-^z 1 + b2z 2 + ... + b^z M.
Дополните вашу программу возможностью проверять результаты преобразования последовательных структур в параллельные.
Повторите задачу 4.26, воспользовавшись программным пакетом MATLAB.
Литература
Atkinson L. V. and Harley Р. J. (1983) An Introduction to Numerical Methods with Pascal, Chapter 3. Wokingham: Addison-Wesley.
Jury E. I. (1964) Theory and Applications of the z-transform Method. New York: Wiley.
Mathews J. H. (1982) Basic Complex Variables for Mathematics and Engineering. Boston MA: Allyn and Bacon.
Proakis J. G. and Manolakis D. G. (1992) Digital Signal Processing, 2nd edn. New York: Macmillan.
Дополнительная литература
Ahmed N. and Natarajan Т. (1983) Discrete-time Signals and Systems. Reston VA: Reston Publishing Co. Inc.
Churchhill R. V, Brown J. W. and Verhey R. F. (1976) Complex Variables and Applications. New York: McGraw- Hill.
Jong M. T. (1982) Methods of Discrete Signals and Systems Analysis. New York: McGraw-Hill.
Oppenheim A. V. and Schafer R. W. (1975) Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Rabiner L. R. and Gold B. (1975) Theory and Application of Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Ragazzini J. R. and Zadeh L. A. (1952) Analysis of sampled data systems. Trans. AIEE, 71(11), 225-234.
Steiglitz K. (1974) An Introduction to Discrete Systems. New York: Wiley.
Strum R. D. and Kirk D. E. (1988) First Principles of Discrete Systems and Digital Signal Processing. Reading
MA: Addison-Wesley.
Приложения
A. Рекурсивный алгоритм вычисления обратного z-преобразования
В данной главе утверждалось, что метод деления в столбик можно переделать таким образом, чтобы он приобрел рекурсивный вид. Здесь, в частности, мы хотим показать, что при заданном z-образе X(z), таком что
b0 + b^z 1 + b^z 2ад + a^z-1 + a2z-2 ’
обратное z-преобразование т(п) можно найти как [Jury, 1964]:
;r(n) = — Ьп-'^Х^;r(n) = — Ьп-'^Х^п — г)а.п — г)а.,п = 1,2,...,п = 1,2,...
;r(n) = — Ьп-'^Х^
;r(n) = — Ьп-'^Х^
п — г)а.
п — г)а.
,п = 1,2,...
,п = 1,2,...
т(0) = —
Этот результат можно обобщить. С помощью деления в столбик можно выразить X(z) в виде степенного ряда:
Частное, полученное при делении в столбик, даст коэффициенты степенного ряда:Частное, полученное при делении в столбик, даст коэффициенты степенного ряда:=-+ яо L \=-+ яо L \Ьо—«1QqЬо—«1Qq1+ — Яо1+ — Яоbo—Qi Яоbo—Qi Яо/оо/оо1 г+ — 5 я0 I1 г+ — 5 я0 IQiЯоQiЯоQiЯоQiЯоbibiz 2z 2
Частное, полученное при делении в столбик, даст коэффициенты степенного ряда:
Частное, полученное при делении в столбик, даст коэффициенты степенного ряда:
=-+ яо L \
=-+ яо L \
Ьо
—«1
Ьо
—«1
1
+ — Яо
1
+ — Яо
bo
—Qi Яо
bo
—Qi Яо
/оо
/оо
1 г
+ — 5 я0 I
1 г
+ — 5 я0 I
Qi
Яо
Qi
Яо
Qi
Яо
Qi
Яо
bi
bi
z 2
z 2
Согласно определению z-преобразования для причинных систем X^z) задается как
X(z) = ^ir(n)z " = т(0) + t(1)z 1 + a:(2)z 2 + ... n=0
Следовательно, можно записать
т(0) = Ь0/а0
ж(1) = — ffoj — —Я1^ = — [&1 — т(0)я!] Яо \ Яо / Яо
т(2) = 1Яот(2) = 1ЯоЬо \ Я1 / Ьо
т(2) = 1
Яо
т(2) = 1
Яо
С>2 — —~d2 I — I ^1 — ~~(li , а0 / а0 \ а0
= —[Ь2 - т(0)я2 - Я!2:(1)] Яо
т® = г я0т® = г я0(12Яо(12Яоbibibo—«1 Яоbo—«1 Яоai (АЬо \ ] I ^2 — ^2 I ао ( \а0 /ai (АЬо \ ] I ^2 — ^2 I ао ( \а0 /QiЯоQiЯоbibibo—Qi Яоbo—Qi Яо
т® = г я0
т® = г я0
(12
Яо
(12
Яо
bi
bi
bo
—«1 Яо
bo
—«1 Яо
ai (АЬо \
] I ^2 — ^2 I ао ( \а0 /
ai (АЬо \
] I ^2 — ^2 I ао ( \а0 /
Qi
Яо
Qi
Яо
bi
bi
bo
—Qi Яо
bo
—Qi Яо
= —[-я2т(1) - Я!Т(2)] Яо
В общем виде запишем
/ X 1т(п) = —/ X 1т(п) = —,п = 1,2,...,п = 1,2,...
/ X 1т(п) = —
/ X 1т(п) = —
,п = 1,2,...
,п = 1,2,...
т(0) = Ъ0/а0.
.Б. Программа на С для оценки обратного z-преобразования и превращения последовательной структуры в параллельную
Вычисление обратного z-преобразования с помощью метода разложения в степенной ряд или на элементарные дроби можно оформить в виде программы на языке С. Эта программа также используется для преобразования передаточной функции Н(z) системы дискретного времени из последовательной структуры в параллельную. Поскольку указанная программа достаточно велика, для эффективности было сформировано два программных модуля izt.c и Itilib.c, хранящихся в отдельных файлах, которые можно скомпилировать отдельно, а затем соединить:
izt.c программа вычисления обратного z-преобразования через разложение в степенной ряд или на элементарные дроби, и преобразования передаточной функции H^z\ представленной в виде последовательной структуры, в эквивалентную передаточную функцию, имеющую параллельную структуру, через разложение на элементарные дроби;
Itilib. с библиотека функций, в том числе функций power_series и partial_fraction.
Из-за недостатка свободного места сама программа и библиотека функций здесь не приводятся, но их можно найти на компакт-диске к книге [Ifeachor, 2001] (подробности см. в предисловии).
.Б.1. Метод степенного ряда
Обратное z-преобразование т(п) вычисляется рекурсивным способом с помощью функции power_series () (см. программу), в основе которой лежит следующее уравнение:
где
(4Б.1, б)(4Б.1, б)т(0) = Ъ0(а0.
(4Б.1, б)
(4Б.1, б)
Для того чтобы можно было воспользоваться программой для вычисления обратного z- преобразования методом разложения в степенной ряд, z-образ должен быть представлен либо непосредственно, либо в виде последовательной структуры:
(4Б.2, а)(4Б.2, а)(4Б.З)(4Б.З), i>o + b^z 1 + b2z 2 + ... + bwzN„
(4Б.2, а)
(4Б.2, а)
(4Б.З)
(4Б.З)
X(z) =:Г7 непосредственный вид
v 7 ao + aiZ-1+a2z"2+ ...+aMzMH
к
X(z) = JJXj(z) последовательнаяструктура k—i
где Xi^z) — звено второго порядка, которой задается как
boi + Ьцг 1 + b2iZ 2
1 "Г ^li-^ ^ ~Г a-^z 2
Для работы программы нужно создать файл входных данных под названием со- eff.dat. В этом файле записывается количество каскадов К (для непосредственного представления К = 1) и коэффициенты числителя и знаменателя г-образа. Пользоваться таким входным файлом очень удобно, поскольку это избавляет от необходимости вводить коэффициенты вручную, а при этом можно допустить ошибку. Более того, это позволяет использовать результаты одного исследования в качестве входных данных для другой программы. Ниже использование программы иллюстрируется на вычислении обратного z-преобразования через метод разложения в степенной ряд.
Пример 4Б.1
С помощью метода разложения в степенной ряд найдите первые пять значений обратного z-преобразования системы дискретного времени, которая характеризуется следующим г-образом:
_ °, 1833015 + 0,3419561г"1 + 0,3419561г-2 + 0,1833051г"3
1 - 0,3525182г"1 + 0,4194023г"2 - 0,016369г-3'
Видно, что X(z) записана в непосредственном виде. Файл входных данных, созданный с помощью компьютерной команды edlin, имеет вид:
1
-0,3525182 0,4194023 0,016369
0,1833015 0,34195610,3419561 0,1833015
Ниже приводится выход программы:
/i(0) = -0,016369; /i(l) = 0,177531; /i(2) = 0,411404; /г(3) = 0,0705705;
Л(4) = -0,1476666.
Пример 4Б.2
С помощью метода разложения в степенной ряд найдите первые пять значений обратного z-преобразования следующей системы:
где
N^z) = 1 - 1,122346г"1 + z_2
N2^ = 1 - 0.437833г"1 + z"2
ВД = 1 + z"1
£>i(z) = 1 - 1,433509г-1 + 0,858110г"2
P2(z) = 1 - 1,293601г"1 + 0,556929г"2
D3(z) = 1-0,612159г"1.
Видно, что передаточная функция состоит из трех частей: двух звеньев второго порядка и одного звена первого порядка. Звено первого порядка представляется как звено второго порядка с нулевым коэффициентом при z“2. Ниже дан выходной файл данных программы.
3
/*
количество этапов; максимум 5 */
1 -1,433509
0,858110 /*
коэффициенты Dx^ */
1 -1,122346
1/*
коэффициенты N-^z) */
1 -1,293601
0,556929 /*
коэффициенты D2^ */
1 -0,437833
1/*
коэффициенты N2^ */
1 -0,6121593
0/*
коэффициенты Ds^z") */
1 1
0/*
коэффициенты Ns^z) */
Комментарии в правой колонке не являются частью файла; они даны просто как пояснения. Ниже приводится выход программы:
i(0) = 1;х(1) = 2,77909; х(2) = 5,2725;
х(3) = 8,7218;ж(4) = 11,7438; х(5) = 13,4723.
4.Б.2. Разложение на элементарные дроби
Дан z-образ N-ro порядка с отдельными полюсами, т.е.
X(z\ — ^^ — _^oz^j+6i_z^2^^^
Z D^ aozN + axzN-x + ... + aN_xz + aN'
В таком случае Х^ можно разложить на элементарные дроби следующим образом:
zD(z) z(z - рт)(г - p2)(z - р3)... (z - pN) z ^z-pk’
(4Б.4)
где
N(z) = bozN + b,zN 1 + ... + bN_yz + bN,
D(z) = aozN + а^-1 + ... + »n-iZ + aN,
pk — полюсы функции X(z) (предположим, первого порядка), а Ск — коэффициенты элементарных дробей. Постоянная 50 задается как.
So — Ъц,ам.
(4Б.5)
Коэффициенты элементарных дробей Ск, связанные с полюсами рк, находят путем умножения обеих частей уравнения 4Б.4 на z — рк с последующей заменой z = рк:
__N(z)(z-Pk) N^
к zD^ zD^
(4Б.6)
где
м
Dk^ = И (z —pj.
i=l, г^к
Например, чтобы найти С,, нужно умножить обе части уравнения (4Б.4) на z — р1 и
сделать замену z = pv.
Ci = N(z)(z-pk = N^z-px)
1 zD^ z^z-p^^z-p^z-paY-.^z-p^
где
Si(z) = (z -p2)(z -рз)... (z -pN).
zD^z)
»=P1
Если полюсы выражены в полярных координатах, т.е. рк = ткег9к, то коэффициенты задаются как
с - INvke ) и _ 1 мктке*9к Dk(el9k)’’
(4Б.7)
С помощью функции разложения на элементарные дроби вначале находятся положения полюсов рк к = 1,2,..., N, а затем для каждого полюса вычисляется выражение (4Б.7). Когда найдены значения Во и Ск, z-образ можно записать как
N
Х^=В0^
к=1
C1Z
Z-pk
(4Б.8)
Для причинных последовательностей обратное z-преобразование — это сумма обратных г-преобразований каждого члена уравнения (4Б.8):
a;(n) — Вои(п) + С^хУ* + С2(р2)п + ... + Cn^nT-(4Б.9)
Чтобы воспользоваться программой для вычисления коэффициентов элементарных дробей, z-преобразование должно быть выражено в виде последовательной структуры, через множители второго порядка. Поясним это на примере.
Пример 4Б.З
С помощью метода разложения на элементарные дроби найдите обратное z-преобразование передаточной функции пятого порядка, приведенной в примере 4Б.2.
Разложение передаточной функции на элементарные дроби имеет вид
5Х^ = В0^к=15Х^ = В0^к=1Cxzz~Pk'Cxzz~Pk'(4Б.10)(4Б.10)
5
Х^ = В0^
к=1
5
Х^ = В0^
к=1
Cxzz~Pk'
Cxzz~Pk'
(4Б.10)
(4Б.10)
Файл входных данных coeff.data не отличается от входного файла, приведенного в примере 4Б.2. Выход программы дается ниже:
полюсы z-образа
рк
real
imag
mag
phase
1
0,716754
0,586833
0,926342
39,308436
2
0,716754
-0,586833
0,926342
-39,308436
3
0,646801
0,372261
0,746277
29,922232
4
0,646801
-0,372261
0,746277
-29,922232
5
0,612159
0,000000
0,612159
0,000000
коэффициенты элементарных дробей
ВО = -3,418163
Ckrealimagmagphase
1,6114735,2096725,45321272,811944
1,611473-5,2096725,453212-72,811944
-19,580860 -9,681908 21,843751 -153,689550
-19,5808609,68190821,843751153,689550
40,3569390,00000040,3569390,000000
Согласно этим данным обратное z-преобразование задается как
5
п > 0.п > 0.т(п) = Bou(n) + У^ Скурку,к=1
п > 0.
п > 0.
С помощью табл. 4.1 также можно найти обратное z-преобразование т(п) в виде, который объединяет члены с комплексно-сопряженными полюсами. Это предлагается сделать читателям в качестве самостоятельного упражнения.
4.Б.З. Преобразование последовательной структуры в параллельную
Для перевода z-образа из последовательной в параллельную структуру можно также воспользоваться программой, в основе которой лежат принципы, описанные в примере 4.14.
Пример 4Б.4
Передаточная функция системы дискретного времени четвертого порядка, реализованной в виде последовательной структуры, задается как
ТВДВД
где
= 1 +0,052921г-1 + 0,83173г"2,
M(z) = 1 + 0,481199г-1 + z"2,
52(z) = 1 - 0,304609г-1 + 0,238865г-2,
W2(z) = 1 + 1,474597г-1 + г"2.
Используем программу преобразования передаточной функции из последовательной структуры в параллельную с таким файлом входных данных:
2
10,052920,83173
10,4811991
1 -0,304609 0,238865
11,4745971
В результате получим такой выход:
выбор желаемого действия
0 г-1 методом степенного ряда
оценка коэффициентов элементарных дробей
преобразование последовательной структуры в параллельную 2
полюсы z-преобразования:
pkrealimagmagphase
-0,264600,9114130,91179791,662967
-0,26460-0,9114130,911797-91,662967
0,1523050,4644010,48873871,842631
0,152305-0,4644010,488738-71,842631
коэффициенты элементарных дробей:
50 = 5,035604
Скrealimagmagphase
1-0,2573380,4213330,493705121,415410
2-0,257338-0,4213330,493705-121,415410
3-1,760464-3,7662874,157421-115,052650
4-1,7604643,7662874,157421115,052650
Для продолжения нажмите <Enter>.
каскад
Ni(z)
0
-0,514677
-0,781635
1
-3,520927
4,034388
2
0,000000
-0,000000
каскад
Di(z)
0
1,000000
0,52921
0,831373
1
1,000000
-0,304609
0,238865
2
0,000000
0,000000
0,000000
Программа на языке С для вычисления частотной характеристики
С помощью этой программы вычисляется частотная характеристика либо путем непосредственного расчета, либо через БПФ, как описывается в разделе 4.5.5. Задавать z-образ системы, частотную характеристику которой нужно найти, следует либо непосредственно, либо в виде последовательной структуры. Объясним сказанное на примере.
Пример 4В.1
Найдите частотную характеристику системы дискретного времени, передаточная функция которой задается в виде
я,, = l-l.eiSOz^ + z"2
1 - 1,5161г"1 + 0,878z"2’ с помощью
метода непосредственной оценки;
метода БПФ.
Пусть частота дискретизации равна 500 Гц, а разрешающая способность меньше 1 Гц.
Решение
Чтобы достичь желаемой разрешающей способности, количество частотных точек, которое задается в программе npt, должно быть равным 512 для метода БПФ (500/512 = 0,98 Гц) и 256 для метода прямой оценки. Далее с помощью каждого метода для входных данных
1
1 -1,5161 0,878
1 -1,6181
была найдена частотная характеристика. В любом случае характеристика записывается в формате ASCII в три файла, как показано ниже:
magn. dat содержит амплитудную характеристику в децибелах;
phase. dat содержит фазовую характеристику в радианах;
f resp. dat содержит частотную характеристику в прямоугольной форме.
Первые 10 значений амплитудной и фазовой характеристик приведены в табл. 4В.1, а амплитудная и фазовая характеристики для непосредственного метода изображены на рис. 4В. 1, а и б соответственно.
Программа для вычисления частотной характеристики состоит из пяти функций, которые хранятся в отдельных файлах, как показано ниже:
freqresl.с fixdata.с freqd. с fft. с Itilib.сfreqresl.с fixdata.с freqd. с fft. с Itilib.сглавная функция;
freqresl.с fixdata.с freqd. с fft. с Itilib.с
freqresl.с fixdata.с freqd. с fft. с Itilib.с
вычисление амплитуды и фазовых углов;
непосредственная оценка частотной характеристики;
алгоритм БПФ с двоичной временной децимацией;
набор общих функций ЦОС. Эта функция
идентична функции Itilib. с, описанной в приложении 4Б, за исключением того, что она не требует файла . h.
Эти функции здесь не приводятся из соображений экономии места, но их можно найти на компакт-диске, прилагаемом к книге [Ifeachor, 2001] (подробнее см. предисловие).
Таблица 4В.1. Первые 10 значений амплитудной и фазовой характеристик (пример 4Б.1), если применяется метод непосредственной оценки или БПФ
к
Непосредственная оценка
Оценка методом БПФ
Амплитуда (дБ)
Фаза (рад)
Амплитуда (дБ)
Фаза (рад)
0
0,469496
0,000000
0, 469496
0,000000
1
0,46939
-0,004155
0,469391
-0, 004138
2
0,469073
-0,008318
0,469076
-0,008286
3
0,468541
-0,012500
0,468549
-0,012451
4
0,467791
-0,016710
0,467805
-0,016644
5
0,466817
-0,020956
0,466839
-0,020873
6
0,465612
-0,025249
0, 465643
-0,025148
7
0,464165
-0,029599
0, 464208
-0,029479
8
0,462466
-0,034016
0,462523
-0,033876
9
0,460501
-0,038511
0,460574
-0,038351
.Г.Операции z-преобразования с помощью программного пакета
MATLAB
В дополнение к использованию программ на языке С, описанных в предыдущих разделах, в нескольких следующих разделах будет проиллюстрировано использование функций программ MATLAB для выполнения ряда операций z-преобразования
Рис. 4В.1. Амплитудно-частотная характеристика БИХ-системы из примера 4В.1 при непосредственной оценке (панель а). Фазовая характеристика БИХ-системы из примера 4В.1 при непосредственной оценке (панель 6)
и обратного z-преобразования. Вообще, MATLAB и MATLAB Signal Processing Toolbox представляют собой быстрое и удобное средство для выполнения ряда операций z-преобразования и обратного z-преобразования, необходимых для проектирования и анализа систем ЦОС.
Дополнительные примеры, иллюстрирующие выполнение операций z-преобразования с помощью MATLAB, можно найти в книге [Ifeachor, 2001].
.Г.1. Обратное /-преобразование
Ключевые функции MATLAB для выполнения операций обратного z-преобразования — это deconv и residuez. Функция deconv используется для выполнения деления в столбик, которое требуется для разложения в степенной ряд. Функция residuez используется при поиске коэффициентов элементарных дробей (вычетов) и полюсов z-преобразования.
4.Г.2. Разложение в степенной ряд с помощью программного пакета MATLAB
При разложении в степенной ряд ключевой операцией является деление многочленов, при котором используется функция MATLAB deconv. Вообще, в методе разложения в степенной ряд используется тот факт, что операция разложения эквивалентна делению многочленов. Следовательно, если дано z-преобразование Х^ в виде:
Ьо + biz-1 + ...+bnz~n _ b(z)«о + axz~x + ... + amz~m a(z)
то формат команды разложения будет следующим:
[g, г] = deconv(b, a),
где b и а — векторы, представляющие многочлены числителя и знаменателя b(z) и a(z) соответственно при увеличении отрицательного показателя степени z. Результат деления многочленов возвращается в виде вектора д, а остаток записывается как т. Для реализации метода разложения в степенной ряд операция деления в столбик выполняется многократно, в зависимости от количества точек, необходимых для обратной операции.
Пример 4Г.1
Найдите первые пять членов обратного z-преобразования гс(п) с помощью метода разложения в степенной ряд (деления многочленов) и программного пакета MATLAB. Предположите, что z-образ Х^ имеет следующий вид:
Х( ) =1 + 2z-1 + z"2
W 1-z-Ч-0,3561z-2'
Решение
Ниже приводится набор команд MATLAB и выход программы. Сначала образуются векторы коэффициентов для многочленов числителя и знаменателя, к вектору коэффициентов b прибавляются нули, чтобы обеспечить правильную размерность для программы MATLAB, а затем для вычисления обратного z-преобразования используется команда deconv.
» Ь = [1 2 1);
» а - [ 1 -1 0,3561 ];
» п=5;
» Ь = [Ь zeros(1, n—1)];
» [x,r] = deconv(b,a);
» disp(x)
1,0000 3,0000 3,6439 2,5756 1,2780
Следовательно, х(0) = 1, х(1) = 3, х(2) = 3,6439, х(3) = 2,5756 и ж(4) = 1,2780.
Пример 4Г.2
ющего выраженияющего выраженияС помощью метода разложения в степенной ряд (деления многочленов) и программного пакета MATLAB найдите первые пять членов обратного z-преобразования следу-
ющего выражения
ющего выражения
dxWzW
Ni^ = 1 - 1,22346г-1 + z"2
A2(z) = 1 - 0,437833г-1 + z"2
N3^ = 1 + z"1
^(z) = 1 - 1,433509г-1 + 0,858Hz"2
P2(z) = 1 — 1,293601г-1 + 0,556929z-2
P3(z) = 1 -0,612159г-1
Решение
Представленный z-образ имеет три пары многочленов числителя и знаменателя. В коде MATLAB (программа 4Г.1) вначале образуются векторы, содержащие коэффициенты многочленов. Затем для преобразования трех пар многочленов в передаточную функцию с одной парой рациональных многочленов b(z)/a(z) используется функция MATLAB sos2tf (функция преобразования звеньев второго порядка в полную передаточную функцию):
Y( х _ 6(z) _ 6о + ^z-1 + b2z-2 + ... + bmz~ma\z) a0 + a^z-1 + a2z-z + ... + anz-n
Чтобы найти коэффициенты обратного z-преобразования, используется функция de- conv. Первые пять значений обратного z-преобразования равны:
х(0) = 1,00000; х(1) = 4,6915; а;(2) = 11,4246; ж(3) = 19,5863; ж(4) = 27,0284
Программа 4Г.1
п=5; % количество точек степенного ряда
Nl=[l -1.122346 1]; DI = [1 -1.433509 0.85811];
N2-[l 1.474597 1]; D2 = [1 -1.293601 0.556929];
N3=[l 1 0]; D3 = [1 -0.612159 0];
B-[N1; N2; N3]; A = [DI; D2; D3];
[b,a] - sos2tf([B A]);
b=[b zeros(l,n-l)];
[x,r] = deconv(b.a); % деление в столбик disp(x);
4.Г.З. Разложение на элементарные дроби с помощью MATLAB
Для разложения на элементарные дроби z-образа X(z), выраженного как отношение двух многочленов, можно воспользоваться функцией MATLAB residuez. Синтаксис команды residuez:
[г,р, /с] = residuez (Ь, а),
где b и а — векторы, представляющие многочлены числителя и знаменателя b(z) и a(z) соответственно при возрастающем значении отрицательного показателя степени z;
\ _ ^(г) _ ^о + biz-1 + b2z~^ + ... + bmz~m a(z) a0 + «iz^1 + a2z~2 + . • • + anz-n
Если полюсы функции H(z) отдельные, ее разложение на элементарные дроби выглядит как:
-7~т = -*—— + • • • + z-—i + ку + k2z 1 + .. • + A:m_n_1z (rn n\
a(z) 1 -piz 11 -pnz-i
Функция residuez заносит вычеты рационального многочлена b(z)/a(z) в вектор г, положения полюсов — в вектор р и постоянные члены — в к.
Пример 4ЕЗ
Разложите на элементарные дроби следующий z-образ:
+ 2z-1 + z~2 ~~
1-z"1 +0,3561z-2' Решение
В этом примере многочлены уже заданы в нужном виде, поэтому мы можем непосредственно применить команду:
»[r,p,k] = residuez([1.2.1], [1,-1,0.3561]) г = -0.9041 - 5.99281 -0.9041 + 5.99281 Р = 0.5000 + 0.32571 0.5000 - 0.32571 к = 2.8082
Таким образом, z-образ, выраженный как разложение на элементарные дроби, приобретает вид:т
X(z) = 2,8082 + ,
1 — P1Z"11 — p^z1
где П =-0,9041 - 5,9928г г2 = -0,9041 +5,9928г Pi — 0,5 + 0,3257г р2 = 0, 5 — 0,3257г
Пример 4Г.4
С помощью программного пакета MATLAB разложите на элементарные дроби следующий г-образ:
л^адАДг)
Dx^D^D^Y
Nx(z) = 1 - 1,22346г"1 + z"2, ^(z) = 1 - 0,437833г"1 + z"2, A^3(z) = 1 + z"1,
Dx^z) = 1 - 1,433509г"1 + 0,858Hz"2, P2(z) = 1 - 1,293601г"1 + 0,556929г'2, D^ = 1 -0,612159г"1.
Для преобразования многочленов числителя и знаменателя в единственную пару многочленов 6(z)/a(z) используется функция MATLAB sos2tf. Затем для разложения на элементарные дроби применяется функция residuez. Набор команд MATLAB для разложения Х^ на элементарные дроби приведен в программе 4Г.2. При выполнении программы 4Г.2 получаем такие коэффициенты элементарных дробей:
-1,9022 + 4,67971 -1,9022 - 4,67971 -9,0607 - 13,55151 -9,0607 + 13,55151 24,7049
Р = 0,7168 + 0,58681 0,7168 - 0,58681 0,6468 + 0,37231 0,6468 - 0,37231 0,6122 к =1
Программа 4Г.2
Nl = [1 -1,122346 1] ;
N2 = [1 -0,437833 1];
N3 = [1 1 0 ] ;
DI = [1 -1,433509 0,85811);
D2 = [1 -1,293601 0,556929];
D3 = [1 -0,612159 0];
SOS = [Nl DI; N2 D2; N3 D3]; [b,a] = sos2tf(sos); [r,p,k] = residuez(b,а)
4.Г.4. Преобразование одной структуры в другую — последовательно-параллельное преобразование
Программный пакет MATLAB предлагает набор функций, которые позволяют относительно легко выполнять преобразования между различными форматами и структурами, используемыми в ЦОС. Особенно полезна возможность преобразования последовательной структуры в параллельную.
Пример 4Г.5
Повторите пример 4Б.4, используя MATLAB.
Набор команд MATLAB для этого преобразования дан в программе 4Г.З. Программа 4Г.З
nstage = 2;
Nl = [1 0,481199 1];
N2 = [1 1,474597 1];
DI = [1 0,052921 0,83173];
D2 = [1 -0,304609 0,238865];
sos = [Nl DI; N2 D2];
[b,a] = sos2tf(sos);
[c,p,k] = residuez(b,a);
m = length(b);
bO = b(m)/a(m);
j =i;
for i=l:nstage
bk(j) = c(j)+c(j+1);
bk(j+l) = —(c(j)*p(j+1)+c(j+1)*p(j));
ak(j) = -(p(j)+p(j + 1));
ak(j+l) = p(j)*p(j+l);
j = j+2; end bO ak bk c P k
cprealization bO =
5,0334 ck =
-0,3766 - 0,24601
-0,3766 + 0,24601
1,4804 - 1,39031
1,4804 + 1,39031 рк =
-0,0265 + 0,91161
-0,0265 + 0,91161
0,1523 + 0,46441
0,1523 - 0,46441
ks = 1
Ь0 = 1,2023 ак = 1,4746 1,0000 0,0529 0,8317 bk = -0,0000 -0,0000 0,4283 0,1683
-0,0000 + 0,00001
-0,0000 - 0,00001
0,2141 - 0,08611
0,2141 + 0,08611
4.Г.5. Диаграмма нулей и полюсов
Функция MATLAB zplane позволяет рассчитывать и выводить на экран диаграмму нулей и полюсов. Синтаксис этой команды следующий:
zplane (Ь, а),
где b и а — векторы коэффициентов многочленов числителя и знаменателя b(z)/a(z). В таком формате эта команда сначала выполняет поиск положений полюсов (т.е. корней многочленов Ь^ и a(z) соответственно), а затем — построение диаграммы в плоскости г.
Пример 4Г.6
1 - 1,6180г-1 + г~21 - 1,6180г-1 + г~2Н^ =Н^ =Система дискретного времени характеризуется следующей передаточной функцией:
1 - 1,6180г-1 + г~2
1 - 1,6180г-1 + г~2
Н^ =
Н^ =
1 - 1,5161г-1 + 0,878г-2'
Найдите и изобразите ее диаграмму нулей и полюсов. При вычислении частотной характеристики предположите, что частота дискретизации равна 500 Гц, а разрешающая способность меньше 1 Гц.
Решение
Необходимый код MATLAB:
b = [1 -1.6180 1]; % формирование многочленов числителя и знаменателя а = [1 -1.5161 0.878];
zplane(Ь,а) % расчет и построение диаграммы нулей и полюсов
Искомая диаграмма нулей и полюсов показана на рис. 4Г.1.
Если положения полюсов и нулей известны, их можно использовать в качестве входа для команды zplane. Синтаксис этой команды в данном случае будет таким: zplane (z, р), где z и р — нули и полюсы.
Положения нулей и полюсов можно найти непосредственно с помощью команды roots. Это полезно при переходе от описания через нули и полюсы к описанию через передаточную функцию.
Например, БИХ-фильтр описывается как
1-1,61802-! +Z-2” 1 - 1,5161Z-1 + 0,878z"2"
Полюсы и нули этого фильтра можно найти с помощью команды roots:
Ь = [1 -1,618 Ц;
а = [1 -1,5161 0,878];
zk = roots(Ь);
pk = roots(a)
Многочлены числителя и знаменателя b(z) и a(z) можно найти с помощью функции poly: B=poly(zk); А = poly(pk).
4.Г.6. Оценка частотной характеристики
В Signal Processing Toolbox содержится множество полезных функций для вычисления и вывода на экран частотной характеристики систем дискретного времени. Самая распространенная функция — freqz.
Если передаточная функция системы задана в следующем виде:
\ ^о + b^z 1 + • • • + bnz п _ b(z)«о + a^-1 + ... + amz~m a(z)
то для вычисления частотной характеристики используется функция freqz, в основе которой лежит метод БПФ. Удобнее всего использовать ее в таком формате — [h, f] = freqz(b, а, npt, Fs), где переменные b и а — векторы многочленов числителя и знаменателя, Fs — частота дискретизации, а npt — количество частотных точек на отрезке между 0 и Fs/2. В MATLAB Toolbox единицей нормирования частоты является частота Найквиста (т.е. Fs/2). Использование команды freqz без выходного аргумента приводит к автоматическому построению графиков амплитудной и фазовой характеристик.
Пример 4Г.7
Система дискретного времени характеризуется следующей передаточной функцией:
1-1,61802-!+г"2~ 1 - 1,5161г-1 + 0,878z-2’
Найдите и постройте график частотной характеристики системы, пользуясь программным пакетом MATLAB. Предположите, что частота дискретизации равна 500 Гц, а разрешающая способность меньше 1 Гц.
Решение
Команды MATLAB:
Ь = [1 -1,6180 1]; % формирование векторов многочленов числителя % и знаменателя
а = [1 -1,5161 0,878];
freqz(Ь,а,256, 500) % расчет и построение графика частотной
% характеристики
Частотная характеристика данной системы дискретного времени показана на рис. 4Г.2.
Фаза (градусы)Амплитудная характеристика (дБ)
Рис. 4Г.2
Корреляция и свертка
5.1.
Введение
281
5.2.
Описание корреляции
282
5.3.
Описание свертки
311
5.4.
Реализация корреляции и свертки
339
5.5.
Примеры применения
339
5.6.
Резюме
347
Задачи
348
Литература
353
Приложение
354
В данной главе объясняется природа процесса корреляции, которая затем иллюстрируется на примерах вычисления функций взаимной корреляции и автокорреляции. Описано подавление шумовой составляющей сигнала с помощью корреляции и техника быстрой корреляции с использованием БПФ. Тема свертки рассматривается примерно по той же схеме, что и тема корреляции. В описание включены круговая и линейная свертка, быстрая линейная свертка и метод сегментов (наложение- сложение, наложение-запись), необходимый при обработке значительных массивов входных данных. Кроме того, рассматривается обращенная свертка, устанавливается связь между корреляцией и сверткой. В завершение главы рассказано о реализации корреляции и свертки и разобрано несколько примеров применения этих процедур.
Введение
Часто бывает необходимо определить степень независимости одного процесса от другого или установить сходство одного набора данных с другим. Другими словами, искомой является корреляция процессов или данных, которую можно определить математически и измерить. Вообще, процесс корреляции занимает значительное место в обработке сигналов. Этот математический аппарат нашел применение в обработке изображений в сфере компьютерного зрения или дистанционного зондирования со спутников, в которых сравниваются данные с различных изображений, в радарных или гидроакустических установках для дальнометрии и местоопределения (пеленгации), в которых сравниваются переданные и отраженные сигналы. Он используется в детектировании и идентификации сигналов в шуме, в организации технического контроля для наблюдения за влиянием входа на выход, в идентификации двоичных кодовых
слов в системе с импульсно-кодовой модуляцией, в обычных схемах оценки по методу наименьших квадратов и во многих других областях, например, в климатологии. Корреляция также является неотъемлемой частью процесса свертки, который, по сути, — та же корреляция двух последовательностей данных, при вычислении которой одна из последовательностей обращена во времени. Это означает, что для вычисления корреляции и свертки могут использоваться одни и те же алгоритмы, только в случае свертки одна из последовательностей обращается. Отметим также, что спектр записанного сигнала состоит из свертки спектра сигнала со спектром вырезающей функции.
Определение импульсной характеристики неизвестной системы называется идентификацией системы. Определение неизвестного выхода по импульсной характеристике системы и выходу называется обращением, свертки (нахождением оригинала функции). Если импульсная характеристика неизвестна, определение искомого входного сигнала называется слепым обращением свертки (blind deconvolution). Все эти важные темы рассмотрены ниже.
Описание корреляции
Рассмотрим, как можно сравнить две последовательности данных, состоящие из значений, одновременно выбираемых из двух соответствующих сигналов. Если два сигнала похоже меняются при переходе от точки к точке, то меру их корреляции можно вычислить, взяв сумму произведений соответствующих пар точек. Данное предложение становится более аргументированным, если рассмотреть две независимые и случайные последовательности данных. В этом случае сумма произведений стремится к исчезающе малому случайному числу по мере увеличения пар точек. Это объясняется тем, что все числа, положительные и отрицательные, равновероятны, так что пары произведений компенсируются при сложении. В то же время, если сумма конечна, это указывает на наличие корреляции. Отрицательная сумма указывает на отрицательную корреляцию, т.е. увеличение одной переменной связано с уменьшением другой. Таким образом, взаимную корреляцию г12(п) двух последовательностей данных эс^п?) и эс2(п), содержащих по N элементов, можно записать как
П2 =Tx(n)T2(7r).
п=0
Впрочем, такое определение взаимной корреляции дает результат, который зависит от числа взятых точек. Чтобы это исправить, результат нормируется на число точек (делится на N). Данную операцию можно также рассматривать как усреднение суммы произведений. Итак, получаем следующее улучшенное определение:
1 V 1
п=0
Xi(n)
Рис. 5.1. Сигналы со 100%-ной корреляцией, идущие не в фазе, — при нулевой задержке корреляция равна нулю
Пример 5.1
Ниже иллюстрируется расчет гХ2. Число точек данных в последовательности равно п, используются последовательности тх и т2.
п123456789
тх4 2— 1 3—2—6—54 5
ж2-4 13 74-2-8-2 1
Г12 = —(4 х (—4) +2x1 + (—1) х 3 + 3 х 7 + (—2) х 4 + (—6) х (—2) +
+ (—5) х (—8) + 4 х (—2) +5x1) =
=5.
Впрочем, чтобы данное определение можно было использовать, его также нужно модифицировать. В некоторых случаях корреляция, определенная указанным выше способом, может быть нулевой, хотя две последовательности коррелируют на 100%. Это может произойти, например, когда два сигнала идут не в фазе (как часто и бывает). Данная ситуация иллюстрируются сигналами на рис. 5.1. На рисунке показано, что каждая пара произведений в функции корреляции равна нулю, следовательно, вся корреляция равна нулю, поскольку нулю всегда равно одно из значений тх или т2. Впрочем, очевидно, что сигналы сильно коррелируют, хотя и идут не в фазе. Разность фаз может, например, объясняться тем, что тх — некий эталонный сигнал, а т2 — запаздывающий выход схемы. Чтобы преодолеть подобный сдвиг фаз, необходимо сдвинуть (или задержать) один из сигналов относительно другого. Обычно, чтобы выровнять сигналы перед определением корреляции, т2 смещается влево. Как показано на рис. 5.2, это эквивалентно замене а^п?) на эс2(п + j), где j представляет величину задержки — число точек выборки, на которое т2 смещается влево. Альтернативной и эквивалентной процедурой является смещение тх вправо. В результате получаем такую формулу для взаимной корреляции:
Рис. 5.2. Сигнал ж2 = ат + j, смещенный на ) промежутков времени влево от сигнала жгРис. 5.2. Сигнал ж2 = ат + j, смещенный на ) промежутков времени влево от сигнала жг
Рис. 5.2. Сигнал ж2 = ат + j, смещенный на ) промежутков времени влево от сигнала жг
Рис. 5.2. Сигнал ж2 = ат + j, смещенный на ) промежутков времени влево от сигнала жг
1 V 1
ПгО) =52ж1(?г)ж2(?г + ;) =
п=0х х
(5.1
п=0
На практике, когда два сигнала коррелируют, их фазовая связь скорее всего неизвестна, так что корреляцию нужно находить для нескольких различных задержек, чтобы установить наибольшее значение корреляции, которое затем считается истинным.
Пример 5.2
Рассмотрим взаимную корреляцию указанных выше двух последовательностей жi (п)
и х2(п) с задержкой
3 =
3, т.е.
п2(з).
Итак, используются следующие
последовательности: п 1 234
5
67
8 9
4 2 -13
-2
—6 —5
4 5
х2 7 4 -2 -8
-2
-1
так что^
г12(3) =-(4 х 7 + 2 х 4 + (-1) х (-2) + 3 х (-8) + (-2) х (-2)+ 9
+ (-6) х (-1)) = 2,667.
Разумеется, также можно рассмотреть корреляцию в непрерывной временной области, и некоторые аналоговые схемы корреляции организованы именно так. В непрерывной области n -»t и j —> т и
Т/2
(5-2)(5-2)r12(r)=Jim ^ У Т!(Г)ж2(Г + r)dt.
(5-2)
(5-2)
-Т/2
В то же время, если жх^) и т2(Г) — периодические с периодом Т, формула (5.2) упрощается до
Т0/2
(5-3)(5-3)У j x^t^^t + T)dt.
(5-3)
(5-3)
-Т0/2
Рис. 5.3. Влияние краевого эффекта на взаимную корреляцию гхгО)Рис. 5.3. Влияние краевого эффекта на взаимную корреляцию гхгО)
Рис. 5.3. Влияние краевого эффекта на взаимную корреляцию гхгО)
Рис. 5.3. Влияние краевого эффекта на взаимную корреляцию гхгО)
Если данные — это сигналы с конечной энергией, например, непериодические импульсообразные сигналы, то усреднение по времени Т при Т —> ос не выполняется, поскольку в этом случае было бы 1/Т —> 0 и 1/Т —> 0, и г12(т) было бы исчезающе малой величиной. В таком случае используется следующая формула:
Ti2^ = j тД^т^ + т).(5.4)
На практике обрабатываться будут записи конечной длины, так что применяются формулы (5.1) или (5.5):
Пз(т) = ^ j x1(t)x2(t + r)dt.(5.5)
о
33Есть и другая сложность, связанная с нахождением взаимной корреляции последовательностей данных конечной длины. Это иллюстрирует приведенный выше пример, в котором было найдено значение г12(3) = 2,667. При смещении х2 влево сигналы уже не перекрываются, и данные в конце последовательностей не формируют парные произведения — возникает так называемый краевой эффект. В рассмотренном примере число пар при задержке 3 уменьшилось с девяти до шести. В результате наблюдалось линейное уменьшение r12(J) при увеличении j, и получены спорные значения ri2 0)- Одно из возможных решений возникшей проблемы заключается в том, чтобы длину одной последовательности сделать в два раза больше длины, необходимой для нахождения корреляции. Для этого можно записать больше данных или, если одна из последовательностей периодична, повторить последовательность (особое внимание следует обратить на согласование краев). Другое возможное решение — скорректировать все рассчитанные значения. На рис. 5.3 показано уменьшение г12 с ростом j в результате краевого эффекта, т.е. реальное изменение T12(j) не показано. При j = О, г12Д) = ^12(0), что можно вычислить. При j = N, r12(W) = 0, поскольку сигналы уже не перекрываются. В промежуточных случаях при некоторых значениях задержки j истинное значение T12(j) равно r12(j)trUe, тогда как действительное значение, искаженное краевым эффектом, равно r12(J). Далее на основе рисунка получаем
3
3
~ N ’
откудаоткудаРис. 5.4. Пары сигналов {ж1(п), жг(и)} и (жз(п), Ж4(п)} различных амплитуд, но с равными взаимными корреляциямиРис. 5.4. Пары сигналов {ж1(п), жг(и)} и (жз(п), Ж4(п)} различных амплитуд, но с равными взаимными корреляциямиПгСДгие = П20') + ^Г12(0).ПгСДгие = П20') + ^Г12(0).(5-6)(5-6)
откуда
откуда
Рис. 5.4. Пары сигналов {ж1(п), жг(и)} и (жз(п), Ж4(п)} различных амплитуд, но с равными взаимными корреляциями
Рис. 5.4. Пары сигналов {ж1(п), жг(и)} и (жз(п), Ж4(п)} различных амплитуд, но с равными взаимными корреляциями
ПгСДгие = П20') + ^Г12(0).
ПгСДгие = П20') + ^Г12(0).
(5-6)
(5-6)
Таким образом, вычисленные значения взаимной корреляции легко скорректировать для учета краевых эффектов, прибавив к r12(j) величину jr12(Q)/N.
Значения функции взаимной корреляции вычисляются согласно приведенным выше формулам в зависимости от абсолютных значений данных. Часто бывает необходимо измерить взаимную корреляцию в фиксированном масштабе между — 1 и +1. Чтобы определить значения из указанного диапазона, полученные величины нормируют на величину, зависящую от энергетического содержания данных. Например, рассмотрим две пары сигналов Xi^n), х2(п) и ж3, x4(n\ Значения элементов данных приведены в таблице ниже.
п
0
1
2
3
4
5
6
7
8
Xi^n)
0
3
5
5
5
2
0,5
0,25
0
х2(п)
1
1
1
1
1
0
0
0
0
ж3(п)
0
9
15
15
15
6
1,5
0,75
0
т4(п)
2
2
2
2
2
0
0
0
0
Как показано на рис. 5.4, сигналы х^п) и х3(п) подобны и отличаются только амплитудой. То же справедливо для пары х2(п) и x4(n\ Таким образом, корреляция между х^п) и х2(п) равна корреляции между х3(п) и х4(п\ В то же время, параметры корреляции щ и г34(1) равны соответственно 1,47 и 8,83. Они отличаются, поскольку зависят от абсолютных значений элементов данных. Чтобы поправить эту ситуацию, нормируем взаимную корреляцию r12(j) на коэффициент
1N1N"N-1"N-152л in n=0n=0.52л in n=0n=0.1/21/2(5-7)(5-7)
1
N
1
N
"N-1
"N-1
52л in n=0n=0.
52л in n=0n=0.
1/2
1/2
(5-7)
(5-7)
и подобным образом нормируем r34(J). В результате нормированное выражение для r12 U) приобретает такую форму:
p^U) =p^U) =%2 0)%2 0)(5.8)(5.8)
p^U) =
p^U) =
%2 0)
%2 0)
(5.8)
(5.8)
1 1/21 1/21N1Nа для ГзД;) -1а для ГзД;) -11 1/21 1/2Следовательно,Следовательно,/•12(1)/•12(1)ии7*34(1)7*34(1)2,56^34(1) 15,342,56^34(1) 15,341,472(561,472(568,8315, 358,8315, 35= 0,57= 0,57= 0,58.= 0,58.
1 1/2
1 1/2
1
N
1
N
а для ГзД;) -
1
а для ГзД;) -
1
1 1/2
1 1/2
Следовательно,
Следовательно,
/•12(1)
/•12(1)
и
и
7*34(1)
7*34(1)
2,56
^34(1) 15,34
2,56
^34(1) 15,34
1,47
2(56
1,47
2(56
8,83
15, 35
8,83
15, 35
= 0,57
= 0,57
= 0,58.
= 0,58.
Величина p12(j) известна как коэффициент взаимной корреляции. Значение этого коэффициента всегда лежит между — 1 и +1, причем “-Ц” означает 100%-ную корреляцию в прямом смысле, “—1” — 100%-ную корреляцию в противоположном смысле, например, как для сигналов в противофазе. Значение “0” указывает на нулевую корреляцию. Это означает, что сигналы совершенно независимы, например, если один из сигналов абсолютно случаен. Малые значения pi2(j) указывают на незначительную корреляцию. Нормировочный коэффициент для r12 (J) из приведенного выше примера равен
= |(88,31 х 6)1/2 = 2,56,9
Теперь /912 (1) = Рз4(1)5 откуда видно, что данный процесс нормировки действительно позволяет независимо сравнивать взаимные корреляции абсолютных значений данных.
Рассмотрим частный случай эс^п) = а^п), те. найдем корреляцию сигнала с самим собой. Данный процесс называется автокорреляцией. Автокорреляционная функция сигнала определяется как
V
тсо = 52ж1Мж1(п+зУ
п=0
Автокорреляционная функция имеет одно весьма полезное свойство:
%i(o) — 52 ж1И = s-
п=0
Рис. 5.5. Автокорреляционная функция случайного сигнала
где S — нормированная энергия сигнала. В результате получаем метод расчета энергии сигнала. Если сигнал абсолютно случаен, например, сигнал, соответствующий белому гауссову шуму в электрической системе, его автокорреляция будет максимальной при нулевой задержке и уменьшаться до случайных флуктуаций малой амплитуды возле нуля для задержек, превышающих единицу (см. рис. 5.5). Кроме того, справедливо следующее соотношение:
Пх(0) > гп(,7).
Взаимная корреляция и автокорреляция
Определение взаимной корреляции двух периодических последовательностей неравной длины требует аккуратности. Это объясняется тем, что результат корреляции будет повторяться с периодом более короткой последовательности. Этот результат не отражает полной периодичности более длинной последовательности, следовательно, неверен. Продемонстрируем это, найдя взаимную корреляцию rab(J) последовательностей a = {4, 3,1, 6} и Ь = {5, 2, 3}. Последовательность b записывается под а и поэтапно смещается на одну позицию влево, в последнем столбце записываются соответствующие
значения взаимной корреляции.
Последовательность
4 3 16
Задержка
T’ab(j)
3 5
2
3
0
47
5 2
3
5
1
59
2 3
5
2
2
34
3 5
2
3
3
47 Tab(j) повторяется
5 2
и т.д.
3
5
4
59
Результат показывает,
ЧТО таЬ(р) ]
циклично с периодом в три задержки, т.е. период
т’аь(з) равен периоду более короткой последовательности Ь. Описанная процедура назы
вается цикличной корреляцией. Чтобы получить правильное значение, в котором каждое значение а умножается на каждое значение Ь, все элементы b нужно последовательно сместить под каждым значением а;
4 3 16
5 2 3
5 2 3
5 2 3
5 2 3
5 2 3
5 2 3
5 2 3
Видно, что для того, чтобы последовательность b стала повторяться, требуется 6 задержек. Длины последовательностей равны 4 и 3, а число требуемых задержек — 4 + 3 — 1 = 6. Таким образом, получаем общее правило нахождения линейной взаимной корреляции двух периодических последовательностей длины Wx и^: дополнить нулями каждую последовательность, чтобы их длины были равны 1VX +W2 — 1 О-С. добавить N2 — 1 нулей к последовательности длиной ^ и ^ - 1 нулей к последовательности длиной N^. Ниже сказанное иллюстрируется для указанных выше последовательностей а и 6.
Последовательность
Задержка
4 3 1 6 0 0
5 2 3 0 0 0
0
29
2 3 0 0 0 5
1
17
3 0 0 0 5 2
2
12
0 0 0 5 2 3
3
30
0 0 5 2 3 0
4
17
0 5 2 3 0 0
5
35
5 2 3 0 0 0
6
29rab (j) повторяется
Следовательно, искомая взаимная корреляция а и 6 равна
= {29,17,12,30,17,35}.
Выше предполагалось, что в моменты нахождения взаимной корреляции используются чисто цифровые данные, но взаимную корреляцию можно также посчитать аналитически, если сигнал записывается в явной (аналитической) форме. На практике эквивалент описанной аналитической процедуры применяется в аналоговых схемах взаимной корреляции. Ниже приводится пример аналитического расчета взаимной корреляции.
Пример 5.3
Найдите взаимную корреляцию г12(—г) двух сигналов vx(t) и v2(t), изображенных на рис. 5.6.
Требуемые сигналы легко записать аналитически, разделив их на прямолинейные сегменты. Это достаточно сделать для одного периода сигнала Т, поскольку г12(—г) будет периодическим по т с периодом Т. Следовательно, для 0 < t < Т, vx(t) = t/T и для 0 < t < Т/2, v2(t) = 1, 0, а для Т/2 < t < Т, v2{f) = — 1, 0. Далее требуется получить выражение для г12(—т), т.е. v2(t) (прямоугольный сигнал) необходимо сместить вправо относительно vx(t). Для 0 < т < Т/2 соответствующая иллюстрация приведена
Рис. 5.6. Сигналы ui(t) и ггр) (пример 5.3)Рис. 5.6. Сигналы ui(t) и ггр) (пример 5.3)Рис. 5.7. Сегменты r2(t) для 6 < т < ТРис. 5.7. Сегменты r2(t) для 6 < т < Т
Рис. 5.6. Сигналы ui(t) и ггр) (пример 5.3)
Рис. 5.6. Сигналы ui(t) и ггр) (пример 5.3)
Рис. 5.7. Сегменты r2(t) для 6 < т < Т
Рис. 5.7. Сегменты r2(t) для 6 < т < Т
на рис. 5.7, из которого видно, что t>i(t) нужно умножить на три последовательных сегмента v2(t), в которых значения v2(t) равны — 1, 1, — 1. Для Т/2 < т < Т необходимая иллюстрация приведена на рис. 5.8, на котором последовательные значения v2(t) изменились на 1, —1, +1. Это означает, что решение состоит из двух частей, которые нужно согласовать в точке т = Т/2.
Разобьем взаимную корреляцию на три сегмента с границами в точках t = т, t = т + Т/2иГ = Т (см. рис. 5.7). Далее получаем
т
т^-т) = ^ j «i(t)v2(t - T^dt = о
тт+Т/2т
=/ ^W + ^ J' ^-l)dt=(5-9)
0тт+Т/2
-1
тр2
Рис. 5.8. Сегменты u2(t) Для Т/2 <т<Т
Рис. 5.9. Величина гзД—т) как функция т
.. I 7Т
П2(-т) = -- + - ДЛЯ 0 < 7 < -.
Для Т/2 < т < Г, используя рис. 5.8, получаем
т-Т/2тТ
П2(-т) = I ^(l)dt+^ I ^(-^dt+^l^^dt
От-Т/2т(5.10)
/ х Т Т
П2(-т) = - - - ДЛЯ - < 7 < Т.
Подставляя г = Т/2 в формулы (5.9) и (5.10), определяем, что в обоих случаях г12(—т) = 1/4, откуда следует, что функции согласованы правильно. График зависимости г12(—т) от т для 0 < т < Т изображен на рис. 5.9.
Для ответа на этот вопрос можно рассмотреть всего один синусоидальный Фурье- компонент сигнала. Формула (5.2) дает верную автокорреляцию, где Т>ТР (Тр — период синусоиды). Следовательно,
МЦ = limМЦ = lim— У v4sin(wt)v4sin(wt + r)dt =— У v4sin(wt)v4sin(wt + r)dt =(5.И)(5.И)11Ш — cos шт)Г^оо 211Ш — cos шт)Г^оо 2cos(mT)2шТcos(mT)2шТsin(mr)sin(mr)
МЦ = lim
МЦ = lim
— У v4sin(wt)v4sin(wt + r)dt =
— У v4sin(wt)v4sin(wt + r)dt =
(5.И)
(5.И)
11Ш — cos шт)
Г^оо 2
11Ш — cos шт)
Г^оо 2
cos(mT)
2шТ
cos(mT)
2шТ
sin(mr)
sin(mr)
Изучая данное уравнение, находим, что второе слагаемое в скобках стремится к нулю при Т —> оо, так что если Г ^ ос — это указывает на ошибку. Член cos (шТ) представляет периодическое влияние ошибки, а член 1/2шТ — тенденцию в ошибке. Следовательно, при рассмотрении длины корреляции Т ошибки больше для более коротких последовательностей, кроме того, они максимальные для низкочастотных компонентов сигнала. Ошибки также периодичны по т.
Член cos(mT) дает наименьшие ошибки при шТ = [(2тг + 1)/2]тг. Поскольку ш = 2тг/Тр и искомыми являются большие значения Т, это соответствует
Т>(27г + 1)^.(5.12)
Член sin(cjr) дает наименьшее значение при шт = тт, где т — целое. Следовательно,
т = ^ТР.(5.13)
Теперь следует сделать несколько разумных предположений. Допустим, что условию большого Т удовлетворяет N > 10. Тогда Т > tiTp]2 или
Т > 5Т„.(5.14)
Из уравнения (5.13) находим, что наибольшее разрешенное значение т для самого низкочастотного компонента m = 1 удовлетворяет условию
т < Тр.(5.15)
Объединяя неравенства (5.14) и (5.15), получаем
т <Т(Ь.
Это означает, что при нахождении корреляции сигналов ошибки, вызванные конечными длинами последовательностей данных, можно минимизировать следующим образом:
гарантировать, что Т > 5ТР, где Тр соответствует наименьшему значимому частотному компоненту;
совмещать данные не более чем на 20% их длины.
Таким образом, например, если нужно найти корреляцию телефонного речевого сигнала с полосой 300-3400 Гц и того же сигнала, дискретизованного с частотой 40 кГц, Тр = 1/300 — 3, 3 х 10 с. Наименьшая приемлемая длина данных составляет о х 3, 3 х I О3 с = 16, 7 мс, а максимальное смещение при нахождении корреляции — 3,33 мс, или 133 точки данных.
На рис. 5.10 приведен график рц(з) коэффициента автокорреляции чисто случайного сигнала, например, белого шума. Можно показать, что математическое ожидание ГиО) равно 5[ги ~ — 1/7V] [4], где N — число точек данных, а дисперсия равна var^n^')] ~ 1/N. На рисунке показано математическое ожидание — 1/N, а также доверительные границы по уровню 95% — 1/N, равные A2/W1/2. Значения ru(/), которые не входят в эти доверительные пределы, могут быть значительными, те. они могут указывать, что сигнал не совсем случаен. При этом следует отметить, что одна точка из 20 может выходить за указанные пределы, даже если сигнал абсолютно случаен. Случайный сигнал Гц (/) должен входить в доверительные границы по уровню 95% за одну-две задержки. Чтобы действительно гарантировать, что сигнал случайный, нужен определенный опыт и некоторые дополнительные действия. Например, в работе [7] рекомендуется использовать предварительное “отбеливание” данных (устранение белого шума).
Автокорреляционная функция периодического сигнала также является периодическим сигналом. Данное утверждение легко доказать. Периодический сигнал т(1) с периодом Т удовлетворяет условию
т(1) = x(t + пТ),
так чтот/2
Гц(т) = lim — j x(t~)x(t + T~)dt =
-Т/2
Т/2
= Пш — / т(7)т(7 + т + nT~)dt
J(5Лб)
-Т/2
П1(т) = гп(т + п.Т\
Следовательно, сигнал гп (т) периодический по т с периодом Т. Данное свойство полезно, поскольку позволяет детектировать периодические сигналы в шуме при небольших отношениях сигнал-шум. Нахождение автокорреляции сигнала обычно снижает шум, при этом проявляя периодическую автокорреляционную функцию сигнала. При необходимости после детектирования можно выполнять дальнейшую обработку сигнала, чтобы определить его форму.
Из уравнения (5.11) видно, что автокорреляционная функция сигнала Asin(wt) равна (А2/2) cos(wt). Поскольку амплитуда автокорреляционной функции связана просто с амплитудой сигнала, ее можно использовать для оценки амплитуды сигнала. Приведем другой распространенный пример — прямоугольный сигнал амплитуды А, амплитуда автокорреляционной функции которого равна А2, а сама функция имеет треугольную форму. Наконец, следует отметить, что автокорреляционные функции не уникальны. Это означает, что различные сигналы могут иметь одинаковые корреляционные функции. Таким образом, по найденной автокорреляционной функции нельзя определить форму сигнала.
Рассмотрим задачу, в которой сигнал v(t) частично случайный. Итак, изучается зашумленный сигнал, который можно записать как сумму полезного сигнала s(t) и шума q(t\ Таким образом,
v(t) = s(t) + q(t),(5.17)
причем предполагается, что s(t) и q(t) не коррелируют. Выборочная автокорреляционная функция v(t), равная т^з), записывается следующим образом:
1 V 1
Ш = ДД 52[s^ra) + 9(га)][s(^ + 7) + q(n + 7)] =
п=о(5.18)
=n 52sWs(n + з) +52 sWq^ + 7) + 52+ зН
п=°п=0п=0
+ n ^q^q^^^ = п=0
= T'ssk3^ + E\s(<n?)q(<n + ;)] + Д<Дп),8(п + ;)] + E\q(<n))q(<n + ;)] =
= rss^ + £[sH]£[q(72 + .))] + E^E^H j^ + Ш^Шп+ № =
2(5.20)
= Ез(зМпШп) + q(n)s(n) + q(n) =
= Tss(j) E^sq + q2.
Теперь q —> 0 для больших N, для которых
т^Ш Tss(j\(5.21)
Для меньших N слагаемые взаимной корреляции в формуле (5.19) и автокорреляция шумовой составляющей стремятся к нулю с увеличением задержки j.
Таким образом, видно, что автокорреляционная функция частично случайного или зашумленного сигнала состоит из автокорреляционной функции сигнального компонента, на которую накладывается затухающая шумовая функция, зависящая от случайного компонента и полезного сигнала, и которая затухает до значения 2sq + q2- Следовательно, график зависимости т^]^ от j отражает периодичность s(t) при условии |rss(j)| > |(2sq +q2)| (см. рис. 5.11). В результате получаем метод определения периода сигнала в шуме (см. раздел 5.2.2).
Пример 5.4
Найдите функцию взаимной корреляции двух зашумленных сигналов.
Дано два сигнала {s1(t)+</1(t)} и ^s2(t)-\-q2(t)Y Их выборочная взаимная корреляция г12а) записывается следующим образом:
1 V 1
Т12Ш = ^ ^2[{si(n) + qi(n)}{s2(n + j) + q2(n + j)Y = n=0
1 v 1
(5.22)(5.22)= ^Е51^)52^ +J) +51H?2(n + j) + Ql(n)Q2(n+j)] n=0
(5.22)
(5.22)
= ^2 sYn)q2(n + j) + — ^qiWs^ + jH n=0n=0
1 v 1
+ n 52=
(5.23)(5.23)n=0
(5.23)
(5.23)
= TS1S2O) + rsig20) +rgiS2 + гд1Щ0).
Как и в предыдущей задаче, последние три члена в правой части уравнения (5.23) затухают до нуля с увеличением задержки j. Для больших N уравнение (5.23) записывается следующим образом:
=rslS2(j)Es^Eq^Eq^.(5.24)
Таким образом, при увеличении N r12(j) —> rslS2(j), функции взаимной корреляции двух сигналов.
Проведенный выше анализ демонстрирует, что функции взаимной корреляции и автокорреляции позволяют проявить свойства сигнала, снижая шумовую составляющую.
Применение корреляции
Расчет спектральной плотности энергии и энергетического содержимого сигнала
Можно показать, что
ЕЫ^=С<(5-25)
где СВ(Л — спектральная плотность энергии сигнала, т.е. спектральная плотность энергии и автокорреляционная функция являются Фурье-образами друг друга.
Далее можно показать, что
Гц(0) = £,(5.26)
где Е — общая энергия сигнала.
Пример 5.5
Найдите связь между корреляционными функциями с нулевой задержкой двух различных сигналов и их общим энергетическим содержимым.
Обозначим сигналы t>i(n) и Мга), а их сумму — V(п) = t>i(n) + Мга). Автокорреляционная функция сигнала с нулевой задержкой V (п) равна
Л-1Л-1
уМ) = Е, = — 52 V2(n) = — 52 И И + v2M]2,п=0п=0
где Еу — энергия сигнала^У (п).
Еу = 52ИМ E^W + 2щMt72И] = п=0
= 52 и + 52+ n 52 нинм
n=0n=0n=0
так что
Ev =(0) = т^ (0) + 2ту№ (0).(5.27)
Полученное уравнение является одной из форм искомого результата. Альтернативным образом результат можно записать так:
Еу = ЕУ1 + Еу2 + 2ги1.и2(0).(5.28)
Итак, энергия сигнала V(п) равна сумме энергий его компонентов плюс 2гг,1г,2(п), где 7*г,1г,2 (тг) — функция взаимной корреляции с нулевой задержкой сигналов ViQE) и ?’2(»). Если t>i(n) и ^2(п) не коррелируют, общая энергия является просто суммой энергий компонентов.
Если сигналы t>i(n) и ^2(п) зашумленные и t>i(n) = v^n) + qi(n) и ^(п) = v2(n) + 72(п), легко показать, что
Еу = Ev^ + Е^ + Eqi + Eq2 + т^^ (0).(5.29)
Детектирование и оценка периодических сигналов в шуме
Рассмотрим использование взаимной корреляции для детектирования и оценки периодических сигналов в шуме. Известно, что сигнал, спрятанный в шуме, можно оценить, найдя его взаимную корреляцию с настраиваемым шаблонным (“эталонным”) сигналом. Шаблон настраивается методом проб и ошибок с использованием любых предварительных знаний, пока функция взаимной корреляции не достигнет максимального значения. Для подкрепления этого предложения можно обратиться к уравнению (5.22), предполагая, что для шаблона q2^n?) = 0. При таком условии уравнение (5.23) переходит в следующее:
Пг^') =rslS2(j)+rgiS2(j) =(5.30)
= A1S2 + ^82.(5.31)
Поскольку дг —> 0 при увеличении N,
ПгО) rslS20).(5.32)
Очевидно, rslS2(j) имеет максимум при s2(n) = sx(n), где ту152 — автокорреляционная функция сигнала sx(n). Таким образом, меняя форму шаблона s2(n) с целью максимизации функции взаимной корреляции, можно получить s2(n) как оценку sx(n).
Оценка сигнала методом подбора шаблона иногда удобна, например, когда форма сигнала приблизительно известна (например, для определенных биомедицинских потенциалов), но есть и более научный подход, который может быть предпочтительнее. В
этом методе вначале оценивается период сигнала через автокорреляционную функцию зашумленного сигнала, а затем находится взаимная корреляция зашумленного сигнала с периодической серией импульсов, период которой равен периоду сигнала. Получающаяся в результате функция взаимной корреляции считается оценкой сигнала.
Обозначим сигнал с периодом Np точек (Np < N) через s(n), а шум через q(n), так что зашумленный сигнал равен S(n) = s(n) + q(n). Пусть 5(п — kNp) — периодическая серия импульсов, используемая для нахождения взаимной корреляции, a N§ — число импульсов, используемых при нахождении взаимной корреляции. Последняя величина также равна числу периодов сигнала, за которые находится взаимная корреляция сигнала с серией импульсов. Тогда
^[Д?Д+ gW]<4b-&ЛГр-j), k = 0,1,2,....(5.33)
n=0
Для j = 0 и учитывая, что 5(п — kNp) = 0 для всех п Д kNp,
rs«(0) = -гу [s(0) + q(0) + s(Np) + q(Np) + s(2Np) + q(2Np) + ... +
N6(5.34)
+ s(W) + q(W)].
Далее из-за периодичности сигнала s(n + kNp) = s(n) уравнение (5.34) приводится к виду
^ss(O) = — [IVs(O) + ДО) + q^Np) + q(2Np) + ... + ДАД]
ИЛИN/Np
= s(0) + -^- ^q^.(5.35)
При N —> oo, (1/N8)^2^£qP q(kNp) —> 0, следовательно, г^ДО) —> s(0). Подобным образом, для других значений j
V 1
'Г8б(-з') = ^ЬМ + qMW^ - з) - kNp\, к = 0,1,2,... ,
в результате также подавляется шум и находятся значения s(n) для п = 1,2,.... Следовательно, из уравнения (5.33) получаем
rs8H) = s(0), Д1),... , s(N - 1), j = 0,1, 2,... ,
что и является требуемым сигналом. Таким образом, сигнал, затерянный в зашумленном сигнале, можно оценить следующим образом:
найти автокорреляцию сигнала и определить его период;
найти взаимную корреляцию сигнала с периодической серией импульсов, период которой равен периоду сигнала; в ходе этой процедуры серия импульсов смещается вправо относительно сигнала.
Рис. 5.12. Сигнал — 8-битовое кодовое слово РСМ (панель а). Импульсная характеристика соответствующего согласованного фильтра (панель б)
Реализация корреляционного детектирования — согласованный фильтр
Корреляция также применяется для реализации корреляционного детектирования с помощью согласованного фильтра. Согласованным называется фильтр, максимизирующий отношение сигнал-шум на выходе. Импульсная характеристика согласованного фильтра записывается следующим образом [13]:
h^cSi^T - t),(5.36)
где с — произвольная константа, Sj (t) — входной сигнал (без шума), который выражается следующим образом:
/ X _ J Sj(t), для 0 < t<T;
S' [ 0. для Т < t < 0.
Здесь Т — момент времени, в который выполняется дискретизация выхода. Видно, что импульсная характеристика получена путем обращения сигнала во времени с последующим перемещением его на Т^ вдоль временной оси. В качестве примера на рис. 5.12, а показан сигнал, являющийся 8-битовым словом в кодировке РСМ, а на рис. 5.12, б показана импульсная характеристика согласованного фильтра, максимизирующего детектирование сигнала.
Теперь можно показать, что детектирование с помощью согласованного фильтра эквивалентно корреляции. Выход фильтра y(t) вначале выражается через свертку его входа s(t) с его импульсной характеристикой (свертка рассмотрена в разделе 5.3):
гдегдеy(t) = / str^Mt — T^cIt,y(t) = / str^Mt — T^cIt,(5.37)(5.37)s(t) = Sx^ + q(tYs(t) = Sx^ + q(tY(5.38)(5.38)
где
где
y(t) = / str^Mt — T^cIt,
y(t) = / str^Mt — T^cIt,
(5.37)
(5.37)
s(t) = Sx^ + q(tY
s(t) = Sx^ + q(tY
(5.38)
(5.38)
Здесь т — задержка, q(t) обозначает шумовой компонент. Подставляя уравнение (5.38) в (5.37), получаем
[sx(t) -Vq^Xt - т^Дт =[sx(t) -Vq^Xt - т^Дт =
[sx(t) -Vq^Xt - т^Дт =
[sx(t) -Vq^Xt - т^Дт =
Второй член правой части стремится к нулю, поскольку qX — случайный сигнал, который не коррелирует с h(t — т). Следовательно,
y(t) ~ У Si(T)h.(t - т)с1т.(5.39)
Далее из уравнения (5.36) получаем
h(t — т) = cSiX — t + т).(5.40)
Объединяя уравнения (5.39) и (5.40), получаем
y(t) ~ У s1(t)cs1(T - t+ т)с?т.(5.41)
Если этот выход дискретизуется в момент времени t = Т, то
y(t) ~ У s1(t)cs1(t)g?t to
77(5.42)
to / sX)dT = s^tW = rn(0),
если с = 1.
Локальная копия сигнала ^ (I)
Рис. 5.13. Схематическое изображение корреляционного детектора
Рис. 5.14. Детектор кодовых слов РСМ, основанный на корреляционном детекторе
Таким образом, у (Г) — автокорреляционная функция сигнала sx(t) с нулевой задержкой, которую можно получить, найдя взаимную корреляцию зашумленного входа с локально генерируемым бесшумным сигналом. На основе данного принципа и построен корреляционный детектор, схематическое изображение которого приведено на рис. 5.13. Например, на рис. 5.14 изображен детектор кодовых слов РСМ, содержащий корреляционный детектор для каждого кодового слова.
В цифровом детекторе ?тг-битовых кодовых слов хранятся кодовые слова, которые в процессе детектирования умножаются на т поступающих битов. Максимальное значение будет получено, если 1) т входных битов точно соответствуют ?тг-битовому кодовому слову, или если 2) т входных битов случайно равны ?тг-битовому кодовому слову Второй вариант крайне нежелателен. Он возможен, если два соседних кодовых слова содержат последовательность битов, идентичную требуемому ?тг-битовому кодовому слову, или если кодовое слово было повреждено. Следовательно, необходимо так упорядочить входной поток, чтобы была возможна синхронизация слов, а также битовая синхронизация в корреляционном приемнике.
Таким образом, нужна синхронизация кодовых слов, при которой выполняются следующие требования:
корреляция мала для моментов взятия выборок / / Т;
корреляция велика для выборок, взятых в моменты t = Т.
Кодовое слово с такими свойствами дает большую автокорреляцию при нулевой задержке и малую — при других задержках. Следовательно, детектирование больших
Рис. 5.15. Трехкаскадный генератор псевдослучайной последовательности
Рис. 5.16. Автокорреляционная функция биполярного сигнала трехкаскадного генератора псевдослучайной последовательности
значений функции взаимной корреляции в приемнике укажет расположение входных кодовых слов относительно записанного слова. Таким образом синхронизируется приемник. Далее отметим, что случайные сигналы имеют указанное выше автокорреляционное свойство, и их можно реализовать в цифровом приемнике с помощью псевдослучайной последовательности, которую легко генерировать, используя регистр сдвига с отводами. В качестве примера на рис. 5.15 показан трехкаскадный генератор псевдослучайной последовательности. Генератор производит последовательность 1, 1, 1, 0, 0, 1, 0, которая затем повторяется. Генерируемая автокорреляционная функция при биполярном сигнале на входе представлена на рис. 5.16.
Ниже указаны некоторые свойства псевдослучайных последовательностей.
Кодовые ?тг-битовые слова порождают последовательность длины 2™ — 1.
Максимальные значения равны 2™ — 1.
Автокорреляционная функция равна — 1 везде, кроме максимумов.
Выходная последовательность содержит 2"'1 единиц и 2"'1 — 1 нулей.
Спектральная плотность мощности равномерна, так что описанные генераторы можно использовать как источники белого шума.
Последнее свойство означает, что псевдослучайные последовательности также применяются в качестве источников белого шума.
Определение импульсной характеристики электрических систем
Дальнейшее приложение корреляции и псевдослучайных последовательностей лежит в определении импульсной характеристики электрических систем. Например, рассмотрим системы импульсного тестирования. При наличии шума малые импульсы могут маскироваться шумом, а большие — вызывать переполнение системы. Кроме того, используя единственный импульс, сложно поддерживать равномерную спектральную плотность энергии по полосе. При этом, как объяснялось выше, псевдослучайная последовательность имеет равномерный энергетический спектр. Кроме того, если время измерения кратно длине последовательности, дисперсия измеренных значений будет равна нулю, в результате время измерения будет малым, а точность высокой.
Основная идея метода — подать псевдослучайную последовательность на вход системы. Далее через взаимную корреляцию поданной последовательности и выхода находится импульсная характеристика системы. Доказательство сказанного приводится ниже.
Пусть q(t) — входная псевдослучайная последовательность, a y(t) — выход системы с импульсной характеристикой h(t\ Тогда
т
= Т^нзо Г /+=(5'43)
о
= lim ^-q(t)dt I h^q^t - v + T)dv,(5.44)
поскольку y(t) — свертка входа с импульсной характеристикой:
y(t) У h^q^t - v)dv.(5.45)
Меняя в уравнении (5.44) порядок интегрирования, получаем
ооТ
г„(г) = /V + TW =(5.46)
-ос0
= У h^Yqq^T - v)dv.(5.47)
Теперь Tqq^T — v) аппроксимируется 5-функцией, поскольку это автокорреляционная функция псевдослучайной последовательности. Следовательно, уравнение (5.47) можно переписать в виде
гду^ = К j Ци)5(т - v)dv = КЦ£),(5.48)
чУ).
Тестируемая система
Выход
Псевдослучайная последовательность
Импульсная характеристика, h(f)
Щ) = Л<у)?Й
Рис. 5.17. Определение импульсной характеристики электрической системы
-v)dv = A7i(Z)
где К — площадь импульсной функции, равная среднеквадратическому значению шума [1]. Схема описываемой структуры изображена на рис. 5.17. Метод подвержен определенным ошибкам, и, чтобы их избежать, следует принимать определенные меры пр едо стор ожн о сти.
5.2.2.5. Определение отношения сигнал-шум для периодического зашумленного сигнала
Измеряя коэффициент корреляции зашумленного периодического сигнала, можно определить его отношение сигнал-шум, а также мощность сигнала и шума [9]. Вывод соответствующих выражений приводится ниже. Для нахождения периода зашумленных сигналов можно использовать метод, описанный в подразделе 5.2.2.2.
Запишем сигнал как Уд (г), шум — как У„(г), зашумленный сигнал У(г) выражается следующим образом:
(5-49)
В таком случае периодический сигнал с периодом та интервалов дискретизации запишется как
У(^ = У^ + п).
(5.50)
Ковариация (второй момент) У(г) определяется следующим образом:
1
cov|V(i)] = cov[K (г), У (г + та)] = — ^[{У (г) — У Ю)}{^ (г + п) — У (г + та)}], (5.51)
где
среднее У (г). Таким образом, видно, что cov[K (г)] — автокорреляционная функция У (г) с нулевым средним с задержкой та. Далее обычным образом определяется коэффициент автокорреляции У (г):
р\Я^ =
cov[K (г)]
ЕЛЮ) -ЛЮ)2 м ЕЛЮ + ^) - ую + Л)2
(5.52)
cov[K (г)]
где
1_
^у^-У^У-
(5.53)
среднеквадратическое отклонение У(г).
Отметим, что нормировка на коэффициент N в уравнениях (5.51)-(5.53) дает смещенные оценки. Несмещенные оценки получаются путем замены N на N — 1. Отметим также, что такие члены, как
’’1 w
"’[ГДО] =£(^(0)’ = var[y (()]
г=1
называются дисперсией и представляют мощность, соотнесенную с УХУ\
Учтем теперь в уравнении (5.51) тот факт, что корреляции между зашумленными сигналами стремятся к нулю при увеличении числа выборок. Таким образом,
eov[V(0. F(i + »)| = -[(КД) +(0), (уд + п) ++ „))] =(И4)
= cov[y(z), Vsy + n)] = varfK^)].
Для достаточно длинных последовательностей данных сг[Уп(г)] = <т[У — п(г + п)], поэтому
сг[У(г)]сг[У (г + п)] =сг2[У(г)] = var[K(z)] = var|Vs(2) + УДг)] =
= уаДУДг)] +var[K(i)] + 2соу[К(г), У„(г)] = уаДУДг)] + var[K(i)],
поскольку соу[У(г), KW] = 0.
Чтобы получить выражение для коэффициента автокорреляции, подставим уравне
1таЩДДгД " var[Vs(i)]1таЩДДгД " var[Vs(i)](5.56)(5.56)ния (5.54) и (5.55) в (5.52):
1
таЩДДгД " var[Vs(i)]
1
таЩДДгД " var[Vs(i)]
(5.56)
(5.56)
ГТЛП1 = var№)]
var[y(0]+var[yn(0]
Отношение сигнал-шум S/N (дБ) определяется как 10 ^{(мощность сигнала)/ (мощность шума)}, что в принятых обозначениях выглядит так:
^(дБ) = 101g^(дБ) = 101gуаДУДг)] уаг[У„(г)]уаДУДг)] уаг[У„(г)](5.57)(5.57)
^(дБ) = 101g
^(дБ) = 101g
уаДУДг)] уаг[У„(г)]
уаДУДг)] уаг[У„(г)]
(5.57)
(5.57)
Объединяя уравнения (5.56) и (5.57), получаем
ДдБ) = 101gдБ.(5.58)
N1-р[У(г)]
Таким образом, отношение сигнал-шум зашумленного периодического сигнала легко вычисляется по его коэффициенту автокорреляции.
Из уравнения (5.55) получаем
(5.59)(5.59)var[V/(i)] + var[K)(i)] =S + N = var[F(i)],
(5.59)
(5.59)
где S и N представляют мощность сигнала и шума соответственно. Используя уравнения (5.56) и (5.59), можно получить выражения для S и N:
ии(5.60)(5.61)(5.60)(5.61)S = p[y(i)]var[y(i)]
и
и
(5.60)
(5.61)
(5.60)
(5.61)
N = (1 — p[y(i)])var[y(i)].
Отметим, что уравнение (5.58) применяется для оценки производительности каналов магнитной записи с точки зрения их отношений сигнал-шум [9].
Быстрая корреляция
Расчет корреляции можно ускорить, используя теорему о корреляции, которая обычно формулируется следующим образом:
г12Д) = ЕпЧХДк)Х2ДД(5.62)
хотя корректной является такая формулировка:
г12Д) = ^ЕпЧХ*Д)Х2ДД(5.63)
где Fp1 обозначает обратное дискретное преобразование Фурье. Данный подход требует выполнения двух дискретных преобразований Фурье (ДПФ) и одного обратного ДПФ, что легче всего сделать, используя алгоритм БПФ (см. главу 3). Если число членов в последовательностях достаточно велико, данный метод БПФ дает результат быстрее, чем непосредственный расчет взаимной корреляции.
Доказательство теоремы о корреляции
Пусть ххД, я^И и ^эМ — периодические последовательности длины N, и пусть их ДПФ-образы равны соответственно ХДЕ), Х2Д) и ХДк\ Более того, пусть
Х3Д) = ХДк)Х2ДУ(5.64)
В этом случае
X* Д) = ^(5.65)
1=0
и
X* Д^^Хг,(5.66)
г=0
Подставляя уравнения (5.65) pi (5.66) в (5.64), получаем
X3(fc) = Vx^l)e(2ti/XlkVx24)e(2ti/XX^^^^ =
i=oг=о(5-67)
W-l W-1W-l W-1x1(l')x2(Ty2Ti/NWk-rk'>x1(l')x2(Ty2Ti/NWk-rk'>(5.68)(5.68)
W-l W-1
W-l W-1
x1(l')x2(Ty2Ti/NWk-rk'>
x1(l')x2(Ty2Ti/NWk-rk'>
(5.68)
(5.68)
/=0 г=0
ДалееДалееN-1N-11т2Н = — ^ Х3(к)е^^пк.1т2Н = — ^ Х3(к)е^^пк.(5.69)(5.69)к=0Таким образом, подставляя уравнение (5.68) в (5.69), получаем1 N — lN—lN — lк=0Таким образом, подставляя уравнение (5.68) в (5.69), получаем1 N — lN—lN — l-14 — XIV — X 1 V — X= ^ Е Е Е ^(^(ry^w^-^^ =-14 — XIV — X 1 V — X= ^ Е Е Е ^(^(ry^w^-^^ =к=0 1=0 г=0к=0 1=0 г=0N — 1N — 1N—1N—1"N—1"N—1^ 1 V — X 1 V — X1 V — X= ^ЕЖ1^)ЕЖ2И е^ 1 V — X 1 V — X1 V — X= ^ЕЖ1^)ЕЖ2И е^(27vi/N')(l—r^n)l^(27vi/N')(l—r^n)l(5.70)(5.70)
Далее
Далее
N-1
N-1
1
т2Н = — ^ Х3(к)е^^пк.
1
т2Н = — ^ Х3(к)е^^пк.
(5.69)
(5.69)
к=0
Таким образом, подставляя уравнение (5.68) в (5.69), получаем
1 N — lN—lN — l
к=0
Таким образом, подставляя уравнение (5.68) в (5.69), получаем
1 N — lN—lN — l
-14 — XIV — X 1 V — X
= ^ Е Е Е ^(^(ry^w^-^^ =
-14 — XIV — X 1 V — X
= ^ Е Е Е ^(^(ry^w^-^^ =
к=0 1=0 г=0
к=0 1=0 г=0
N — 1
N — 1
N—1
N—1
"N—1
"N—1
^ 1 V — X 1 V — X1 V — X
= ^ЕЖ1^)ЕЖ2И е
^ 1 V — X 1 V — X1 V — X
= ^ЕЖ1^)ЕЖ2И е
^(27vi/N')(l—r^n)l
^(27vi/N')(l—r^n)l
(5.70)
(5.70)
При г = п + I выражение в квадратных скобках равно N. При г ^ п + I его можно рассматривать как геометрическую прогрессию вида
сумма которой по N членам равнасумма которой по N членам равнаа(1 — хХ1 — ха(1 — хХ1 — х
сумма которой по N членам равна
сумма которой по N членам равна
а(1 — хХ
1 — х
а(1 — хХ
1 — х
В нашем случае сумма равна:
1[1 — g(27ri/W)(Z-r+n)W]
1 _ е(2тгг/Лг)(<—г+п) "
Показатель экспоненты в числителе всегда кратен 2тг, так что ее значение равно 1. Таким образом, сумма равна нулю при г ^ п + I. Следовательно, уравнение (5.70) можно переписать как
(5-72)
где 5(1 — г + п) = 1 при г = п + I и 5(1 — г + п) = 0 при г ^ п + I. Положив г = п + I и упростив, получаем:
(5.73)(5.73)^з(^) = У^ х1(1)х2(1 + П)1=0
(5.73)
(5.73)
илиили^жз(п) = — ^T1(Z)T2(Z+?r).^жз(п) = — ^T1(Z)T2(Z+?r).(5-74)(5-74)
или
или
^жз(п) = — ^T1(Z)T2(Z+?r).
^жз(п) = — ^T1(Z)T2(Z+?r).
(5-74)
(5-74)
Правая часть данного выражения эквивалентна взаимной корреляции Х(П) и х2(п), и, как легко видеть, она равна (1/N)x3(n). Из уравнения (5.69) получаем
(5.75)(5.75)т3(п) = FD1(X3(k)(.
(5.75)
(5.75)
Далее, объединяя уравнения (5.74), (5.75) и (5.63), получаем
1рпЧХз(к)\ = гХ2Н = Lp^X^X^.(5.76)
Наконец, заменяя п на j, получаем
гМ = ^ГпЧХ*Лк)Х2(к)\.(5.77)
Пример 5.6
Используя теорему о корреляции, найдем взаимную корреляцию двух последовательностей тх(п) и х2(п\
а+Н = {1; 0; 0; 1},
т2(гг) = {0, 5; 1; 1; 0, 5}.
Используем вначале теорему о корреляции (уравнение (5.77)). В разделе 3.5 было показано, что Хг (к) равно
Хх^ = 2; 1 + г; 0; 1 — г,
так что
Х*^ = 2; 1 — г; 0; 1 + г.
Для получения Х2^ проще всего использовать алгоритм БПФ, приведенный в разделе 3.5. Таким образом, при т0 = 0, 5, т2 = 1, тх = 1 и т3 = 0, 5 получаем
^21(0) = т0 + т2 = 1, 5,
^21(1) = т0 - т2 = -0, 5,
^22(0) = тх + т3 = 1, 5,
Х22(1) = тх - т3 = 0, 5,
хХ1(0) =Х21(0)+Х22(0) = 3,
Ххх(1) = Х21(1) + (-г)Х22(1) = -0,5 - 0,5г,
Ххх(2) =Х21(0)-Х22(0) =0,
Ххх(3) = Х21(1) - Н)Х22(1) = -0,5 + 0,5г.
Собирая значения БПФ, получаем
Х*^ = 2; 1 — г; 0; 1 + г,
Х2(к^ = 3; —0, 5 — 0, 5г; 0; —0, 5 + 0, 5г.
Так чтоТак чтоСледовательно,Следовательно,Хх*(0)Х2(0) = 2x3 = 6,
Так что
Так что
Следовательно,
Следовательно,
Хх*(1)Х2(1) = (1 — г)(—0, 5 — 0,5г) = -1,
Х{(2)Х2(2) = 0x0 = 0,
Хх*(3)Х2(3) =0,5(1 +г)(-1+г) = -1.
[X{(fc)X2(fc)] = 6;-1;0;-1.
Теперь необходимо к этому результату применить обратное ДПФ. Как объясняется в разделе 3.6, обратное ДПФ получается путем замены знаков экспонент (в весовых коэффициентах Жу) приведенного выше алгоритма БПФ и деления результата на N. Следовательно, получаем такой результат:
-^21(1) = ж0-^22(0) = $1-^22(1) = Ж1-^21(1) = ж0-^22(0) = $1-^22(1) = Ж1- т2 = 6,+ т3 = — 2,- Т3 = 0,- т2 = 6,+ т3 = — 2,- Т3 = 0,Х21(0) = То + Т2 = 6,
-^21(1) = ж0
-^22(0) = $1
-^22(1) = Ж1
-^21(1) = ж0
-^22(0) = $1
-^22(1) = Ж1
- т2 = 6,
+ т3 = — 2,
- Т3 = 0,
- т2 = 6,
+ т3 = — 2,
- Т3 = 0,
Хп(0) =Х21(0)+Х22(0) =4,
-^11(1) — -^21(1) + ^22(1) — 6,
Хи (2) = Х21(0)-Х22(0) =8,
Хп(3)=Х21(1)-гХ22(1)=6.
Компоненты Fy^Xj"(fc)X2(fc)] получаются делением значений Хц(0), Хц(1), Хц(2) и Хц (3) на X = 4. Таким образом,
FD1[X*(fc)X2(fc)] = 1; 1,5; 2; 1,5.
Далее из уравнения (5.77) определяем
г12(г) = |FD1[X*X2(fc)] = {0,25; 0, 375; 0, 5; 0, 375}.(5.78)
Эта корреляция будет круговой, поскольку все данные периодичны с периодом X. Если непосредственно посчитать взаимную корреляцию г12(г), то получатся такие значения:
r12(0) = (1 х 0, 5 + 0 + 0 + 1 х 0, 5)/4 = 0, 25, г12(1) = (1 х 1+ 0 + 0 +1 х 0,5)/4 = 0,375, г12(2) = (1х1 + 0 + 0 + 1х 1)/4 = 0,5, г12(3) = (1х0,5 + 0 + 0 + 1х 1)/4 = 0,375.
Следующее значение г12(4) снова равно 0, 25, и последовательность периодически повторяется. Данный результат согласуется с данными, полученными выше с помощью теоремы о корреляции. Как объясняется в разделе 5.2.1, теорему о корреляции можно использовать для получения линейной корреляции путем добавления к двум последовательностям дополняющих нулей. Следовательно, если последовательность эс^п) имеет длину Ny, а последовательность эс2(п) — N2, то эс^п) дополняется (N2 — 1) нулями, а х2(п) — (М\ — 1) нулями. Далее на основе двух расширенных последовательностей рассчитывается взаимная корреляция. Этот метод вычисления взаимной корреляции с помощью теоремы о корреляции и БПФ называется быстрой корреляцией.
Расчет взаимной корреляции также можно ускорить, реализовав его рекурсивно. Проиллюстрируем это на примере с нулевой задержкой. Взаимная корреляция при нулевой задержке двух дискретных сигналов эс^п) и х2(п) равна
(5-79)(5-79)1 V 'П2(0) = — ^ЖхМтзМ.
(5-79)
(5-79)
п=0
Эта операция включает вычисление N произведений, N — 1 суммы и одного деления и может требовать чрезмерного времени при реализации в реальном времени, когда пары новых данных поступают с частотой дискретизации. Расчет необходимо повторять при поступлении следующей пары данных. Новые вычисления будут отличаться от предыдущих только тем, что к сумме пар произведений будет прибавлено произведение новой пары и первое произведение вычтется. Итак, для каждой взаимной корреляции
(новое значение) = (предыдущее значение) +
1 /X
+ — (произведение двух новых данных)— ^5 gg^
— — (произведение первых двух данных).
Это выражение — основа рекурсивного алгоритма. Каждая взаимная корреляция теперь требует только одного умножения, одного вычитания, одного сложения и одного деления при условии, что в памяти хранятся произведения пар данных. Для Л-ючсчпой корреляции рекурсивный подход дает правильные значения после вычисления первых (N — 1) точек.
Во многих приложениях требуется, чтобы среднее данных было равно нулю, например, для устранения постоянного тока из электрических сигналов. При этом необходимо рассчитать среднее значение сигнала и вычесть его из всех дискретных значений. Это означает, что расчет среднего значения также можно провести рекурсивно, поскольку для каждой новой пары данных
новое среднее = предыдущее среднее+
1(5.81)
+ — (новый элемент данных — первый элемент данных).
(5.82)(5.83)(5.82)(5.83)(5.84)(5.84)Кроме того, вычитание среднего уровня и расчет взаимной корреляции можно объединить в один рекурсивный алгоритм. Рассмотрим величины
(5.82)
(5.83)
(5.82)
(5.83)
(5.84)
(5.84)
иип=0
и
и
_1 v 1
ж2(^) = — ^
п=0
Значение функции взаимной корреляции к-го набора из N точек равно
1 V 1
= — ^ Ж1Мт2(?г).
При удалении среднего значение функции взаимной корреляции становится равным тУУ, где
1 V 1
г12 (к) = — ^ ।т 1 W - 51 ^ [ж2 И - ж2 (У,(5.85)
п=0
что можно упростить до
r°2(fc) = тУУ - Tx(fc)T2(fc).(5.86)
Объединяя уравнения (5.80) и (5.83), получаем
П2(&) = гУк - 1) + -^[T!(fc)T2(fc) - х^к - N)x2(k - IV)].(5.87)
Из уравнения (5.81)1
хУ) = хт(к - 1) + — [^(fc) - хт(к - W)](5.88)
И __1
зУк) = х2(к - 1) + —\х2(к) - х2(к - W)].(5.89)
Уравнения (5.86)-(5.89) составляют рекурсивный алгоритм, который объединяет вычитание среднего из данных с вычислением взаимной корреляции. Каждое вычисление требует только трех умножений, четырех вычитаний, трех сложений и четырех делений. Специалисты-практики отмечают, что при изменении средних значений данных следует аккуратно выбирать N, в противном случае можно получить неточные результаты.
5.3. Описание свертки
Свертка, помимо прочего, описывает, как выход системы определяется взаимодействием входа с самой системой. Обычно выход системы является запаздывающей и подавленной или усиленной версией входа. В этой связи особенно полезно рассмотреть
Рис. 5.18. Входной импульс и соответствующая импульсная характеристика системы
выход системы, порожденный импульсным входом. Это объясняется тем, что любой вход можно представить как последовательность импульсов разной мощности. Итак, выход системы, инициированный импульсным входом, не будет соответствующим импульсом, а будет меняться со временем, в некоторый момент достигая максимального значения, как показано на рис. 5.18. Из данного рисунка видно, что в момент взятия выборки т выход, порожденный единичным импульсом, поданным в момент 0, равен Н^т\ Данная величина называется импульсной характеристикой системы или ее импульсным, откликом..
Рассмотрим подачу на вход системы последовательности импульсов ж(т) в моменты времени т. В контексте рис. 5.19 выход в момент времени 0 равен у(0), причем
у(0) = /г(0)т(0).
В дискретный момент времени т = 1 выход равен /г(0)т(1) (влияние текущего входа ж(1)) плюс /г(1)т(0) (запаздывающее влияние входа, поданного в момент т = 0). Следовательно,
у(1) = /г(1)т(0) + /г(0)ж(1).
Рис. 5.19. Поданная на вход импульсная последовательность и характеристика системы, полученная из отдельных импульсных откликовРис. 5.19. Поданная на вход импульсная последовательность и характеристика системы, полученная из отдельных импульсных откликов
Рис. 5.19. Поданная на вход импульсная последовательность и характеристика системы, полученная из отдельных импульсных откликов
Рис. 5.19. Поданная на вход импульсная последовательность и характеристика системы, полученная из отдельных импульсных откликов
Таким образом, последующие выходы запишутся так:
у(2) = /г(2)т(0) + /г(1)т(1) + /г(0)т(2)
(5.90)(5.90)у(3) = /г(3)ж(0) + /г(2)т(1) + /г(1)т(2) + /г(0)ж(3)
(5.90)
(5.90)
у(п) = /г(п)т(0) + Mji — 1)ж(1) + ... + /г(0)т(п).
Если система линейна, выход можно записать как линейную сумму влияния предыдущих входов. Выход линейной системы первого порядка описывается уравнением (5.90).
Изучая приведенные выражения, находим, что выход получается умножением входной последовательности на соответствующие точки обращенной во времени функции импульсной характеристики. Альтернативный вариант — записать уравнение (5.90) в таком виде:
у(п) = /г(0)т(п) + Ы1)х(п — 1) + ... + Ыт1)х(0') (5.91)
и рассматривать выход как произведение соответствующих пар точек в функции импульсной характеристики и обращенной во времени входной последовательности. Следовательно, сверточная сумма эквивалента взаимной корреляции одной последовательности и обращенной во времени другой.
Уравнения (5.90) и (5.91) можно записать компактно:
у(п) = ^^ h^n — ?тг)т(?тг)(5.92)
Ип
у(п) = ^^ h^m^x^n — т\(5.93)
Данные функции называются сверточными суммами входов с импульсной характеристикой, а выход находится как свертка входа с импульсной характеристикой системы.
Уравнения (5.92) и (5.93) можно расширить на сигналы бесконечной длительности, записав их следующим образом:
у(п) = ^^ x^m^h^n — m) = т(п) ® h^n))(5.94)
Иоо
у(п) = ^^ h^m^x^n — m) = /г(п) ® т(п).(5.95)
В приведенных уравнениях символ “®” обозначает операцию свертки.
Если вход состоит из непрерывной последовательности импульсов, приведенную выше сумму можно заменить интегралом, например, уравнение (5.94) при этом приводится к виду
y(t) У х(Х)Ц1 - X)dX,(5.96)
что называется интегралом свертки.
До этого момента термином свертка назывался результат свертки импульсной характеристики системы со входом системы. В то же время, данную концепцию можно расширить на свертку любых двух наборов данных и рассматривать термин в более широком смысле.
В качестве примера свернем две периодические во времени последовательности {4,3,2,!} Qi^m^ и {1,2, 3,4} (ж(т)). На рис. 5.20, а показана периодическая последовательность {4, 3,2,1} (/г(т)), а на рис. 5.20, б — обращенная во времени последовательность (/г(—т)), {1,2, 3,4}. (Напомним, что сверточная сумма требует, чтобы одна из последовательностей умножалась на обращенную во времени вторую последовательность, те. свертка соответствует взаимной корреляции одной последовательности с обращенной во времени второй.) На рисунке также показано окно, ширина которого равна одному периоду, по которому выполняется свертка. Очевидно, что полученный результат будет периодическим, как и при нахождении взаимной корреляции (раздел 5.2.1), так что необходимо найти только свертку по выделенному интервалу. На рис. 5.20, е для справки показана вторая последовательность {1, 2, 3,4} (х(т)).
Рис. 5.20. Свертка у(т) последовательностей /i(n) и т(п): а) периодическая последовательность /i(m); б) обращенная во времени последовательность h(—? п); в)-д) копии /i(—т), последовательно смещаемые вправо; е) последовательность т(т); ж) выходная последовательность y(m) = /i(n) ®т(п)
При п = 0 уравнение (5.92) переходит в следующее:
у(0) = ^^ h(—т)х(т).
Согласно этой формуле взаимная корреляция данных в окне на рис. 5.20, б и е равна
у(0) = 4x1 + 1x2 + 2x3 + 3x4 = 24.
При п = 1 уравнение (5.92) переходит в следующее: у(1) = ^^ /г(1 — т)х(т),
и согласно этой формуле взаимная корреляция данных в окне на рис. 5.20, в и е равна
у(1) = 3x1 + 4x2 + 1x3 + 2x4 = 22.
Следовательно,
у(2) = 2x1 + 3x2 + 4x3 + 1x4 = 24
и
у(3) = 1x1 + 2x2 + 3x3 + 4x4 = 30.
Далее выходная последовательность (см. рис. 5.20, ж) циклично повторяется.
Если сигналы поддаются строгому математическому описанию, свертку можно выполнить аналитически. Чтобы лучше понять процесс свертки, рассмотрим подобный пример и проиллюстрируем необходимые этапы графически.
Пример 5.7
Найдем аналитически свертку сигналов т(1) и h(t), изображенных на рис. 5.21, а.
Пусть интеграл свертки записывается как
y(t) = х^ ®= / x^h^t - T^dT.(5.97)
Уравнение (5.97) соответствует уравнению (5.96), в котором переменную А заменили на т, чтобы указать, что теперь рассматривается задача с задержками. Интеграл свертки зависит от переменной т, так что рис. 5.21, а нужно заменить на рис. 5.21, б.
Далее необходимо обратить во времени сигнал Н(т), как показано на рис. 5.21, в. Далее h(—т) смещается относительно х(т) в положительном направлении т. Получающийся в результате сигнал h(t — т) накладывается на х(т) за пять отдельных этапов, проиллюстрированных на рис. 5.21, г-з. Для каждого из этих этапов существует соответствующий интеграл свертки. Следовательно, т(1)®/г(1) существует в пяти отдельных непрерывных областях.
АО
Рис. 5.21. Аналитическая свертка: а) сигналы ®(t) и h(t); б) т(т) и Ь(т); в) /г(—т); г) h(t— т) и т(т); t < 0, сигнал h(t — т) не накладывается на т(т); д) h(t — т) и т(т); 0 < t < 2, первое частичное
наложение h(t — т) и т(т); е) h(t — т) и т(т); t = 2, конец первого частичного наложения; ж) h(t — т)и т(т); 2 < t < 3, полное наложение h(t — т) и т(т); з) h(t — т) и т(т); 3 < t < 5, второе частичноеналожение h(t — т) и т(т); и) h(t — т) и т(т); t > 5, наложения h(t — т) и т(т) нет
Этап 1.t < 0 и h(t — т) не накладывается на афт) (рис. 5.21, г). Поскольку функции не перекрываются, x^h^t — т) = 0 для всех t и не дает вклада в интеграл свертки.
Этап 2. О < t < 2 и существует частичное наложение h^t — т) и х(т') (рис. 5.21, д').
В этой областиT=tT=t
y(t) = / х^тАКЭ — тАдт = / (3) х (2А<1т
JJ(5.98)
т=0т=0х 7
y(t) = 6[t]q = 6t,0 < t < 2
Как показано на рис. 5.21, е, данный этап завершается в момент t = 2.
Этап 3. 2 < t < 3 и сигналы h(t—т) и х(т) полностью перекрываются (рис. 5.21, ж). В этой областит
/ (3) X ^dT = 6[т]*_2
y(t) = 6(t - t + 2) = 12, 2 < t < 3.
Рис. 5.22. Зависимость свертки y(t) = ж(0 ® h(t) от tРис. 5.22. Зависимость свертки y(t) = ж(0 ® h(t) от t
Рис. 5.22. Зависимость свертки y(t) = ж(0 ® h(t) от t
Рис. 5.22. Зависимость свертки y(t) = ж(0 ® h(t) от t
Этап 4.3 < t <5. Еще одна область частичного наложения, показанная на рис. 5.21, з:
т=3
y(t~) = j (3) х (2)cZt = 6[т]®_2 = 6(5 - t)3 - 6t.(5.100)
T=t-2
Этап 5. t > 5. Как показано на рис. 5.21, и, это вторая область без наложения, которая также не дает вклада в интеграл свертки.
Таким образом, вклад в интеграл свертки дают этапы 2-4, причем эти вклады выражаются следующим образом:
0 < t < 20 < t < 2yto = 6t,yto = 6t,
0 < t < 2
0 < t < 2
yto = 6t,
yto = 6t,
2 < t < 3 у^ = 12,
3 < t < 53 < t < 5y(t) = 30 — 6t.y(t) = 30 — 6t.
3 < t < 5
3 < t < 5
y(t) = 30 — 6t.
y(t) = 30 — 6t.
Из этих выражений можно получить зависимость y(t), изображенную на рис. 5.22.
Приведем повторно уравнения (5.94) и (5.96) и продолжим наше обсуждение.
y(t) j x(X)h(t — X)dX.
Изучая эти уравнения, следует помнить, что свертка выполняется во времени — возникает так называемая свертка во временной области. Известно, что в частотной области выход системы на частоте / равен У (/):
где Н(/) — частотная характеристика системы на частоте /, X(/) — Фурье-образ входа x(,t\ Кроме того, можно показать, что H^f) — Фурье-образ Ы1\ Применяя обратное преобразование Фурье к обеим частям уравнения (5.101), получаем
^[УШ] = W) = F"4H(nX(f^.(5.102)
Объединяя уравнения (5.96) и (5.102), получаем, что
y(t) = У x(X)h(t - X)dX = т(£) ® h(t) = Я^х[Я(/)Х(/)].(5.103)
Таким образом, видно, что свертка двух сигналов во временной области эквивалентна применению обратного преобразования Фурье к произведению Фурье-образов двух сигналов. Данный полезный факт часто формулируют в сокращенной форме: свертка во временной области эквивалентна умножению в частотной.
Существует соотношение, дуальное приведенному, те. свертка в частотной области эквивалентна умножению во временной. Таким образом, можно показать [10], что
У(ш) = -*- / Х(ш - u^H^du = Х(/) ® Я(/) =
(5.104)
= ЛуМ] = Е\х(1>^.
Следовательно, Фурье-образ произведения двух временных последовательностей соответствует свертке Фурье-образов двух последовательностей. Данный результат обычно используется, чтобы объяснить взвешивание данных перед спектральным анализом (см. главу И). В данной процедуре оцифрованная последовательность данных точка за точкой умножается на другую последовательность, которая состоит из дискретных значений весовой функции. Этот процесс называется взвешиванием, и выполняется для уменьшения ошибок при вычислении энергетического спектра данных. После этого к взвешенным данным применяется дискретное преобразование Фурье, по результату которого вычисляется энергетический спектр. Задачей является получение энергетического спектра последовательности данных, но из сказанного выше следует, что в действительности получается спектр последовательности данных, свернутый со спектром весовой последовательности.
Свойства свертки
Закон коммутативности
Tx(t) ® T2(t) = T2(t) ® Tx(t).(5.105)
Отметим, что данное выражение идентично следующему:
j xx^x2^t — r^dr = j х2(т')х1(1 — T^dx.
Закон дистрибутивности
тх(Г) ® \x2(f) + T3(t)] = тх(Г) ® т2(Г) + тх(Г) ® х^.(5.106)
Закон ассоциативности
x^t) ® [т2(Г) ® т3(Г)] = [тх(Г) ® ж2(Г)] ® х3^(5.107)
Данные свойства можно доказать, либо расписав соответствующие интегралы, либо рассмотрев свертку как взаимную корреляцию одной последовательности с обращенной во времени другой.
Круговая свертка
Из сказанного в разделе 5.2.1 следует, что результат корреляции двух периодических последовательностей неравной длины — это циклическая последовательность, период которой равен периоду меньшей последовательности, что, таким образом, является неверным результатом. Поскольку свертка эквивалента взаимной корреляции одной последовательности с обращенной во времени второй, сказанное справедливо и для свертки. Следовательно, как и в случае с корреляцией, при свертке необходимо, чтобы две последовательности были равной длины. Итак, если длмны последовательностей равны Wx и ^2, то к первой из них следует добавить N2 — 1 нулей, а ко второй — Aj — 1 нулей. После этого обе последовательности получат равную длину А7Х + N2 — 1, и будет вычислено правильное значение линейной свертки при выполнении других необходимых условий, указанных в разделе, посвященном корреляции.
Идентификация систем
В уравнении (5.95) представлена связь между входом системы х(п) и ее выходом у(п\ Термином идентификация системы обозначают определение характеристики h(n), если она неизвестна. Если на вход системы подать пробный сигнал х(п) и измерить выход у(п), характеристику h(n) можно определить следующим образом (также можно использовать метод, описанный в разделе 5.2.2.4).
Из уравнения (5.91) следует, что у(?г) = /г(0)т(п) + /г(1)т(?г — 1) + ... + /г(п)т(0). При п = 0 у(0) = /г(0)т(0), поэтому
^(0) = ^.(5.108)
Далее, расписывая и переупорядочивая уравнение (5.93), получаем:
п—1
у(п) = /г(п)т(0) + ^^ h^m^x^n — т), п > 1,(5.109)
поэтомупоэтомуп — 1
поэтому
поэтому
у(п) — 52 h(m)x(n — т)
/г(та) = "'°, та > 1,т(0)0.
ж(0)
Используя уравнения (5.108) и (5.110), можно вычислить 1г(п).
Пример 5.8
Из уравнения (5.108)Из уравнения (5.108)1- = 1.11- = 1.1Пробный сигнал ж (та) = {1; 1; 1} подается на вход системы с неизвестной импульсной характеристикой h(n\ На входе системы наблюдается последовательность у(та) = {1; 4; 8; 10; 8; 4; 1}. Определите Цп\
Из уравнения (5.108)
Из уравнения (5.108)
1
- = 1.
1
1
- = 1.
1
Используя уравнение (5.110), находим у И
ж(0)
Для /г(1) получаем следующее выражение:
оу(1) — ]Г Цт^х(,1 — т)ж(0)оу(1) — ]Г Цт^х(,1 — т)ж(0)у(1) — /г(0)т(1)4—1x1ж(0)1у(1) — /г(0)т(1)4—1x1ж(0)1
о
у(1) — ]Г Цт^х(,1 — т)
ж(0)
о
у(1) — ]Г Цт^х(,1 — т)
ж(0)
у(1) — /г(0)т(1)4—1x1
ж(0)1
у(1) — /г(0)т(1)4—1x1
ж(0)1
Для h (2) результаты таковы:
у(2) - /г(0)т(2) - /г(1)т(1)ж(0)
8 - 1 х 1 - 3 х 1 = 4.
1
^(3) =^(3) =2у(3) — ^2 ^(т)ж(З — т)ж(0)2у(3) — ^2 ^(т)ж(З — т)ж(0)Для /г(3) получаем следующее выражение:
^(3) =
^(3) =
2
у(3) — ^2 ^(т)ж(З — т)
ж(0)
2
у(3) — ^2 ^(т)ж(З — т)
ж(0)
у(3) — /г(0)т(3) — /г(1)т(2) — /г(2)т(1)ж(0)
10-1x0-3x1-4x1 = 3.10-1x0-3x1-4x1 = 3.11
10-1x0-3x1-4x1 = 3.
10-1x0-3x1-4x1 = 3.
1
1
Для h(4) вычисляем:
у(4) — 22 ^-(т)ж(4 — т)
ж(0)ж(0)^(4) =
ж(0)
ж(0)
у(4) — /г(0)ж(4) — /г(1)ж(3) — /г(2)ж(2) — /г(3)ж(1)ж(0)
8-lx0-3x0-4xl-3xl
1
Для /г(5) получаем следующее выражение:
у(4) — 22 ^-(т)ж(4 — т)
у(4) — /г(0)ж(4) — /г(1)ж(3) — /г(2)ж(2) — /г(3)ж(1)ж(0)
8-lx0-3x0-4xl-3xl
Фактически h(n) = 0 для п > 5. Следовательно, h(n) = {1; 3; 4; 3; 1}.
Обращение свертки
Если импульсная характеристика и выход системы известны, то для поиска неизвестного входа применяется обращение свертки. Обратить свертку можно с помощью процедуры, подобной описанной в разделе 5.3.3 для идентификации системы. Расписывая и переупорядочивая уравнение (5.93), получаем
(5.111)(5.111)у(п) = h^x^n)) + ^^ h^m^x^n — т\
(5.111)
(5.111)
При п = 0 у(0) = /г(0)ж(0). Следовательно,
Из уравнения (5.111) получаем
Уравнения (5.112) и (5.113) подобны уравнениям (5.108) и (5.110), так что процедура расчета х(п) аналогична процедуре расчета h(n\
Пример 5.9
Для системы, использованной в примере 5.8, вычислите вход х(п) по данным h(n) = {1;3;4;3;1} и у(?г) = {1; 4; 8; 10; 8; 4; 1}.
Из уравнения (5.112) вычисляем:
W ЦО)W ЦО)1- = 1.11- = 1.1
W ЦО)
W ЦО)
1
- = 1.
1
1
- = 1.
1
Из уравнения (5.113) получаем:
= у(1) - Ь(1М0) = 4-3x1 =
; ЦО)1
_ у(2) - /г(1)т(1) - Ц2)х(0) _ 8-3 х1-4 х 1
I2) ~Г77Б~1
у(3) - Ц1)хЦ) - Ц2)хЦ)^(0)у(3) - Ц1)хЦ) - Ц2)хЦ)^(0)10-3x1-4x1-3x110-3x1-4x1-3x1
у(3) - Ц1)хЦ) - Ц2)хЦ)^(0)
у(3) - Ц1)хЦ) - Ц2)хЦ)^(0)
10-3x1-4x1-3x1
10-3x1-4x1-3x1
Для п > 3 х(п) = 0.
Следовательно, х(п) = {1; 1; 1}, что согласуется со значениями, использованными в примере 5.8.
Слепое обращение свертки
Процесс определения входного сигнала по выходному при неизвестной импульсной характеристике системы называется слепым обращением, свертки. Описанный ниже метод его выполнения основан на разработке Белла и Сежновски [2]. Задача и ее решение иллюстрируется на рис. 5.23. На рис. 5.23, а требуемый неизвестный исходный сигнал хЦ) передается через систему с импульсной характеристикой Цп), в результате чего получается измеренный выходной сигнал Цп). Сигнал Цп) представляет собой результат свертки Цп) с хЦ) (Цп) ® х(п)), следовательно, искажается запаздывающей копией х(п). В задаче требуется вычислить сигнал Цп), являющийся хорошей аппроксимацией х(п). Следовательно, как показано на рис. 5.23, б, требуется причинный фильтр Цп), которой при свертке входного сигнала с Цп) даст необходимый выход Цп). В качестве такого фильтра можно использовать трансверсальный фильтр, изображенный на рис. 5.24 (сравните с рис. 1.4, а). Выход этого фильтра равен
L-1
Цп) = ^^ Цт)Цп — т),
что можно записать в альтернативной матричной форме
х(и)х(и)Система Л(и)Система Л(и)Щп) = Л(«) ® x(w)Щп) = Л(«) ® x(w)
х(и)
х(и)
Система Л(и)
Система Л(и)
Щп) = Л(«) ® x(w)
Щп) = Л(«) ® x(w)
Рис. 5.24. Трансверсальный фильтр w(n) для слепой свертки
где U = {«(0),и(1),... , u(W)}T,
w(L)0•• •0•• •
w(L — 1) w(b) • • •0• • •
0
0
w ='"
w(l) ™(2) • • • ™(Ь) • • •
0
o w(i) ■ ■ ■
w(L)
F = {/(0), /(1),..., /(^)}т, N — число элементов во временном ряде.
В работе [2] использовался принцип максимизации информации, на основе которого выводился алгоритм адаптивного вычисления весовых коэффициентов W. Следовательно, авторы проводили настройку, снижая статистическую корреляцию между точками u(n). Этот подход известен как отбеливание и(п), поскольку выборки в последовательности белого шума статистически независимы. Чтобы достичь этого, необходимо устранить статистические корреляции высоких порядков. Для этого и(п) подается в систему с нелинейной передаточной функцией g[u(n)] и максимизируется инфор-
мация на выходе системы у(п) = g[u(n)]. Обновление коэффициентов происходит по следующим формулам:
1
(5.115)(5.115)(5.116)(5.116)Aw(L - » ос ^(^"j - 2ж(п)у(?г))
(5.115)
(5.115)
(5.116)
(5.116)
Aw(L - » ос ^(-2ж(п - 1)уИ).
F=j
Алгоритм продолжает выполняться, пока Aw(L) и Aw(L — j) не станет малым. Затем с использованием найденных весовых коэффициентов задержек и данных, подлежащих обработке, реализуется соответствующий фильтр.
Быстрая линейная свертка
В разделе 5.2.3, было показано, что вычисление свертки можно ускорить с помощью теоремы о корреляции. Существует также подобная теорема о свертке. Итак, используя дискретную терминологию и временную область, можно записать
(5.117)(5.117)Ж1(0 ® т2(г) = FD1VX1(k)X2(k)Y
(5.117)
(5.117)
Уравнение (5.117) является формулировкой теоремы о свертке, где Fp1 обозначает обратное дискретное преобразование Фурье, Хх^ — ДПФ-образ ххЦ\ Х2(к) — ДПФ- образ х2(т\ Как и в разделе 5.2.3, Хх(1) и т2(г) — периодические последовательности длины N.
Доказательство теоремы о свертке
Доказательство данной теоремы практически идентично доказательству теоремы о корреляции, приведенному в разделе 5.2.3. При свертке одна из последовательностей данных обращена, так что вместо уравнения (5.65) применяется сопряженное:
АДА?) = ^ Хх^-^^1 = 0АДА?) = ^ Хх^-^^1 = 0(5.118)(5.118)
АДА?) = ^ Хх^-^^
1 = 0
АДА?) = ^ Хх^-^^
1 = 0
(5.118)
(5.118)
при этом уравнение (5.66) остается без изменений:
(5.119)(5.119)Х2(к) = J2MZ)e(2™/W)brfe).г=0
(5.119)
(5.119)
Следовательно, повторно определив х3(п) как периодическую последовательность длины N с ДПФ-образом A3(Z), Х3^ можно записать как
После этого применяется процедура, описанная в разделе 5.2.3, приводящая в конечном итоге к искомому результату:
X1W ® Х2^ = FD1[X1(fc)X2(fc)] (5.121)
для свертки во временной области. Для свертки в частотной области применяется аналогичное уравнение: 1
_[Xx(fc) ®X2(fc)] = FDH^M (5.122)
Последние две формулы представляют периодические, или круговые, свертки, которые можно преобразовать в линейные с помощью дополняющих нулей, как описано в разделе 5.3.2.
Вычислительные преимущества быстрой линейной свертки
Метод быстрой линейной свертки предлагает преимущества меньшей вычислительной сложности по сравнению с прямым подходом, только если число значений, подлежащих свертке, достаточно велико. Ниже сравнивается число умножений, требуемых для выполнения свертки с помощью прямого и быстрого методов, выбранное в качестве меры их относительной вычислительной эффективности.
Необходимые расчеты для прямого метода выполняются согласно уравнению (5.90). Очевидно, что для получения линейной свертки двух Л-точсчпых последовательностей h(n — т) и ж(т) необходимо умножить каждое значение h,(n — т) на каждое значение ж(т\ Следовательно, N значений h(n — т) нужно перемножить с N значениями ж(т), в результате всего требуется N х N = N2 умножений.
Рассмотрим теперь линейную свертку тех же двух Л-точсчпых последовательностей с помощью быстрого метода, записанного в уравнении (5.121). Прибавление необходимых дополняющих нулей означает, что каждая последовательность имеет длину 2N — 1 точек. Предположим, что 2N — 1 ~ 2N, например, N > 8, и что для использования БПФ по основанию 2 N — целая степень 2, те. X = 2d, где d — целое. Можно показать, что число комплексных умножений для N-точечного БПФ равно (W/2)log2W (раздел 3.5.3), так что для 21У-точечного БПФ необходимо (2N/2) log2 2N или Wlog22W комплексных умножений. Согласно уравнению (5.121) требуется вычислить два ДПФ и одно обратное ДПФ. Для расчета обратного ДПФ можно использовать модифицированное ДПФ (раздел 3.6). Таким образом, необходимо вычислить три 2Л’-точсчпых БПФ, включающих в сумме 3N log2 2N комплексных умножений. Для каждого из 2N значений уравнения (5.121) необходимо выполнить комплексное умножение Х1(к)Х2(к), таким образом общее число комплексных умножений возрастает до 3N log2 2N + 2N. Далее каждое комплексное умножение вида (А-\~гВ)(С + iD) требует четырех действительных умножений AC, AD, ВС и BD. Значит, в целом необходимо 127V log2 2W + 8W действительных умножений.
Таким образом, можно сделать вывод, что прямой метод требует N2 действительных умножений, тогда как метод быстрой свертки требует 127V = log2 2N + 8 /V умножений. В табл. 5.1 сравниваются числа действительных умножений, необходимые для различных значений N. Из таблицы видно, что быстрая свертка лучше прямого метода, если
длина последовательностей превышает 128 точек данных, причем для последовательностей из 1024 точек быстрая свертка дает результат за время, меньшее примерно в 10 раз. Тот же вывод справедлив и для прямой и быстрой корреляции.
Таблица 5.1. Число действительных умножений, требуемых для выполнения свертки двух N- точечных последовательностей
N
Прямой метод
Быстрая свертка
(Быстрая свертка)/(прямой метод)
8
64
448
7
16
256
1 088
4,25
32
1 024
2 560
2,5
64
4 096
5 888
1,4375
128
16 384
13 312
0,8125
256
65 536
29 696
0,4531
512
262 144
65 536
0, 250
1024
1 048 576
143 360
0,1367
2048
4 194 304
311 296
0,0742
Свертка и корреляция путем сегментации
До этого момента предполагалось, что две функции, подлежащие свертке (или расчету корреляции), имеют конечную длительность. Впрочем, это справедливо не всегда. Например, можно считать, что входные данные имеют бесконечную длительность либо потому, что они поступают фактически непрерывно, либо (более вероятная причина) потому, что доступная память недостаточно велика, чтобы вместить их все. В подобных случаях свертку (или корреляцию) необходимо выполнять поэтапно, разделив входные данные на отдельные блоки, выполнив необходимые вычисления для каждого блока и затем объединив результаты. Для реализации подобной схемы используются два метода: наложения-сложения (overlap-add) и наложения-записи (overlap-save), которые будут описаны ниже. Перед этим, впрочем, необходимо рассмотреть, как повысить эффективность вычислений, если две функции не начинаются в нулевой момент времени.
На рис. 5.25 показаны два дискретных сигнала ж(п) и h(n), а также их свертка ж(п) ® h(n) = у(п\ Сигналы ж(п) и h(n) начинаются соответственно в моменты а и Ь, поэтому если а и b велики по сравнению с количеством данных Wx и N2 в ж(п) и h(n) соответственно, то во многих тактах вычислений будут фигурировать расчеты с нулевыми данными. Число этих вычислений можно уменьшить, сместив сигналы так, чтобы они выходили из начала координат, как показано на рис. 5.26. После этого данные необходимо дополнить нулями, чтобы оба сигнала содержали равное число точек N = Wx + N2 — 1, и их периодическая свертка соответствовала линейной свертке двух сигналов. Свертка выполняется согласно теореме о свертке (уравнение (5.117)) и алгоритму БПФ. Чтобы полученный результат был правильным, вычисленную свертку необходимо так сместить вдоль оси тг, чтобы она начиналась в точке п = а + b (рис. 5.26, г). На приведенном рисунке предполагается, что N = 2d, где d — целое, поэтому можно использовать БПФ по основанию 2.
Аналогичная иллюстрация для корреляции ж(п) и h(n), тх1г^п), приведена на рис. 5.27. При трансляции указанных сигналов в начало координат вводятся дополнительные нули, так что N 2'v > Л) | Лу — I, и корреляция вычисляется согласно теореме о
х(и)
Рис. 5.25. Свертка у(п) = т(п) ® /i(n) двух сигналов т(п) и /i(n), не выходящих из начала координат
Рис. 5.26. Свертка двух сигналов, изображенных на рис. 5.25, для получения которой т(п) и /i(n) транслировались в начало координат. Прибавление к т(п) ЛС — I дополняющих нулей (панель а). Прибавление к /i(n) Wi — 1 дополняющих нулей (панель б). Свертка у(п) = т(п) ® б(п) (панель в). Правильная линейная свертка получается заменой у(п) вдоль оси п функцией, начинающейся в точке п = а + b (панель г)
в)
х(и)
1,0
Л^ + Л^-!
в)
Рис. 5.27. Взаимная корреляция r(m) двух сигналов ж(п) и /i(n), которые начинаются не в начале координат: а) ж(п); б) /i(n); в) г,х, |'г»)
Рис. 5.28. Неверная взаимная корреляция, полученная при трансляции х(п) и /i(n) в начало координат
корреляции (формула (5.77)). Получающийся результат представлен на рис. 5.28. Это не периодическая копия рис. 5.27, в, хотя и содержит правильную базовую форму сигнала. Искомый периодический результат можно получить, перенеся ж(п) в точку п = N — Nx + 1, при этом расположив h(n) в точке п = 0, как на рис. 5.29, где видно, что в результате указанных действий получается требуемая периодическая корреляционная функция (рис. 5.29, в). Полученный результат нужно сместить на a — d — N+Ny | ЛА точек данных вправо, чтобы переместить в верное значение a — d (сравните с рис. 5.29, в).
Распространим теперь приведенные соображения на задачу с бесконечной последовательностью эс(п), которую нужно свернуть с конечной последовательностью h(n\
Метод наложения-сложения
Пусть ж(п) делится на сегменты равной длины, состоящие из 7VX точек данных. Далее предположим, что данные последовательности периодичны и требуется найти их свертку с N2 точками данных (последовательность h(n)), дополненными 7VX — N2 нулями, так что теперь обе последовательности периодичны и имеют длину 7VX. Результат этой свертки будет неверным, поскольку для получения правильного результата каждая последовательность должна иметь длину N = Nr + N2 — 1. Впрочем, каждый сегмент ж(п) имеет длину Aj (и эту величину увеличить нельзя). Чтобы устранить эту проблему, можно рассмотреть сегменты ж(п) с длиной N и заменить последние N2 — 1 точек данных нулями, расширив первоначальные N — N2 + 1 = Л) данных (рис. 5.30).
Рис. 5.29. Метод получения правильной взаимной корреляции двух последовательностей т(п) и /i(n): а) т(п) смещается в N — Wi + 1; б) /i(n) смещается в начало координат; в) получающийся правильный периодический коэффициент взаимной корреляции r^j^m)
Л(л)Л(л)Рис. 5.30. Свертка методом наложения-сложенияРис. 5.30. Свертка методом наложения-сложения
Л(л)
Л(л)
Рис. 5.30. Свертка методом наложения-сложения
Рис. 5.30. Свертка методом наложения-сложения
Подобным способом последовательность Wx данных ж(п) с N2 — 1 дополняющими нулями сворачивается с N2 данными последовательности h(n) с N2 — 1 дополняющими нулями. Обе последовательности содержат N = N—1 + N2 — 1 точек данных, и их свертка находится правильно (рис. 5.31). Та же процедура выполняется для оставшихся последовательностей ж(п) длины N. Поскольку последние N2 — 1 точек данных сегментов ж(п) были заменены нулями, получающиеся сверточные функции ошибочны в первых и последних N2 — 1 точках каждой свертки, но все эти точки суммируются и дают правильную свертку при трансляции каждого свернутого сигнала в точку его истинного начала (а+ 6), а последние N2 — 1 точек свертки находятся путем наложения одного сегмента на другой. Данный процесс иллюстрируется на рис. 5.31. Подытожим: вначале для устранения краевых эффектов к сегментам добавляется достаточное число нулей, затем результаты свертки накладываются друг на друга точно так, как последовательность длиной Wx дополнялась нулями, а затем находится их сумма. Название метода — наложение-сложение — следует непосредственно из выполняемых действий.
Результат свертки с наложением-сложением и прямой свертки
Рис. 5.31. Эквивалентность метода наложения-сложения и прямой свертки
Пример 5.10
Используйте процедуру наложения-сложения, чтобы найти свертку двух последовательностей Ып?) = {1; 0; 1} и т(п) = {1; 3; 2; — 3; 0; 2; — 1; 0; —2; 3; —2; 1;...}.
Решение
Пусть последовательность ж(п) разбита на сегменты длиной Wx = 6, при этом N (число точек в ДПФ) равно 7Vi+7V2 — 1 = 6+3—1 = 8 = 2d, где d = 3, таким образом удовлетворяются требования к использованию линейной свертки и БПФ по основанию 2.
Дополняя 6(п) нулями, получаем последовательность 6'(п):
6'(n) = {1; 0; 1; 0; 0; 0; 0; 0}.
Первые две расширенные последовательности х(п) имеют такой вид:
ж^тг) = {1; 3; 2; —3; 0; 2; 0; 0}
и
т'М = {-1;0;-2;3;-2;1;0;0}.
Сверточная сумма x'L(n) ® 6'(п) содержит следующие члены:
Ухо — ^-ожхо
= 1,
Ун = ^о^хх
У12 = 6'0х'12
+ Ы^о = 3 + 0 = 3,
+ 6'4X44 + 6'2х'1О = 2 + 0 + 1 = 3,
Ухз = ^-ожхз
+ б^х^ + К^х'44 = —3 + 0 + 3 = 0,
У14 = ^0^X4
+ 6'4X43 + h2x'12 = 0 + 0 + 2 = 2,
УХ5 = /l'0®i5
+ 6'4X44 + h2x'13 = 2 + 0 — 3 = — 1,
Ухе = ^-ож1б
+ 6'4X45 + ^2^X4 = 0 + 0 + 0 = 0,
У17 = ^-0Ж17
+ 6'4X45 + 6'2x'15 = 0 + 0 + 2 = 2.
Сверточная сумма т'2(п) ® 6'(п) состоит из таких компонентов:
У20 — 60x20
= -1,
У21 = 60x21
+ ^1^20 = 0 + 0 = 0,
y22 = 6'0x'22
+ K^X2^ + ^2^20 = —+ 0 — 1 = —3,
У23 = 60x23
+ ^1^22 + ^2^21 = 3 + 0 + 0 = 3,
У24 = 60x24
+ ^1+23 + ^2^22 = —+ 0 — 2 = —4,
У25 = 6Qx25
+ ^2?24 + ^2^23 = 1 + 0 + 3 = 4,
У26 = 60x26
+ ^1^25 + ^2^24 = 0 + 0 — 2 = —2,
У27 = 60x27
+ ^1^26 4" ^2^25 = 0 + 0+1 = 1.
Приведенные выше сверточные суммы показаны на рис. 5.31, а и б соответственно. Если первые N2 — 1 = 2 точки данных х'2 наложить на последние N2 — 1 точек данных х'г и просуммировать сверточные суммы, получатся первые 12 точек данных данных итогового сверточного сигнала, показанные на рис. 5.31, в.
Можно показать, что приведенный выше результат идентичен тому, который получается при прямом вычислении свертки. Исходная последовательность х(п) содержит 12, а h(n) — 3 точки данных. Чтобы получить линейную свертку этих двух последовательностей, их нужно дополнить нулями, чтобы длина обеих составляла 12+3—1 = 14 точек данных. Таким образом, последовательности становятся равными
1Дп) = {1; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0}
и
х(п) = {1; 3; 2; —3; 0; 2; —1; 0; —2; 3; —2; 1; 0; 0}.
Ниже приводятся первые девять членов сверточной суммы.
Уо = ^о4 =
Ух — К-^х^— 3,
У2 = ^0^2 + ^1^1 + ^2^0 =2 + 0+1 = 3,
Уз =HqX^ + h^X2+^2^i= —3 + 0 + 3 = 0,
У4 =К^Хд + h±x3+^2^2= 0 + 0 + 2 = 2,
у5 =h^x^ + h\ x\+Н^Хз= 2 + 0 — 3 = — 1,
Уб =^0^6 ' ^1^5'^2^4= —1 +0 + 0 = —1,
у7 = h'0x'7 + К^Хц + h2x'5 = 0 + 0 + 2 = 2,
Уз = Ь-уХд + h^x^ += —+ 0 — 1 = —3.
Члены этой сверточной суммы действительно идентичны величинам, полученным методом наложения-сложения, изображенным на рис. 5.31, в.
На основе сказанного можно вывести следующую процедуру наложения-сложения для быстрой свертки (или корреляции) с помощью сегментации.
Выбрать число Wx данных последовательности т(п) порядка числа N2 данных последовательности h(n) (причем Wx > N2) и число точек ДПФ в виде N = 2d, где d — целое и + > А( | А) - I. Для удовлетворения этим условиям последовательности данных при необходимости дополняются нулями.
Сместить расширенные сегменты данных х(п) в начало координат.
Для каждого расширенного сегмента данных х(п), х'(п), найти быструю свертку х'^п) ® h\Ti\ т.е. вычислить Х(к)Н(к) и затем применить обратное преобразование.
Последовательно наложить полученные свертки, совмещая последние N2 — 1 точек одного результата с N2 — 1 первыми точками другого, и просуммировать свертки.
Метод наложения-записи
Рассмотрим еще раз свертку х(п) ® h(n), проиллюстрированную на рис. 5.32, где к h(n) добавлено N2 — 1 нулей, так что обе последовательности имеют длину Wx. Чтобы получить линейную свертку указанных последовательностей, h(n) можно последовательно (по одной точке) смещать h(n) вправо, проводить перекрестное умножение
пропущенных нулей
N; данных ► •*►
х0
*1
*2
Хз
х4
^5
х6
х7
*8
0
0
^2
0
0
0
0
0
0
0
0
0
0
<— Л^ данных —►
Рис. 5.32. Последовательности ж(п) и /г(п), причем /г(п) дополнена ^2 — 1 нулями
соответствующих членов и суммировать результаты. В то же время, поскольку ни одна последовательность не имеет длины ^ + ^2 — 1, результат не будет равен х(п) ® h(n\ Фактически, если длина последовательности х(п) равна N\, пропущено N2 — 1 нулей. Это означает, что первые Лу — I членов сверточной суммы будут неверными, и их следует отбросить. Следовательно, если данные х(п) делятся на смежные сегменты длины Nx, первые N2 — 1 значений каждой сверточной суммы следует отбрасывать. Значит, свертка х(п) ® h(n) будет содержать периодическую последовательность пропусков длины N2 — 1. Данные пропуски можно корректно заполнить, наложив последние N2 — 1 точек данных каждой последовательности х(п) длины Wx на первые N2 — 1 точек данных следующей последовательности, а затем отбросив эти первые N2 — 1 точек данных. Описанная процедура известна как метод наложения-записи.
Пример 5.11
Используйте процедуру наложения-записи для свертки последовательностей, приведенных в разделе 5.3.9, те.
= {1; 0; 1}
и
= {1; 3; 2; -3; 0; 2; -1; 0; -2; 3; -2; 1}.
Решение
Поскольку для h^n) N2 = 3, величина наложения N2 — 1 = 2. Само наложение выполняется так, как показано на рис. 5.33. Ниже приводится расчет сверток для каждого сегмента.
Для сегмента 1:
Ую
= hoxxo
= 1,
У и
+ Ы^ =3 + 0 = 3,
У12
= h0x12
+ /гхтхх + h2x'lo = 2 + 0 + 1 = 3,
У1з
= h0x13
+ h!xx'12 + h!2x'xx + h!3x'X0 = —3 + 0 + 3 + 0 = 0.
Следовательно,
Ух = {1;3;3;0}.
Для остальных сегментов следует помнить, что hi = h3 = 0. Итак, для сегмента 2
получаем:
У20 — ^0^20 — 2,
У21 = ^0^21 = — 3,
У22 — ^0^22 + ^2^20 — 2 Т 0 — 2,
У23 = ^0^23 + ^г^гг + ^г^гг = 2 — 3 = — 1, у2 = {2; —3; 2; —1}.
Подобным образом, для сегмента 3 получаем:
у3 = {0; 2; —1; 2}.
Для сегмента 4:
у4 = {—1; 0; —3; 3}.
Наконец, для сегмента 5 находим:
у5 = {—2; 3; —4; 4}.
Данные результаты иллюстрируются в табл. 5.2, из которой видно, что первые N2 — 1 результатов каждой последовательности отбрасываются. Последняя строка кроме первой позиции содержит правильное значение свертки.
Таблица 5.2. Результаты решения примера 5.11
Сегмент 1
Уо3 0
отбрасывается
Сегмент 2
yi2^_32- 1
отбрасывается
Сегмент 3
у20^2-1 2
отбрасывается
Сегмент 4
уз-10-3 3
отбрасывается
Сегмент 5
у4-2 3-4 4
отбрасывается
;(п) ® Цп)
1_^_33 02 - 1-1 2-3 3-4 4
отбрасывается
Таким образом, получаем следующую процедуру наложения-записи.
Выбрать число точек данных последовательности ж(п) равным Л^ = 2^ и добавить к h(n) N2 — 1 нулей, чтобы обе последовательности имели длину Wx.
Разместить обе последовательности в начале координат.
Для каждой последовательности вычислить соответствующие значения Х(к) и X(к), используя БПФ.
й(п) 101
х(и)
1
3
2
-3
0
2
-1
0
-2
3
-2
1
Участок 1
1
3
2
-3
Участок 2
2
-3
0
2
Участок 3
0
2
-1
0
Участок 4
-1
0
-2
3
Участок 5
-2
3
-2
1
Рис. 5.33. Наложение сегментов для выполнения свертки методом наложения-записи
Вычислить Х(к)Н(к) и обратное к нему, которое равно свертке каждой последовательности с h(n\
Расположить все свертки так, чтобы каждая следующая совмещалась с предыдущей по N2 — 1 точкам.
Отбросить первые TV2 — 1 точек данных каждой свертки и считать оставшиеся значения, которые соответствуют верной свертке.
Вычислительные преимущества быстрой свертки через сегментацию
В разделе 5.3.8 показано, что ненужных вычислений можно избежать, перенеся начало каждого сегмента в начало координат. Предположим, что это уже сделано. Затем допустим, что вычислительные требования методов наложения-сложения и наложения- записи подобны, поэтому достаточно рассмотреть только первый из этих методов. Предполагается, что последовательность ж(п) длины N делится на N/N\ сегментов, каждый из которых имеет длину N\, что последовательность h(n) имеет длину Х2 и что длины последовательностей, подлежащих линейной свертке, равны TV1 2'v > Nx -\- N2 — 1. Кроме того, в разделе 5.3.7 было показано, что для выполнения быстрой свертки двух ЛП-точечных последовательностей требуется 12W1 log2 2TV1 + 8TV1 действительных умножений. Следовательно, чтобы выполнить быструю свертку TV- точечной последовательности ж(п) с помощью метода наложения-сложения, потребуется (7V/7V1)(127V1 log2 27V1+87V1) = Rm(S) действительных операций умножения. Отсюда следует, что длина сворачиваемых последовательностей TV1 должна быть малой, а длины TVx сегментов ж(п) — близкими к TV1. В идеальном случае TV1 = 2d = TVr+TV2 — 1. Число действительных умножений, необходимых для обработки исходной TV-точечной последовательности, равно 12TVlog22TV + 8TV = Rm(N\ Из табл. 5.3 следует, что для примера из раздела 5.3.9 отношение Rm(S) / Rm(N) < 1, при этом экономия времени вычислений может составлять порядка 50%.
Таблица 5.3. Отношение Rm(S)/Rm(N) (числа действительных умножений для метода сегментации к числу действительных умножений при быстрой свертке обычным образом)
N
N/Ni
^2
flm(SW™W
Комментарий
1020
8
6
170
3
0,54
Наилучший результат при малом IV,
1024
256
254
4
3
0,83
1020
128
102
10
3
0,93
1020
256
204
5
3
1,04
Связь между сверткой и корреляцией
При свертке значение n-го выхода определяется сверточной суммой, представленной в формуле (5.93):
у(?г) = У^ /г(т)ж(?г — т) = /г(0)ж(?г) + /г(1)ж(?г — 1) + ... + (г(п)ж(О).(5.123)
Значение функции взаимной корреляции для сигналов h(n) и х(п) для г-й задержки представлено в формуле (5.1), которая в несколько модифицированном виде выглядит так:
1 V 1
"=о(5.124)
= ^[^(0)ж(;) + Hl>(j + 1) + ... + MN - 1)ж(; + N - 1)].
Сравнить у(п) и г^С) проще всего, если j = 0, т.е. при нулевой задержке. В этом случае уравнение (5.124) приводится к такому виду:
Реализация корреляции и свертки
При рассмотрении реализации указанных операций следует помнить, что они тесно связаны. Для двух последовательностей данных можно легко найти их корреляцию или свертку, причем вычисления будут отличаться только порядком одной последовательности. Более того, для более длинных последовательностей данных необходимые операции можно ускорить, используя методы быстрого преобразования Фурье, чтобы получить быструю корреляцию или быструю свертку. Если одна последовательность имеет чересчур большую длину, можно использовать методы наложения-сложения или наложения-записи; см. разделы 5.3.9 и 5.3.10 и работы [3, 5, 14].
Свертку или корреляцию можно выполнять, используя, например, КИХ-фильтр, реализуемый с помощью БПФ, а также применяя согласованный фильтр, как показано в разделе 5.2.2 (рис. 5.13). В сфере цифровой обработки для реализации трансверсальных фильтров может использоваться технология приборов с зарядовой связью (ПЗС). Это позволяет получать линейную фазовую характеристику при скоростях передачи данных, превышающих 100 МГц при стандартных конфигурациях линий задержки [6]. Аналоговую обработку можно выполнять, реализовав линии задержки с отводами, используя устройства с поверхностными акустическими волнами (ПАВ) [6]. Эти устройства работают в диапазоне от 2 МГц до 2 ГГц. Другие реализации можно получить на основе конвольверов и корреляторов, универсальных цифровых процессоров сигналов, стандартных микропроцессоров и транспьютеров. В качестве примеров последних можно привести системы реального времени для устранения окулярных артефактов из всех 16 каналов ЭКГ человека [8].
Время вычислений, необходимых для быстрой корреляции и свертки, можно дополнительно сократить в два раза [3]. Рассмотрим свертку ж(п) и h(n\ При вычислении Х(к) действительная часть БПФ заполняется четными членами ж(п), а мнимая часть — нечетными, и длина БПФ вполовину сокращается. Далее действительная часть (I/N^Fq^X(к)Н(к)] дает четные члены искомой сверткой, а мнимая часть — нечетные.
Аналогично свертку двух последовательностей данных эс^п) и а^п?) с h(n) можно вычислить одновременно. Заполним действительную часть БПФ элементами последовательности эс^п), а мнимую часть — элементами последовательности а^п?) и вычислим Xх ^к\ Действительная часть (l/N)F5x\^Xx(k)H(k^ равна жх(?г) ® ^(?г), а мнимая часть — эс2(п) ® h(n\
Примеры применения
Корреляция
Пример 5.12
Данный упрощенный пример касается применения теории корреляции для управления положением в пространстве космического аппарата, чтобы солнечная батарея всегда была обращена к солнцу Ошибки определения положения представлены как
б)б)Рис. 5.34. Контроль за положением космического аппарата: а) сигнал ошибки; б) контрольный сигналРис. 5.34. Контроль за положением космического аппарата: а) сигнал ошибки; б) контрольный сигнал
б)
б)
Рис. 5.34. Контроль за положением космического аппарата: а) сигнал ошибки; б) контрольный сигнал
Рис. 5.34. Контроль за положением космического аппарата: а) сигнал ошибки; б) контрольный сигнал
многоуровневые импульсы с разрешением уровней а = 0, 2 мВ, ширина импульса Ts = 1 мкс. Изначально контроль за ошибкой положения космического аппарата при наличии положительной ошибки выполняется путем передачи последовательности отрицательных импульсов высоты а. Система контроля считается удовлетворительной только в том случае, если коэффициент корреляции между ошибкой и контрольными сигналами меньше — 0, 5. На рис. 5.34. а показаны три импульса ошибки, а на рис. 5.34, б — соответствующие импульсы контрольного сигнала. В данном примере предполагается, что этих импульсов достаточно и что рассматривать задержку, превышающую Ts, не нужно. Таким образом задача состоит в том, чтобы определить, можно ли рассматривать систему как удовлетворительную.
Можно доказать, что г12(т) >0,5 для 0 < т < Ts. Взаимную корреляцию можно найти, сместив контрольный сигнал вправо, не меняя при этом сигнал ошибки. Это означает, что требуется найти г12(—т).
Итак, оу
Г12(-т) = / Vl(t)v2(t - Т^йт,
где щ(Г) — сигнал ошибки, v2(t) — контрольный сигнал.
П2П2
П2
П2
= ^{[-ЗС* + [-5<Р + [-4t]^} = а2 ..
= ^(-3TS + Зт - ЮТ, + 5Т5 - 12TS + 8TJ = а2
= — (-12Ts+3r).
Здесь г12(т) нормировано (принадлежит диапазону — 1 < r12(r) < 1) путем деления на следующий нормировочный коэффициент:
1зт81зт8
1
зт8
1
зт8
Теперь
ООTs2TS3TS
j v^t^dt = j(3a)2dt-\- j (5a)dt + У (4a)2 dt =
-oo0Ts2TS
= a2{[9Cs+[25t]^ + [16C=} =
= a2(9Ts + 2571 + 16TS) = 50a2Ts.
Кроме того,
oo3TS
j vl(t)dt = У (—a)2dt = a2[t]oTs = 3a2Ts.-oo0
Следовательно, нормировочный коэффициент равен
и нормированное выражение для г12(—т) приводится к такому виду:
хЗт-12Т, Зт 12
m 7150х/2Т512,25Ts12,25
г"(-т) = 0, 245 х 106т - 0, 98.
При т = О
г" (0) = -0,98.
При т = 1 мкс (наибольшее разрешенное значение)
г"(10”6) = -0,735.
Следовательно, в рассматриваемом диапазоне |rf^(—т)| > |0, 5|, что согласуется с критерием хорошего контроля за положением космического аппарата.
Пример 5.13
Для определения расстояния до источника звука требуется гидроакустический комплекс. Источник широкополосный и гауссов с нулевым средним. Система состоит из двух гидроакустических преобразователей (датчиков), разнесенных на расстояние d, и соответствующей системы обработки сигналов. Датчики Тх и Тх принимают широкополосные шумы gx(t) и qi^ = Aqx^t + At) соответственно, At — временная задержка, порожденная разным расстоянием от датчиков до источника, А — соответствующий коэффициент затухания (в данном случае предполагается, что А = 1). Система обработки сигналов вычисляет корреляционную функцию выходов двух датчиков, имеющих равные длины.
Изобразите и соответствующим образом подпишите блок-схему простой системы, разработанной для получения корреляции в кратчайшие возможные сроки, и объясните принципы, на которых он основан.
Изобразите выходные сигналы датчиков и их функцию взаимной корреляции, отметив важные особенности.
Если максимальное значение функции взаимной корреляции равно 10, а ширина полосы приемника — 1-10 Гц, чему равна принятая энергия?
Решение
Блок-схема системы изображена на рис. 5.35. Данная система ускоряет вычисление корреляции путем использования теоремы о корреляции и расчета соответствующих БПФ. Такая реализация будет быстрее прямого расчета корреляции, если число точек данных в последовательностях превышает 128. Таким образом, система вычисляет гХ2(т), которое выражается так:
г12^ = F^VFi^F^k^.
Выход системы гХ2 (j) равен
n=0
Поскольку qi(n) и q2(n) случайные, система даст существенный выход только тогда, когда сигналы так смещены, что идут почти в фазе. Это происходит при j = —Ап. В этом случае выход системы равен
V 1
— ^^ q^ (п) = рду, средней мощности п=0
Сигналы и их функция взаимной корреляции изображены на рис. 5.36 и 5.37.
Взаимная корреляция двух сигналов равна
Т/2
ИзН = ^ j q^q^t + T^dt.
-Т/2
Рис. 5.36. Широкополосный шум, детектируемый гидроакустической системой
Рис. 5.37. Функция взаимной корреляции сигналов, детектируемых гидроакустической системой
Подставляя выражение для q2^t), получаем
Т/2
т12^ = ^ j q^Aq^t + At + r)dt,
-Т/2
что можно записать следующим образом:
Т/2
A f
г12(т) = — q^q^t + r'^dt, где т' = At + т.
-Т/2
Видно, что подынтегральное выражение эквивалентно по величине автокорреляционной функции qi(t) при нулевой задержке и, следовательно, представляет мощность этого сигнала Рду. Значит,
= APAV5(t + At),
где 5 представляет дельта-функцию. Видно, что амплитуда г12(т) равна АРду. Следовательно, АР Ду = 10.
Принятую энергию в требуемой полосе можно получить, применив вначале для получения спектральной плотности энергии теорему Винера-Хинчина (Wiener-Khintchine). Теорема формулируется следующим образом:
Ge№=FdMt>
= FDVAPAy5(t + At)] = АРдуРшМ.
Следовательно, |GB (/) | = АРду = 10 Дж Гц-1. Ширина полосы сигнала равна 10—1 = 9 (Гц). Значит, принята энергия 10 х 9 = 90 (Дж).
Свертка
БИХ- и КИХ-фильтры
Работа трансверсальных фильтров (КИХ- и БИХ-) является хорошим практическим примером свертки [5, 13]. Эти фильтры можно спроектировать так, чтобы они выполняли свертку последовательностей или более общую цифровую фильтрацию, например, двумерную фильтрацию, используемую в сфере обработки изображений [6] с целью подавления шума, очистки изображений и распознавания шаблонов.
Рассмотрим линейную независимую от времени систему, которую можно описать следующим образом:
NL
= ^“кУ^ - к) Р^2,Ькх(<п - к),(5.126)
/с = 1к=0
Рис. 5.38. Представление нерекурсивного фильтра в диаграммной форме
где у(п) представляет выходную, а х(п) — входную последовательность. Видно, что выход зависит от текущего входа, а также от предыдущих входов и выходов. В приведенном соотношении ак и Ьк — действительные константы, N — порядок уравнения, который указывает, какое число предыдущих выходов нужно рассматривать.
Поскольку текущий выход зависит от предыдущих выходов, система рекурсивна. Если выход системы зависит только от предыдущих входов, говорят, что система нерекурсивна, и ее можно описать следующим образом:
L
уИ^ЕЬ^-к)(5.127)
к=0
(данное уравнение описывает трансверсальный фильтр, или линию задержки с отводами).
На рис. 5.38 показано описание системы, определяемой уравнением (5.127), в форме диаграммы. Члены суммы, представляющие выход системы, получаются путем суммирования задержанных и взвешенных значений входов. Предположим, что вход х(п) — это единичный импульс 5(п), где
тЫ = 5Ыр’ п = °’ т-е-ж(0) = 1’(о, п О, т.е. х(п 0) = О
Соответствующий выход — импульсная характеристика h,(n\ Подставляя последовательные входные значения в уравнение (5.127), получаем
у(0) = 6.(0) = Ьож(О) + bi х 0 = b0 х 1 = Ьо,
у(1) = 6,(1) = Ьо х 0 + 6хж(0) + 62 х 0 = 61 х 1 = 6Х,
у(Е) — 6,(L) — bo x0 + 0 + 0 + ... + 0 + 6L х 1 — Ь^
Следовательно,
(5.128)(5.128)Ын?) = {6О,61, . . . , 6L},
(5.128)
(5.128)
откуда видно, что весовые коэффициенты на диаграмме системы соответствуют коэффициентам ее импульсной характеристики. Подобные системы называются фильтрами с конечной импульсной характеристикой (КИХ-фильтрами).
Рассмотрим теперь выход, соответствующий входной последовательности общего вида x(n\ Подставляя последовательные значения в уравнение (5.127), получаем
у^п?) = Ьох(п) + bxx^n — 1) + ... + Ьпх(0) =
= h,(0)x(n) + h,(l)x(n — 1) + ... + h,(n)x(0),
что, как и следовало ожидать, можно записать как свертку входа с выходом. Следовательно, КИХ-фильтры можно также рассматривать как конвольверы (устройства выполнения свертки), в которых весовые коэффициенты соответствуют коэффициентам их импульсной характеристики.
Аналогичное соотношение существует и для БИХ-фильтров. Рассмотрим рекурсивный фильтр первого порядка, описываемый уравнением
(5.130)(5.130)(5.131)(5.131)у(?г) = а^у^п - 1) + Ьох(п).
(5.130)
(5.130)
(5.131)
(5.131)
Легко показать, что для единичного импульса на входе
у(п) = h(n) = Ьоа", п > 0.
Для произвольной входной последовательности х(п), предполагая, что у(—1) = 0, мож
но записатьно записатьу(0) = Ьот(О),у(0) = Ьот(О),
но записать
но записать
у(0) = Ьот(О),
у(0) = Ьот(О),
у(1) = ахЬож(О) + Ьот(1),
у(2) = а^Ьох(О) + а1Ь0®(1) + Ьож(2),
у(п) = а"Ьох(О) + а" 1Ьож(1) + ... + a^box^n — 1) + Ьох(п)\
Подставляя известные значения весовых коэффициентов из уравнения (5.131), получаем
у(п) = h.(n)x(0) + h^n — 1)ж(1) + ... + h.(0)x(n).(5.132)
Из уравнений (5.131) и (5.132) следует, что БИХ-фильтр, соответствующий системе первого порядка, — это конвольвер, коэффициенты импульсной характеристики которого равны h(n) = Ьоа".
КИХ-фильтры используют в обработке речи, для получения кодов РСМ со сниженной шириной полосы, в субполосных кодерах, для параметрического спектрального анализа и в вокодерах с линейным предсказанием [6].
Сверточное кодирование
Сверточные коды позволяют исправлять пакеты ошибок путем введения в код цифр контроля четности [13, 15]. Выходы триггеров регистра сдвига обеспечивают задержки и подаются в отводы, после чего соответствующим образом объединяются с использованием сумматоров по модулю 2. В результате получается несколько выходов, которые последовательно считываются в каждом такте (рис. 5.39). Система является причинной и нерекурсивной, производит выход, который зависит от ее предыдущих входов, и сворачивает новые входные данные со своей импульсной характеристикой.
Рис. 5.39. Сверточный кодер
Обращение свертки
Вход всех систем сворачивается с импульсной характеристикой системы и может искажать выход. Это происходит, например, в системах телекоммуникаций и может принуждать использовать эквалайзер — линейный фильтр, который по выходу восстанавливает исходный сигнал. Перед тем как разрабатывать подобный фильтр, необходимо определить импульсную характеристику системы (идентифицировать систему). Тема идентификации системы подробно рассмотрена в работе [И].
Речь
Тема анализа и кодирования речи в сферах взаимодействия человека с машиной и сжатия данных довольно интересна. Иногда при этом используется тот факт, что речевой сигнал можно смоделировать как свертку серии импульсов, представляющих основные тоны, активирующих импульсов и импульсной характеристики речевого тракта [12]. Получающуюся тройную свертку можно легко обратить в форму, подходящую для линейной независимой от времени системы. Более подробно использование КИХ- фильтров в сфере обработки речи освещено в разделе 5.5.2.1.
5.6. Резюме
В данной главе подробно рассмотрены темы корреляции и свертки, а также их взаимосвязь. В рамках темы корреляции изучены процедуры нормировки и подходы, позволяющие избежать краевых эффектов. Описаны эффекты корреляции зашумленных сигналов и идентификация сигналов в шуме с помощью корреляции. Представлены техники быстрой корреляции и свертки, основанные на теоремах о корреляции и свертке и использовании БПФ, также показано, как получить линейную свертку. Выведены быстрые методы наложения-сложения и наложения-записи, позволяющие получать свертку больших последовательностей данных. Кроме того, описаны средства дальнейшего двукратного ускорения вычисления для действительных данных на основе использования действительной и мнимой частей БПФ.
Задачи
Две последовательности данных равной длины записаны по периодической серии импульсов, которая передана по зашумленному каналу. Мгновенные значения напряжения приведены в табл. 5.4.
Определите величину задержки между двумя записями и период сигнала.
Определите периодический сигнал.
Таблица 5.4. Мгновенные значения напряжения (вольт) двух разных записей состояния одного канала
Запись 1
6,02
-5,98
7, 92
-7, 96
-0,78
Запись 2
8,93
-7, 20
-0,82
3,23
1,44
-8,34
9,22
-2,65
-3,7
9,51
5,43
-9,88
-1,13
0,79
9,83
5,53
3,50
-3,18
-8,85
8,21
-8,73
4,64
-8,49
-4,66
-8,84
1,69
-0,06
6,65
-8,00
-9,21
5, 55
-8,24
-0,37
2,71
4,63
-0,78
7,27
-5,98
-3,97
9,11
1,88
-0,92
-5,33
9,01
9,23
4,23
2,99
-1,85
-5,27
3,81
-3,7
5,08
-0,72
-5,08
-2,6
6,62
-2,64
2,08
-5,91
-3,58
9,67
— 8, 55
-3,08
4,18
8,11
-1,65
3,64
-8,19
-3,50
4,84
0,74
-3,87
-4,09
8,03
6,91
7,25
2,93
-4,42
-8,21
3,61
-9,87
-3,62
-8,29
-5,8
-7,04
Определите функции взаимной корреляции записей 1 и 2 (табл. 5.4) с учетом и без учета краевого эффекта. Оцените ошибки, возникшие вследствие краевого эффекта.
Чему равна корреляция (в процентах) между записями 1 и 2 (табл. 5.4) при нулевой задержке? Корреляция в процентах определяется как коэффициент корреляции, умноженный на 100%.
В табл. 5.5 представлены зашумленные значения напряжения. Используя метод взаимной корреляции с шаблонным сигналом, определите точную форму присутствующего периодического сигнала. Проверьте результат с помощью другого метода.
Таблица 5.5. Значения напряжения для зашумленного сигнала
-7, 37;
-7, 99;
3,31;
-8,59;
-1,68;
3,01;
12,21;
-2,38;
7,46;
-9,84;
1,48;
1,1;
-1,8;
5,48;
8, 93;
0;
-9, 36;
-10,11;
1,61;
3,36;
-4,86;
6,27
Рассчитайте автокорреляционную функцию периодического сигнала из примера 5.4 а) численно, б) аналитически. Сравните решения между собой и с автокорреляционной функцией зашумленного сигнала. Объясните отличия от предполагаемых результатов.
Цифровой сигнал выбирается и дискретизуется. Оцифрованные значения напряжения представлены в табл. 5.6. Определите, можно ли считать сигнал случайным. Предполагая, что интервал дискретизации равен 1 мс, и присутствует периодический компонент с периодом 4 мс, оцените и изобразите периодический сигнал.
Таблица 5.6. Оцифрованные значения напряжения
0,92;-3,71;3,11;-0,24;4,65;0,84;-2,98;-3,94;-4,03;-2,51;0,17;
3,85;2,58;0,38;4,58;3,4;-3,46
Сравните отношения сигнал-шум в следующих случаях:
зашумленный периодический сигнал — запись 1 в табл. 5.4;
автокорреляционная функция записи 1 в табл. 5.4;
функция взаимной корреляции записей 1 и 2 в табл. 5.4.
Рассчитайте теоретические отношения сигнал-шум в представленных ниже задачах.
Периодический сигнал, полученный по данным записи 1 в табл. 5.4 путем нахождения взаимной корреляции с подходящей серией импульсов.
Автокорреляционная функция записи 1 в табл. 5.4, при условии, что, во- первых, отношение сигнал-шум (S/N^o автокорреляционной функции зашумленного синусоидального сигнала выражается так:
1+8/+2/
где N — число данных, Si — мощность сигнала, ^ — мощность шума, и что, во-вторых, отношение сигнал-шум (S/N)g взаимной корреляции зашумленного синусоидального сигнала с серией импульсов, имеющей такой же период, что и сигнал, равно
Сравните результаты, полученные при решении задач 5.7 и 5.8.
Согласованный фильтр, используемый для детектирования поступления на приемник из зашумленного канала соответствующего сигнала, имеет импульсную характеристику {1, —1, —1,1,1, — 1,1}. В табл. 5.7 приведены значения выборок сигнала, представляющие элементы серии биполярных импульсов с амплитудами ±1, 5 В и шириной 1 мкс. Определите время поступления сигнала и значение константы согласованного фильтра.
Таблица 5.7. Мгновенные значения напряжения зашумленного биполярного сигнала
t (мкс)
0
1
2
3
4
5
6
Напряжение
0,14
0,48
1,61
2,09
-2,40
0,40
2,35
t (мкс)
7
8
9
10
И
12
13
Напряжение
-0, 59
-1,81
0,32
-0, 47
1,81
-1,63
-2,28
Найдите импульсную характеристику системы, если ее отклик на псевдослучайную последовательность {1; 1; — 1; 1; — 1; — 1; 1; — 1} равен у(п) = {0; 0; 0, 5; 1, 5; 1, 5; 1, 5; 1; — 1; —1;—1;—1,5;—0, 5;—0,5;—0,5}.
Импульс единичной амплитуды подается в цепь, импульсная характеристика которой изображения на рис. 5.40. Численно определите выходной сигнал. Сигналы дискретизуйте с интервалом 0, 5 мс.
Рис. 5.40. Импульсная характеристика системы (задача 5.12)
1. На рис. 5.41 показаны две функции тДг) и т2(1). Оцените следующие величины:
их свертку т3 (t) численно, взяв дискретные значения в моменты времени t = 0,1,2, 3,4, 5 с;
их свертку т3(1) аналитически.
Изобразите функции т3(1) и объясните, почему они отличаются.
для 0 < t < 3
для других t
Рис. 5.41. Функции жг(£) и x^t^ (задача 5.13)
Определите форму выходного импульса, если на вход однокаскадного RC- фильтра нижних частот с частотой среза 6 МГц подается прямоугольный им-
пульс с амплитудой 5 В и шириной 0,4 мкс. Предполагается, что импульсная характеристика фильтра выражается следующим образом:
Прямоугольный импульс с высотой 5 В и шириной 1,0 мкс подается на вход системы с характеристикой h^t);
h(t) = 0, 1[1 - е-‘/(1,09Х10-6)] о < t < 10 мкс
= 0 10 мкс < t < 0
Определите выход системы:
аналитически;
путем дискретизации h(t) с интервалом 1 мкс и представления импульса импульсной функцией, расположенной в точке t = 0 с.
Критически сравните полученные результаты.
Найдите функцию взаимной корреляции двух наборов данных {1, 5; 2, 0; 1, 5; 2, 0; 2,5} и {0; 0, 33; 0, 67; 1,0}
прямым расчетом взаимной корреляции;
применяя теорему о корреляции.
Определите выход электрической системы с импульсной характеристикой {0; 0, 899; 0, 990; 0, 991; 1} при подаче на вход сигнала {0; 2, 5; 5,0; 0} (вольт)
прямым расчетом свертки;
применяя теорему о свертке.
Используйте метод наложения-сложения для расчета выхода системы с импульсной характеристикой h(n) = {0; 0, 899; 0, 990; 1} с входными данными, приведенными в табл. 5.5 (последние два элемента данных игнорируйте). Предполагайте, что данные дискретизуются с интервалом 2,5 мкс, и разделите входные данные на пять сегментов равной длины. Рассчитайте сдвиг фаз между выходом и входом системы. Ответ проверьте, используя метод прямой свертки.
Решите задачу 5.18, используя метод наложения-сложения, в котором свертка вычисляется с использованием теоремы о свертке. Сравните результат с ответом задачи 5.18.
Найдите выход системы, описанной в задаче 5.18, имеющей импульсную характеристику Ып?) = {0; 0, 899; 0, 990; 0, 999; 1}, используя метод наложения- записи и входные данные, приведенные в табл. 5.5 (последние два элемента данных игнорируйте). Результат сравните с ответом задачи 5.18.
Решите задачу 5.20, применяя для расчета сверток теорему о свертке. Сравните результат с ответами задач 5.18-5.20.
Используйте решения задач 5.18-5.21 для сравнения объемов вычислений, необходимых в различных схемах, включая расчет с помощью прямой свертки.
Напишите программу расчета свертки методом наложения-сложения. Используйте ее для проверки ответа задачи 5.18, а также нахождения выходов различных систем с входами по вашему выбору.
1. Напишите программу расчета быстрой корреляции и используйте ее для расчета быстрой корреляции записей 1 и 2 в табл. 5.4.
Исследуйте функции взаимной автокорреляции и автокорреляции некоторых сигналов, таких как меандры, синусоиды, случайный шум и сигналы с различными отношениями сигнал-шум.
Сравните относительные возможности методов расчета корреляции и оценки спектра в сфере детектирования сигналов в шуме.
Задачи для решения с помощью MATLAB
Даны последовательные выборки двух дискретных сигналов: ж = 4, 2,—1,3, —2,—6,—5,4, 5, у = —4,1,3, 7,4, —2, —8, —2,1.
Используя MATLAB, оцените нормированную и денормированную автокорреляционную функцию каждой последовательности данных.
Вычислите и изобразите оценки смещенной и несмещенной автокорреляционной функции обеих последовательностей.
Вычислите и изобразите оценки нормированной и денормированной функции взаимной корреляции двух последовательностей.
Вычислите и изобразите оценку смещенной и несмещенной функции взаимной корреляции двух последовательностей.
Оцените автокорреляционную функцию или функцию взаимной корреляции (исходя из условия) при нулевой задержке для п. 1-4.
Определите длину функции взаимной корреляции или автокорреляционной функции (исходя из условия) для и. 1-4.
Сравните результате и. 1-6 и прокомментируйте отличия.
Сравните нормированные функции взаимной корреляции последовательностей х, у и последовательностей у, х из задачи 5.25.
1. Сгенерируйте 1000-точечную последовательность данных со свойствами случайного белого гауссова шума (используя функцию randn).
Рассчитайте и изобразите оценки автокорреляционной функции последовательности из и. 1 для первых 30 задержек.
Непрерывный сигнал характеризуется следующим уравнением:
ж(£) = Acos^Tr/xt) + В cos(27r/2t).
Сгенерируйте с помощью MATLAB дискретный эквивалент сигнала. Частота дискретизации равна 1 кГц, /х = 50 Гц, /2 = 100 Гц, а отношение амплитуд частотных компонентов А/В = 1, 5.
Вычислите и изобразите автокорреляционную функцию последовательности, полученной в п. 1.
1. С помощью соответствующих функций MATLAB сгенерируйте и изобразите графики следующих сигналов:
синусоида — используйте sin (2*pi*t/l00 ) при t=0 :1:1000;
зашумленный сигнал — используйте функцию randn;
зашумленный синусоидальный сигнал — сложите сигналы, полученные в п. 1, а и б;
прямоугольный сигнал — используйте square (2 *pi *t /100).
Рассчитайте и изобразите нормированную автокорреляционную функцию всех сигналов, фигурирующих в и. 1.
Кратко опишите общие и уникальные свойства автокорреляционных функций, вычисленных в п. 2.
Ниже моделируется задача оценки расстояния до объектов с помощью корреляции. Взаимная корреляция переданного сигнала и зашумленного отраженного сигнала должна иметь максимум при задержке, соответствующей удвоенному искомому расстоянию.
С помощью подходящих функций MATLAB сгенерируйте сигналы, изображенные на рис. 1.3, а и б (верхний и нижний следы представляют соответственно переданный и полученный сигналы).
Вычислите функцию взаимной корреляции двух сигналов, оценив таким образом расстояния от передатчика до объекта.
Предполагается, что радиоволны распространяются со скоростью 3 х 108 м/с, а частота дискретизации равна 4 МГц.
Решите задачу 5.25, используя функцию xcov. Прокомментируйте отличия результатов.
Литература
Beauchamp К. G. (1973) Signal Processing Using Analog and Digital Techniques. London: Allen and Unwin.
Bell A. J. and Sejnowski T. J. (1995) An information-maximisation approach to blind separation and blind deconvolution. Neural Computation, 7, 1129-1159.
Brigham E. O. (1974) The Fast Fourier Transform, Sections 13.3 and 13.4. Englewood Cliffs NJ: PrenticeHall.
Chatfield C. (1980) The Analysis of Time Series, p. 62. London: Chapman and Hall.
DeFatta D. J., Lucas J. G. and Hodgkiss W. S. (1988) Digital Signal Processing: A System Design Approach, Section 6.9, p. 306. New York: Wiley.
Grant Р. М., Cowan С. F. N., Mulgrew В. and Dripps J. Н. (1989) Analogue and Digital Signal Processing and Coding, Chapters 16, 17, 19 and 20. Bromley, UK: Chartwell-Bratt.
Jenkins G. M. and Watts D.G. (1968) Spectral Analysis and its Applications. San Francisco CA: Holden-Day.
Jervis B. W., Goude A., Thomlinson M., Mir S. and Miller G. (1990) Least squares artefact removal by transputer. In IEE Colloquium on the Transputer and Signal Processing, Savoy Place, London, 5 March 1990.
Main G. and Howell T. D. (1993) Determining a signal to noise ratio for an arbitrary data sequence by a time domain analysis. IEEE Transactions on Magnetics, 29(6), November, 3999 4001.
McGillem C. D. and Cooper G. R. (1974) Continuous and Discrete Signal and System Analysis. New York: Holt, Rinehart, and Winston.
Proakis J. G. and Manolakis D. G. (1988) Introduction to Digital Signal Processing, p. 429. Basingstoke: Macmillan.
Rabiner L. R. and Gold B. (1975) Theory and Application of Digital Signal Processing, Chapters 12 and 13. Englewood Cliffs NJ: Prentice-Hall.
Stremler F. G. (1982) Introduction to Communication Systems, 2nd edn, Section 3.10 and p. 407. Reading MA: Addison-Wesley.
Strom R. D. and Kirk D. E. (1988) First Principles of Discrete Systems and Digital Signal Processing, Chapter 3. Reading MA: Addison-Wesley.
Taub H. and Schilling D. L. (1986) Principles of Communication Systems, 2nd edn, p. 562. New York: McGraw-Hill.
Приложение
A. Программа на языке С для расчета взаимной корреляции и автокорреляции
Программа на языке С для расчета взаимной корреляции и автокорреляции последовательностей данных приводится на компакт-диске к книге [Ifeachor, 2001] (подробности см. в предисловии).
Схема разработки цифровых фильтров .
Введение в цифровые фильтры,355
Типы цифровых фильтров: КИХ- и БИХ-фильтры357
Выбор менаду КИХ- и БИХ-фильтрами-359
Этапы разработки фильтра362
Примеры372
Резюме.377
Задачи377
Литература380
Дополнительная литература■380
Цель данной главы — сформулировать общие принципы проектирования цифровых фильтров. Глава содержит простое поэтапное руководство по разработке цифровых фильтров (от спецификации до реализации). Чтобы подчеркнуть основные альтернативы и факторы, влияющие на выбор фильтра, использованы показательные примеры. Стоит сказать, что в большинстве работ по ЦОС значительное место занимает теория цифровых фильтров, особенно методы аппроксимации. Это указывает на значительный объем исследований, проведенных в поисках полезных методов расчета коэффициентов фильтров, и существенные достижения в сфере разработки фильтров. В то же время, при таком изложении материала часто предлагается много несущественной для молодого разработчика информации и не говорится, как действительно стоит провести разработку фильтра. Схема, предложенная в данной главе, поможет не просто понять теоретические основы процесса проектирования фильтра, но и реализовать его практически. Кроме того, данная глава создает необходимый базис для досконально рассмотренной в главах 7 и 8 темы разработки цифровых фильтров.
Введение в цифровые фильтры-.
По сути, фильтр — это система или сеть, избирательно меняющая форму сигнала (амплитудно-частотную или фазово-частотную характеристику). Основными целями фильтрации являются улучшение качества сигнала (например, устранение или снижение помех), извлечение из сигналов информации или разделение нескольких сигналов, объединенных ранее для, например, эффективного использования доступного канала связи.
Как будет показано позже, цифровой фильтр — это математический алгоритм, ре-
Рис. 6.1. Упрощенная блок-схема цифрового фильтра реального времени с аналоговым входным и выходным сигналами
фильтр” обозначают определенную аппаратную или программную процедуру, реализацию алгоритма фильтрации. В цифровых фильтрах часто используются оцифрованные аналоговые сигналы или просто хранящиеся в памяти компьютера числа, представляющие некоторые переменные.
Упрощенная блок-схема цифрового фильтра реального времени с аналоговым входом и выходом приведена на рис. 6.1. Узкополосный аналоговый сигнал периодически выбирается и конвертируется в набор цифровых выборок, x(n), п = 0,1,.... Цифровой процессор производит фильтрацию, отображая входную последовательность т(п) в выходную y(n) согласно вычислительному алгоритму фильтра. ЦАП конвертирует отфильтрованный цифровым образом выход в аналоговые значения, которые затем проходят аналоговую фильтрацию для сглаживания и устранения нежелательных высокочастотных компонентов.
Важную роль в цифровой обработке сигналов играют цифровые фильтры. По сравнению с аналоговыми фильтрами они предпочтительны во множестве областей (например, сжатие данных, биомедицинская обработка сигналов, обработка речи, обработка изображений, передача данных, цифровое аудио, телефонное эхоподавление), так как обладают рядом преимуществ, часть из которых описана ниже.
Цифровые фильтры могут иметь характеристики, получить которые на аналоговых фильтрах невозможно, например, действительно линейную фазовую характеристику.
В отличие от аналоговых, производительность цифровых фильтров не зависит от изменений среды, например, от колебаний температуры. Таким образом, цифровые фильтры не требуют периодической калибровки.
Если фильтр построен с использованием программируемого процессора, его частотная характеристика может настраиваться автоматически (поэтому такие процессоры широко применяются в адаптивных фильтрах).
Один цифровой фильтр может обрабатывать несколько входных сигналов или каналов без дублирования аппаратных блоков.
Как фильтрованные, так и нефильтрованные данные можно сохранить для последующего использования.
Можно легко использовать достижения из области технологий СБИС и получать небольшие цифровые фильтры с пониженной потребляемой мощностью и более низкой ценой.■
На практике точность, которой можно добиться при использовании аналоговых фильтров, ограничена; например, затухание в полосе подавления нельзя поднять выше 60-70 дБ (если использовать стандартные аналоговые компоненты). Точность цифровых фильтров ограничена только используемой длиной слова.
Производительность цифровых фильтров одинакова для всех устройств серии.
Цифровые фильтры могут использоваться при очень низких частотах, характерных, например, для многих биомедицинских приложений, где применять аналоговые фильтры непрактично. Кроме того, цифровые фильтры могут использоваться в большом диапазоне частот, для чего достаточно просто менять частоту дискретизации. Впрочем, по сравнению с аналоговыми цифровые фильтры имеют и ряд недостатков.
Ограничение скорости. Максимальная ширина полосы сигналов, которые в реальном времени способны обработать цифровые фильтры, значительно уже, чем у аналоговых фильтров. В приложениях реального времени процесс преобразования “аналоговый-цифровой-аналоговый” вводит ограничение по скорости на производительность цифрового фильтра. Наивысшую частоту дискретизации, с которой может работать фильтр, ограничивает время конвертации АЦП и время установления сигнала ЦАП. Кроме того, скорость работы цифрового фильтра зависит от скорости работы используемого цифрового процессора и числа арифметических операций, которые надлежит выполнить в алгоритме фильтрации, и повышается, когда характеристика фильтра становится более сжатой.
Влияние конечной разрядности. Цифровые фильтры подвержены шуму АЦП, происходящему от квантования непрерывного сигнала, и шуму округления, который вводится при вычислениях. При использовании рекурсивных фильтров высоких порядков накопление шума округления может привести к неустойчивости фильтра.
Значительное время разработки и внедрения. Разработка и внедрение цифровых фильтров, особенно внедрение аппаратного обеспечения, могут выполняться гораздо дольше, чем подобные процедуры для аналоговых фильтров. В то же время, однажды разработанное аппаратное и/или программное обеспечение может использоваться в других задачах цифровой обработки сигналов с незначительной модификацией или вообще без изменений (соответствующие примеры приведены в последующих главах). Если при проектировании цифровых фильтров доступна хорошая компьютерная поддержка, эту задачу будет весьма интересно решать, хотя для того, чтобы эффективно и полно использовать такую поддержку, нужно определенное умение.
Типы цифровых фильтров: КИХ- и БИХ-фильтры . '
Цифровые фильтры разделены на два обширных класса: фильтры с бесконечной импульсной характеристикой (БИХ-фильтры) и фильтры с конечной импульсной характеристикой (КИХ-фильтры). Фильтр каждого типа (в стандартной форме) можно представить через коэффициенты его импульсной характеристики /i(fc) (к = 0,1,...), как показано на рис. 6.2. Входной и выходной сигналы фильтра связаны через операцию сверки, данная связь приведена в формуле (6.1) для БИХ-фильтра и в формуле (6.2) для КИХ-фильтра.
у(п) = ^ Цк)х(п - к)(6.1)
к=0
N-1
у(п) = У^ h(Jt)x(n — к)(6.2)
к=0
х(л)(входнаяпоследовательность)х(л)(входнаяпоследовательность)А(*),* = 0,1....(импульсная *
х(л)(входнаяпоследовательность)
х(л)(входнаяпоследовательность)
характеристика)Xя)
(выходнаяпоследовательность)
Рис. 6.2. Концептуальное представление цифрового фильтра
Из данных уравнений понятно, что для БИХ-фильтров импульсная характеристика имеет бесконечную длительность, тогда как для КИХ-фильтра она конечна, поскольку Цк^ для КИХ-фильтра может принимать всего N значений. На практике вычислить выход БИХ-фильтра с использованием уравнения (6.1) невозможно, поскольку длительность импульсного отклика слишком велика (теоретически — бесконечна). Взамен этого уравнение БИХ-фильтрации переписывается в рекурсивной форме
ооNМ
у(п) = Е h^x^n - к) = Е Ъкх(п - к) - Е аку(п - к),(6.3)
к=0к=0к=1
где аь и Ьк — коэффициенты фильтра. Таким образом, уравнения (6.2) и (6.3) — это разностные уравнения КИХ- и БИХ-фильтров соответственно. Данные уравнения (и в частности значения h(k') для КИХ-фильтра или ак и Ьк для БИХ-фильтра) используются во многих задачах разработки фильтров. Отметим, что в уравнении (6.3) текущая выходная выборка у(п) является функцией предыдущих выходов, а также текущей и предыдущих входных выборок, так что БИХ-фильтр — это в некотором роде система с обратной связью. Сделав этот вывод, стоит внимательнее присмотреться к уравнению для КИХ- фильтра, в котором текущая выходная выборка у(п) зависит только от прошедших и текущего входных значений. Отметим, впрочем, что если положить все Ьк равными нулю, уравнение (6.3) сводится к уравнению (6.2).
В уравнениях (6.4, а и б) приведены альтернативные представления (через передаточные функции) КИХ- и БИХ-фильтров соответственно, причем такие описания очень удобны при оценке частотных характеристик фильтров (подробнее см. главы 4, 7 и 8).
N-1
H^^^h^z"k(6.4, а)
Л=0
мм \
н^ ^ьк2-к / 1+Е(6’4, 0
Как будет понятно из следующих разделов, факторы, влияющие на выбор из альтернатив, доступных разработчику цифрового фильтра на каждом этапе процесса проектирования, значительно зависят от того, к какому классу относится фильтр — с конечной или бесконечной импульсной характеристикой. Следовательно, весьма важно различать эти классы, их специфические характеристики и, что еще более важно, понимать, фильтр какого типа выбрать.
Выбор между КИХ- и БИХ-фильтрами
Выбор между КИХ- и БИХ-фильтрами зависит от относительных преимуществ обоих типов.
КИХ-фильтры могут иметь строго линейную фазовую характеристику. Следовательно, фильтр не вводит фазового искажения в сигнал, что важно во многих сферах, например, передаче данных, биомедицине, цифровой аудиообработке или обработке изображений. Фазовая характеристика БИХ-фильтров нелинейна, особенно на краях полос.
КИХ-фильтры реализованы нерекурсивно, т.е. (что следует непосредственно из формулы (6.2)) они всегда устойчивы. Гарантировать устойчивость БИХ-фильтров удается не всегда.
Для реализации фильтров используется ограниченное число битов. Практические последствия этого (например, шум округления и ошибки квантования) значительно менее существенны для КИХ-фильтров, чем для БИХ-фильтров.
Чтобы получить конечную импульсную характеристику с помощью фильтров с резкими срезами характеристики, потребуется больше коэффициентов, чем для получения бесконечной импульсной характеристики. Следовательно, для реализации предложенной спецификации амплитудной характеристики с КИХ необходимо больше вычислительной мощности и памяти, чем для реализации ее с БИХ. Впрочем, эффективность КИХ-реализаций можно значительно повысить, сыграв на вычислительной скорости БПФ и обработке при нескольких скоростях (см. главу 9).
Аналоговые фильтры легко преобразовать в эквивалентные цифровые БИХ-фильтры, удовлетворяющие сходным спецификациям. Для получения КИХ-фильтров такое преобразование невозможно, поскольку для них не существует аналоговых прототипов. Впрочем, получать произвольные частотные характеристики на КИХ- фильтрах легче.
Вообще, синтез КИХ-фильтров алгебраически сложнее, если не использовать компьютерную поддержку разработки.
БИХ-фильтры рекуррентны. Это означает, что, пропустив через фильтр один и тот же сигнал, но с “обратным ходом времени”, мы получим, вообще говоря, разные результаты. Если для речи временная анизотропия естественна, то, например, для изображений уже нет, поэтому БИХ-фильтры имеют ряд ограничений по применению.
Учитывая приведенные соображения, общий принцип выбора между КИХ и БИХ можно сформулировать следующим образом.
Использовать БИХ, если единственными важными требованиями являются характеристика с резкими срезами и высокая пропускная способность, поскольку БИХ- фильтры (особенно те, в которых использованы эллиптические характеристики) потребуют определения меньшего числа коэффициентов, чем КИХ-фильтры.
Использовать КИХ, если число коэффициентов фильтров не очень велико и, в частности, если нужно, чтобы фазовое искажение отсутствовало или было малым. Кроме того, можно добавить, что архитектуры новейших процессоров ЦОС приспособлены к КИХ-фильтрации, мало того, некоторые из них специально разработаны для КИХ-фильтров (см. главу 12).
Пример 6.1
Нижеследующие передаточные функции представляют два различных фильтра, удовлетворяющих идентичным спецификациям амплитудно-частотной характеристики.
1.
и/ \ _ bo + ^z 1 +b2z 2
1 + агг-1 + a2z~2 '
где
b0 = 0,0981819, 61 =0,9274777, b2 = 0,4981819, a, = -0,6744878,
2.
a2 = -0,3633482.
н^^цк>-\
k=0
где
6(0) = 0,54603280 x IO"2 = 6(11), 6(1) = -0,45068750 x 10”1 = 6(10), 6(2) = 0,69169420 x 10"1 = 6(9), 6(3) = -0,55384370 x 10-1 = 6(8), 6(4) = -0,63428410 x 10"1 = 6(7), 6(5)= 0,57892400 x 10° = 6(6).
Для каждого фильтра
определите, является он КИХ- или БИХ-фильтром;
представьте операцию фильтрации в виде блок-схемы и запишите соответствующие разностные уравнения;
определите и прокомментируйте вычислительную сложность и требования к памяти.
Решение
а. Фильтры 1 и 2 являются соответственно БИХ- и КИХ-фильтром.
б. Блок-схема фильтра 1 представлена на рис. 6.3, а. Соответствующий набор уравнений имеет вид
w(n) = x(n) — ayW^n — 1) — а2ги(п — 2), y(n) = bow(n) + biw(n — 1) + b2w(n — 2).
Ьг
б)
Рис. 6.3. Блок-схема БИХ-фильтра из примера 6.1 (панель а); блок- схема КИХ-фильтра из примера 6.1 (панель б)
Блок-схема фильтра 2 представлена на рис. 6.3, б. Соответствующее разностное уравнение выглядит так:
у(п) = ^^ Ык)х(п — к).к=0
в. Изучая два разностных уравнения, получаем следующие требования к объему вычислений и памяти.
КИХ БИХ
Число операций умножения125
Число операций сложения114
Количество ячеек памяти (коэффициенты и данные)248
Очевидно, что БИХ-фильтры экономнее, чем КИХ-фильтры, как с точки зрения необходимых вычислений, так и с точки зрения требований к памяти. Впрочем, можно еще дополнительно учесть симметрию коэффициентов КИХ-фильтров и считать более эффективными КИХ-фильтры (правда, только с точки зрения очевидной простоты реализации). Еще один момент, который стоит отметить в связи с полученными результатами: при одинаковых спецификациях амплитудной характеристики число коэффициентов КИХ-фильтра (в данном примере — 12) обычно в шесть раз превышает порядок (наивысшая степень z в знаменателе) передаточной функции БИХ-фильтра (в данном примере — 2).
у 6.4. Этапы разработки фильтра
Разработка цифрового фильтра проходит в пять этапов.
Спецификация требований к фильтру.
Вычисление подходящих коэффициентов фильтра.
Представление фильтра подходящей структурой.
Анализ влияния конечной разрядности на производительность фильтра.
Реализация фильтра на программном и/или аппаратном уровне.
Названные пять этапов не всегда независимы; кроме того, они не всегда располагаются в указанном порядке. Фактически существуют методы, которые позволяют объединить второй этап и некоторые аспекты третьего и четвертого. Подход, изложенный в данной главе, — это простое пошаговое руководство, гарантирующее успешную структуру. Чтобы получить эффективный фильтр, иногда приходится проводить данный процесс в несколько итераций, особенно, если спецификации не являются совершенно определенными (как обычно и бывает), или же разработчик желает исследовать альтернативные структуры. Подробное описание названных пяти этапов приводится ниже.
Спецификация требований
Спецификация требований включает спецификации 1) характеристик сигналов (тип источника и получателя сигнала, интерфейс ввода-вывода, скорость передачи данных и ширина полосы, наивысшая частота, представляющая практический интерес); 2) характеристик фильтра (желаемая амплитудная и/или фазовая характеристика и то, насколько данные требования строги, скорость работы и режимы фильтрации (реальное или модельное время)); 3) принципа реализации (например, как компьютерной программы на языке высокого уровня или как системы ЦОС на базе процессора, здесь же выполняется выбор процессора сигналов) и 4) других требований к структуре (например, стоимость фильтра). Разработчик может не иметь достаточно информации, чтобы полностью определить фильтр на начальных этапах, но для упрощения процесса разработки следует сформулировать максимальное количество требований.
Хотя перечисленные выше требования уточняются в зависимости от конкретной задачи, некоторым аспектам п. 2 стоит уделить особое внимание. Характеристики цифровых фильтров часто задаются в частотной области. Для частотно-избирательных фильтров, таких как фильтры нижних частот и полосовые фильтры, спецификации часто формулируются в виде схем допусков. Пример подобной схемы для фильтра нижних частот приведен на рис. 6.4. Заштрихованные горизонтальные линии обозначают пределы допустимых отклонений. В полосе пропускания амплитудная характеристика имеет пиковое отклонение 6Р, а в полосе подавления — максимальное отклонение 5S.
Ширина полосы перехода определяет, насколько резким является характеристика фильтра. В этой области амплитудная характеристика монотонно уменьшается от по-
ПолосаПолоса Полоса подавления
пропусканияперехода
Рис. 6.4. Схема допусков для фильтра нижних частот
лосы пропускания до полосы подавления. Интерес представляют следующие ключевые параметры:
— отклонение в полосе пропускания;
ба — отклонение в полосе подавления;
/р — граничная частота полосы пропускания;
fa — граничная частота полосы подавления.
Граничные частоты часто представляются в нормированной форме, т.е. как доля частоты дискретизации (f/Fs), но часто более содержательными являются спецификации, в которых используются стандартные единицы частоты (герцы или килогерцы). Отклонения в полосе пропускания и полосе подавления могут выражаться как обычные числа или в децибелах, когда они выражают неравномерность в полосе пропускания и затухание в полосе подавления соответственно. Следовательно, минимальное затухание в полосе подавления А, и максимальная неравномерность в полосе пропускания Ар в децибелах записываются следующим образом (для КИХ-фильтров):
А, (затухание в полосе подавления) = —201g да,(6.5, а)
Ар(неравномерность в полосе пропускания) = 201g(l + 5Р\(6.5, б)
При спецификации фазовой характеристики цифровых фильтров во многих случаях достаточно указать, что фазовое искажение существенно или что желательна линейная фазовая характеристика. В то же время, в некоторых приложениях, где фильтры ис-
Рис. 6.5. Схема допусков для полосового фильтра из примера 6.2
пользуются для выравнивания или компенсации фазовой характеристики системы или как фазовращатели, фазовую характеристику задавать следует.
Пример 6.2
Требуется спроектировать полосовой КИХ-фильтр, соответствующий следующей спецификации частотной характеристики:
полоса пропускания0,18-0,33(нормированная);
ширина полосы перехода0,04 (нормированная);
отклонение в полосе подавления0,001;
отклонение в полосе пропускания0,05.
Сформируйте схему допусков для этого фильтра.
Выразите граничные частоты полосы пропускания фильтра в стандартных единицах (килогерцы), предполагая, что частота дискретизации равна 10 кГц, а отклонение в полосе подавления и полосе пропускания выражено в децибелах.
Решение
Схема допусков фильтра представлена на рис. 6.5.
Граничные частоты полосы пропускания при частоте дискретизации 10 кГц и отклонения в полосе подавления и полосе пропускания представлены ниже.
Полоса пропускания1,8-3,3 кГц.
Полосы подавления0-1,4 кГц и 3,7-5 кГц.
Затухание в полосе подавления—20 lg(0,001) = 60 дБ.
Неравномерность в полосе пропускания —20 lg(l + 0,05) = 0,42 дБ.
Расчет коэффициентов
На этом этапе выбирается один из методов аппроксимации и вычисляются значения коэффициентов Мк) (для КИХ-фильтра) или ак и Ък (для БИХ-фильтра), при которых удовлетворяются условия, принципы определения которых представлены в разделе 6.4.1. Метод вычисления коэффициентов фильтра зависит от того, к какому классу относится фильтр — КИХ или БИХ.
Вычисление коэффициентов БИХ-фильтра традиционно основывается на преобразовании характеристик известных аналоговых фильтров в характеристики эквивалентных цифровых. При этом используются два основных подхода: метод инвариантного преобразования импульсной характеристики и метод билинейного преобразования. При использовании метода инвариантного преобразования импульсной характеристики после оцифровки аналогового фильтра сохраняется импульсная характеристика исходного аналогового фильтра, но не сохраняется амплитудно-частотная характеристика. Вследствие внутреннего наложения данный метод не подходит для фильтров верхних частот или режекторных фильтров. Билинейный метод, с другой стороны, обеспечивает весьма эффективные фильтры и хорошо подходит для вычисления коэффициентов частотно-избирательных фильтров. В результате можно создавать цифровые фильтры с известными классическими характеристиками, такими как в фильтрах Баттерворта, Чебышева или эллиптических. Цифровые фильтры, полученные методом билинейного преобразования, будут, в общем случае, иметь ту же амплитудную характеристику, что и аналоговые, но иные свойства во временной области. В настоящее время доступны эффективные компьютерные программы вычисления коэффициентов фильтров, в которых используется билинейный метод, и в которых требуется только задать нужные параметры фильтра (см. главу 8). Метод инвариантного преобразования импульсной характеристики хорош при моделировании аналоговых систем, но для частотно-избирательных БИХ-фильтров лучше использовать билинейный метод.
В качестве альтернативной схемы вычисления коэффициентов БИХ-фильтров применяется еще метод размещения нулей и полюсов — простой путь вычисления коэффициентов очень простых фильтров. В то же время, для фильтров с хорошей амплитудной характеристикой данный метод использовать не рекомендуется, поскольку в нем фигурирует перебор положений нулей и полюсов.
Коэффициенты КИХ-фильтров также можно вычислить несколькими различными способами. В данной книге подробно рассмотрено три метода: вырезания (взвешивания), частотной выборки и оптимальный (алгоритм Паркса-Мак-Клиллана (Parks- McClellan)). Метод взвешивания предоставляет очень простой и гибкий способ вычисления коэффициентов КИХ-фильтра, но не позволяет разработчику адекватно управлять параметрами фильтра. Самой привлекательной чертой метода частотной выборки является то, что он допускает рекурсивную реализацию КИХ-фильтров, что может быть весьма вычислительно выгодно. В то же время, этому методу недостает гибкости в плане управления или задания параметров фильтров. В настоящее время в промышленности широко используется оптимальный метод (в совокупности с дополняющей его эффективной и простой в использовании программе), который в большинстве случаев дает требуемый КИХ-фильтр. Следовательно, при проектировании таких фильтров вначале стоит испробовать оптимальный метод, если только конкретное приложение не предусматривает использования другого метода.
Подытожим: существует несколько методов вычисления коэффициентов фильтров, наиболее используемые из них перечислены ниже.
Метод инвариантного преобразования импульсной характеристики (БИХ).
Билинейное преобразование (БИХ).
Размещение нулей и полюсов (БИХ).
Метод взвешивания (КИХ).
Частотная выборка (КИХ).
Оптимизационные методы (КИХ).
На выбор метода, наиболее подходящего для конкретной задачи, влияют несколько факторов, в частности, критичные требования в спецификациях. Вообще, основным является выбор между КИХ и БИХ. Если наличие конечной импульсной характеристики существенно, то стоит использовать оптимальный метод, если же желательна бесконечная импульсная характеристика, то в большинстве случаев будет достаточно билинейного метода.
Представление фильтра подходящей структурой
Данный этап включает преобразование данной передаточной функции Н(z) в подходящую фильтрующую структуру. Для отражения структуры фильтра часто используются блок-схемы или функциональные схемы, на которых для облегчения реализации цифрового фильтра показывается ход вычислений. Используемая структура зависит от выбора КИХ- или БИХ-фильтра.
Для БИХ-фильтров широко используются три структуры — прямая, каскадная и параллельная формы. Прямая форма — это непосредственное представление передаточной функции БИХ-фильтра. В каскадной форме передаточная функция БИХ-фильтра (формула (6.4, б)) факторизуется и выражается как произведение звеньев второго порядка. В параллельной форме Н^ раскладывается (с использованием элементарных дробей) на сумму звеньев второго порядка. В качестве иллюстрации (а также для сравнения) на рис. 6.6 приведена блок-схема БИХ-фильтра четвертого порядка, представленного в прямой, каскадной и параллельной формах. На рисунке также указан соответствующий набор передаточных функций и разностных уравнений, описывающих структуру фильтра.
При разработке БИХ-фильтров наиболее широко используются параллельная и каскадная структуры, постольку они предоставляют более простые алгоритмы фильтрации и менее чувствительны к эффектам реализации с использованием конечного числа битов, чем фильтры с прямой структурой. Последние в подобных случаях весьма уязвимы, поэтому их следует избегать любой ценой.
Для КИХ-фильтров, наоборот, наиболее используемой является прямая структура (рис. 6.7, я), поскольку ее проще всего реализовать. В такой форме КИХ-фильтр иногда называется линией задержки с отводами (tapped delay line) или трансверсальным фильтром. Кроме того, еще используются две других структуры: структура частотной выборки и схема быстрой свертки (рис. 6.7, б, в). По сравнению с трансверсальной структурой, реализация по схеме частотной выборки может быть вычислительно более эффективной, постольку она требует расчета меньшего числа коэффициентов. Одна- то ее бывает не так просто реализовать, и она может требовать больше памяти. При быстрой свертке используются вычислительные преимущества быстрого преобразования Фурье (БПФ), и она особенно привлекательна в ситуациях, тогда дополнительно нужно вычислить спектр сигнала.
Существует множество других практических структур цифровых фильтров, но большинство из них популярны только в определенных сферах. Пример — решетчатая структура, которая используется в сферах обработки речи и линейного предсказания. Решетчатая структура может использоваться для представления как КИХ-, так и БИХ- фильтров, и в стандартной форме она характеризуется единственным входом и парой выходов, как показано на рис. 6.8, а. Выведенная из нее решетчатая структура, описывающая TV-точечный КИХ-фильтр, показана на рис. 6.8, б, а структура, предназначенная для БИХ-фильтра второго порядка со всеми заданными полюсами (т.е. такого, для которого указаны только коэффициенты знаменателя), представлена на рис. 6.8, в. Более подробно решетчатая структура описана в примере 6.5.
Подытожим. КИХ- и БИХ-фильтры обычно реализуются со следующими структурами:
трансверсальная (прямая структура) (КИХ);
частотная выборка (КИХ);
быстрая свертка (КИХ);
прямая форма (БИХ);
каскадная (БИХ);
параллельная (БИХ);
решетчатая (КИХ или БИХ).
Для данного фильтра выбор между структурами зависит от следующих факторов: 1) какая требуется характеристика (конечная или бесконечная); 2) простота реализации; 3) насколько структура чувствительна к эффектам конечной разрядности. Более подробно структуры реализации КИХ- и БИХ-фильтров описаны соответственно в главах 7 и 8.
.'Г6.4.4. Анализ влияния конечной разрядности
Этапы аппроксимации и реализации предполагают работу с бесконечной или очень высокой точностью. В то же время, в настоящих реализациях часто требуется представить коэффициенты фильтра конечным числом битов (обычно от 8 до 16 бит), кроме того, арифметические операции, указанные в разностных уравнениях, выполняются с использованием арифметики конечной точности.
Влияние конечного числа битов проявляется в снижении производительности фильтра, и в некоторых случаях фильтр может стать неустойчивым. Разработчик должен проанализировать данные эффекты и выбрать подходящую длину слова (т.е. число битов) для представления коэффициентов фильтра, переменных фильтра (т.е. входных и выходных выборок) и выполнения арифметических операций в фильтре.
Перечислим основные источники ухудшения производительности фильтра.
Квантование сигнала на входе-выходе. В частности, шум АЦП вследствие квантования входных выборок сигнала — это существенная величина (подробности см. в главе 2).
Квантование коэффициентов. Данный фактор приводит к искажению частотных характеристик КИХ- и БИХ-фильтров и возможной неустойчивости БИХ-фильтров.
W| (л) = Сх( л) - о, I w^n - 1) - л2, W, (л - 2) У|(") = 4о|»|(л) + 4ц»|(л - 1) + »2|W|(n - 2) w2(n) = у,(л) - а|2и^(л - 1) - о22»2(л - 2) У(п) = *o2w2(»> + bl2W2(n - 1) + Ьу^.п - 2)
6)
Рис. 6.6. Прямая реализация БИХ-фильтра четвертого порядка (панель а). Каскадная реализация БИХ-фильтра четвертого порядка (панель 6). Параллельная реализация БИХ-фильтра четвертого порядка(панель в)
Жг) = с+ЕЖг) = с+Е11 + "llZ"1 + "ut"211 + "llZ"1 + "ut"2wl(n) = x(n)-allw1(n- l)-o2lw,(n-2)и^л) = х(л) - O|2w2(n - 1) - о22»2(л - 2)>'|(Л) = ^|*'1(Л)^-6I|W|(Л- 1)л(л) = *»«(") + 4|2»2(л - 2)У1(л) = Ог(л)Х") = У|(") + У2(") + >’з(")wl(n) = x(n)-allw1(n- l)-o2lw,(n-2)и^л) = х(л) - O|2w2(n - 1) - о22»2(л - 2)>'|(Л) = ^|*'1(Л)^-6I|W|(Л- 1)л(л) = *»«(") + 4|2»2(л - 2)У1(л) = Ог(л)Х") = У|(") + У2(") + >’з(")
Жг) = с+Е
Жг) = с+Е
1
1 + "llZ"1 + "ut"2
1
1 + "llZ"1 + "ut"2
wl(n) = x(n)-allw1(n- l)-o2lw,(n-2)
и^л) = х(л) - O|2w2(n - 1) - о22»2(л - 2)
>'|(Л) = ^|*'1(Л)^-6I|W|(Л- 1)
л(л) = *»«(") + 4|2»2(л - 2)
У1(л) = Ог(л)
Х") = У|(") + У2(") + >’з(")
wl(n) = x(n)-allw1(n- l)-o2lw,(n-2)
и^л) = х(л) - O|2w2(n - 1) - о22»2(л - 2)
>'|(Л) = ^|*'1(Л)^-6I|W|(Л- 1)
л(л) = *»«(") + 4|2»2(л - 2)
У1(л) = Ог(л)
Х") = У|(") + У2(") + >’з(")
в)
Ошибки округления. Использование для фильтрации арифметики конечной точности дает результаты, представление которых требует дополнительных битов. Если результаты квантуются до допустимой длины слова (часто для этого используется округление), возникает шум округления. В результате возможны такие нежелательные следствия, как неустойчивость БИХ-фильтров.
Переполнение. Этот эффект проявляется, когда результат сложения превышает разрешенную длину слова. Это приводит к неверным выходным выборкам и возможной неустойчивости БИХ-фильтров.
Степень ухудшения фильтра зависит от 1) длины слова и типа арифметики, используемой для фильтрации, 2) метода квантования коэффициентов фильтра и переменных до выбранных размеров, 3) структуры фильтра. Зная эти факторы, разработчик может оценить влияние конечной разрядности на производительность фильтра и при необходимости принять меры.
И")
а)
Рис. 6.7. Структуры реализации КИХ-фильтров: а) трансверсальный фильтр (прямая структура); 6) реализация частотной выборки; в) схема быстрой свертки
В зависимости от того, как требуется реализовать фильтр, некоторые эффекты могут быть незначительными. Например, если фильтр реализуется как программа на языке высокого уровня, которую будут запускать на мощном компьютере, ошибки квантования коэффициентов и округления несущественны. При обработке в реальном времени для представления входных и выходных сигналов, коэффициентов фильтра и результатов арифметических операций используются слова конечной длины (обычно 8, 12 и 16 бит). В этих случаях практически всегда необходимо проанализировать воздействие квантования на производительность фильтра.
Подробное обсуждение квантования и его влияния на производительность цифрового фильтра приводится в главе 7 для КИХ-фильтров и в главе 8 для БИХ-фильтров.
Рис. 6.8. Стандартная решетчатая структура (панель а). TV-каскадный КИХ-фильтр с решетчатой структурой (панель б). Двухкаскадиая решетчатая структура БИХ-фильтра с заданными всеми полюсами (панель в)
Реализация фильтра
Вычислив коэффициенты фильтра, выбрав подходящую структуру реализации и убедившись, что ухудшение фильтра, вызванное оцифровкой коэффициентов и переменных фильтра в слова выбранной длины, приемлемо, разностное уравнение требуется воплотить на аппаратном или программном уровне. Вне зависимости от выбранного метода, выход фильтра для каждой выборки должен вычисляться согласно разностному уравнению (предполагается реализация во временной области).
Как следует из разностных уравнений (формулы (6.2) и (6.3)), вычисление у(п) (выхода фильтра) включает толы© умножение, сложение/вычитание и задержку. Следовательно, для реализации фильтра требуются следующие основные составляющие: ■ память (например, ПЗУ) для хранения коэффициентов фильтра;
память (такая как ОЗУ) для хранения текущих и предыдущих входов и выходов, т.е. {х(п), х(п - 1),...} и {у(п), у(п - 1),...};
аппаратный или программный умножитель (умножители);
сумматор или схема арифметической логики.
Разработчик обеспечивает данные базовые составляющие и гарантирует, что они соответствующим образом сконфигурированы под нужное приложение. Способ конфигурирования компонентов напрямую связан с тем, в каком времени будет проводиться
обработка (в реальном или модельном (пакетная обработка)). При обработке в модельном времени все данные уже хранятся на каком-то запоминающем устройстве. Такая ситуация, например, характерна для приложений, где нужно получить некоторые экспериментальные данные, а затем их проанализировать. В таких случаях фильтр часто реализуется на языке высокого уровня и запускается на универсальном компьютере, где все основные составляющие уже сконфигурированы. Таким образом, обработку в модельном времени можно описать как исключительно программную реализацию (хотя разработчик может пожелать ввести в процесс дополнительные аппаратные средства для увеличения скорости обработки).
При обработке в реальном времени от фильтра требуется либо 1) работать при наличии входной выборки ж(п) и выдавать выходную выборку у^п) перед поступлением следующей входной выборки (т.е. в пределах межвыборочного интервала), либо 2) работать с входным блоком данных (используя, например, метод БПФ) для получения выходного блока в течение времени, пропорционального длине блока. Фильтрация в реальном времени может требовать быстрого и специфического аппаратного обеспечения, если частота дискретизации очень высока или если необходим фильтр высокого порядка. Для большинства приложений работы с аудиочастотами будет достаточно процессоров ЦОС, подобных DSP56000 (Motorola) или TMS320C25 (Texas Instruments), которые, кстати, допускают достаточную гибкость реализации. В данных процессорах уже вмонтированы все требуемые базовые блоки, включая аппаратные умножители. В некоторых приложениях привлекательную альтернативную реализацию можно получить на стандартных 8- или 16-битовых микропроцессорах, таких как процессоры семейств Motorola 6800 или 68000. Помимо блоков обработки сигналов разработчик может также, в зависимости от типа источника и получателя данных, вводить в фильтр подходящие интерфейсы ввода-вывода (например, при аналого-цифровом преобразовании) с цифровым аппаратным обеспечением. Подробное обсуждение реализации КИХ- фильтров представлено в главе 7, а БИХ-фильтров — в главе 8. Аппаратное обеспечение ЦОС описано в главах 12, 13.
Пример 6.3
Рассмотрите пять основных этапов проектирования цифровых фильтров, используя для иллюстрации ответа следующую задачу.
Для подавления в реальном времени шума физиологической природы требуется цифровой фильтр, который должен удовлетворять следующим спецификациям амплитудной
характеристики:
полоса пропускания0-10 Гц;
полоса подавления20-64 Гц;
частота дискретизации128 Гц;
максимальное отклонение в полосе пропускания <0,036 дБ;
затухание в полосе подавления>30 дБ.
Другие важные требования:
гармоническая связь компонентов различных внутриполосных сигналов искажается минимально;
фильтрация является частью большего процесса, поэтому время, доступное для проведения фильтрации, ограничено;
фильтр требуется реализовать с использованием процессора ЦОС TMS32010 (Texas Instruments), аналоговый вход оцифровывается до 12 бит.
Решение
Требуемый фильтр разработан и в настоящее время используется в определенном биомедицинском проекте, включающем обработку сигналов. Ниже приводится только краткое обсуждение процесса разработки, подробное исследование откладывается до главы 7, где полностью описаны методы проектирования КИХ-фильтров.
Спецификация требований. Как рассматривалось выше, разработчик должен указать точное предназначение и требования к рабочим характеристикам фильтра плюс все важные ограничения. В данном примере все это уже сделано.
Вычисление подходящих коэффициентов. Для того чтобы удовлетворить требованиям минимального искажения и ограниченного времени обработки, следует использовать КИХ-фильтр с линейной фазовой характеристикой, коэффициенты которого получены оптимальным методом.
Выбор структуры фильтра. Если требуется использовать процессор TMS32010, наиболее эффективной реализации можно добиться с трансверсальной структурой.
Анализ влияния конечной разрядности. Поскольку будет задействован процессор TMS32010, для эффективности следует использовать арифметику с фиксированной запятой, причем каждый коэффициент представляется 16 бит (после округления). Ухудшение КИХ-фильтра может произойти после квантования входного сигнала и коэффициентов из-за ошибок округления и переполнения, поэтому следует проверить, достаточно ли выбранной длины слова. Анализ влйяния конечной длины слова в этом случае показывает, что входной шум квантования и отклонение от частотной характеристики вследствие квантования коэффициентов несущественны. Для уменьшения ошибок округления до несущественного уровня используется 2-битовый накопитель TMS32010, с помощью которого производится суммирование произведений коэффициентов и выборок, причем округляются только окончательные суммы. Чтобы избежать переполнения, каждая величина перед квантованием до 16 бит должна N-1
делиться на ^ 1^(^)|-
к=0
Реализация. На этом этапе нужно спроектировать и сконфигурировать аппаратный модуль на базе TMS32010 (если он еще не готов) с необходимыми интерфейсами ввода-вывода. Кроме того, следует записать для TMS32010 программу обработки N-1
протокола ввода-вывода и вычислить выход фильтра у(п) = £ Цк^х^п — к) для А:=0
каждого нового входа х(п\
Пример 6.4
Аналоговый фильтр требуется преобразовать в эквивалентный цифровой, который будет работать с частотой 256 Гц. Передаточная функция аналогового фильтра имеет вид
Н^ = S3 + 2s2 + 2s + Г
Вычислите подходящие коэффициенты фильтра.
Предполагая, что цифровой фильтр будет реализован с использованием каскадной структуры, изобразите подходящую блок-схему реализации и выведите разностные уравнения.
Повторите п. 2 для параллельной структуры.
Решение
Для сохранения амплитудной характеристики аналогового фильтра при вычислении коэффициентов использовался билинейный метод. Применяя билинейное преобразование к аналоговой передаточной функции (подробности см. в главе 8), получаем следующую передаточную функцию:
0,1432(1 + Зг-1 + 3z"2 + z"3)
1 - 0,1801Z"1 4- 0,3419z"2 - 0,0165г'3'
При каскадной реализации Н^ факторизуется с использованием элементарных дробей:
х = о1 + z-1
W ’1 -0,1307г-1 + 0,3355z-2 1 - 0,0490г-1'
Представление фильтра в виде блок-схемы дано на рис. 6.9, соответствующий набор разностных уравнений приводится ниже.
w^ (п) = 0,1432x(n) 4- 0,1307wi (п — 1) — 0,3355wj (п — 2),
уДп) = шДтг) 4- 2wi(n — 1) 4- щДп — 2),
w2(n) = уДп) 4- 0,049w — 2(п — 1),
y2(n) = w2(n) 4- w2(n — 1).
При параллельной реализации Н(г) выражается через элементарные дроби (подробности см. в главах 4 и 8):
_1,2916 -0,08407г-17,5268_
1-0,131г"1 4-0,3355г"2 + 1 - 0,0492-!’'
-0.3355
Рис. 6.9
Схема параллельной реализации показана на рис. 6.10, соответствующий набор разностных уравнений приводится ниже.
wt(n) = х(п) + 0,131Wi(n — 1) — 0, ЗЗббшДп — 2),
y^n) = l,2916w](n) — 0,08407w!(n — 1),
w2(n) = x(n) + 0,049w2(n — 1),
y2(n) = 7,5268w2(n),
Уз(п) = —8,6753x(n), у(п) = yi(n) + y2(n) + Уз(п).
Рис. 6.10
376Глава 6. Схема разработки цифровых фильтров
Пример 6.5
Передаточная функция КИХ-фильтра записывается следующим образом:
Н^ = 1 - 1,3435г-1 + 0,9025г-2.
Изобразите блок-схему реализации для каждого из следующих случаев:
трансверсальная структура;
двухкаскадная решетчатая структура.
Для решетчатой структуры вычислите значения коэффициентов.
Решение
С помощью передаточной функции получаем схему трансверсальной структуры, представленную на рис. 6.11. Вход и выход трансверсальной структуры связаны следующим соотношением:
у(п) = ж(п) + /г(1)ж(п — 1) + /г(2)ж(п — 2).(6.6)
Двухкаскадная решетчатая структура фильтра представлена на рис. 6.12. Выход структуры следующим образом связан со входом:
З/гМ = У1(п) + fc2Wi(n - 1) =
(6.7)
= ж(п) + fci(l + k2)a:(n — 1) + к2х(п — 2),
w2(n) = /с2ж(п) + fci(l + k^x(ji — 1) + ж(п — 2).
Сравнивая формулы (6.6) и (6.7, а) и приравнивая коэффициенты, получаем
Следовательно, к2 = 0,9025 и ki = —1,3435/(1 + 0,9025) = —0, 7062.
Рис. 6.12
Обратите внимание на то, что коэффициенты функций y2(n) и to2(n) (уравнения (6.7, а и б)) идентичны, за исключением того, что один записан в обратном порядке. Данная особенность характерна для КИХ-фильтров с решетчатой структурой. Подробно решетчатая структура, в том числе рекурсивные схемы преобразования коэффициентов КИХ- и БИХ-фильтров в коэффициенты эквивалентных решетчатых структур, описана в различных книгах (например, [1]).
Резюме
Термином цифровой фильтр называют аппаратную или программную реализацию математического алгоритма, входом которого является цифровой сигнал, а выходом — другой цифровой сигнал, форма которого и/или амплитудная и фазовая характеристики специальным образом модифицированы. Во многих приложениях цифровые фильтры предпочтительнее аналоговых, поскольку они позволяют более точно воплотить амплитудные и фазовые спецификации. Кроме того, для цифровых фильтров нехарактерно присущее аналоговым фильтрам изменение характеристик в зависимости от температуры и напряжения.
В данной главе представлена общая схема разработки КИХ- и БИХ-фильтров от спецификации до реализации. Простая пошаговая процедура разработки подобных фильтров включает пять этапов: 1) спецификация; 2) вычисление подходящих коэффициентов; 3) реализация фильтра с использованием подходящей структуры; 4) квантование коэффициентов и переменных фильтра в слова подходящего размера и анализ возникших вследствие этого ошибок; 5) реализация полученного результата посредством аппаратного или программного кодирования фильтра на процессоре, который в действительности и будет выполнять фильтрацию входных данных.
Задачи '.:
Предположим, можно использовать любой из шести методов вычисления коэффициентов, описанных в разделе 6.4.2. Укажите, какой из этих методов следует использовать в каждом из перечисленных ниже случаев. Ответ аргументируйте.
Выравнивание фазы (фазовой задержки) в цифровой системе связи.
Моделирование аналоговой системы.
Система подавления шума с высокой пропускной способностью, требующая фильтр с резкой амплитудной характеристикой.
Обработка изображений.
Высококачественная цифровая аудиообработка.
Биомедицинская обработка сигналов в реальном времени с минимальным искажением.
Ниже записаны две передаточные функции, представляющие два различных фильтра, удовлетворяющие идентичным спецификациям амплитудно-частотной характеристики.
\ _ ^о + hxz 1 + b2z 2Ьз + b4z 1 + b^z 2
1 + а^-1 + z2z-21 + a3z-1 + a4z~2 ’
ГДС60 = 3,136362 х 10-1;
bi = -5,456657 x IO"2;
b2 =4,635728 x IO”1;
b3 = -5,456657 x IO"2;
b4 = 3,136362 x IO-1;
b5 = 4,635728 x IO”1;
ax = -8,118702 x IO"1;
a2 = 3,339288 x IO"1;
a3 = -2,794577 x IO"1;
a4 = 3,030631 x IO”1.
H(z) = '^hfcz-fc,
k=0
где1
h0 = 0,39826480 x IO”1 = h22;
hx = -0,16874380 x IO"1 = h2X\
h2 = 0,34781130 x IO”1 = h^-,
Из = 0,12052890 x IO"1 = h19;
h4 = -0,44731860 x IO"1 = /i18;
h5 = 0,27894610 x IO”1 = /i17;
h6 = -0,87573360 x IO”1 = /г16;
h7 = -0,90972060 x IO”1 = h15;
hs = -0,15667550 x IO”1 = h14;
h9 = -0,28499560 x 10° = /г13;
h10 = 0,74035030 x IO-1 = hx2;
Для каждого фильтра ^и = °, 62349560 х 10 .
определите, конечна или бесконечна его импульсная характеристика;
представьте действие фильтра в форме блок-схемы и запишите разностное уравнение;
определите и прокомментируйте требования к вычислениям и памяти.
Нужен цифровой фильтр, устраняющий сетевой компонент с электрокардиограммы (ЭКГ) плода, хранящейся в памяти мэйнфрейма. Данные оцифрованы до 12-битовой точности.
В спецификации фильтра указаны такие требования:
затухание на частоте питающей сети > 50 дБ;
неравномерность в полосе пропускания < 0,05 дБ;
границы полосы пропускания0-0,09 и 0,11-0,5 (нормировано);
частота дискретизации500 Гц.
Фильтр требуется реализовать как программу на языке высокого уровня, которую можно вызывать из основной программы анализа. Любое искажение сигнала со стороны фильтра должно минимизироваться, поскольку важные сигналы ЭКГ легко разрушаются.
Тщательно рассмотрите все вопросы, возникающие при разработке подобного фильтра, уделив внимание альтернативам, доступным разработчику, и предложите обоснованные рекомендации.
Требуется цифровой фильтр для предварительной обработки электрокардиограммы плода, т.е. электрической активности сердца, чтобы было легче детектировать сердцебиение плода при наличии дрейфа постоянной составляющей (baseline wander), интерференции с сигналом питающей сети, маточных сокращений и движения ребенка или матери. Колебание базовой составляющей (baseline sways) и артефакты движения обычно проявляются в диапазоне частот 0-10 Гц, тогда как интерференция с сигналом питающей сети дает сигнал, центрированный на частоте около 50 или 60 Гц (в зависимости от страны). Наибольшая энергия ЭКГ, необходимая для детектирования сердцебиения, предположительно приходится на промежуток 5-50 Гц.
Предположим, что доступны данные электрокардиограммы плода, прошедшие аналоговый полосовой фильтр (полоса — от 0,05 до 100 Гц) и оцифрованные (500 выборок/с) с разрешением 8 бит.
Если требуется использовать БИХ-фильтр, каким будет набор спецификаций цифрового фильтра? Ответ аргументируйте.
Повторите п. 2 для КИХ-фильтра.
Какой из двух фильтров лучше в данном случае? Почему?
Для выполнения значительной фильтрации, предотвращающей наложение в определенной системе передачи речи, требуется цифровой фильтр, который был бы лучше используемого активного фильтра. В текущий момент аналоговый входной сигнал системы дискретизуется с частотой 8 кГц после прохождения через активный полосовой фильтр со следующими спецификациями:
полоса пропускания0-3,4 кГц;
граничная частота полосы подавления 8 кГц;
затухание в полосе подавления30 дБ;
затухание на 4 кГц14 дБ;
неравномерность в полосе пропускания <0,1 дБ.
Определите с помощью блок-схемы, как можно удовлетворить спецификациям при использовании цифровой фильтрации. Задайте тип цифрового фильтра (выбор аргументируйте) и его характеристики.
От системы связи требуется следующее: восстановить тактовую частоту по зашумленным данным, которые получены с удаленного передатчика, использовав для этого методы цифровой фильтрации, причем данные должны извлекаться достоверно. Известно, что тактовая частота удаленного передатчика равна 2,048 МГц. Обсудите характеристики подходящего цифрового фильтра и задайте его передаточную функцию.
Коэффициенты решетчатого КИХ-фильтра равны: кг = —0,266 и к2 = 0,69. Изобразите диаграмму реализации данного решетчатого фильтра. Вычислите коэффициенты импульсной характеристики данного фильтра и изобразите на диаграмме эквивалентную трансверсальную структуру.
Цифровой БИХ-фильтр второго порядка характеризуется следующей передаточной функцией:
Н^ ~ 1 -0,9л-1 +0,81z-2 ‘
Изобразите диаграмму реализации каждой из перечисленных структур:
прямая;
решетчатая.
Найдите по данной передаточной функции коэффициенты решетчатой структуры.
1. Proakis J. G. and Manolakis D. G. (1992) Digital Signal Processing, 2nd edn. New York: Macmillan.
Дополнительная литература- ' г - ~ • ■'- -- ■ ■’ 71
DeFatta D. J., Lucas J. G. and Hodgkiss W. S. (1988) Digital Signal Processing. New York: Wiley.
Elliott D. F. (ed.) (1987) Handbook of Digital Signal Processing. London: Academic Press.
Oppenheim A. V. and Schafer R. W. (1975) Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Parks T. W. and Burrus C. S. (1987) Digital Filter Design. New York: Wiley.
Rabiner L. R. and Gold B. (1975) Theory and Application of Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Rabiner L. R., Cooley J. W., Helms H. D., Jackson L. B., Kaiser J. E, Rader С. M., Schafer R. W., Steiglitz K. and Weinstein C. J. (1972) Terminology in digital signal processing. IEEE Trans. Audio Electroacoustics, 20 (December), 322-337.
Taylor F. J. (1983) Digital Filter Design Handbook. New York: Dekker.
Разработка фильтров ^конечной импульсной характеристикой (КИХ-фильтров)
ВступлениеJ р : ;382
Разработка КИХ-фильтров287
Спецификации КИХ-фильтра■ '.....388
Методы расчета коэффициентов КИХ-фильтров ■ . . .389
Метод взвешивания .,.390
Оптимизационные методы405
Метод частотной выборки. ;;418
Сравнение метода вырезания, оптимального метода и метода частотной
:.выборки' .;437
. 7.9. Разработка КИХ-фильтров — специальные вопросы ;...439
Структуры реализаций КИХ-фильтров : \ , V ' ч445
Влияние конечной разрядности на цифровые КИХ-фильтры .450
Пример разработки:460
Резюме' ;.464
Примеры применения КИХ-фильтров <.. 464
- Задачи: -:.■465
Литература<480
Дополнительная литература 11: ; :480
' Приложения■'. '481
В данной главе рассматривается разработка КИХ-фильтров от спецификации и вычисления коэффициентов до анализа влияния конечной разрядности и реализации. Приводится несколько подробных примеров, призванных проиллюстрировать различные этапы разработки и подчеркнуть важные концепции. Разработка фильтра рассмотрена полностью, чтобы показать, как связаны различные этапы, и помочь читателям, желающим самостоятельно разрабатывать фильтры. Упомянутые в тексте программы разработки фильтров с помощью MATLAB можно найти в Web (подробности см. в предисловии к книге), кроме того, указана литература, в которой описаны программы, с помощью которых можно повторить представленные ниже выводы или разработать фильтры, необходимые конкретному пользователю.
лъ вступление-; -
Перед тем как приступить к разработке КИХ-фильтров, напомним важные их характеристики.
- 7,1:1:^ Резюме по ключевым особенностям КИХ-фильтров
Стандартный КИХ-фильтр характеризуется следующими уравнениями:
N-1
^(w) ~ У? fe(fc)a:(n — fc),(7.1, а)
fc=0
N-1
H(z) = ^h(k)z~k,^Л’^
к=0
где Цк), к = 0,1,..., N - 1 — коэффициенты импульсной характеристики, H(z') — передаточная функция фильтра, a N — длина фильтра, т.е. число коэффициентов фильтра. Формула (7.1, а) — это разностное уравнение КИХ-фильтра. Данное уравнение записано во временной области и представляет КИХ-фильтр в его нерекурсивной форме: текущая выходная выборка t/(n) — это функция только текущего и прошедших значений на входе х(п\ При реализации КИХ-фильтров в такой форме, т.е. через прямое представление формулы (7.1, а), фильтры всегда устойчивы. В формуле (7.1, б) записана передаточная функция фильтра, нужная для анализа фильтра, например, расчета частотной характеристики.
КИХ-фильтры могут иметь точную линейную фазовую характеристику (см. раздел 7.1.2).
КИХ-фильтры очень просто реализовать. Архитектура всех существующих процессоров ЦОС подходит для фильтрации с конечной импульсной характеристикой. Кроме того, нерекурсивные КИХ-фильтры менее подвержены эффектам конечной разрядности, чем БИХ-фильтры. Существуют также рекурсивные КИХ-фильтры, использование которых иногда вычислительно выгоднее (подробности см. в разделе 7.7).
Итак, КИХ-фильтры стоит использовать, если на передний план выходят описанные выше преимущества, в частности, возможность получения линейной фазовой характеристики. Вопросы выбора между КИХ- и БИХ-фильтрами рассмотрены в разделе 6.3.
1.2. Линейная фазовая характеристика и ее следствия
Одним из важнейших свойств КИХ-фильтров является возможность получения точной линейной фазовой характеристики. По этой причине остановимся на данном свойстве подробнее. При прохождении сигнала через фильтр модификации подвергается амплитуда и/или фаза данного сигнала. Природа и величина изменения сигнала зависят
от амплитудной и фазовой характеристик фильтра. Удобной мерой модификации фазовой характеристики сигнала является фазовая или групповая задержка фильтра. Если сигнал состоит из нескольких частотных компонентов (например, речевой или модулированный сигнал), фазовая задержка фильтра — это величина временной задержки, которую испытывает каждый частотный компонент сигнала при прохождении через фильтр. Групповая задержка — это средняя временная задержка составного сигнала. Математически фазовая задержка равна минус углу сдвига фазы, деленному на частоту, тогда как групповая задержка — это минус производная фазы по частоте:
Тр = -6(ш)/ш,(7.2, а)
Тд = -de^fdw.(7.2,6)
Фильтр с нелинейной фазовой характеристикой будет искажать фазу сигнала, проходящего через этот фильтр. Это объясняется тем, что частотные компоненты сигнала будут задерживаться на величину, не пропорциональную частоте, нарушая таким образом их гармоническую связь. Подобное нарушение нежелательно во многих ситуациях (например, передаче данных, воспроизведении музыки и видео, биомедицине) и его можно избежать, используя фильтры с линейными фазовыми характеристиками в рабочем диапазоне частот.
Говорят, что фильтр имеет линейную фазовую характеристику, если выполняется одно из следующих соотношений:
6(ш) = -ом,(13, а)
УМ = 3 - ош,(7.3, 0
где а и 3 — константы. Если фильтр удовлетворяет условию (7.3, а), у него постоянны групповая и фазовая задержки. Можно показать, что условие (7.3, а) удовлетворяется, если импульсная характеристика фильтра обладает положительной симметрией. Фазовая характеристика в этом случае является просто функцией длины фильтра:
hW = KN - n - 1), { " = Е • • ■ • (^ - 1)/2 (N - нечетное)
| п = 0,1,..., (У/2) — 1 (N — четное)
а = (N - 1)/2
Условие (7.3, 6) удовлетворяется, когда фильтр имеет только постоянную групповую задержку. В этом случае импульсная характеристика фильтра имеет отрицательную симметрию:
/г(п) = —h^N — п — 1),
а = (N - 1)/2,
3 = 7Г/2.
КИХ-фильтры с линейной фазовой характеристикой формируют важный класс в семействе КИХ-фильтров. Они обладают уникальным набором свойств, влияющих на разработку и реализацию данных фильтров. Продемонстрируем некоторые из этих свойств на примере.
Пример 7.1
Кратко опишите условия, необходимые для того, чтобы реальный цифровой фильтр имел линейную фазовую характеристику, и преимущества фильтров с такой характеристикой.
Цифровой КИХ-фильтр имеет фазовую характеристику Цп), которая определена в интервале 0 < п < N - 1. Покажите, что при N = 7 и /г(п), удовлетворяющем условию симметрии
h(n) = h(N — п — 1),
фильтр имеет линейную фазовую характеристику.
Повторите п. 2 при N = 8.
Решение
Необходимым и достаточным условием того, что фильтр имеет линейную фазовую характеристику, является симметрия его импульсной характеристики (согласно [14]):
/г(п) = h(N — 1 — п) или /г(п) = —h(N - 1 - п).
Для нерекурсивных КИХ-фильтров память для хранения коэффициентов и число арифметических операций меньше примерно вдвое. Для рекурсивных КИХ- фильтров коэффициенты можно выбрать так, чтобы они были простыми целыми числами, что повышает скорость обработки. В фильтрах с линейной фазовой характеристикой все частотные компоненты при прохождении через фильтр задерживаются на одно и то же время, так что в этом случае фазовое искажение отсутствует.
Используя условие симметрии, находим, что при N = 7
/г(0) = /г(6);/г(1) = Аг(5); Ь(2) = /i(4).
Подставим z = ешТ в формулу (7.1, б) и получим частотную характеристику фильтра Н^ш):
Я(и) =Н(е4шТ) =
6
к=0
=Ь(0) + /i(l)e-<wT + Ц2К21шТ+
+ /i(3)e-3i“T + h.(4y~4iu,T + Ь(5у-МшТ + h^e-6iuT =
=е~3г“Цк(Ъ)е3ыТ + /г(1)е2*“т + Ц2У^Т + /г(3) + Ц4у~4шТ+
+ /i(5)e-2iwT+/i(6)e-3i"T].
Используя условие симметрии, можно сгруппировать члены, коэффициенты которых численно равны:
Я(у) = е-31шТу1Ще3^т + е"31шТ) + Ь(1)(е2^т + е"21шТ) + /i(2)(eiu,T + е^)] =
= е-3шТ[2к(0) cos(3wT) + 2^(1) cos(wT) + 2^(2) cos(wT)].
Если положить а(0) = ^(3) и а(к) = 2^(3 - к), к = 1,2,3, то Н(ш) можно записать в компактной форме:
Н^ = ^«(^cosCn^e"3^ = ±|ЯИе,6М,
к=0
где3
±|Я(ш)| = ^a^cos^wT’);#^) = —ЗшТ.
к=0
Очевидно, что фазовая характеристика линейна.
В данном случае из условия симметрии следует
^(0) = ^(7); ^(1) = ^(6); ^(2) = ^(5); h^ = Ц4\
Используя схему рассуждений, подобную приведенной выше, и условие симметрии, получаем:
Н^ =е~7*шТ'>(0)(е7ш'г/2 +e-7iu,T/2) + h(l)(e"T/2 + е-5*"7^
+ h(2Xe3iu,T/2 + e-3iu,T/2) + h(3Xe"T/2 + e"iu,T/2)] =
=е-7^т/2[2^(0) cos(7wT/2)+
+ 2^(1) cos(5wT/2) + 2^(2) cos (3wT/2) + 2^(3) cos (wT/2)] =
= ±|ЯН|е1вм,
где4
±|Я(ш)| = ^6(A:)cos[yT(k - 1/2)]; 6^ = -(7/2)wT. k=l
Цк) = 2h(N/2 - к), к = 1,2,..., N/2.
Таблица 7.1. Ключевые различия четырех типов КИХ-фильтров с линейной фазовой характеристикой
Симметрия импульсной характеристики
Число коэффициентов N
Частотная характеристика
Тип линейной фазовой характеристики
Положительная симметрия,
нечетное
.(М-1)/2
e-tw(N-i)/2^ a(n) cos(wn)
1
h(n) = h^N — 1 — n)
четное
e-IV(N-i)/2 ^ b(n) cos(w(n — |))
2
Отрицательная симметрия.
нечетное
П (N-l)/2 e-г[w(^-l)/2—тг/2]£2 a(n) sin(wTl)
3
h(n) = —h(N — 1 — n)
четное
n=l N/2 e-i[u,(N-l)/2-,/21 £ o(n)sinMn-|))
4
n=l
а(0) = h^N - 1)/2]; а(п) = 2h^N - 1)/2 - п]
Ь(п) = 2h(N/2 - п)
всех четырех типов фильтров с линейной фазовой характеристикой. Ключевые особенности этих типов фильтров сведены в табл. 7.1.
Частотная характеристика фильтра типа 2 (положительно-симметричные коэффициенты и четная длина) всегда равна нулю при / = 0,5 (половина частоты дискретизации, поскольку все частоты нормированы на частоту дискретизации); см. задачу 7.1. Следовательно, фильтры данного типа не используются в качестве фильтров верхних частот. Фильтры типов 3 и 4 (отрицательно-симметричные коэффициенты) вводят сдвиг фазы на 90°, а частотная характеристика таких фильтров всегда равна нулю при / = 0, так что такие фильтры нельзя использовать как фильтры нижних частот. Кроме того, характеристика фильтров третьего типа всегда равна нулю при / = 0,5, так что данный фильтр не стоит применять и как фильтр верхних частот. Фильтры первого типа наиболее универсальны. Фильтры третьего и четвертого типа часто используются при проектировании дифференциаторов и фильтров, реализующих преобразования Гильберта, поскольку фильтры этого типа могут давать сдвиг фазы на 90°.
Важно отметить, что фазовую задержку (фильтры типа 1 и 2) или групповую задержку (фильтры всех четырех типов) можно выразить через число коэффициентов фильтра, которые, соответственно, можно подобрать таким образом, чтобы фильтр давал нулевую фазовую или групповую задержку. Например, для фильтров первого и второго типов фазовая задержка записывается следующим образом:
L(7.4, а)
N — 1 — 7Г2N — 1 — 7Г2а групповая задержка для фильтров третьего и четвертого типов выражается как
N — 1 — 7Г
2
N — 1 — 7Г
2
(7.4, б)(7.4, б)Г = где Т — период дискретизации.
(7.4, б)
(7.4, б)
Центр симметрии(N— нечетное, положительная симметрия)Центр симметрии(N— нечетное, положительная симметрия)N= 13 (нечетное)N= 13 (нечетное)О । 2 | 4О । 2 | 468 | 10 1 12л68 | 10 1 12л7V= 12 (четное)7V= 12 (четное)Центр симметрии (^ — нечетное, отрицательнаяЦентр симметрии (^ — нечетное, отрицательнаясимметрия)симметрия)N= 9 (мечетное)N= 9 (мечетное)I. I I 02I. I I 026868Рис. 7.1. Коэффициенты импульсной характеристики четырех типов фильтров с линейной фазовой характеристикойРис. 7.1. Коэффициенты импульсной характеристики четырех типов фильтров с линейной фазовой характеристикой
Центр симметрии
(N— нечетное, положительная симметрия)
Центр симметрии
(N— нечетное, положительная симметрия)
N= 13 (нечетное)
N= 13 (нечетное)
О । 2 | 4
О । 2 | 4
68 | 10 1 12л
68 | 10 1 12л
7V= 12 (четное)
7V= 12 (четное)
Центр симметрии (^ — нечетное, отрицательная
Центр симметрии (^ — нечетное, отрицательная
симметрия)
симметрия)
N= 9 (мечетное)
N= 9 (мечетное)
I. I I 02
I. I I 02
68
68
Рис. 7.1. Коэффициенты импульсной характеристики четырех типов фильтров с линейной фазовой характеристикой
Рис. 7.1. Коэффициенты импульсной характеристики четырех типов фильтров с линейной фазовой характеристикой
Разработка КИХ-фильтров
Как говорилось в главе б, разработка цифрового фильтра включает пять этапов.
Спецификация фильтра. На данном этапе может задаваться тип фильтра, например, фильтр нижних частот, нужная амплитудная и/или фазовая характеристика и разрешенные допуски (если есть), частота дискретизации и длина слов, которыми будут представлены входные данные.
Вычисление коэффициентов. На этом этапе определяются коэффициенты передаточной функции H^z\ которая удовлетворяет спецификациям, полученным на этапе 1. На выбор метода расчета коэффициентов влияет несколько факторов, важнейшими из которых являются критические требования, сформулированные на этапе 1.
Выбор структуры. Данный этап включает преобразование передаточной функции, полученной на предыдущем этапе, в подходящую фильтрующую структуру или сеть.
Рис. 7.2. Этапы разработки цифровых фильтров
Анализ следствий конечной разрядности. Здесь оценивается влияние квантования на коэффициенты фильтра и входные данные, а также влияние на производительность фильтра операции фильтрации со словами конечной длины.
Воплощение. На данном этапе разрабатывается программный код и/или аппаратный блок и выполняется собственно фильтрация.
Перечисленные пять этапов и их связь обозначены на рис. 7.2. Все этапы разработки КИХ-фильтра подробно рассмотрены ниже, при необходимости мы будем обращаться к примерам.
Спецификации КИХ-фильтра
Спецификации фильтров вообще подробно рассмотрены в главе 6. В данном разделе внимание акцентируется на деталях спецификаций КИХ-фильтров. Некоторые аспекты спецификаций иллюстрируются на примерах.
Итак, при рассмотрении фазовой характеристики достаточно указать, какая нужна симметрия — четная или нечетная (предполагается, что фазовая характеристика линейна). Амплитудно-частотная характеристика КИХ-фильтра часто задается в виде схемы допусков. Такая схема для фильтра нижних частот показана на рис. 7.3. Подобную схему можно легко получить и для других частотно-избирательных фильтров. Исходя из изображенного на рисунке, интерес представляют следующие параметры:
Рис. 7.3. Спецификация амплитудно-частотной характеристики фильтра нижних частот. Отклонения в полосах пропускания и подавления часто выражаются в децибелах: отклонение в полосе пропускания равно 20 lg(l + ip) дБ; отклонение в полосе подавления равно —20 lg(<$a) дБ
6Р отклонение в полосе пропускания (или неравномерность);
5S отклонение в полосе подавления;
/р граничная частота полосы пропускания;
fs граничная частота полосы подавления;
Fs частота дискретизации.
На практике часто удобнее выражать 5Р и 5S в децибелах, как сделано на приведенном рисунке. Расстояние между fs и /р равно ширине полосы перехода фильтра. Другой важный параметр — это длина фильтра N, которая определяет число коэффициентов фильтра. В большинстве случаев указанные параметры полностью определяют частотную характеристику КИХ-фильтра.
Существуют и другие спецификации, которые могут представлять практический интерес; это, например, спецификация максимального приемлемого числа коэффициентов фильтра (такое ограничение вводится в определенных приложениях, например, если возможная скорость обработки фиксирована). В конкретном случае может быть неясно, какой выбор набора параметров удачен, так что может использоваться метод проб и ошибок.
Пример 7.2
Пример амплитудной спецификации. Для подавления физиологического шума требуется цифровой фильтр нижних частот. Фильтр должен удовлетворять следующей спецификации:
граничная частота полосы пропускания10 Гц,
граничная частота полосы подавления<20 Гц,
затухание в полосе подавления>30 дБ,
неравномерность в полосе пропускания <0,026 дБ, частота дискретизации256 Гц.
Основные требования в данном случае таковы: 1) фильтр должен вводить во внутриполосные сигналы минимально возможное искажение, 2) длина фильтра должна быть минимальной и не превышать 37.
Методы расчета коэффициентов КИХ-фильтров
Напомним, что КИХ-фильтр характеризуется следующими уравнениями:
N-1
у^т)) = У^ /i(n)z(m — тг), п=0 п=0
Единственной целью большинства методов вычисления (или приближенного вычисления) коэффициентов КИХ-фильтров является получение значений h(n), при которых фильтр удовлетворяет спецификациям, в частности, относящимся к амплитудночастотной характеристике, и требованиям к пропускной способности. Разработано несколько методов получения h^n). Наиболее широко используемыми из них являются метод вырезания, оптимальный метод и метод частотной выборки. Все три метода позволяют получать КИХ-фильтры с линейной фазовой характеристикой.
Метод взвешивания
В данном методе используется факт, что частотная характеристика фильтра HD(w) и соответствующая импульсная характеристика hD(n) связаны обратным преобразованием Фурье:
(7-5)(7-5)
(7-5)
(7-5)
Индекс D используется, чтобы различать идеальную и практическую импульсные характеристики. Необходимость такого разделения станет понятна несколько позже. Если HD(w) известна, Ь,ц(п) можно получить, применив преобразование Фурье к обеим частям уравнения (7.5). Для иллюстрации предположим, что требуется разработать фильтр нижних частот. Начать можно с идеальной фазовой характеристики, представленной на рис. 7.4, а, где шс — частота среза, и шкала частот нормирована (Г = 1).
-2 л-<Ц; 0 <»2л <» (нормировано)
Рис. 7.4. Идеальная частотная характеристика фильтра нижних частот (панель а). Импульсная характеристика идеального фильтра иижних частот (панель б)
Допустив, что характеристика идет от —шс до шс, упрощаем интегрирование и получаем следующую импульсную характеристику:
hD(n) = тг" [ 1 х е1"п<1ш =[ ешп<1ш =
2тг J2тг J
— 7Г— и)с
nr • z А(7.6)
2fcsm(nwc)v 7
= , п, ^t и, —ОО < П < ОО
пшс
= 2/с, п = 0 (используем правило Лопиталя).
Импульсные характеристики идеальных фильтров верхних частот, полосовых фильтров и режекторных фильтров также находятся из уравнения (7.6) и все они приведены в табл. 7.2. Импульсная характеристика фильтра нижних частот изображена на рис. 7.4, б, из которого видно, что hD(n) симметрична относительно п = 0 (т.е. ^о(и) = ho(—п)), так что фильтр будет иметь линейную (в данном случае — нулевую) фазовую характеристику. Описанный простой подход связан с некоторыми проблемами. Важнейшая из них — хотя характеристика hD(n) уменьшается при удалении от точки п = 0, она длится теоретически до п = ±оо. Следовательно, полученный фильтр не является КИХ-фильтром.
Очевидным является решение усечь идеальную импульсную характеристику, положив ho^n) = 0 для п, больше, чем (скажем) М. При этом вводится нежелательная неравномерность и выбросы — имеет место так называемый эффект Гиббса. То, как отбрасывание коэффициентов сказывается на характеристике фильтра, показано на рис. 7.5. Чем больше коэффициентов осталось, тем ближе спектр фильтра к идеальной характеристике (см. рис. 7.5, б и в). Прямое усечение h.D^n\ как оно описано выше,
Таблица 7.2. Идеальные импульсные характеристики стандартных частотно-избирательных фильтров
Идеальная частотная характеристика, hoin)
Тип фильтра
Нц^, п / 0
МО)
Фильтр нижних частот
Фильтр верхних частот Полосовой фильтр Заграждающий фильтр
2у sin^nu^
2 у sin(nu,c)
Л £ sin(fiW2) _ Of 8*n(n^l) nw2
Л £ 8т(па>1) Q £ sin(nu>2)
* 1 ПОЛ* null
lie
1 — 2/c 2(Л-/1) 1 - 2(/2 - Л)
/с, /1 и /г — нормированные частоты краев полос пропускания или подавления; N — длина фильтра
равносильно умножению идеальной импульсной характеристики на прямоугольную весовую функцию вида
w(n) = 1, |п| — 0,1,..., (М — 1)/2= 0.
Рис. 7.5. Влияние иа частотную характеристику округления идеальной импульсной характеристики до а) 13 коэффициентов; б) 25 коэффициентов; в) бесконечного числа коэффициентов
Рис. 7.6. Иллюстрация определения коэффициентов фильтра Ь(п) с помощью метода взвешивания
В частотной области это эквивалентно свертке Hq(w) с ИДш), где W(w) — Фурье- образ w(n). Тогда как W(w) имеет классический вид функции (sina:)/a:, усечение hD(п) приводит к появлению в частотной характеристике выбросов.
На практике идеальная частотная характеристика ho множится на подходящую весовую функцию w(n) с конечной длительностью. Таким образом, получающаяся импульсная характеристика гладко затухает до нуля. Данный процесс иллюстрируется на рис. 7.6. На рис. 7.6, а показана идеальная частотная характеристика и соответствующая идеальная импульсная характеристика. На рис. 7.6, б показана весовая функция конечной длительности и ее спектр. На рис. 7.6, в показана функция h(n), которая получается перемножением /i£>(n) и w(n). Из соответствующей частотной характеристики видно, что неравномерности и выбросы, характерные для прямого усечения, в значительной степени подавлены. В то же время, ширина полосы перехода больше, чем для прямоугольной функции. Известно, что ширина полосы перехода фильтра определяется шириной основного лепестка весовой функции. Боковые лепестки приводят к появлению неравномерности в полосах пропускания и подавления.
Некоторые распространенные весовые функции
Было предложено несколько вырезающих функций. Одной из наиболее широко используемых является весовая функция Хэмминга, которая определяется следующим образом:
w(n) = 0,54 + 0,46 cos(27rn/N)w(n) = 0,54 + 0,46 cos(27rn/N)— (TV — 2)/2 < n < (TV — 1)/2 (N — нечетное)
w(n) = 0,54 + 0,46 cos(27rn/N)
w(n) = 0,54 + 0,46 cos(27rn/N)
(7.7)(7.7)—7V/2 < n < N/2 (N — четное)
(7.7)
(7.7)
= 0 в других случаях.
Характеристики функции Хэмминга и прямоугольной функции сравниваются на рис. 7.7 во временной и частотной областях. Во временной области функция Хэмминга более мягко выходит на нуль с обеих сторон. В частотной области амплитуда ее главного лепестка шире (примерно вдвое), чем амплитуда прямоугольной функции, но ее боковые лепестки меньше по сравнению с главным (примерно на 40 дБ меньше главного лепестка по сравнению с 14 дБ для прямоугольной функции). Вследствие этого функция Хэмминга даст фильтр с большей полосой перехода (поскольку у нее шире главный лепесток), но и большим затуханием в полосе подавления (поскольку уровни боковых лепестков меньше).
Связь ширины полосы перехода (от полосы пропускания к полосе подавления) фильтра, построенного на основе функции Хэмминга, с длиной фильтра выражается следующей формулой:
А/ = 3,3/N, (7.8)
где N — длина фильтра, а А/ — нормированная ширина полосы перехода. Максимальное затухание в полосе подавления, возможное при использовании функции Хэмминга, составляет порядка 53 дБ, а минимальная амплитуда неравномерности в полосе пропускания составляет около 0,0194 дБ.
Основные характеристики самых распространенных весовых функций собраны в табл. 7.3. Отметим, что первые четыре функции имеют фиксированные характеристики, такие как ширина перехода и затухание в полосе подавления. Следовательно, их использование ограничивает свободу разработчика. Отметим также, что фильтр, построенный с помощью метода взвешивания, имеет равные неравномерности в полосе пропускания и полосе подавления, т.е. 5Р = 6S (см. рис. 7.3). На практике это ограничение может дать фильтр, неравномерность которого в полосе пропускания будет излишне малой.
Таблица 7.3. Важные особенности распространенных весовых функций
Функция
Ширина перехода (нормированная) (Гц)
Неравномерность в полосе пропускания (дБ)
Главный лепесток относительно бокового лепестка
Затухание в полосе подавления
Формула
Прямоугольная
0,9/ЛГ
0,7416
13
21
1
Хеннинга
3,1/N
0,0546
31
44
0,5 4-0,5cos (^)
Хэмминга
3,3/N
0,0194
41
53
0,54 4-0,46 cos (2^)
Блэкмена
5,5/N
0,0017
57
75
0,42 + 0,5 cos (^zt) 4- 0, 08 cos (^)
2,93/N^p = 4,54)
0,0274
50
lotB)
Кайзера
4,32/7V(/3 = 6,76)
0,00275
70
5,71/7V(/3 = 8,96)
0,000275
90
о
-20
S'
-40
-60
-80
-100 -
-120 111111111
00.1250,2500,3750,500
Рис. 7.7. Сравнение характеристик распространенных весовых функций во временной и частотной областях: а) прямоугольная функция; б) функция Хэмминга; в) функция Блэкмена
Окно Кайзера (Kaiser window function) несколько сглаживает очерченные выше проблемы, поскольку имеет параметр, управляющий неравномерностью, 0, что позволяет разработчику играть на компромиссах между шириной перехода и неравномерностью. Функция Кайзера задается следующим образом:
= 0= 0-(У-1)/2<п<(У-1)/2в других случаях,-(У-1)/2<п<(У-1)/2в других случаях,(7.9)(7.9)
= 0
= 0
-(У-1)/2<п<(У-1)/2
в других случаях,
-(У-1)/2<п<(У-1)/2
в других случаях,
(7.9)
(7.9)
где /о (а:) — модифицированная функция Бесселя первого рода нулевого порядка. Управляющий параметр 0 отвечает за спад вырезающей функции на краях (во временной
области). Для вычисления /0(х) обычно используется следующее разложение в степенной ряд [14]:
ш = 1+Ек=1ш = 1+Ек=1"(W12к'."(W12к'.
ш = 1+Е
к=1
ш = 1+Е
к=1
"(W12
к'.
"(W12
к'.
причем обычно L < 25. Эффективной реализацией указанного уравнения является алгоритм Кайзера [14].
При /3 = 0 функция Кайзера соответствует прямоугольной весовой функции, а при Р = 5,44 функция весьма похожа на функцию Хэмминга (хотя и не идентична ей). Значение /3 определяется требованиями к затуханию в полосе подавления и его можно оценить с помощью одного из приведенных ниже эмпирических соотношений:
(7.10, а)(7.10, а)/3 = 0, если А < 21 дБ,
(7.10, а)
(7.10, а)
/3 = 0,5842(Д —21)о,4+0,07886(Д —21),если 21 дБ < А < 50 дБ (7Л0, б)
(7.10,в)(7.10,в)/3 = 0,1102(Л - 8,7), если А > 50 дБ,
(7.10,в)
(7.10,в)
где А = — 20lg(5) — затухание в полосе подавления, 5 = min(<5p, 5^, поскольку неравномерности в полосе пропускания и полосе подавления приблизительно равны, 5Р — желаемая неравномерность в полосе пропускания, a 5S — желаемая неравномерность в полосе подавления. Число коэффициентов фильтра N подчиняется зависимости
(7-11)(7-11)n>a-7^
(7-11)
(7-11)
- 14,36Д/
где Д/ — нормированная ширина полосы перехода. Далее полученные значения 0 и N используются для вычисления коэффициентов функции Кайзера w(n\
Метод взвешивания: резюме
Этап 1. Задать “идеальную” или желаемую частотную характеристику фильтра НоН.
Этап 2. Получить импульсную характеристику hD^n) желаемого фильтра, найдя для этого Фурье-образ частотной характеристики (формула (7.6, б)). Выражения для ho^n) стандартных частотно-избирательных фильтров приведены в табл. 7.2.
Этап 3. Выбрать весовую функцию, которая удовлетворяет требованиям к полосе пропускания или затуханию, а затем определить число коэффициентов фильтра, использовав подходящее выражение для связи длины фильтра с шириной перехода, Д/ (записываются через частоту дискретизации).
■ Этап 4. Получить значения выбранной весовой функции w(n) и значения коэффициентов реального КИХ-фильтра /г(п), умножив hD(n) на w(n):
/г(п) = /iD(n)w(n).
(7.12)
Очевидно, что метод вырезания — это прямолинейный метод, включающий минимум вычислений. В действительности при таком подходе коэффициенты можно вычислить с помощью карманного калькулятора. Впрочем, существуют и компьютерные программы вычисления Цп), но следует отметить, что фильтр, полученный описанным способом, не является оптимальным, т.е. во многих случаях иные методы позволяют получить аналогичный фильтр с меньшим числом коэффициентов.
Пример 7.3
С помощью метода взвешивания вычислите коэффициенты КИХ-фильтра нижних частот, который удовлетворяет следующим спецификациям:
граничные частоты полосы пропускания 1,5 кГц, ширина полосы перехода 0,5 кГц, затухание в полосе подавления >50 дБ, частота дискретизации 8 кГц.
Решение
Используя табл. 7.2, выберем /iy(n) для фильтра нижних частот:
^d(^/ — ^fc;
ПШС
Нп(п) = 2/c, n. = 0.
n ^ 0,
Из табл. 7.3 следует, что требованиям к затуханию в полосе подавления удовлетворяют функции Хэмминга, Блэкмена или Кайзера. Для простоты выберем функцию Хэмминга. Тогда А/ = 0,5/8 = 0,0625. Поскольку N = 3,3/Д/ = 3,3/0,0625 = 52,8, положим N = 53, и коэффициенты будут равны
hi)(n)w(n), —26 < п < 26,
где
2fcsin(nwc) h.DVn)!
nwc
/io(n) = 2fc, п = 0,
п ^ 0
w(n) = 0,54 + 0,46cos(27rn/53), —26 < п < 26.
Вследствие эффекта смазывания характеристики фильтра, вводимого весовой функцией, частота среза получающегося фильтра будет отличаться от представленной в спецификации. Чтобы учесть этот эффект, используем /с — центр полосы перехода:
/' = Л + Д//2 =(1,5 + 0,25) кГц = 1,75 кГц -> 1,75/8 = 0,21875.
Поскольку /г(п) — симметричная функция, вычислить требуется только значения А(0), /i(l),..., /г(26), а остальные можно получить из условия симметрии.
п = 0 : /iD(0) = 2Д = 2 х О,21875 = 0,4375
w(0) = 0,54 + 0,46 cos(O) = 1
/i(0) = /iD(0)w(0) = 0,4375
n = 1 : MU = 2 * °’2^5 sin(27r x 0,21875)
2тги, 210/5
sin(360° x 0,21875) л 91О1П—и0У
7Г
w(l) = 0,54 + 0,46cos(2tt/53)
= 0,54 + 0,46cos(360°/53) = 0,99677
/г(1) = /г(-1) = MUM) = 0,31118
2 x 0 21875
" = 2: '"D= 2x2^ 0,21875 ™(2х2,Х °'218?5)
= ™<157'5"> =0,08)132тг’
w(2) = 0,54 + 0,46 cos(2tt х 2/53)
= 0,54 + 0,46cos(720°/53) = 0,98713
/i(2) = /г(-2) = M2)w(2) = 0,06012
п = 26 : nD(26) =sin(26 х 2тг х 0,21875)
2b X 2тг X U, 210/0
= -0,01131
w(26) = 0,54 + 0,46соз(2тг х 26/53) == 0,54 + 0,46 cos(9360° /53) = 0,08081h(26) = /г(-26) = /iD(26)w(26) = -0,000914
Таблица 7.4. Коэффициенты КИХ-фильтра из примера 7.3 (N = 53, функция Хэмминга, /с = 1750 Гц)
Мо] =
-9,1399895e - 04
= /i[52]
Ц 1] =
2,1673690e - 04
= /i[51]
^[2] =
1,3270280e— 03
= /i[50]
Ц3] =
3,2138355e - 04
= /i[49]
^[4] =
-l,9238177e -03
= /i[48]
/1[5] =
-1,4683633e -03
= Л[47]
М6] =
2,3627318e - 03
= /i[46]
М^] =
3,4846558e - 03
= /i[45]
/г[8] =
-l,9925839e-03
= /i[44]
Ц9] =
-6,2837232e - 03
= /i[43]
tylO] =
4,5320247e - 09
= /i[42]
А[И] =
9,2669460e - 03
= /i[41]
h[12] =
4,3430586e - 03
= /i[40]
/г[13] =
-l,1271299e-02
= /i[39]
^14] =
-l,1402453e-02
= /i[38]
/i[15] =
l,0630714e-02
= /i[37]
/i[16] =
2,0964392e - 02
= /i[36]
Л[17] =
-5,2583216e-03
= /i[35]
/i[18] =
-3,2156086e - 02
= Л[34]
/i[19] =
-7,5449714e - 03
= /i[33]
/i[20] =
4,3546153e-02
= /i[32)
/i[21] =
3,2593190e-02
= /i[31]
/i[22] =
-5,3413653e - 02
= /i[30]
/i[23] =
-8,5682029e - 02
= /i[29]
h [24] =
6,0122145e-02
= /i[28]
/i[25] =
3,1118568e-01
= h[27]
/i[26] =
4,3750000e - 01
= /i[26]
Обратите внимание на то, что индексы коэффициентов пробегают значения от —26 до 26. Чтобы фильтр был причинным (необходимое условие реализации), к каждому индексу было прибавлено 26, так что новая нумерация начиналась с нуля. Коэффициенты фильтра с указанными индексами приведены в табл. 7.4. Из спектра фильтра (не показан) следует, что спецификация удовлетворяется.
Пример 7.4
Требуется, чтобы КИХ-фильтр удовлетворял следующим спецификациям:
полоса пропускания150-250 Гц,
ширина полосы перехода50 Гц,
неравномерность в полосе пропускания 0,1 дБ, затухание в полосе подавления60 дБ,
частота дискретизации1 кГц.
Определите коэффициенты и спектр фильтра, используя метод вырезания.
-120 L 0-120 L 00,1250,250,3750,5/(Гц)хЮ30,1250,250,3750,5/(Гц)хЮ3Рис. 7.8. Спектр фильтра (пример 7.4)Рис. 7.8. Спектр фильтра (пример 7.4)
-120 L 0
-120 L 0
0,1250,250,3750,5
/(Гц)хЮ3
0,1250,250,3750,5
/(Гц)хЮ3
Рис. 7.8. Спектр фильтра (пример 7.4)
Рис. 7.8. Спектр фильтра (пример 7.4)
Решение•
Из спецификации следует, что неравномерность в полосе пропускания и неравномерность в полосе подавления равны:
201g(l + 5Р) = 0,1 дБ, откуда 5Р = 0,0115
—20 lg(5s) = 60 дБ, откуда 6S = 0,001.
Следовательно,
6 = min(5p, 5S) = 0,001.
Требования к затуханию можно удовлетворить только при использовании функции Кайзера или Блэкмена. Для функции Кайзера число коэффициентов фильтра равно
Л —7,9560- 7,95
“ 14,36Д^14,36(50/1000)’ ‘
Пусть N = 73. Параметр неравномерности выражается следующим образом: /3 = 0,1102(60 — 8,7) = 5,65.
Значения N = 73 и /3 = 5,65 используются как вход программы window.с (см. приложение), на выходе которой получаются значения w(n), идеальная импульсная характеристика /iD(n) и коэффициенты фильтра. Чтобы учесть эффект смазывания, при вычислении идеальной импульсной характеристики использовались частоты среза fci— А//2 и /с2+Д//2, т.е. /с1 = 125 Гц и /с2 = 275 Гц соответственно. Коэффициенты фильтра представлены в табл. 7.5, а спектр фильтра изображен на рис. 7.8.
При использовании функции Блэкмена число коэффициентов фильтра оценивается как
N = 5,5/Д/ = 5,5/(50/1000) « 110.
Таблица 7.5. Коэффициенты фильтра Кайзера (пример 7.4)
Мо] =
-1,0627330е -04
= Ь[72]
М 1] =
—3,9118142с — 04
= 471]
Ц 2] =
-7,5561629с - 05
= /г[70]
МЗ] =
-1,3695577с -04
= /г[69]
44 =
-6,8122013с -04
= Л[68]
4 4 =
5,0929290с - 04
= Л[67]
Ц 6] =
2,3413494с - 03
= h [66]
4 4 =
8,0280013с - 04
= h[65]
4 4 =
-1,7031635с -04
= h [64]
Ц 9] =
-5,5034956с -04
= /i[63]
/1[10] =
-4,9912488с -04
= /i[62]
ЧИ] =
-4,4036355с - 03
= Л[61]
h[12] =
-2,1639856с - 03
= /г[60]
Л[13] =
6,9094151е -03
= Л[59]
414] =
6,6067599с - 03
= h [58]
к[15] =
-1,6445200с -03
= h [57]
Л[16] =
4,5229777с - 09
= h [56]
417] =
2,1890066с - 03
= /i[55]
/г[18] =
-1,1720511с-02
= Л[54]
/г[19] =
-1,6377726с -02
= /г[53]
/г[20] =
6,8804519с - 03
= /1(52]
421] =
1,8882837с-02
= /г[51]
/г[22] =
2.9068601с - 03
= h [50]
Л[23] =
4,3925286с - 03
= h[49]
h[24] =
1,8839744с -02
= /i[48]
425] =
-1,2481155с -02
= h[47]
h[26] =
-5,2063428с - 02
= Л[46]
427] =
-1,6557375с -02
= Л[45]
h [28] =
3, 3298453с - 02
= А[44]
h [29] =
1,0439025с -02
= h [43]
k[30] =
9,4320244с - 03
= /г[42]
/г[31] =
8,5673629с - 02
= ^[41]
/г[32] =
4,5314758с - 02
= Л[40]
433] =
-1,6657147с -01
= /г[39]
h[34] =
-2,0669512с -01
= h [38]
/г.[35] =
8,9135544с-02
= h [37]
h[36] =
3,0000000с - 01
= h[36]
Коэффициенты фильтра для функции Блэкмена не приводятся из соображений экономии места. Очевидно, впрочем, что функция Кайзера эффективнее функции Блэкмена с точки зрения числа коэффициентов, требуемых для соответствия тем же спецификациям. Вообще, по этому пункту функции Кайзера эффективнее и других весовых функций.
Пример 7.5
Используя функцию Кайзера, получите коэффициенты КИХ-фильтра с линейной фазовой характеристикой, который удовлетворяет следующим спецификациям амплитудной характеристики:
затухание в полосе подавления40 дБ,
неравномерность в полосе пропускания 0,01 дБ, ширина перехода500 Гц,
частота дискретизации10 кГц,
идеальная частота среза1200 Гц.
Решение
Из спецификации получаем
201g(l + 5Р) = 0,01 дБ, откуда 5Р = 0,00115
—20 lg(5s) = 40 дБ, откуда 6S = 0,01.
Поскольку в методе вырезания неравномерность в полосе пропускания равна неравномерности в полосе подавления (так как их нельзя задать по отдельности), используем меньшую из неравномерностей:
6 = 6S = 6„ = 0,00115.
Это означает, что затухание в полосе подавления больше, чем фактически необходимо; в этом случае — 20 lg(0,00115) = 55,8 дБ.
Из формулы (7.11) получаем число требуемых коэффициентов фильтра:
Л-7,9558,8- 7,95,
14,36Д/14,36(500/10000)’
Если бы использовалась заданная в спецификации величина 40 дБ, N было бы равно 45. Итак, требование, чтобы 6Р было равным 6S (условие использования метода взвешивания) привело к увеличению необходимого числа коэффициентов фильтра.
Параметры неравномерности вычисляются на основе уравнения (7.10):
/3 = 0,5842(58,8 - 21)0’4 + 0,07886(58,8 - 21) = 5,48.
Коэффициенты КИХ-фильтра получаются из соотношения h(n) = /iD(n)w(n), где
sin(nu>c)hD(n) = 2/с,n ^ 0
ЬвМ = 2/с, н = 0 (из табл. 7.2),
a w(n) представлено в уравнении (7.9).
Как объяснялось выше, частота среза, /с, используемая для вычисления /г(п), отличается от той, что дана в спецификации, поскольку это позволяет учесть эффект смазывания, характерный для метода взвешивания. Выберем в качестве /с середину полосы пропускания: /^ = 1200 + Д//2 = 1450 Гц.
Далее в программе window, с (см. приложение) используются следующие параметры фильтра:
1450 Гц, 5,48, 71, 10 кГц.1450 Гц, 5,48, 71, 10 кГц.частота среза
1450 Гц, 5,48, 71, 10 кГц.
1450 Гц, 5,48, 71, 10 кГц.
параметр неравномерности, 0 число коэффициентов фильтра частота дискретизации
Полученные коэффициенты фильтра представлены в табл. 7.6, а спектр фильтра изображен на рис. 7.9.
Таблица 7.6. Коэффициенты фильтра, полученного с помощью функции Кайзера (пример 7.5)
Ц0] =
9,8470163e-05
= h[70]
Ц 1] =
-1,39724116 -04
= k[69]
h[ 2] =
-4,5442489e - 04
= k[68]
h[ 3] =
-4, 8756977e - 04
= k[67]
h[ 4] =
2, 6173965e - 05
= h[66]
/i[ 5] =
8, 6653647c - 04
= k[65]
k[6] =
1, 2967984e — 03
= Л[64]
h[7] =
6,1688894e - 04
= k[63]
h\ 8] =
—l,0445340e — 03
= h[62]
Ц 9] =
—2,4646644c -03
= /i[61]
k[10] =
-2,1059775c - 03
= Zi[60]
k[U] =
4,4371801c-04
= k[59]
k[12] =
3. 5954580c - 03
= k[58]
k[13] =
4, 5526695e - 03
= k[57]
h[14] =
l,5922295e-03
= h[56]
A[15] =
-3, 89048206 - 03
= h[55]
h[16] =
-7,6398162e - 03
= /i[54]
h[17] =
-5,6061945e - 03
= Zi[53]
k[18] =
2,2010888e - 03
= h[52]
A[19] =
l,0450148e-02
= h[51]
h[20] =
1,1760002e - 02
= h[50]
/г[21 j =
2, 82398756 - 03
= /i[49]
h[22] =
-l,1380549e-02
= h [48]
k[23] =
-l,9631856e-02
= /i[47]
/г[24] =
-1,2665935e - 02
= /i[46]
/i[25] =
8,0061777e - 03
= h[45]
h[26] =
2, 81827816 - 02
= h [44]
h[27] =
2,94740316 - 02
= h[43]
h [28] =
3, 8724896e - 03
= /i[42]
h[29] =
-3,5942288e - 02
= h[41]
k[30] =
-5,9766794e - 02
= h[40]
h[31] =
-3,7113570e-02
= h[39]
/i[32] =
4,1378026e - 02
= h[38]
h[33] =
l,5291289e-01
= h[37]
h[34] =
2,5100632e - 01
= h[36]
/i[35] =
2,90000006 - 01
= /i[35]
Рис. 7.9. Спектр фильтра, полученного с помощью функции Кайзера (пример 7.5)
Плюсы и минусы метода взвешивания
Важным достоинством метода взвешивания является простота: его просто применить и легко понять. Этот метод включает минимальный объем вычислений даже при использовании более сложной функции Кайзера.
Главный недостаток метода — отсутствие гибкости. Максимальная неравномерность в полосе пропускания и неравномерность в полосе подавления примерно равны, так что разработчик может получить фильтр с либо слишком маленькой неравномерностью в полосе пропускания, либо со слишком большим затуханием в полосе подавления.
Вследствие того, что в методе фигурирует свертка спектра вырезающей функции и желаемой характеристики, невозможно точно задать граничные частоты полосы пропускания и полосы подавления.
Для данной функции (исключая функцию Кайзера) максимальная амплитуда колебаний в характеристике фильтра фиксирована вне зависимости от того, насколько большим делать N. Следовательно, затухание в полосе подавления фиксированно для данной функции. Таким образом, для данной спецификации затухания разработчик должен найти подходящую функцию.
В некоторых приложениях выражения формулы для HD(w) будут настолько сложными, что из уравнения (7.5) аналитически находить hD(,n) нет смысла. В таких случаях hD^n) можно получить с помощью метода частотной выборки, а уже затем применять весовую функцию (см. раздел 7.7.1).
Оптимизационные методы
Метод вычисления оптимальных (по Чебышеву) коэффициентов КИХ-фильтра является чрезвычайно мощным, и благодаря великолепным программам разработки его весьма просто применять. По этим причинам и еще потому, что данный метод дает великолепные фильтры, он широко используется во многих сферах, где требу-
1,20001,20001,00001,00000,0000 L 00,0000 L 00,80000,80000,6000 -0,6000 -0,4000 -0,4000 -0,2000 -0,2000 -0,1250,1250,3750,3750,250 б)0,250 б)0,5000,500
1,2000
1,2000
1,0000
1,0000
0,0000 L 0
0,0000 L 0
0,8000
0,8000
0,6000 -
0,6000 -
0,4000 -
0,4000 -
0,2000 -
0,2000 -
0,125
0,125
0,375
0,375
0,250 б)
0,250 б)
0,500
0,500
Рис. 7.10. Сравнение частотных характеристик: а) фильтра, по-лученного методом вырезания, б) оптимального фильтра. Напанели а колебания характеристики больше на границе поло-сы; а на панели 6 колебания имеют равные амплитуды (полосыравных колебаний) в полосе пропускания и подавления
ются КИХ-фильтры. Ниже рассматриваются принципы, на основе которых построен метод, программа разработки и ее применение. Для иллюстрации метода разобрано несколько примеров.
Основные концепции
При вычислении коэффициентов фильтра по методу вырезания возникает проблема выбора удачной аппроксимации желаемой или идеальной частотной характеристики. Максимальные колебания характеристики фильтров, разработанных с помощью метода взвешивания, возникают возле краев полосы и уменьшаются при удалении от них (рис. 7.10, а). Оказывается, что если колебания распределены более равномерно по полосе пропускания и полосе подавления, как, например, на рис. 7.10, б, можно получить лучшую аппроксимацию желаемой частотной характеристики.
Полоса пропускания Палоса подавления
6)
Рис. 7.11. Частотная характеристика оптимального фильтра нижних частот (панель «). Характеристика ошибки между идеальной и практической характеристиками (6Р = 2ds) (панель б)
Оптимизационные методы основаны на понятии полос равных колебаний. Рассмотрим частотную характеристику фильтра нижних частот, изображенную на рис. 7.11. В полосе пропускания реальная характеристика осциллирует между значениями 1 - др и 1 + 6Р. В полосе подавления характеристика фильтра находится между 0 и 5а. Отличие характеристик идеального и реального фильтров можно рассматривать как функцию ошибок
ВД = И"(сц)[Яо(сц) - Я(ш)], (7.13)
где HD(w)— идеальная или желаемая характеристика, a W(w) — весовая функция, которая позволяет определить относительную ошибку аппроксимации между различными полосами. Цель оптимального метода — определить коэффициенты фильтра /г(и), при которых значение максимальной взвешенной ошибки |Я(у)| минимизируется в полосе пропускания и полосе подавления. Математически это можно записать следующим образом:
min[max |E(w)|]
по полосам пропускания и полосам подавления. Было установлено (см., например, [14]), что при минимизации max |Я(ш)| характеристика фильтра будет иметь равные колебания в пределах полос пропускания и подавления, причем модуль максимального отклонения будет постоянным, и характеристика будет проходить между двумя уровнями амплитуды с чередованием знака отклонения (рис. 7.10, б). Далее мы зачастую не будем
Рис. 7.12. Упрощенная функциональная схема оптимального метода
разделять минимумы и максимумы характеристики, говоря об экстремумах вообще. Например, у фильтров нижних частот с линейной фазовой характеристикой имеется г +1 или г + 2 экстремумов, где г = (N +1) /2 (для фильтров типа 1) или г = N/2 (для фильтров типа 2). На рис. 7.10, б частоты экстремумов изображены маленькими кружочками.
При данном наборе спецификаций фильтра расположение экстремальных частот, кроме тех, что размещены на границе полос (т.е. на частотах f = fpn f = ^s/2), не известно априори. Значит, основная задача оптимального метода — это найти положения экстремальных частот. Для решения этой задачи был разработан мощный метод, в котором реализован алгоритм замены Ремеза (Remez exchange algorithm) [9, 12, 14]. Зная положения экстремумов, получить действительную частотную характеристику (а значит, импульсную характеристику) — дело техники. Для данного набора спецификаций (т.е. граничных частот полосы пропускания N отношения амплитуд колебаний характеристики в полосе пропускания и полосе подавления) оптимальный метод включает следующие ключевые этапы (см. рис. 7.12):
использовать алгоритм замены Ремеза, чтобы найти оптимальный набор экстремальных частот;
определить частотную характеристику, использовав положения экстремумов;
получить коэффициенты импульсной характеристики.
Сердцем оптимального метода является первый этап, где для определения экстремальных частот фильтра, амплитудно-частотная характеристика которого удовлетворяет условию оптимальности, используется итеративная процедура. Данный этап зависит от
теоремы о дизъюнкции (alternation theorem), определяющей число экстремальных частот, которые могут существовать при данном значении N.
В настоящее время доступна и широко используется программа на языке FORTRAN, в которой реализована описанная выше процедура (см. например, [9]). Программа позволяет разрабатывать различные частотно-избирательные фильтры, в том числе фильтры нижних, верхних частот, полосовые и режекторные фильтры, а также дифференциаторы и аппаратные реализации преобразования Гильберта. Кроме того, можно вычислить коэффициенты заданной пользователем произвольной частотной характеристики. Более подробно об оптимальном методе можно прочесть в названной выше книге. В приложении к данной главе рассмотрена реализация оптимального метода в форме файла MATLAB.
Параметры, требуемые для использования оптимальной программы
^ Число коэффициентов фильтра, т.е. длина фильтра. Данный параметр можно оценить по соотношениям, представленным в следующем разделе.
Данный параметр задает тип фильтра. Всего возможны три типа: Jtype=l (фильтры с несколькими полосами пропускания/подавления, в том числе Луре фильтры нижних частот, фильтры верхних частот, полосовые и режекгор- ные), Jtype=2 (задается дифференциатор), Jtype=3 (задается трансформатор Гильберта).
Весовая функция. Данный параметр определяет относительную значи- .... , мость каждой полосы. По сути, это позволяет использовать компромиссы ' ' между колебаниями в полосе пропускания и затуханием в полосе подавления. Весовая функция задается для каждой полосы.
Данный параметр задает плотность сетки. Это число частот, в которых при поиске экстремумов частотная характеристика проверяется на опти- N ., мальность (под оптимумом понимается минимум максимальной ампли- ё туды ошибки, |E(w)| в полосе (полосах) пропускания и полосе (полосах) подавления). По умолчанию значение Ngrid равно 1. В большинстве проектных задач достаточно значения 16, 32 или 64.
Данный параметр задает граничные частоты полос (т.е. нижние и верхние , края полос фильтра). Все частоты должны вводиться в нормированной ё форме (относительно половины частоты дискретизации). Максимальное значение поддерживаемых полос (пропускания и/или подавления) — 10.
Отметим, что в последних реализациях данного алгоритма могут использоваться символы, отличные от указанных выше. Фактически некоторые реализации имеют более дружественный интерфейс к программе разработке, чем исходная реализация.
Соотношения для оценки длины фильтра N
На практике число коэффициентов фильтра неизвестно. Его можно оценить, использовав одно из соотношений, приведенных ниже.
Фильтр нижних частот (согласно [4])
Nkdj^) _жл)Д7? + 11Nkdj^) _жл)Д7? + 11(7.14)(7.14)
Nkdj^) _жл)Д7? + 11
Nkdj^) _жл)Д7? + 11
(7.14)
(7.14)
где ДР — ширина полосы пропускания, нормированная на частоту дискретизации,Doo^Sp, 5S) = lg ^[a^lg 6„У + a2 lg 6p + a3] +
+ [a4(lg 6РУ + a5 lg 8P + a6]
f(6pi 8.) =11,01217 + 0,51244[lg 6P - lg 5,]
ai = 5,309 x IO-3a3 = -4,761 x 10-1as = -5,941 x 10'1ai = 5,309 x IO-3a3 = -4,761 x 10-1as = -5,941 x 10'1a2 =7,114 x IO-2at = —2,66 x 10-3a6 = -4,278 x 10-1a2 =7,114 x IO-2at = —2,66 x 10-3a6 = -4,278 x 10-1
ai = 5,309 x IO-3a3 = -4,761 x 10-1as = -5,941 x 10'1
ai = 5,309 x IO-3a3 = -4,761 x 10-1as = -5,941 x 10'1
a2 =7,114 x IO-2at = —2,66 x 10-3a6 = -4,278 x 10-1
a2 =7,114 x IO-2at = —2,66 x 10-3a6 = -4,278 x 10-1
Здесь 8P — неравномерность в полосе пропускания, а 8S — неравномерность, или колебание, характеристики в полосе подавления.
Полосовой фильтр (согласно [10])
Nk^^+^AP + I,Nk^^+^AP + I,(7.15)(7.15)
Nk^^+^AP + I,
Nk^^+^AP + I,
(7.15)
(7.15)
гдегде
где
где
С* Ы = lg 5e [bi (lg 6РУ + 62 lg 8Р + Ь3]++ [^4 (1g 8РУ + 651g 8р + 66]
д(8р,8у = - 14,61g- 16,9
X 8 я /
Ь1 = О,01201 Ь2 = о,09664Ь3 = —0,51325 Ь4 = 0,00203Ь5 =-0,5705 Ь6 =-0,44314
Здесь 8F — ширина полосы перехода, нормированная на частоту дискретизации.
В приложении к данной главе приводится программа на языке С, предназначенная для вычисления значения N на основе приведенных выше выражений (7.14) или (7.15).
Резюме по процедуре вычисления коэффициентов фильтра с помощью оптимального метода
Этап 1. Задать граничные частоты полос (т.е. полос пропускания и полос подавления), неравномерность в полосе пропускания и затухание в полосе подавления (в децибелах или обычных единицах) и частоту дискретизации.
Этап 2. Нормировать каждую граничную частоту, разделив ее на частоту дискретизации, и определить нормированную ширину полосы перехода.
Этап 3. Использовать неравномерность в полосе пропускания и затухание в полосе перехода (см. примечание ниже) для оценки длины фильтра N из уравнения (7.14) или (7.15). Обычно значение N, требуемое для соответствия спецификации, берется на несколько единиц (2 или 3) больше, чем значение, определенное из этих уравнений.
Этап 4. Получить весовые коэффициенты для каждой полосы из отношения колебаний в полосе пропускания и подавления, выраженных в обычных единицах. Весовые коэффициенты каждой полосы удобно представить целыми числами. Например, фильтр нижних частот с колебанием характеристики в полосе пропускания и полосе подавления 0,01 и 0,03 (неравномерность в полосе пропускания и затухание в полосе подавления равны соответственно 0,09 дБ и 30,5 дБ) будет иметь весовые коэффициенты 3 для полосы пропускания и 1 для полосы подавления. Колебания характеристики полосового фильтра, равные 0,001 в полосе пропускания и 0,0105 во всех полосах подавления, будут иметь весовые коэффициенты 21 для полосы пропускания и 2 для каждой полосы подавления.
Этап 5. Ввести параметры в программу оптимальной разработки и получить следующие величины: N, граничные частоты полос и весовые коэффициенты для каждой полосы, а также подходящую плотность сетки (обычно 16 или 32).
Этап 6. Проверить неравномерность в полосе пропускания и затухание в полосе подавления, полученные на выходе программы, на предмет соответствия спецификациям.
Этап 7. Если спецификации не удовлетворяются, увеличить значение N и повторить этапы 5 и 6, пока соответствие не будет достигнуто; далее получить и проверить частотную характеристику, чтобы убедиться, что она удовлетворяет спецификации. Следует отметить, что на этапе аппроксимации оптимальная программа рассматривает только полосу пропускания и полосу подавления, считая область перехода несущественной. Чтобы избежать проблем со сходимостью алгоритма, лучше всего при разработке полосовых фильтров или фильтров с несколькими полосами положить области перехода равными ширине наименьшей области перехода. Если используются разные полосы перехода, следует всегда проверять частотную характеристику на предмет соответствия спецификациям, поскольку в полосах перехода могут появляться локальные максимумы и минимумы, приводящие к неожиданным характеристикам фильтра.
Примеры
Ниже приводятся примеры, иллюстрирующие использование программы оптимальной разработки.
Пример 7.6
Требуется полосовой фильтр с линейной фазовой характеристикой, удовлетворяющий следующим спецификациям:
полоса пропускания900-1100 Гц,
неравномерность в полосе пропускания <0,87 дБ,
затухание в полосе подавления>30 дБ,
частота дискретизации15 кГц,
частота перехода450 Гц.
Используйте оптимальный метод для получения подходящих коэффициентов. Изобразите спектр фильтра.
Решение
Из спецификации следует, что фильтр имеет три полосы: нижнюю полосу подавления (от 0 до 450 Гц), полосу пропускания (от 900 до 1100 Гц) и верхнюю полосу подавления (от 1550 до 7500 Гц). Для использования программы оптимальной разработки частоты краев полос нужно нормировать, т.е. выразить как доли частоты дискретизации:
450 ->450/15 000 = 0,03,
900 -> 900/15 000 = 0,06,
1100 -> 1100/15 000 = 0,0733,
1550 — 1550/15 000 = 0,1033,
7500 — 7500/15 000 = 0,5.
Следовательно, в нормированной форме три полосы записываются как (от 0 до 0,03), (от 0,06 до 0,0733) и (от 0,1033 до 0,5).
Далее для каждой полосы требуется выбрать весовой коэффициент. Весовые коэффициенты зависят от колебаний характеристики в полосе пропускания и полосе подавления. Колебание (в обычных единицах) можно получить из данных о неравномерности в полосе пропускания и затухании в полосе подавления:
неравномерность 0,87 дБ : 20 lg(l + 5Р) —> 5Р = 0,10535, затухание 30 дБ : -201g(5s) —> 63 = 0,031623.
Отношение 6Р к д3 равно 3,33 = 10/3:
5Р10ширина полосы подавления
633ширина полосы пропускания
Следовательно, можно использовать весовой коэффициент 3 для полосы пропускания и коэффициент 10 для полосы подавления (отметим, что весовые коэффициенты присваиваются противоположно тому, как они они входят в отношение 6Р/63). С равным успехом можно применять весовой коэффициент 1 для полосы пропускания и 3,33 для полосы подавления. Плотность решетки равна 32. Используем программу оценки N на основе приведенных выше соотношений и находим, что длина фильтра равна 40. Возьмем значение N = 41.
Частота
Рис. 7.13. Частотная характеристика фильтра (нормированная шкала частот)
Подытожим вход оптимальной программы:
длина фильтра, N41,
тип фильтра, Jtype1,
весовые коэффициенты, W(w) 10, 3, 10,
Ngrid32,
граничные частоты0; 0,03; 0,06; 0,0733; 0,1033; 0,5.
Распечатка выхода программы разработки приведена в табл. 7.7, а частотный спектр изображен на рис. 7.13. Прокомментируем результаты.
Колебания в полосе пропускания в 3,33 раза больше, чем в полосе подавления. Это объясняется тем, что ошибки в полосе пропускания и полосах подавления учтены с весовыми коэффициентами 3 и 10 соответственно. Чем выше весовой коэффициент полосы, тем меньше колебания, или отклонения.
Колебания характеристики в полосе пропускания и затухание в полосе подавления удовлетворяют спецификациям.
Существует 22 экстремальные частоты, т.е. (N + 3)/2 максимума и минимума амплитудной характеристики. Обратите внимание на то, что края полос — это также экстремальные частоты, такими же являются частоты / = 0 и / = 0,5 Гц. Частоты краев полос всегда являются экстремальными.
Импульсная характеристика симметрична относительно среднего коэффициента. Свойство симметрии — это необходимое условие наличия линейной фазовой характеристики. Обратите внимание на то, что для фильтра типа 1 средний коэффициент имеет наибольшее значение.
При поставленной задаче с фиксированными границами полос разработчик может нужным образом выровнять колебания в полосе пропускания и затухание в полосе подавления, используя весовые коэффициенты и N.
Таблица 7.7. Коэффициенты импульсной характеристики оптимальных фильтров (пример 7.6)
Я( 1) =-0,15346380В-01= Я(41)
Н( 2) =-0,57805500В-04= Я (40)
Я( 3) =0,50234820В-02= Я(39)
Я( 4) =0,12667060Б-01= Я(38)
Н( 5) =0,21082060В-01= Я (37)
Я( 6) =0,27764180В-01= Я(36)
Я( 7) =0,30053620В-01= Я (35)
Я( 8) =0, 25869350В-01= Я(34)
Я( 9) =0,14445660В-01= Я(33)
Я(10) =-0,31893230В -02= Я(32)
Я(11) =-0,24161370В -01= Я (31)
Я(12) = -0,44207120В-01 = Я(30) Я(13) =-0,58574530В -01= Я (29)
Я(14) =-0,63185570В -01= Я(28)
Я(15) =-0,55754610В -01= Я (27)
Я(16) =-0,36546910В -01= Я (26)
Я(17) =-0,85400990В -02= Я (25)
Я (18) =0,23083860В -01= Я (24)
Я(19) =0, 52013800В -01= Я(23)
Я(20) =0,72248070В -01= Я(22)
Я(21) =0, 79516810В - 01=Я(21)
Полоса 1
Полоса 2
Полоса 3
Нижняя граница полосы 0,000000000
0,060000000
0,103300000
Верхняя граница полосы 0,030000000
0,073300000
0,500000000
Искомое значение0,000000000
1,000000000
0,000000000
Весовой коэффициент10,000000000
3,000000000
10,000000000
Амплитуда колебаний0,028891690
0,096305620
0,028891690
Неравномерность, дБ —30,784510000
0,798631800
-30,784510000
Экстремальные частоты
0,0000000 0,0208333 0,0300000 0,0600000 0,1033000 0,1122285 0,1308297 0,1538951 0,1777045 0,2015139 0,2260674 0,2506209 0,2759184 0,3004719 0,3257694 0,3503229 0,3756204 0,4001739 0,4254714 0,4500249 0,4753224 0,5000000
Пример 7.7
Требуется цифровой узкополосный режекгорный КИХ-фильтр, соответствующий таким спецификациям:
частота режекции1,875 кГц,
подавление на частоте режекции>60 дБ,
края полосы пропускания1,575 и 2,175 кГц,
неравномерность в полосе пропускания <0,01 дБ, частота дискретизации7,5 кГц,
число коэффициентов61.
Для получения коэффициентов КИХ-фильтра, удовлетворяющего приведенной спецификации, используйте оптимальный метод.
ЧастотаЧастотаРис. 7.14. Характеристика фильтра (нормированная шкала частот)Рис. 7.14. Характеристика фильтра (нормированная шкала частот)
Частота
Частота
Рис. 7.14. Характеристика фильтра (нормированная шкала частот)
Рис. 7.14. Характеристика фильтра (нормированная шкала частот)
Решение
Фильтр имеет три полосы. Нормированные частоты трех полос и отклонения записываются следующим образом:
нижняя полоса пропусканиячастота режекцииверхняя полоса пропускания отклонение в полосе пропускания отклонение в полосе подавлениянижняя полоса пропусканиячастота режекцииверхняя полоса пропускания отклонение в полосе пропускания отклонение в полосе подавленияот 0 до 0,21,0,25,от 0,29 до 0,5,0,00115 (находится из 201g(l + <У).0,001 (находится из -201g(5s)).от 0 до 0,21,0,25,от 0,29 до 0,5,0,00115 (находится из 201g(l + <У).0,001 (находится из -201g(5s)).
нижняя полоса пропускания
частота режекции
верхняя полоса пропускания отклонение в полосе пропускания отклонение в полосе подавления
нижняя полоса пропускания
частота режекции
верхняя полоса пропускания отклонение в полосе пропускания отклонение в полосе подавления
от 0 до 0,21,
0,25,
от 0,29 до 0,5,
0,00115 (находится из 201g(l + <У).
0,001 (находится из -201g(5s)).
от 0 до 0,21,
0,25,
от 0,29 до 0,5,
0,00115 (находится из 201g(l + <У).
0,001 (находится из -201g(5s)).
Весовые коэффициенты полос равны 1; 1,1519; 1 (из отношения 8P/6S). Результаты сведены в табл. 7.8 и на рис. 7.14. Обратите внимание на то, что при режекции полоса подавления состоит из единственной частоты.
Таким образом, в программу вводятся следующие граничные частоты: 0; 0,21; 0,25; 0,25; 0,29 и 0,5. Частота режекции вводится дважды, поэтому полоса подавления эффективно сжимается до одной частоты.
Пример 7.8
При разработке фильтра важно, чтобы разработчик понимал, как взаимодействуют параметры, чтобы при необходимости воспользоваться подходящими компромиссами. Данный пример помогает исследовать влияние параметров 8Р, 8S, W и изучить различные возможности выбора.
Требуется КИХ-фильтр с линейной фазовой характеристикой, подавляющий шум физио-логической природы [2]. Фильтр предполагается использовать как часть большой ЦОС-системы реального времени, так что число коэффициентов следует максимально сократить. Характеристики фильтра должны удовлетворять следующим спецификациям:
Таблица 7.8. Коэффициенты импульсной характеристики оптимального фильтра (пример 7.7)
Щ1) = Н( 2) = Я( 3) = Я(4) = Я(5) = Я(6) = Я(7) = Я(8) = Я(9) = Я(Ю) = Я(П) = Я(12) = Я(13) = Я(14) = Я(15) = Я(16) = Я(17) = Н(18) = Н(19) = 5(20) = Я(21) = Н^ = 5(23) = 5(24) = 5(25) = 5(26) = Н^ = 5(28) = 5(29) = 5(30) = Я(31) =
0,127436405 -02 = 5(61) 0,267306405 -05 = 5(60)
-0,236811105 - 02 = 5(59) -0,174163505 -05 = 5(58)
0,434284805 - 02 = 5(57) 0,535792505 - 05 = 5(56) -0,715702405 - 02 = 5(55) -0,490286205 - 05 = 5(54)
0,108975405 - 01 = 5(53) 0,896292805 - 05 = 5(52) -0,156059605 - 01 = 5(51) -0,855089905 - 05 = 5(50)
0,212264105 - 01=5(49)
0,122501505 - 04 = 5(48) -0,276301305 - 01 = 5(47) -0,110912005 - 04 = 5(46)
0,345797705 - 01=5(45)
0,138006605 - 04 = 5(44) -0,417741305 - 01 = 5(43) -0,115603905 - 04 = 5(42)
0,488327905 - 01 = 5(41) 0,127875905 - 04 = 5(40) -0,553598405 - 01 = 5(39) -0,900658605 - 05 = 5(38)
0,609444505 - 01=5(37)
0,889973005 - 05 = 5(36) -0,652321905 - 01 = 5(35) -0,381671205 - 05 = 5(34)
0,679257205 — 01 = 5(33) 0,270411505 — 05 = 5(32) 0,931152205 + 00 = 5(31)
Полоса 1
Полоса 2
Полоса 3
Нижняя граница полосы
0,000000000
0,250000000
0,290000000
Верхняя граница полосы
0,210000000
0,250000000
0,500000000
Искомое значение
1,000000000
0,000000000
1,000000000
Весовой коэффициент
1,000000000
1,151900000
1,000000000
Амплитуда колебаний
0,000978727
0,000849663
0,000978727
Неравномерность, дБ
0,008496785 -61,414990000
0,008496785
Экстремальные частоты
0,0000000
0,0161290
0,0322580
0,0483871
0,0645161
0,0806451
0,0962701
0,1123991
0,1280241
0,1431450
0,1582660
0,1728829
0,1864918
0,1980845
0,2066530
0,2100000
0,2500000
0,2900000
0,2930243
0,3020971
0,3136902
0,3272994
0,3414128
0,3565342
0,3721596
0,3877850
0,4034105
0,4195400
0,4356695
0,4517990
0,4679285
0,4840580
неравномерность в полосе пропускания <0,026 дБ,
полоса подавления>30дБ,
край полосы пропускания10 Гц,
край полосы подавления<20Гц,
частота дискретизации128кГц.
Решение
Нормированные граничные частоты, неравномерность характеристики в полосе пропускания и полосе подавления записываются следующим образом:
край полосы пропускания0,078,
край полосы подавления<0,15625,
максимальное отклонение в полосе пропускания <0,003, отклонение в полосе подавления>0,0316.
Поскольку большинство спецификаций фильтра — переменные, очевидно, будет существовать целый ряд возможных решений. Следовательно, необходимо найти наилучшее решение.
Подставляя приведенные выше значения в уравнение (7.14), получаем, что N > 25,6 (наименьшее возможное значение N\ Затем для каждого значения N в диапазоне 25-37 вычисляется удовлетворяющая спецификациям граничная частота полосы подавления Js:
fs = fp^M,
где /s и /р — граничные частоты полосы подавления и полосы пропускания, а △/ — ширина полосы перехода, которая определяется следующим образом (Д/тах = 20—10 Гц = 10 Гц):
На рис. 7.15 представлено пространство решений (над кривой), которое ограничено частотой полосы подавления в 20 Гц и N = 26 и 37. В качестве подходящего решения выбрано значение 27. Нечетное значение N предпочтительнее, поскольку так время задержки фильтра, измеренное в количестве выборок, будет целым. Использованы следующие параметры: полоса пропускания — от 0 до 0,078, полоса подавления — от 0,1523885 до 0,5 (т.е. от 19 до 64 Гц). Для полос пропускания и подавления выбраны соответственно весовые коэффициенты 10,5 и 1. Полученные в результате коэффициенты фильтра и параметры приведены в табл. 7.9. Из параметров фильтра и спектра (не приводится) видно, что спецификация удовлетворяется.
Рис. 7.15. Зависимость положения края полосы подавления от длины фильтра с указанным диапазоном возможных решений
Метод частотной выборки
Метод частотной выборки позволяет разрабатывать нерекурсивные КИХ-фильтры, в число которых входят как обычные частотно-избирательные фильтры (фильтры нижних частот, верхних частот, полосовые), так и фильтры с произвольной частотной характеристикой. Уникальное достоинство метода частотной выборки заключается в том, что он допускает рекурсивные реализации КИХ-фильтров, что позволяет получать вычислительно эффективные фильтры. При некоторых условиях можно даже разработать рекурсивные КИХ-фильтры, коэффициенты которых — целые числа, что удобно, если допустимы только примитивные арифметические операции (это справедливо, например, для систем, реализованных на стандартных микропроцессорах).
Нерекурсивные фильтры частотной выборки
Предположим, что требуется получить коэффициенты КИХ-фильтра, частотная характеристика которого изображена на рис. 7.16, а. Для начала можно взять N выборок частотной характеристики в точках kFa/n, к — 0,1,... ,N — 1. Коэффициенты фильтра Цп) можно получить, применив обратное ДПФ к частотным выборкам:
Цп) = ^^ н^е^^,(7.16)
А:=0
где Н^, к — 0,1,... ,N — 1 — выборки идеальной или целевой частотной характеристики.
Н( 1) =
-0,136149605 - 01
= Я(27)
Щ 2) =
0, 347933305 - 02
= Я(26)
Щ 3) =
0,111404205 - 01
= Я(25)
Н( 4) =
0,166645405 - 01
= Я(24)
Я( 5) =
0,128073405 - 01
= Я(23)
Щ 6) =
-0,332021105 - 02
= Я(22)
Я( 7) =
-0,261671705 - 01
= Я(21)
Я( 8) =
-0,420477905 - 01
= Я (20)
Н( 9) =
-0,347670405 - 01
= Я(19)
Я(Ю) =
0,553386305 - 02
= Я(18)
Я(11) =
0, 750720905 - 01
= ^(17)
Я(12) =
0,155278105 + 00
= Я(16)
Я(13) =
0,219336805 + 00
= Я(15)
Я(14) =
0,243783305 + 00
= Я(14)
Полоса 1
Полоса 2
Нижняя граница полосы 0,060000000
0,152388500
Верхняя граница полосы 0,078000000
0,500000000
Искомое значение1,000000000
0,000000000
Весовой коэффициент 10,500000000
1,000000000
Амплитуда колебаний 0,002604177
0,027343860
Неравномерность, дБ 0,022589730
-31,262770000
Экстремальные частоты
0,00892860,04687500,06919640,07800000,1523885
0,16689740,19814730,23386140,27069160,3086379
0,34658420,38453050,42359280,46153910,5000000
Можно показать (см. пример 7.9), что для фильтров с линейной фазовой характеристикой и четно-симметричной импульсной характеристикой можно записать (если N — четное)
ад = ^ад = ^4V/2-1'
ад = ^
ад = ^
(7.17)(7.17)52 2Я|(£) | со8[2тгА:(п - a^/N^ + Я(0) _ к=1
(7.17)
(7.17)
где а = (N — 1)/2. Если N — нечетное, верхним пределом суммы является (Я — 1)/2. Получающийся фильтр будет иметь частотную характеристику, которая в точности совпадает с исходной характеристикой в моменты выборки. В то же время, для разных моментов выборки характеристики могут сильно отличаться (рис. 7.16, в). Для получения хорошей аппроксимации частотной характеристики нужно взять достаточное число частотных выборок.
Альтернативный фильтр (фильтр типа 2), построенный по принципу частотной выборки, получается, если выборки брать в точках
fk = (к + 1/2)Я,/Я, к = 0,1,...,N -1.(7.18)
Две схемы частотной выборки сравниваются на рис. 7.17. При данной спецификации фильтра оба метода дадут несколько отличные частотные характеристики. Задача разработчика — определить, какой фильтр лучше подходит для поставленной задачи.
|Я(<а)||Я(<а)|00Л <0 а)Л <0 а)02468101214 к02468101214 кРис. 7.16. Понятие частотной выборки: а) частотная характеристика идеального фильтра нижних частот; б) выборки идеального фильтра нижних частот; в) частотная характеристика фильтра нижних частот, выведенная из частотных выборок панели бРис. 7.16. Понятие частотной выборки: а) частотная характеристика идеального фильтра нижних частот; б) выборки идеального фильтра нижних частот; в) частотная характеристика фильтра нижних частот, выведенная из частотных выборок панели б
|Я(<а)|
|Я(<а)|
0
0
Л <0 а)
Л <0 а)
02468101214 к
02468101214 к
Рис. 7.16. Понятие частотной выборки: а) частотная характеристика идеального фильтра нижних частот; б) выборки идеального фильтра нижних частот; в) частотная характеристика фильтра нижних частот, выведенная из частотных выборок панели б
Рис. 7.16. Понятие частотной выборки: а) частотная характеристика идеального фильтра нижних частот; б) выборки идеального фильтра нижних частот; в) частотная характеристика фильтра нижних частот, выведенная из частотных выборок панели б
Пример 7.9
Покажите, что коэффициенты импульсной характеристики КИХ-фильтра с линейной фазовой характеристикой, четно-симметричными коэффициентами при N — четном можно выразить следующим образом:
h^ = ^h^ = ^"N/2-1'
h^ = ^
h^ = ^
52 2Я|(/с)| cos[2Trfc(n — а)/Я] + Я(0)
. к=1.
где а = (N — 1)/2 и N(k) — выборки частотной характеристики фильтра, взятые в точках kF,/N.
Требуется, чтобы КИХ-фильтр нижних частот удовлетворял следующим спецификациям:
полоса пропускания0-5 кГц,
частота дискретизации 18 кГц,
длина фильтра9.
Получите коэффициенты фильтра, использовав метод частотной выборки.
Решение 1.
N-1
(7.19)(7.19)Цп) = N^ HWei(2,t,N)nk = к=0
(7.19)
(7.19)
Рис. 7.17. Четыре возможные структуры выборки для двух типов фильтров (изображены на комплексной плоскости)
I СУ
= N 2 I*™fc=O
^—i2irak/N ^i2irkn/N
1 Л,-1
= N E=
k=0
1
= — У^ |Я(/с)| cos[2Tr(n — a)/N^ + г sin[27r(n — a^/N^ —
N-l
= N^ 1^)1 cos [2тг(п - a)/NV k=0
(7.20)
поскольку /i(n) — целиком действительная функция. В важном частном случае линейной фазовой характеристики /г(п) будет симметричной, так что можно записать
ад = S
"N/2—1
J2 2|H(k)|cos[2Tr(n - a^/N + Я(0)] . fc=0
(7.21)
Если N — нечетное, верхняя граница суммы — (7V — 1)/2.
2. Идеальная частотная характеристика изображена на рис. 7.18, а. Частотные выборки берутся в точках kFs/N, те. с интервалом 18/9 = 2 кГц. Итак, частотные выборки
Рис. 7.18. Идеальная частотная характеристика, на которой показаны точки выборки (панель а). Частотная характеристика фильтра, построенного по принципу частотной выборки (панель б)
Таблица 7.10. Нерекурсивные коэффициенты КИХ-фильтра из примера 7.9
7,2522627е - 02
= /г[8]
-1,11111116-01
= /i[7]
М2] =
-5,9120987е - 02
= /г[6]
^[3] =
3,19931696 - 01
= /i[5]
^[4] =
5,5555556е - 01
= М4]
представлены следующим образом:
|Я(к)|=1 к = 0,1,20 к = 3,4
Используя уравнение (7.21) с верхним пределом (N — 1)/2 и частотные выборки, получаем коэффициенты импульсной характеристики (см. табл. 7.10).
С помощью программы вычисления коэффициентов КИХ-фильтра по данным значениям частотных выборок ([Ifeachor, 2001]) получаем частотную характеристику фильтра, приведенную на рис. 7.18, б. Видно, что фильтр имеет плохую амплитудную характеристику, что вызвано резким переходом полосы пропускания (где |Я(/с)| = 1) в полосу подавления (где |Я(А:)| = 0).
Рис. 7.19. Частотные выборки фильтра нижних частот, включая три выборки в полосе перехода. Примечание', поскольку амплитудная характеристика симметрична, показана только половина характеристики фильтраРис. 7.19. Частотные выборки фильтра нижних частот, включая три выборки в полосе перехода. Примечание', поскольку амплитудная характеристика симметрична, показана только половина характеристики фильтра
Рис. 7.19. Частотные выборки фильтра нижних частот, включая три выборки в полосе перехода. Примечание', поскольку амплитудная характеристика симметрична, показана только половина характеристики фильтра
Рис. 7.19. Частотные выборки фильтра нижних частот, включая три выборки в полосе перехода. Примечание', поскольку амплитудная характеристика симметрична, показана только половина характеристики фильтра
Оптимизация амплитудной характеристики
Описанная выше задача сродни задаче с прямоугольной весовой функцией. Напомним, что в методе вырезания можно пожертвовать более широкой полосой передачи для улучшения амплитудной характеристики. Чтобы улучшить амплитудную характеристику фильтров, полученных по принципу частотной выборки, можно отказаться от более широкой полосы перехода и ввести в полосу перехода дополнительные частотные выборки. На рис. 7.19 приведена типичная спецификация фильтра нижних частот с тремя частотными выборками в полосе перехода. Для фильтра нижних частот затухание в полосе подавления увеличивается приблизительно на 20 дБ для каждой частотной выборки в полосе перехода [15] с соответствующим увеличением ширины перехода:
приблизительное затухание в полосе подавления (25 + 20М) дБ, приблизительная ширина перехода(Л/ + l^FJN.
Здесь М — число выборок в полосе перехода, N — длина фильтра.
Значения выборок в полосе перехода, которые дают оптимальное затухание в полосе подавления, определяются через процесс оптимизации [15]. Полезной целью оптимизации является поиск значений выборок в полосе перехода, Т\,Т2,... ,ТМ, которые минимизируют максимальную неравномерность в полосе перехода (т.е. максимизируют затухание в полосе подавления). Математически это можно сформулировать так:
минимизировать 71, Т2,..., Ттминимизировать 71, Т2,..., Тттах|ТУ№(ш)-Я(ш)]|(ш принадлежит полосе подавления}тах|ТУ№(ш)-Я(ш)]|(ш принадлежит полосе подавления}(7.22)(7.22)
минимизировать 71, Т2,..., Тт
минимизировать 71, Т2,..., Тт
тах|ТУ№(ш)-Я(ш)]|(ш принадлежит полосе подавления}
тах|ТУ№(ш)-Я(ш)]|(ш принадлежит полосе подавления}
(7.22)
(7.22)
где HD(w) и Н(ш) — идеальная и реальная частотные характеристики фильтра соответственно; W — весовой коэффициент.
В работе [15] приводится таблица оптимальных (согласно уравнению (7.22)) значений частотных выборок в полосе перехода, причем эти значения довольно широко используются на практике. Пример оптимальных значений выборок в полосе перехода приведен в табл. 7.11 для ^ = 15. В этой таблице шириной полосы называется число частотных выборок в полосе пропускания фильтра.
Таблица 7.11. Оптимальные частотные выборки в полосе перехода для фильтров нижних частот типа 1, полученных методом частотной выборки для ^ = 15 (адаптировано из [15])
ШП
Затухание в полосе подавления (дБ)
71
т2
Т3
Одна выборка в полосе перехода, N = 15
1
42,309 322 83
0,433 782 96
2
41,262 992 86
0,417 938 23
3
41,253 337 86
0,410 473 63
4
41,949 077 13
0,404 058 84
5
44,371 245 38
0,392 681 89
6
56,014 165 88
0,357 665 25
Две выборки в полосе перехода, N = 15
1
70,605 405 85
0,095 001 22
0,589 954 18
2
69,261 681 56
0,103 198 24
0,593 571 18
3
69,919 734 95
0,100 836 18
0,589 432 70
4
75,511 722 56
0,084 074 93
0,557 153 12
5
103,460 783 00
0,051 802 06
0,499 174 24
Три выборки в полосе перехода, N = 15
1
94,611 661 91
0,014 550 78
0,184 578 82
0,668 976 13
2
104,998 130 80
0,010 009 77
0,173 607 13
0,659 515 26
3
114,907 193 18
0,008 734 13
0,163 973 10
0,647 112 64
4
157,292 575 84
0,003 787 99
0,123 939 63
0,601 811 54
В данном контексте ширина полосы (ШП) — это число частотных выборок в полосе пропускания.
В большинстве случаев значения частотных выборок в полосе перехода обычно принадлежат следующим диапазонам: для одной частотной выборки в полосе перехода
0,250 < 1\ < 0,450;
для двух частотных выборок в полосе перехода
0,040 <Т\ < 0,150,
0,450 <Т2 < 0,650;
для трех частотных выборок в полосе перехода
0,003 <ТХ < 0,035,0,100 <Т2 < 0,300,0,550 <Т3 < 0,750.
Более низкие значения используются в фильтрах с более широкими полосами и дают большее затухание в полосе подавления.
Пример 7.10
Пятнадцатиточечный КИХ-фильтр с линейной фазовой характеристикой представлен следующими частотными выборками:
№)|=1 fc = 0,1,2,3,
0 к = 4,5,6,7.
Предполагая, что частота дискретизации равна 2 кГц, определите частотную характеристику.
Сравните частотную характеристику фильтра, если а) используется одна частотная выборка в полосе перехода; б) используются две частотные выборки в полосе перехода; в) используются три частотные выборки в полосе перехода.
Решение
Вводя частотные выборки в программу разработки fresamp.c (см. приложение), получаем коэффициенты фильтра, которые приведены в столбце 2 табл. 7.12. Соответствующая частотная характеристика приведена на рис. 7.20, а.
В ситуации а значение частотной выборки в полосе перехода находим из табл. 7.11 — оно равно 0,4041. Следовательно, получаем такие выборки:
№)|=1 fc = 0,1,2,3,
0,40406 к = 4,
0 к = 5,6,7.
Вводя эти частотные выборки в программу, вычисляем коэффициенты фильтра (сведены в табл. 7.12). Соответствующая частотная характеристика приведена на рис. 7.20, б.
В ситуации бив частотные выборки определяются аналогичным образом:
№)1 =1
0,5571
fc = 0,1,2,3,
к = 4,
0,0841
к = 5,
0
fc = 6,7,
№)1 =1
0,6018
fc = 0,1,2,3, к = 4,
0,1239
к = 5,
0,0038
к = 6,
0
к = 7.
1,2000
1,0000
0,8000
0,6000
0,4000
0,2000
О 0,1250,2500,3750.50000,1250,2500,3750,500/(Гц)х2х103/(Ги)х2х1О3О 0,1250,2500,3750.50000,1250,2500,3750,500/(Гц)х2х103/(Ги)х2х1О3Рис. 7.20. Частотная характеристика фильтра частотной выборки при следующих условиях: а) в полосе перехода нет частотных выборок; б) одна выборка в полосе перехода; в) две выборки в полосе перехода; г) три выборки в полосе переходаРис. 7.20. Частотная характеристика фильтра частотной выборки при следующих условиях: а) в полосе перехода нет частотных выборок; б) одна выборка в полосе перехода; в) две выборки в полосе перехода; г) три выборки в полосе перехода0.0000
О 0,1250,2500,3750.50000,1250,2500,3750,500
/(Гц)х2х103/(Ги)х2х1О3
О 0,1250,2500,3750.50000,1250,2500,3750,500
/(Гц)х2х103/(Ги)х2х1О3
Рис. 7.20. Частотная характеристика фильтра частотной выборки при следующих условиях: а) в полосе перехода нет частотных выборок; б) одна выборка в полосе перехода; в) две выборки в полосе перехода; г) три выборки в полосе перехода
Рис. 7.20. Частотная характеристика фильтра частотной выборки при следующих условиях: а) в полосе перехода нет частотных выборок; б) одна выборка в полосе перехода; в) две выборки в полосе перехода; г) три выборки в полосе перехода
Коэффициенты для этих задач приведены в четвертом и пятом столбцах табл. 7.12. Соответствующие частотные характеристики изображены на рис. 7.20, виг. Видно, что по мере увеличения числа выборок в полосе перехода амплитудная характеристика улучшается (с позиции неравномерности в полосе пропускания и полосе подавления) за счет увеличения ширины перехода или сглаживания характеристики.
Альтернативный подход, который можно использовать для улучшения амплитудной характеристики, — получить большое число частотных выборок, проводя дискретизацию через меньшие интервалы, вычислив импульсную характеристику с помощью формулы (7.21), а затем применив одну из рассмотренных ранее весовых функций, чтобы сократить фильтр до нужной длины.
7.7.1.2. Автоматическая разработка фильтров частотной выборки
Как отмечалось ранее, существуют таблицы оптимальных значений частотных выборок в полосе перехода (см., например, [15]), и эти таблицы широко используются для разработки фильтров частотной выборки. Если разработчик хочет создать фильтр, данных для которого нет в таблице, то с помощью линейной интерполяции можно получить приблизительные значения частотных выборок в полосе перехода. Однако это
Таблица 7.12. Коэффициенты нерекурсивного фильтра при различном числе выборок в полосе перехода
Нет выборок в полосе перехода
Одна выборка в полосе перехода
Две выборки в полосе перехода
Три выборки в полосе перехода
Мо] =
-4,9815884с - 02
-1,3766696с-02
-5,7195305с - 03
-4,2282741с - 03
ад =
4,1202267с - 02
-2,3832554с - 03
-7,6781827с-03
-7,6031627с-03
М2] =
6,6666666с - 02
3,9729333с - 02
2,3920000с - 02
1,8793332с-02
Ф] =
-3,6487877с - 02
1,2729081с-02
2,5763613с-02
2,8145113с-02
М4] =
-1,0786893с-01
-9,1220745с - 02
-7,3701817с-02
-6,6396840с - 02
М5] =
3,4078020с - 02
-1,8619356с-02
-4,4185450с-02
-5,2511978с-02
/i[6] =
3,1889241с-01
3,1326097с - 01
3,0552137с-01
3,0183514с-01
М7] =
4,6666667с - 01
5,2054133с-01
5,5216000с - 01
5,6393334с - 01
Поскольку коэффициенты симметричны, представлена только первая их половина.
возможно не всегда, особенно если требуется большое число выборок в полосе перехода. Более того, информация в таблицах приводится не в том виде, к которому привыкли разработчики фильтров; например, не указываются края полос и неравномерность в полосе пропускания. Не так давно была разработана универсальная компьютерная программа, автоматизирующая многие аспекты разработки нерекурсивных и рекурсивных фильтров частотной выборки [3, 15]. По сути, в этой программе значения выборок в полосе перехода оптимизируются с помощью смешанного генетического алгоритма. Цель оптимизации — получить максимальное затухание в полосе подавления для данного набора спецификаций фильтра. Использованный подход тестировался на предмет соответствия табличным результатам, приведенным в литературе, и в каждом случае признавался равносильным или более удачным. Кроме того, данная программа позволяет разрабатывать непротабулированные фильтры.
Пример 7.11
Найдите оптимальные выборки в полосе перехода и соответствующие коэффициенты для фильтра нижних частот, согласно таким спецификациям:
край полосы пропускания0,143 (нормировано),
край полосы подавления0,245 (нормировано),
число коэффициентов фильтра 49.
Решение
Из спецификации следует, что число частотных выборок N = 49. Номера выборок, соответствующих краям полосы пропускания и полосы подавления, равны соответственно 6 и 12. Число выборок в полосе перехода М = 5. Следовательно, частотные выборки идеальной амплитудно-частотной характеристики имеют вид
|Я(к)| =1, А: = 0,1,... ,6,
Тк_6, к = 7,... ,11, 0, к = 12,..., 24.
0,4
-0,1 НИЖ t И Н1I Н 1111111111 Н 11111111 Н 11111111111 и-0,1 НИЖ t И Н1I Н 1111111111 Н 11111111 Н 11111111111 и1591317212529 33 37 4145 496)1591317212529 33 37 4145 496)Рис. 7.21. Интерполированная частотная характеристика (панель «); коэффициенты фильтра (панель б). Неравномерность в полосе пропускания — 0,046 дБ; затухание в полосе подавления — 139,64 дБ; ширина полосы пропускания — 0,15; пять выборок в полосе перехода; 49 коэффициентов фильтра. Значения выборок в полосе перехода — 0,855456; 0,485507; 0,148961; 0,019693; 0,000644Рис. 7.21. Интерполированная частотная характеристика (панель «); коэффициенты фильтра (панель б). Неравномерность в полосе пропускания — 0,046 дБ; затухание в полосе подавления — 139,64 дБ; ширина полосы пропускания — 0,15; пять выборок в полосе перехода; 49 коэффициентов фильтра. Значения выборок в полосе перехода — 0,855456; 0,485507; 0,148961; 0,019693; 0,000644
-0,1 НИЖ t И Н1I Н 1111111111 Н 11111111 Н 11111111111 и
-0,1 НИЖ t И Н1I Н 1111111111 Н 11111111 Н 11111111111 и
1591317212529 33 37 4145 49
6)
1591317212529 33 37 4145 49
6)
Рис. 7.21. Интерполированная частотная характеристика (панель «); коэффициенты фильтра (панель б). Неравномерность в полосе пропускания — 0,046 дБ; затухание в полосе подавления — 139,64 дБ; ширина полосы пропускания — 0,15; пять выборок в полосе перехода; 49 коэффициентов фильтра. Значения выборок в полосе перехода — 0,855456; 0,485507; 0,148961; 0,019693; 0,000644
Рис. 7.21. Интерполированная частотная характеристика (панель «); коэффициенты фильтра (панель б). Неравномерность в полосе пропускания — 0,046 дБ; затухание в полосе подавления — 139,64 дБ; ширина полосы пропускания — 0,15; пять выборок в полосе перехода; 49 коэффициентов фильтра. Значения выборок в полосе перехода — 0,855456; 0,485507; 0,148961; 0,019693; 0,000644
Значения от Т\ до Т5 не заданы и находятся в процессе оптимизации с помощью программы смешанного генетического алгоритма. Результаты процесса оптимизации сведены на рис. 7.21.
Хотя смешанный генетический алгоритм дает результаты, которые несколько лучше, чем приведенные в литературе, его основное достоинство — возможность быстро получить коэффициенты непротабулированных фильтров. Причем в этом случае коэффициенты гораздо лучше тех, что получаются по схеме интерполяции. Кроме того, так можно разрабатывать фильтры с большим числом выборок в полосе перехода.
Рекурсивные фильтры частотной выборки
Фильтры частотной выборки в рекурсивной форме значительно выгоднее вычислительно, чем фильтры в нерекурсивной форме, если значительное число частотных выборок имеет нулевые значения. Можно показать (см. пример 7.12), что передаточную функцию КИХ-фильтра H(z) можно следующим образом записать в рекурсивном виде:
НИ =£ ! _ Д«г-, = HWA (7.23)
fc=0
гдегде\-z"N
где
где
N
x - e2”ik/Nz-Vk=0
Таким образом, очевидно, что в рекурсивной форме H(z) можно рассматривать как каскад из двух фильтров: гребенчатого фильтра Щ^, который имеет N нулей, равномерно распределенных на единичной окружности, и суммы N фильтров с одним полюсом H^zY Нули гребенчатого фильтра и полюса однополюсных фильтров совпадают на единичной окружности в точках zk = e1Tk,N. Следовательно, нули компенсируют полюса, и поскольку H(z) не имеет полюсов, то это — конечная импульсная характеристика (КИХ).
^) =^) =1 N —N 11 _ г^г иN /с=01 N —N 11 _ г^г иN /с=0Н(Мy»g2Trife / N Z— 1Н(Мy»g2Trife / N Z— 1(7.24)(7.24)На практике конечная длина слова приводит к тому, что полюса H2(z^ располагаются не точно на единичной окружности, так что они уже не уравновешиваются нулями и H(z) становится потенциально неустойчивой бесконечной импульсной характеристикой (БИХ). Проблем устойчивости можно избежать, дискретизируя Н(z) на окружности радиуса г, который незначительно меньше единицы. В этом случае передаточная функция становится такой:
^) =
^) =
1 N —N 1
1 _ г^г и
N /с=0
1 N —N 1
1 _ г^г и
N /с=0
Н(М
y»g2Trife / N Z— 1
Н(М
y»g2Trife / N Z— 1
(7.24)
(7.24)
Вообще, частотные выборки Н(к) — это комплексные величины. Следовательно, непосредственная реализация уравнения (7.23) или (7.24) потребует комплексной арифметики. Чтобы избежать этого усложнения, воспользуемся симметрией, присущей частотной характеристике любого КИХ-фильтра с действительной импульсной характеристикой /i(n). Можно показать (см. пример 7.12), что для обычного частотно-избирательного фильтра с линейной фазовой характеристикой (четно-симметричная импульсная характеристика) уравнение (7.24) можно представить в виде
Н^ =Н^ =\-rNz-NN Х\-rNz-NN Х
Н^ =
Н^ =
\-rNz-N
N Х
\-rNz-N
N Х
(7-25)(7-25)
(7-25)
(7-25)
\Н(к’)\‘2со8(2тгка/N") — 2rcos\2irk(l + a)/N^z 17/(0)
“1 — 2r cos(2Trfc/7V)z-1 + r2z-21 — z-1
где а = (N — 1)/2. При нечетном N М = (N — 1)/2, при четном N М = N/2 — 1. Диаграмма реализации уравнения (7.25) приведена на рис. 7.22.
Фильтры частотной выборки с простыми коэффициентами
Рекурсивная реализация КИХ-фильтров значительно уменьшает число арифметических операций, производимых в цифровых фильтрах. Если фильтр к тому же имеет коэффициенты, которые являются просто целыми числами (или степенями двойки),
Рис. 7.22. Диаграмма реализации фильтра частотной выборки значительно повышается его вычислительная эффективность, что необходимо в приложениях, где используются процессоры с примитивными арифметическими операциями (как обычные микропроцессоры). В работе [8], например, было разработано целое семейство фильтров частотной выборки с небольшими целыми коэффициентами.
Впрочем, получить целые коэффициенты можно, только если наложить определенные условия на положение полюсов передаточной функции (формула (7.25)). Данное утверждение можно сформулировать и так: полосы пропускания фильтров с целыми коэффициентами можно центрировать только на определенных частотах. Отметим, что, поскольку коэффициенты — целые, полюса можно разместить на единичной окружности и добиться идеального расположения. Фильтры, полученные описанным способом, представляют собой частные случаи фильтров частотной выборки.
Пример 7.12
N-1п=0N-1п=0Передаточная функция КИХ-фильтра определена следующим образом:
N-1
п=0
N-1
п=0
(7.26, а)
Начав с приведенного выражения, покажите, что Н^ для КИХ-фильтра с линейной фазовой характеристикой и четно-симметричной импульсной характеристикой можно следующим образом выразить в рекурсивной форме:
Н^ =Н^ =X_rNz-NN ХX_rNz-NN Х
Н^ =
Н^ =
X_rNz-N
N Х
X_rNz-N
N Х
1^(^)12008(2^/^) - 2rcos[27rfc(l +a)/^z~1 Нф)
1 — 2r cos(2Trfc/7V)z-1 + r2z"21 — z-1
где а = (N — 1)/2, а Н(к) — выборки частотной характеристики фильтра, взятые в точках kFs/N.
Требуется, чтобы фильтр нижних частот удовлетворял следующим спецификациям: полоса пропускания0-4 кГц,
частота дискретизации 18 кГц, длина фильтра9.
Найдите передаточную функцию фильтра в рекурсивной форме, используя метод частотной выборки и учитывая, что радиус равен г = 1. Изобразите диаграмму реализации и сравните ее вычислительную сложность со сложностью реализации КИХ в прямой форме.
Решение
Импульсную характеристику фильтра можно определить через его частотные выборки:
£ H(k)rne2nink/N к = 0,1,...Л-1,г <1.(7.26,6)
/с=0
Используя уравнения (7.26, а и б), получаем следующую передаточную функцию H(z):
N-1N-1 Г N — 1'
п=0п=0 _,
Меняя порядок суммирования, получаем
(7.27)(7.27)- N — 1(N-1
(7.27)
(7.27)
/с=0п=0
Далее сумму геометрической прогрессии можно выразить как
11 _ IN
п=0
В нашем случае при б = T^tk/N г i можно записать 1 _-1\N -I _ N-2nik -N
г -2™k/N -lln 1 Vе z )_ 1 T e z
2—Л| p^iKik/N ~-l| p^2irik/N 2~1
n=0
1 -rnz~N
| -p^2irik/N 2—1 ’
поскольку e2,ri,c = cos(2Trfc) = 1, к = 0,1,...
Следовательно, формулу (7.27) можно переписать так:
(7.28)(7.28)ЯИ = Е= =ШНМ
(7.28)
(7.28)
к=0
77 М = V W
J _ Te2nikjN Z-1 '
Далее, разложение Н2^ имеет вид
2' '1 — TZ-1 ' 1 — re27ri/N2-l ' | _ re2ni2/NZ-1 '
H^N-^H(N-l)
+_ re2m(N-2)/N Z-11 _ re2Tti(.N-l)/NZ-1 "
Для фильтра с действительными коэффициентами справедливо следующее условие симметрии:
Н(Ц ^H\N -k),e2^N~k^NН(Ц ^H\N -k),e2^N~k^Ne-2itik/Ne-2itik/N
Н(Ц ^H\N -k),e2^N~k^N
Н(Ц ^H\N -k),e2^N~k^N
e-2itik/N
e-2itik/N
Таким образом, можно записать H2(z)
21 — TZ~11 — Tg2-ni/N z—1| — rg2jri2/JV2—1
' ■ ■ ■ ' 1 _ Te-2Tti2(NZ-1 ' J _ Te-2iti(NZ-1 "
Итак, полюсы появляются комплексно-сопряженными парами (исключая одно значение при к = 0, если N — нечетное, и два при к = 0 и к = N/2, если N — четное).
Для фильтров с линейной фазовой характеристикой и четной длиной H(N/2) = 0. Объединяя для fc-ro полюса комплексно-сопряженные фрагменты, получим
н м =, НЧМ =
2'- ' у _ re2Kik/NZ-1 ‘ у _ re-2itik/NZ-1
(1 29)
(J ^g2irik/N 2—1)(1 ^g—27ri/c/N^-l)*
Знаменатель упрощается до вида
(1 - re^^z-1)^ - re-^^z-1) = 1 - 2r cos(27rfc/^z-1 + t2z~2.(7.30)
Для фильтра с линейной фазовой характеристикой и четно-симметричной импульсной характеристикой Н(к) выражается следующим образом:
H(k^ = [Я^е-2™^,
где а = (N — 1)/2. Таким образом, числитель можно упростить до такого вида: \H(k)\e-2,vika/N(1 - re-2^k'Nz"1) + |Я(А:)|е2’г^/ЛГ(1 - re2Tik/Nz^ = = |Я(А:) | [e-2™*0^(1 - re~2^k/Nz"1) + е2^ка(М^. - re2^k/N z^}] =
_ |Я(А:)|(е-2’г’*:“^ — re-^k/N e-2^fca/N z-i + Q2’nika/N — re2^ika/Ne-2ittk/Nz-i) _
= \H(k)\ ^cos^ka/N) - ^re-2™k^/N Z"y + re2”^^=
= |Я(к)| {2соз(2тгА:а!/Я) — 2r cos[27rfc(l + а)/Я]г-1} .
(7.31)
Объединяя формулы (7.30) и (7.31), H(z) можно записать в виде
l — rNz~N ^-\ \H(k')\\2cos(2itka/N') — 2rcos[2Trfc(l + а)/Я]г-1]
N “1 — 2г cos(27rfc/N)z-1 + r2z-2(7.32, а)
. Я(0) "
1 — rz-1
Если N нечетное, М — (N — 1)/2, если же четное, М = (Я/2) - 1.
При N = 9 характеристика выбирается через интервал 18/9 = 2 кГц. Следовательно, частотные выборки определяются как
|Я(к)| =1,fc = 0,1,2,
0,к = 3,4.
В этом случае а = (N — 1)/2 = (9 - 1)/2 = 4 и г = 1.
Из уравнения (7.32, а), используя приведенные выше значения частотных выборок, получаем следующую функцию Я (г):
^) =
1 - г~9 2|Я(1)|{соз(2тг4/9) — cos[27r5/9]z-1}
91 — 2cos(27r/9)z-1 + z-2"*"
2|Я(2)|{соз(2тг х 2 х 4/9) — cos[2tt х 2 х 5/9]z—1}
1 — 2cos(4tt/9)z- + z-2
Далее находим значения cos(8tt/9) = -0,9397, cos(10tt/9) = —0,9397, cos(2tt/9) = 0,7660, cos(16tt/9) = 0,7660, cos(20tt/9) = 0,7660 и cos(4tt/9) = 0,1736. Подставляя эти значения в уравнение выше, получаем:
H(z) =
1-z-9 [2{-0,9397 +0,9397г-1} ,
”9[ 1 -2 x 0,7660г-1+Z-"1"
, 2(0,7660 - 0,7660г-1} ,
Диаграмма реализации данного уравнения приведена на рис. 7.23. Вычислительная сложность непосредственной реализации фильтра и реализации через частотные выборки приводится ниже.Диаграмма реализации данного уравнения приведена на рис. 7.23. Вычислительная сложность непосредственной реализации фильтра и реализации через частотные выборки приводится ниже.прямая реализация реализация через выборкипрямая реализация реализация через выборкиЧисло операцийсложения810Число операцийсложения810Число операцийумножения97Число операцийумножения97ПамятьПамять18251825На основе данных рис. 7.23 получаем следующие разностные уравнения:На основе данных рис. 7.23 получаем следующие разностные уравнения:^'(тг) У1(п) w2(n) Уз^ w3(n) Уз(п) yW^'(тг) У1(п) w2(n) Уз^ w3(n) Уз(п) yW= (l/9)[a;(n) — z(n — 9)],= a/(n) + y(n - 1),= l,5320w2(n — 1) — w2(n — 2) + x'(n),= -l,8794w2(n) + l,8794w2(n - 1),= 0,3472w3(n — 1) — w3(n — 2) + x'(n), = 1,5320w3(n) - 1,5320w3(n - 1).У1(п) + y2(n) + y3(n^= (l/9)[a;(n) — z(n — 9)],= a/(n) + y(n - 1),= l,5320w2(n — 1) — w2(n — 2) + x'(n),= -l,8794w2(n) + l,8794w2(n - 1),= 0,3472w3(n — 1) — w3(n — 2) + x'(n), = 1,5320w3(n) - 1,5320w3(n - 1).У1(п) + y2(n) + y3(n^(1.32, 6)(1.32, 6)+ 1 -2 x 0,1736г-1 + г-2 +
Диаграмма реализации данного уравнения приведена на рис. 7.23. Вычислительная сложность непосредственной реализации фильтра и реализации через частотные выборки приводится ниже.
Диаграмма реализации данного уравнения приведена на рис. 7.23. Вычислительная сложность непосредственной реализации фильтра и реализации через частотные выборки приводится ниже.
прямая реализация реализация через выборки
прямая реализация реализация через выборки
Число операцийсложения810
Число операцийсложения810
Число операцийумножения9
7
Число операцийумножения9
7
Память
Память
18
25
18
25
На основе данных рис. 7.23 получаем следующие разностные уравнения:
На основе данных рис. 7.23 получаем следующие разностные уравнения:
^'(тг) У1(п) w2(n) Уз^ w3(n) Уз(п) yW
^'(тг) У1(п) w2(n) Уз^ w3(n) Уз(п) yW
= (l/9)[a;(n) — z(n — 9)],
= a/(n) + y(n - 1),
= l,5320w2(n — 1) — w2(n — 2) + x'(n),
= -l,8794w2(n) + l,8794w2(n - 1),
= 0,3472w3(n — 1) — w3(n — 2) + x'(n), = 1,5320w3(n) - 1,5320w3(n - 1).
У1(п) + y2(n) + y3(n^
= (l/9)[a;(n) — z(n — 9)],
= a/(n) + y(n - 1),
= l,5320w2(n — 1) — w2(n — 2) + x'(n),
= -l,8794w2(n) + l,8794w2(n - 1),
= 0,3472w3(n — 1) — w3(n — 2) + x'(n), = 1,5320w3(n) - 1,5320w3(n - 1).
У1(п) + y2(n) + y3(n^
(1.32, 6)
(1.32, 6)
Рис. 7.23. Диаграмма реализации для фильтра частотной выборки из примера 7.12Рис. 7.23. Диаграмма реализации для фильтра частотной выборки из примера 7.12
Рис. 7.23. Диаграмма реализации для фильтра частотной выборки из примера 7.12
Рис. 7.23. Диаграмма реализации для фильтра частотной выборки из примера 7.12
Пример 7.13
Получите передаточную функцию и разностное уравнение для следующих фильтров.
Рекурсивный КИХ-фильтр нижних частот с целыми коэффициентами, удовлетворяющий следующим спецификациям:
центральная частота 0 Гц,
частота дискретизации 18 кГц.
Рекурсивный полосовой КИХ-фильтр с целыми коэффициентами, удовлетворяющий следующим спецификациям:
центральная частота 3 Гц,
частота дискретизации 12 кГц.
Решение
Если N = 9, интервал между частотными выборками будет равен 18/9 = 2 кГц. Диаграмма нулей и полюсов для такого выбора изображена на рис. 7.24, а, а соответствующая амплитудная характеристика — на рис. 7.24, б. Из рис. 7.24, а следует, что передаточная функция имеет вид
Я(г) =Я(г) =1 -191-z"1"1 -191-z"1"
Я(г) =
Я(г) =
1 -1
91-z"1"
1 -1
91-z"1"
Соответствующее разностное уравнение имеет вид
y(n) = у(п - 1) + (1/9)[х(п) - т(п - 9)].
Рис. 7.24. Диаграмма нулей и полюсов (панель а). Схематическое изображение амплитудной характеристики рекурсивного КИХ-фильтра с целыми коэффициентами (панель б). Диаграмма нулей и полюсов для простого полосового фильтра с целыми коэффициентами (панель в). Соответствующая амплитудная характеристика (панель г)Рис. 7.24. Диаграмма нулей и полюсов (панель а). Схематическое изображение амплитудной характеристики рекурсивного КИХ-фильтра с целыми коэффициентами (панель б). Диаграмма нулей и полюсов для простого полосового фильтра с целыми коэффициентами (панель в). Соответствующая амплитудная характеристика (панель г)
Рис. 7.24. Диаграмма нулей и полюсов (панель а). Схематическое изображение амплитудной характеристики рекурсивного КИХ-фильтра с целыми коэффициентами (панель б). Диаграмма нулей и полюсов для простого полосового фильтра с целыми коэффициентами (панель в). Соответствующая амплитудная характеристика (панель г)
Рис. 7.24. Диаграмма нулей и полюсов (панель а). Схематическое изображение амплитудной характеристики рекурсивного КИХ-фильтра с целыми коэффициентами (панель б). Диаграмма нулей и полюсов для простого полосового фильтра с целыми коэффициентами (панель в). Соответствующая амплитудная характеристика (панель г)
Поскольку полоса пропускания центрирована на 3 кГц, нужно аккуратно выбрать моменты выборки. Положив ^ = 8, получаем один из вариантов диаграммы нулей и полюсов и соответствующей амплитудной характеристики (изображены на рис. 7.24, виг соответственно).
1 —181-Z-2’1 —181-Z-2’При ^ = 8 интервал дискретизации составляет 12/8 = 1,5 кГц. Передаточная функция имеет вид
1 —1
81-Z-2’
1 —1
81-Z-2’
х
Соответствующее разностное уравнение записывается так: у(п) = -у(п - 2) + (1/8)[ж(п) - ж(п - 8)].
Очевидно, что определение передаточной функции при частотной выборке с целыми коэффициентами — это очень простой процесс. В то же время, амплитудная характеристика подобных фильтров часто плоха, а свобода разработчика состоит только в выборе местоположения полосы пропускания. Для улучшения характеристик, относящихся к затуханию и частотам среза таких фильтров, передаточную функцию можно увеличить в целое число раз [7, 8].
■' 7.7.4. Метод частотной выборки: резюме
Этап 7. Задать идеальную или желательную частотную характеристику, затухание в полосе подавления и границы полос целевого фильтра.
Этап 2. Исходя из спецификации выбрать фильтр частотной выборки первого (выборки берутся с интервалом kFs /N) или второго типа (выборки берутся с интервалом (K + W^/N).
Этап 3. Использовать спецификацию (этап 1) и таблицы разработки [15] для определения N, числа частотных выборок идеальной частотной характеристики, М, числа выборок в полосе перехода, ширины полосы перехода, числа частотных выборок в полосе пропускания и Т\, значений выборок в полосе перехода (г = 1,2,..., М).
Этап 4. Использовать подходящее уравнение для расчета коэффициентов фильтра. Вместо этапов 2 и 4 можно использовать компьютерную программу с реализацией генетического алгоритма [3].
_ 7.8. Сравнение метода взвешивания, оптимального метода । ,,;; и, метода частотной выборки .
Оптимизационные методы — это простой и эффективный путь вычисления коэффициентов КИХ-фильтра. Хотя метод позволяет полностью контролировать спецификацию фильтра, необходимым требованием является наличие программной поддержки разработки фильтра. Для большинства приложений оптимальный метод дает фильтры с хорошими амплитудными характеристиками при разумных значениях N. Метод особенно хорош при разработке трансформаторов и дифференциаторов Гильберта. При использовании для разработки названных устройств других методов будут получены большие ошибки аппроксимации.
Если программная поддержка оптимального метода отсутствует или амплитуды колебаний характеристики в полосе пропускания и полосе подавления равны, можно воспользоваться методом вырезания. Этот метод весьма прост в применении и интуитивно понятен. В то же время, оптимальный метод часто предлагает более экономное решение с точки зрения числа коэффициентов фильтра. Кроме того, метод вырезания не позволяет разработчику строго управлять частотами среза или неравномерностью в полосе пропускания или подавления.
Только метод частотной выборки который допускает и рекурсивную, и нерекурсивную реализацию КИХ-фильтра, и этот метод стоит использовать, когда предвидится, что такие реализации, как рекурсивный подход, будут вычислительно экономными. Фильтр с целыми коэффициентами следует применять, только если обязательна примитивная арифметика и простота программирования (например, программирование на ассемблере на стандартном микропроцессоре). В таких случаях всегда следует проверять, приемлема ли получающаяся в результате плохая амплитудная характеристика. Метод частотной выборки позволяет легко разрабатывать фильтры с произвольными амплитудно-частотными характеристиками. В то же время этот метод не позволяет строго контролировать положение граничных частот или неравномерность в полосе пропускания и зависит от наличия таблиц разработки, подобных приведенным в работе [15], хотя еще можно использовать компьютерную программу поддержки разработки [3].
Пример 7.14
Требуется два полосовых КИХ-фильтра с линейной фазовой характеристикой, удовлетворяющих следующим спецификациям: для фильтра 1 —
полоса пропускания
неравномерность в полосе подавления
максимальная неравномерность в полосе пропускания
частота дискретизации
ширина полосы перехода
для фильтра 2 —
8-12 кГц, 0,001, 0,001, 44,14 кГц, 3 кГц.
полоса пропускания
неравномерность в полосе подавления
максимальная неравномерность в полосе пропускания
частота дискретизации
ширина полосы перехода
8-12 кГц, 0,001, 0,01, 44,14 кГц, 3 кГц.
Получите и сравните частотные характеристики для каждого фильтра, используя
метод вырезания;-
метод частной выборки;
оптимальный метод.
Решение
Метод взвешивания. Согласно спецификации фильтра 1 неравномерность в полосе пропускания равна 20 lg(1+0,001) = 0,00868 дБ, а затухание в полосе подавления — -201g(0,001) = 60 дБ. Из формул (7.10) и (7.11) находим параметры функции Кайзера:
частоты среза6,5 и 13,5 кГц,
параметр неравномерности, 05,653,
число коэффициентов фильтра 53,
частота дискретизации44,14 кГц.
Для фильтра 2 получаем те же результаты, поскольку в методе вырезания неравномерность в полосе пропускания всегда приблизительно равна неравномерности в полосе подавления.
Спектр итогового фильтра представлен на рис. 7.25, а.
Метод частной выборки. Для спецификации 1 предполагается использовать фильтр частотной выборки первого типа и фильтр длиной 53, как и для метода взвешивания. Из таблиц разработки [15] находим, что для получения желаемого затухания в полосе подавления 60 дБ при Fs = 44,14 кГц, М = 2, N = 53 нужны две частотные выборки в полосе перехода. Дискретизация идеальной частотной характеристики при N = 53 дает
|Я(А:)| = 0 к = 0,1,..., 7,
0,10689к=8,
0,59253к=9,
1к=10-14,
0,59253к—15,
0,10689к=16,
0к=17 -26.
С помощью программы fresamp.c (см. приложение) был получен фильтр, частотная характеристика которого изображена на рис. 7.25, б.
Поскольку затухание в полосе подавления одинаково для обоих фильтров, фильтр 2 совпадает с фильтром 1.
Оптимизационные методы. Для фильтра 1 из спецификации находим нормированные граничные частоты: 0; 5/44,14; 8/44,14; 12/44,14; 15/44,14 и 22,07/44,14, т.е. 0; 0,11328; 0,18124; 0,27186; 0,33983 и 0,5. Используя программу, приведенную в приложении, находим, что N = 49,6. Поскольку амплитуды колебаний характеристики в полосе пропускания и полосе подавления равны, весовые коэффициенты трех полос одинаковы. В программе оптимальной разработки используются следующие входные параметры:
число коэффициентов фильтра 49,
граничные частоты0; 0,11328; 0,18124; 0,27186; 0,33983; 0,5,
весовые коэффициенты 5; 5; 5.
Входные параметры для фильтра 2:
число коэффициентов фильтра 39 (39,45),
граничные частоты0; 0,11328; 0,18124; 0,27186; 0,33983; 0,5,
весовые коэффициенты10; 1; 10.
Получающиеся частотные характеристики оптимальных фильтров приведены на рис. 7.25, виг.
Разработка КИХ-фильтров — специальные вопросы
■-<7SAi4 Полуполосные КИХ-фильтры
Полуполосные фильтры — это частный случай КИХ-фильтров. Основное преимущество таких фильтров заключается в том, что примерно половина их коэффициентов равны нулю, т.е. объем вычислений сокращается вдвое. Данная особенность делает полуполосные фильтры привлекательными в таких приложениях, как обработка при нескольких скоростях, где требуется эффективная фильтрация с целью защиты от наложения спектров и/или фильтрация для подавления зеркальных частот при изменении частоты дискретизации данных (подробности см. в главе 9).
6Р = §з " 5.6Р = §з " 5.Причинные полуполосные фильтры характеризуются следующими особенностями. 1. Амплитуды колебаний характеристики в полосе пропускания и подавления равны, т.е.
6Р = §з " 5.
6Р = §з " 5.
(7.33)
Рис. 7.25. Сравнение частотных характеристик фильтров, полученных с использованием метода взвешивания, метода частотной выборки и оптимального метода: а) характеристика фильтра, полученного с помощью функции Кайзера (фильтры 1 и 2); б) характеристика фильтра, полученного с помощью частотной выборки (фильтры 1 и 2); в) характеристика фильтра, полученного с помощью оптимального метода (фильтр 1); г) характеристика фильтра, полученного с помощью оптимального метода (фильтр 2)
2.2.Граничные частоты полос пропускания ^подавления связаны следующим образом:
2.
2.
Л = у - /р.(7.34)
Частотная характеристика симметрична относительно четверти частоты дискретизации. Следовательно, на частоте / = Fs(4
/ р \/ Р '/ р \/ Р '(7.35)(7.35)
/ р \/ Р '
/ р \/ Р '
(7.35)
(7.35)
Кроме того, на этой частоте нормированная частотная характеристика уменьшается
вдвое, т.е.
|Я(/)| = 0,5 (на частоте / = у
циенты, кромециенты, кромеУ единичной импульсной характеристики при нечетном N нулю равны все коэффи
циенты, кроме
циенты, кроме
(7-36)(7-36)h(2n)= 0 п = 0,1,..., (У — 1)/40,5 n = (JV — 1)/2.
(7-36)
(7-36)
Для расчета коэффициентов полуполосных фильтров можно использовать любой из описанных выше методов, подходящих для КИХ-фильтров, например, метод весовых функций или оптимальный метод. При реализации этих методов следует использовать условия, приведенные в выражениях (7.33) и (7.34).
Пример 7.15
С помощью метода весовых функций определите коэффициенты КИХ-фильтра нижних частот по следующим спецификациям:
край полосы пропускания2 кГц;
ширина полосы перехода0,5 кГц;
затухание в полосе подавления >50 дБ;
частота дискретизации8 кГц.
Решение
Коэффициенты фильтра перечислены в табл. 7.13, а спектр фильтра показан на рис. 7.26, а. Из табл. 7.13 очевидно, что начиная с Я(0) коэффициенты через один равны нулю (с точностью до ошибки при численном расчете /i(n)). Вследствие этого при фильтрации каждую вторую входную выборку можно не учитывать (частота дискретизации эффективно уменьшается вдвое).
Таблица 7.13. Коэффициенты полуполосного фильтра нижних частот (функция Хэмминга, N = 53, /с = 2000 Гц)
М 0] =
-1,1243421е - 09
= /i[52]
м 1] =
1,1109516с - 03
= Л[51]
н\ 2] =
1,3921496с -09
= /i[50]
М 3] =
-1,6473646с -03
= Л[49]
М М =
-2,0024685с - 09
= Л[48]
М 5] =
2,6429869с - 03
= Л[47]
М 6] =
2,9211490с -09
= Ь[46]
Ц7] =
-4,1909615с - 03
= Ь[45]
М 8] =
-4,0967870с - 09
= Ь[44]
М9] =
6,4068290с - 03
= Л[43]
/i[10] =
5,4636006с - 09
= Л[42]
Мп] =
-9,4484947с - 03
= Л[41]
Л[12] =
-6,9451110с -09
= Л[40]
л[13] =
1,3555871е-02
= Л[39]
Л(14] =
8,4584215е-09
= Л[38]
Л[15] =
-1,9134767е-02
= Л[37]
/i[16] =
-9,9188559е - 09
= /i[36]
М^ =
2,6953222е - 02
= Л[35]
Л[18] =
1,1244697е - 08
= Л[34]
Л[19} =
-3,8674295е - 02
= Л[33]
Л[20] =
-1,2361758е-08
= Л[32]
Л[21] =
5,8666205е - 02
= Л[31]
h [22] =
1,3207536е - 08
= Л[30]
Л[23] =
-1,0304890е-01
= /i[29]
Л[24] =
-1,3734705е-08
= /i[28]
Л[25] =
3,1728215е-01
= Л[27]
Л[26] =
5,0000000е - 01
= Л[26]
Обратите внимание на то, что каждый второй коэффициент равен нулю (не совсем точно из-за ошибок численного счета)
Преобразование частоты
В некоторых ситуациях может потребоваться преобразовать в реальном времени характеристику фильтра нижних частот в характеристику эквивалентного фильтра верхних частот. Такое изменение возможно благодаря простой связи, существующей между названными фильтрами. Коэффициенты КИХ-фильтра верхних частот можно тривиальным образом получить из характеристик эквивалентного фильтра нижних частот, следующим образом изменив знаки коэффициентов:
(737)(737)М.ч = (-1)лМ,ч(п).
(737)
(737)
Данное соотношение основано на следующем факте: частотная характеристика фильтра верхних частот аналогична характеристике фильтра нижних частот, транслированной на половину частоты дискретизации (см. рис. 7.26, б). Следовательно, частотную харак-
а)а)Рис. 7.26. Частотная характеристика полуполосного фильтра нижних частот (панель а). Частотная характеристика 1) идеального фильтра нижних частот;2) эквивалентного идеального фильтра верхних частот (панель 6)Рис. 7.26. Частотная характеристика полуполосного фильтра нижних частот (панель а). Частотная характеристика 1) идеального фильтра нижних частот;2) эквивалентного идеального фильтра верхних частот (панель 6)
а)
а)
Рис. 7.26. Частотная характеристика полуполосного фильтра нижних частот (панель а). Частотная характеристика 1) идеального фильтра нижних частот;
2) эквивалентного идеального фильтра верхних частот (панель 6)
Рис. 7.26. Частотная характеристика полуполосного фильтра нижних частот (панель а). Частотная характеристика 1) идеального фильтра нижних частот;
2) эквивалентного идеального фильтра верхних частот (панель 6)
теристику фильтра верхних частот можно получить из характеристики фильтра нижних частот, заменив / на Fs/2 — /:
ЯвчЯвч(7.38)
Явч
Явч
Пример 7.16
Фильтр нижних частот имеет следующие характеристики:
край полосы пропускания 1,5 кГц, частота дискретизации 10 кГц, число коэффициентов 15.
Получите коэффициенты фильтра нижних частот, использовав весовую функцию Хэмминга.
Запишите спецификации эквивалентного фильтра верхних частот и с их помощью получите коэффициенты этого фильтра.
Вычислите коэффициенты эквивалентного фильтра верхних частот, использовав приведенное выше преобразование.
Таблица 7.14. Коэффициенты фильтра нижних частот и эквивалентного фильтра верхних частот
Фильтр нижних частот
Фильтр верхних частот
к(0)
1,2654 х IO-"5
1,2654 х Ю-3
Ь(1)
-5,2341 х 10~3
5,2341 х 10'3
h^
-1,9735 х 10“2
-1,9735 х 10"3
к(3)
-2,3009 х 10"2
2,3009 х 10'3
к(4)
2,2366 х Ю”2
2,2366 х 10-2
к(5)
1,2833 х 10*1
-1,2833 х 10"1
к(6)
2,4728 х IO”1
2,4728 х 10~*
h^
3,0000 х 10"1
-3,0000 х 10-1
Решение
Использовав приведенные параметры как вход программы window. с, получаем коэффициенты фильтра нижних частот (см. табл. 7.14).
Спецификации эквивалентного фильтра верхних частот записываются так: край полосы пропускания Fs/2 — fc = 5000 — 1500 кГц = 3500 кГц, частота дискретизации10 кГц,
число коэффициентов15.
Используя эти параметры как вход программы window. с, получаем коэффициенты фильтра верхних частот, которые перечислены в табл. 7.14.
Применяя приведенное выше простое преобразование, получаем коэффициенты фильтра верхних частот, которые аналогичны полученным в п. 2.
Вычислительно эффективные КИХ-фильтры
В некоторых ситуациях методы, описанные в данной главе, могут не подходить. Например, в определенных приложениях фазовая задержка, вводимая КИХ-фильтром с линейной фазовой характеристикой, может быть неприемлемо длительной (например, фазовая задержка для КИХ-фильтров первого типа равна (N - 1)Т/2, а при больших N эта величина значительна). В системе контроля, например, использование подобных фильтров внутри контура обратной связи может привести к неустойчивости. В таких случаях лучше применять фильтры с минимальной фазовой задержкой [13].
То, что фильтры, полученные с помощью оптимального метода, имеют равные амплитуды колебаний характеристики в полосе пропускания и подавления, может привести к появлению эхо-сигналов в импульсной характеристике фильтра, что на практике зачастую нежелательно. При гладкой частотной характеристике эхо-сигналы в хвостах импульсной характеристики уменьшаются.
В таких приложениях, как обработка изображений, число арифметических операций при использовании стандартных КИХ-фильтров может быть слишком большим. К сожалению, фильтры с целыми коэффициентами не подходят для подобных приложений из-за их плохой амплитудной характеристики. В этом случае следует использовать КИХ-фильтры, которые требуют только очень простых арифметических операций, но амплитудная характеристика которых подобна характеристике стандартных КИХ- фильтров (см., например, [11] или [17]).
Рис. 7.27. Примеры примитивных блоков КИХ-фильтров: а) схема суммирования (H(z) = 1 + z~ky, б) схема двойного суммирования (H(z) = az-k+z-2k; чтобы избежать прямого умножения а = ±2'*, п — целое; умножение на целое число можно реализовать с помощью сдвигов); в) блок рекурсивной текущей суммы (H(z) = (1 - z_fc)/(l - z-1) = 1 + z-1 + z-2 + ... + z-'-k-^\ Типичный фильтр состоит из 4-7 таких блоков, соединенных каскадом
Для решения указанных проблем предлагается использовать каскадную систему, состоящую из нескольких элементарных блоков, подобных изображенным на рис. 7.27. В каждом элементарном блоке можно реализовать почти любое возможное умножение. Основные проблемы такого подхода заключаются в трудности эффективного выбора элементарных фильтрующих блоков каскада и в том, что эффективно разработать удается только фильтры небольших порядков. Для дальнейшей борьбы с возникающими проблемами можно использовать генетические алгоритмы [16].
Структуры реализаций КИХ-фильтров
КИХ-фильтр характеризуется следующей передаточной функцией H(z):
Н^^Цтг^"п.
71=0
Структура реализации фильтра — это, по сути, представление в виде блок-схемы (или функциональной схемы) различных теоретически эквивалентных способов записи передаточной функции. В большинстве случаев такие структуры состоят из соединения умножителей, сумматоров и элементов задержки. Существует множество структур реализации КИХ-фильтров, но в данной книге рассматриваются только самые распространенные.
Рис. 7.28. Трансверсальная структура фильтра
Трансверсальная структура
Трансверсальная структура (или схема задержки с отводами) изображена на рис. 7.28. Вход х(п) и выход у(п) фильтра, представленного с помощью данной структуры, связаны простым соотношением
N-1
у(п) = ^^ /i(m)x(n — m).(7.39)
m=:0
На этом рисунке символом z-1 представлена задержка в одну выборку или в одну единицу времени. Таим образом, х(п — 1) — это х(п), задержанное на время одной выборки. В цифровых реализациях блоки, помеченные символом z-1, могут представлять регистры сдвига или более распространенные ячейки памяти в ОЗУ. Описанная трансверсальная структура является наиболее популярным представлением КИХ-фильтров.
Выходная выборка у^п) представляет собой взвешенную сумму текущего входа х(п) и N — 1 предыдущей входной выборки, т.е. выборок с х(п — 1) по х(п — N\ При выборе трансверсальной структуры вычисление каждой выходной выборки у(п) требует ■ N - 1 ячейки памяти для хранения N — 1 входной выборки;
N ячеек памяти для хранения N коэффициентов;
N операций умножения;
N — 1 операции сложения.
Структура с линейной фазовой характеристикой
Разновидностью трансверсальной структуры является структура с линейной фазовой характеристикой, в которой для снижения вычислительной сложности реализации фильтра используется симметрия коэффициентов импульсной характеристики КИХ- фильтров с линейной фазовой характеристикой.
В фильтрах с линейной фазовой характеристикой коэффициенты симметричны, т.е. /i(n) = ±h(N -n — l). Следовательно, уравнение фильтра можно переписать с учетом симметрии, существенно снизив число сложений и умножений. Для фильтров первого
и второго типа с линейной фазовой характеристикой передаточную функцию можно записать как
(N-l)/2-lад = Е(N-l)/2-lад = ЕЦп^2-П + Z-^-1""^/!Z^^2,Цп^2-П + Z-^-1""^/!Z^^2,(7.40, а)(7.40, а)
(N-l)/2-l
ад = Е
(N-l)/2-l
ад = Е
Цп^2-П + Z-^-1""^/!Z^^2,
Цп^2-П + Z-^-1""^/!Z^^2,
(7.40, а)
(7.40, а)
N — нечетное;
N/2-1
H(z)= ^2 /i(n)[z-n + z-(N"1-n)], N- четное.(7.40,0
n=0
Соответствующие разностные уравнения выглядят так:
(N-D/2-1
2/M = Е Цк) ^п - к) + х\п - (N - 1 - к")^ +
(7.41, а)
+ /i[(W-l)/2]:r[n-()V-l)/2],
(N-l)/2-l
у(п) = Е^ ^(к) {x(n — fc) + x\n — (N — 1 — fc)]} .(7-41,0
k=0
Сравнивая выражения (7.39) и (7.41), видим, что структура с линейной фазовой характеристикой вычислительно эффективнее и требует приблизительно вдвое меньшего числа операций умножения и сложения. Впрочем, в большинстве ЦОС-процессоров реализация по формуле (7.39) получается более эффективной, поскольку вычислительное преимущество формулы (7.41) теряется на фоне более сложной системы индексации данных.
Пример 7.17
КИХ-фильтр с линейной фазовой характеристикой имеет семь коэффициентов, которые перечислены ниже. Изобразите диаграмму реализации данного фильтра, используя а) прямую (трансверсальную) структуру и б) структуру с линейной фазовой характеристикой. Сравните вычислительную сложность обеих реализаций.
7i(0) = /1(6) = -0,032,
7i(l) = 7i(5) = 0,038,
7i(2) = 7i(4) = 0,048, /i(3) = -0,048.
Решение
Диаграммы реализации изображены на рис. 7.29.
X”)
а)
б)
Рис. 7.29. Трансверсальная структура (панель а); структура с линейной фазовой характеристикой фильтра нз примера 7.17 (панель б)
Другие структуры
Быстрая свертка
Метод быстрой свертки включает выполнение в частотной области операции свертки, представленной в уравнении (7.39). Как говорилось в главе 5, свертка во временной области эквивалентна умножению в частотной. Проще говоря, при названном подходе для выполнения фильтрации вначале вычисляется ДПФ х(п) и /i(n) (обе функции соответствующим образом дополняются нулями), оба образа перемножаются, а затем находится обратное результата. Данная концепция иллюстрируется на рис. 7.30. На практике при фильтрации в реальном времени используются методы, именуемые наложением-сложением (overlap-add) и наложением-хранением (overlap-save). Данные схемы рассмотрены в главе 5.
Рис. 7.30. Иллюстрация быстрой свертки
Структура частотной выборки
В структуре, реализованной по принципу частотной выборки, фильтры характеризуются выборками нужной частотной характеристики Н^, а не коэффициентами импульсной характеристики. Данная ситуация подробно обсуждалась выше. Для узкополосных фильтров большинство частотных выборок будет равно нулю, так что получающийся фильтр потребует меньшего числа коэффициентов, а следовательно, операций умножения и сложения, чем эквивалентная трансверсальная структура. Типичная диаграмма реализации данного фильтра изображена на рис. 7.22.
Транспонированная и каскадная структуры
Транспонированная структура подобна прямой, только частичные суммы переносятся в последующие этапы. Данный метод более чувствителен к шуму округления, чем прямой метод. При каскадной реализации передаточная функция H(z) выражается как произведение блоков второго и первого порядков. В современных цифровых реализациях транспонированная и каскадная структуры используются редко.
Выбор структуры
Выбор структуры зависит от многих факторов и компромиссов между легкостью реализации (сложность требуемого программного или аппаратного обеспечения), сложностью получения коэффициентов импульсной характеристики или передаточной функции и их относительной чувствительности к квантованию коэффициентов. На практике точность представления каждого коэффициента ограничивается длиной слова используемого процессора. Использование только конечного числа битов для представления каждого коэффициента приводит к смещению нулей с нужных положений, те. искажению частотной характеристики. Степень искажения характеристики зависит от используемой структуры и числа битов.
Прямая структура легко поддается программированию и эффективной реализации на большинстве чипов ЦОС, если в них внедрены команды, подходящие для трансверсальной КИХ-фильтрации. Данная структура наиболее широко используется при реализации нерекурсивных фильтров, и главной ее привлекательной особенностью является простота, поскольку требуется минимум компонентов и несложный доступ к памяти. Каскадная структура менее чувствительна к ошибкам коэффициентов и шуму
квантования, но для получения коэффициентов требуется проделать больше работы, а программирование невозможно выполнить на архитектуре чипов ЦОС. Структура с использованием быстрой свертки значительно выгоднее других структур с точки зрения объема вычислений, но зависит от доступности реализации БПФ.
Структура частотной выборки в узкополосных частотно-избирательных фильтрах вычислительно эффективнее, чем эквивалентная трансверсальная структура. В таких фильтрах и при такой структуре лишь относительно небольшое число частотных выборок не равно нулю, так что на одну выходную выборку приходится лишь несколько операций умножения. В то же время структура, реализованная по принципу частотной выборки, может требовать более сложного программирования из-за более сложной системы индексирования в разностном уравнении (сравните, например, уравнения (7.39) и (7.32, б)). Чтобы избежать проблем с устойчивостью при использовании структуры частотной выборки, полюса и нули должны располагаться внутри единичной окружности близко к ней, например, на окружности радиуса г = 0,99. Такая структура — естественный выбор, если рекурсивная реализация КИХ-фильтров обязательна. Эта высокомодульная структура естественным образом подходит для параллельной обработки.
Вообще, трансверсальную структуру стоит использовать, если из спецификации не следует обязательность структуры частотной выборки, или если не нужно знать спектр данных (в этом случае рекомендуется техника быстрой свертки).
Влияние конечной разрядности на цифровые 3
КИХ-фИЛЬТрЫ . :
На практике цифровые КИХ-фильтры часто реализуются на основе процессоров ЦОС (например, TMS320C50 от Texas Instruments), алгоритмических чипов ЦОС, разработанных для КИХ-фильтрации (таких как А100 от INMOS). Если же требуется высокая скорость, используются стандартные блоки умножителей, элементов памяти, сумматоров и контроллеров (например семейство PDSP1600 от Plessey). В этих случаях число битов, используемых для представления входных данных фильтра, коэффициентов фильтра и выполнения арифметических операций, должно быть минимальным для эффективного использования и снижения стоимости цифрового фильтра. Проблемы, вызванные использованием конечного числа битов, называются эффектами конечной разрядности и в общем случае приводят к снижению производительности фильтра.
В данном разделе рассмотрено влияние конечной разрядности на производительность цифровых КИХ-фильтров и предлагаются способы минимизировать это влияние. Для иллюстрации используется реализация КИХ-фильтра в прямой форме как наиболее привлекательная в современной сфере обработки сигналов, а для квантования применяется округление — простейший и наиболее распространенный метод.
Существует четыре механизма влияния конечной разрядности на производительность цифровых КИХ-фильтров.
Шум АЦП. Это привычный шум квантования АЦП, который присутствует, когда на вход фильтра подается аналоговый сигнал. Шум АЦП ограничивает максимально
достижимое отношение. Влияние этого фактора можно снизить, использовав дополнительные биты, согласующиеся с собственным шумом сигнала (см. главу 13), и/или применив метод обработки при нескольких скоростях для улучшения отношения сигнал-шум (см. главу 9).
Ошибки квантования коэффициентов. Проистекают от представления коэффициентов фильтра конечным числом битов. Следствием этого является модификация желаемой частотной характеристики. В полосе подавления фильтра, например, этот фактор ограничивает максимальное возможное затухание, т.е. допускает передачу дополнительных сигналов. Прямое решение данной проблемы — использовать достаточное число битов для представления коэффициентов фильтра. В то же время, для минимизации длины слова, используемой в коэффициентах, можно применить методы оптимизации, направленные на эффективный выбор коэффициентов.
Ошибки округления при квантовании результатов арифметических операций. Эти ошибки могут появляться, например, при отбрасывании младших разрядов перед запоминанием результата умножения (что автоматически приходится делать из-за конечной разрядности используемого процессора). Названные ошибки снижают отношение сигнал-шум. Чтобы уменьшить их, округление можно использовать после суммирования произведений, которое выполняется с двойной длиной. Степень ошибки зависит от типа используемой арифметики и структуры фильтра.
Арифметическое переполнение. Возникает, когда частичные суммы или выход фильтра превышают разрешенную длину слова системы. По сути, при появлении переполнения выходная выборка будет неверной (обычно это изменение знака). Чтобы уменьшить переполнение или избежать его, можно масштабировать коэффициенты фильтра, разделив каждый коэффициент на множитель, чтобы выходная выборка фильтра никогда не превышала разрешенную длину слова. Очевидно, что такое решение возможно за счет снижения отношения сигнал-шум.
В следующих разделах подробно рассматриваются факторы 2 и 4.
Ошибки квантования коэффициентов
Коэффициенты фильтра, полученные любым методом аппроксимации, например, методом вырезания или оптимальным (замена Ремеза (Remez exchange)), обычно весьма точны до определенных знаков в десятичной записи. Для реализации фильтра коэффициенты нужно представить фиксированным числом битов, и довольно часто это число определяется длиной слова используемого процессора. Например, если для реализации фильтра используется один из 16-битовых процессоров ЦОС, то логично представить каждый коэффициент фильтра 16 бит. В то же время, если сделать так, автоматически вводится ошибка, которая приводит к отклонению частотной характеристики фильтра с конечной длиной слова от желаемой частотной характеристики. В некоторых случаях это отклонение означает, что фильтр уже не удовлетворяет исходной спецификации.
Пример 7.18
Определите влияние квантования через округление до 8 бит на коэффициенты следующего фильтра:
Частота (кГц)Частота (кГц)Частота (кГц)Частота (кГц)б)б)Рис. 7.31. Влияние квантования коэффициентов (пример 7.18) (панель а). Полоса пропускания (■ — неквантованная характеристика, □ — квантованная) (панель б)Рис. 7.31. Влияние квантования коэффициентов (пример 7.18) (панель а). Полоса пропускания (■ — неквантованная характеристика, □ — квантованная) (панель б)
Частота (кГц)
Частота (кГц)
Частота (кГц)
Частота (кГц)
б)
б)
Рис. 7.31. Влияние квантования коэффициентов (пример 7.18) (панель а). Полоса пропускания (■ — неквантованная характеристика, □ — квантованная) (панель б)
Рис. 7.31. Влияние квантования коэффициентов (пример 7.18) (панель а). Полоса пропускания (■ — неквантованная характеристика, □ — квантованная) (панель б)
затухание в полосе подавления> 90 дБ,
неравномерность в полосе пропускания < 0,002 дБ, край полосы пропускания3,375кГц,
край полосы подавления5,625кГц,
частота дискретизации20 кГц,
число коэффициентов45.
Решение
Используем программу optimal. с со следующим входом:
число коэффициентов фильтра 45,
краевые частоты0; 0,16875; 0,28125; 0,5,
весовые коэффициенты1; 7,28.
Коэффициенты фильтра до и после округления до 8 бит перечислены в табл. 7.15. Соответствующие частотные характеристики изображены на рис. 7.31. Видно, что после квантования минимальное затухание в полосе подавления равно 36 дБ, ухудшение наблюдается более чем на 58 дБ. Очевидно, что в данном примере для представления коэффициентов требуются слова, которые больше 8 бит.
Влияние ошибок коэффициентов проявляется в отклонении частотной характеристики от желаемой формы. Данное отклонение в предельном случае может означать,
а)6)
Рис. 7.32. Квантование коэффициентов: а) влияние на коэффициенты импульсной характеристики; 6) влияние на частотную характеристику фильтра
что фильтр не удовлетворяет спецификации. В конкретной задаче разработки фильтра подходящую длину слова можно определить, получив частотные характеристики для нескольких различных размеров коэффициентов. По этим данным определяется минимальное число битов, требуемое для удовлетворения спецификации. Кроме того, существенную информацию о разработке фильтров с конечной длиной слова можно получить, анализируя ошибки, которые вводятся при квантовании коэффициентов.
Квантованный и неквантованный коэффициенты, /ig(n) и /i(n), соответственно связаны соотношением
hq^n) = h^n) = e(n), п = 0,1,..., N — 1,(7.42)
где е(п) —■ ошибка между квантованным и неквантованным коэффициентами. В частотной области формулу (7.42) можно переписать следующим образом:
Н,Н = НИ + ЕН,(7.43)
где ЕН, ошибка желательной частотной характеристики, выражается следующим образом:
rN-1
5(си) = У^ е(т) ехр(—шт),
т=0
а НЧН и НИ — частотные характеристики фильтров с квантованными и неквантованными коэффициентами соответственно. Схематическое представление уравнений (7.42) и (7.43) дано соответственно на рис. 7.32, а и б. Видим, что физически е(п) можно рассматривать как импульсную характеристику другого фильтра, соединенного параллельно с нужным фильтром [14]. В частотной области влияние ошибки коэффициентов представляется паразитной передаточной функцией, подающейся параллельно с передаточной функцией очень точного фильтра. Целью разработчика является ограничение амплитуды ошибки ЕН, чтобы частотная характеристика реального фильтра удовлетворяла спецификации.
Для частотно-избирательных фильтров (фильтры нижних частот, верхних частот, полосовые, режекторные) были найдены выражения для пределов ошибок частотной характеристики. Данные пределы можно использовать при определении подходящей длины коэффициентов данного фильтра. Кроме того, пределы полезны при оценке длин
Таблица 7.15. Коэффициенты фильтра до и после квантования до 8 бит
Цп?)
-1,05023е-04
-1,25856е-04
3,07141с - 04
6, 79484е - 04
-2,89029е - 04
-1,77474е-03
4,08318е - 04
3,43482с - 03
2,66515с - 03
-5,00314с - 03
-7,30591с - 03 5,09712е-03
1,48422с - 02
-1,40255с-03
-2,49785с - 02
-9,39383с - 03
3,64568с - 02
3,28505с - 02
-4,72008е - 02
-8, 52427е - 02
5,48855с - 02
3,10921с - 01
4,42322с - 01
3,10921с - 01
5,48855е - 02
-8,52427е - 02
-4,72008с - 02
3,28505с - 02
3,64568с - 02
-9,39383е - 03
-2,49785с-02
-1,40255е-03 1,48422е-02
5,09712с - 03
-7,30591с-03
-5,00314с - 03
2,66515с - 03
3,43482е - 03
4,08318с - 04
-1, 77474с-03
-2,89029с - 04
6,79484с - 04
3,07141с-04
-1, 25856с-04
-1,05023с-04
0,00000с + 00
0,00000с + 00
0,00000с + 00
0,00000с + 00
0,00000с + 00
0,00000с + 00
0,00000с + 00
0,00000с + 00
0,00000с + 00
-7,81250с -03
-7,81250с -03
7,81250с-03
1,56250с-02
0,00000с + 00
-2,34375с-02
-7,81250с -03
3,90625с - 02
3,12500с-02
-4,68750с - 02
-8,59375с - 02
5,46875с - 02
3,12500с - 01
4,45212с -01
3,12500с - 01
5,46875с - 02
-8,59375с - 02
-4,68750с - 02
3,12500с - 02
3,90625с - 02
-7,81250с-03
-2,34375с -02
0,00000с + 00
1,56250с-02
7,81250с - 03
-7,81250с -03
-7,81250с-03
0,00000с + 00
0,00000с + 00
0,00000с + 00
0,00000с + 00
0,00000с + 00
0,00000с + 00
0,00000с + 00
0,00000с + 00
0,00000с + 00
коэффициентов адаптивных КИХ-фильтров, поскольку априори точные характеристик таких фильтров неизвестны (см. главу 10).
Для КИХ-фильтра, реализованного в прямой форме, с квантованием через округление наиболее часто используются следующие пределы:
|E(w)| = NTB,
(7.44, и)(7.44, и)(7.44, б)(7.44, б)|ВД| = 2-в[^1п^/3]1/2,|ВД| = 2-в[^1п^/3]1/2,(7.44, в)(7.44, в)№)| =2"в(^/3)1/2,
(7.44, и)
(7.44, и)
(7.44, б)
(7.44, б)
|ВД| = 2-в[^1п^/3]1/2,
|ВД| = 2-в[^1п^/3]1/2,
(7.44, в)
(7.44, в)
где В — число битов, представляющих каждый коэффициент, a N — длина фильтра. Предел (7.44, а) — это абсолютный верхний предел, выведенный в предположении наихудшей ситуации (см. пример 7.19), так что он чрезмерно пессимистичен. Пределы (7.44, б) и (7.44, в) представляют собой статистические пределы и могут дать более точную оценку ошибок частотной характеристики и длины коэффициентов. При выводе статистических пределов предполагалось, что ошибки квантования е(п) равномерно распределены и имеют нулевое среднее.
Пример 7.19
Указав сделанные предположения, покажите, что максимально возможное затухание в полосе подавления Лтах для КИХ-фильтра нижних частот, реализованного в прямой форме, с квантованием коэффициентов через округление ограничено величиной
(7-45)(7-45)Лтах < 201g(2-BW).
(7-45)
(7-45)
КИХ-фильтр нижних частот удовлетворяет следующим спецификациям: отклонение в полосе пропускания 0,05 дБ,
10 кГц, 1,8 кГц, 500 Гц, 65.10 кГц, 1,8 кГц, 500 Гц, 65.частота дискретизации край полосы пропускания ширина перехода число коэффициентов
10 кГц, 1,8 кГц, 500 Гц, 65.
10 кГц, 1,8 кГц, 500 Гц, 65.
Оцените число битов, требуемых для представления каждого коэффициента, чтобы фильтр имел в полосе подавления затухание не меньше 60 дБ.
Используя длины коэффициентов, найденные в п. 2.1, оцените ожидаемое увеличение неравномерности в полосе пропускания и снижение затухания в полосе подавления в децибелах.
Сравните реальное затухание в полосе подавления и неравномерность в полосе пропускания фильтра, используя длины коэффициентов, найденные в п. 2.1.
Решение
1. Определим характеристику Е(ш), соответствующую ошибкам квантования коэффициентов е(т), как
Е(ш) = У^ е(ттг) ехр(—гит),
т=0
где N — длина фильтра. При округлении ошибка квантования в наиболее неблагоприятном случае составляет |е(т)| = 2-(в-1)/2 = 2~в, где В — длина коэффициентов (предполагается представление чисел в форме поразрядного дополнения до двух). Если предположить наибольшую ошибку для всех коэффициентов, получим
N-lN— 1
B^)! — У2 е(т)1 ехР(—гшт) = У^ 2-S ехр(—шт) =m=0т=0
= 2-в У^ ехр(—шт) = 2~BN.
m=0
Если рассматривать е^т) как импульсную характеристику другого фильтра, соединенного параллельно с необходимым, то граничное отклонение в полосе пропускания (или подавления) равно 2~BN, так что
Amax<2WBN) дБ.
Очевидно, данная оценка чрезмерно консервативна. На практике обычно достаточно меньшего числа битов, чем из нее следует. Впрочем, данный предел — это простой показатель, который легко использовать.
Положив в приведенном выше пределе Лтах = 60 дБ, N = 65, находим, что В = 15,988 бит. Следовательно, требуемая длина коэффициентов составляет В = 16 бит.
После квантования максимальная неравномерность в полосе пропускания в наихудшем случае равна Ятах, а затухание в полосе подавления — Лтах. Данные величины можно выразить следующим образом:
Вшах = 201g(l+5p + №)|) =20 lg(l+0,005773 + 0,001) =
= 0,0586 дБ,
т.е. наблюдаем увеличение на 0,0086 дБ.
Лтах = -20 lg(5, + |ВД|) = —20 lg(0,001 + 0,001) = 54 дБ,
т.е. данный параметр уменьшился на 6 дБ (5р и 5S — отклонение в полосе пропускания и подавления для неквантованного фильтра).
Используем программу разработки оптимального фильтра со следующими параметрами:
число коэффициентов65,
краевые частоты0; 0,18; 0,23; 0,5,
весовые коэффициенты полос пропускания/подавления 1; 5,773.
Частота (ГЦ)
Рис. 7.33. Спектр фильтра до квантования (пример 7.19)
Спектр фильтра до квантования показан на рис. 7.33. Существенной разницы между частотной характеристикой до квантования и после (16-битовые слова) не наблюдается. Неравномерность в полосе пропускания и затухание в полосе подавления после квантования равны 0,0227 и 64,15 дБ по сравнению с 0,0224 и 66,96 дБ до квантования.
Очевидно, что основным следствием квантования коэффициентов является возможное увеличение максимальной неравномерности в полосе пропускания и снижение максимального затухания в полосе подавления. Существуют практические процедуры, позволяющие учесть данные эффекты при вычислении коэффициентов фильтров. По сути, при этом спецификации неквантованных фильтров отображаются в новый набор спецификаций, который затем используется для получения коэффициентов, причем после квантования коэффициентов удовлетворяются исходные спецификации.
Фильтр, получающийся в результате такого преобразования, может не быть оптимальным. Этот факт инициировал разработку методов оптимизации для получения коэффициентов КИХ-фильтров с конечной длиной слова, таких как алгоритмы смешанного целочисленного программирования [6]. Новые подходы приводят к значительному уменьшению длин слов, используемых для представления коэффициентов, по сравнению с простым округлением, но поиск подходящих коэффициентов часто включает значительные вычислительные издержки уже при N умеренно больших. Практичнее использовать один из пределов (7.44) для оценки числа битов, необходимых для представления коэффициентов. Требуемая длина слова обычно на 1-4 бит больше данного значения, а точная величина определяется при изучении частотной характеристики, отвечающей длинам слов в данном диапазоне.
Ошибки округления
Напомним, что разностное уравнение КИХ-фильтра выглядит так:
N-1
у(п) = ^^ h(m)x^n — ттг),(7.46)
т=0
где каждая переменная представляется конечным числом битов. Как правило, входные и выходные выборки х(п — т) и у(п) представляются 12 бит каждая, а коэффициенты представляются 16 бит в формате дополнения до двух.
Из уравнения (7.46) видно, что выход фильтра — это сумма произведений Цт) и х^п — ттг). После каждого умножения произведение содержит больше битов, чем /г(т) или х(п — ттг) отдельно. Например, если 12-битовый вход множится на 16-битовый коэффициент, результат размером 28 бит требуется квантовать до прежних 16 бит, если, например, далее его нужно занести в память, или до 12 бит, если затем его нужно подать на выход ЦАП. Квантование приводит к ошибкам, влияние которых сходно с влиянием шума АЦП, но иногда проявляется более значительно. Обычно в таких случаях для квантования результата арифметической операции либо а) результат усекается, т.е. оставляются только старшие биты и отбрасываются младшие, либо б) результаты округляются, т.е. выбираются старшие биты, наиболее близкие к неокругленному результату. Для реализации этого к результату прибавляется половина младшего разряда.
Ошибки округления можно минимизировать, если точно представить все произведения в регистрах двойной длины, а результаты округлять после получения финальной суммы, т.е после вычисления у(п). Данный подход приводит к меньшей ошибке, чем альтернативный метод округления каждого произведения отдельно до суммирования.
Ошибки переполнения
Переполнение происходит, когда сумма двух чисел, обычно больших чисел одного знака, превышает разрешенную длину слова. Значит, переполнение в контексте формулы (7.46) может произойти при сложении двух произведений, Ц0)х(п) и h(l)x(n - 1).
Если окончательный выход у^п) согласуется по размеру с данной длиной слова, переполнение в частичных суммах несущественно. Данное свойство является приятной особенностью арифметики с дополнением до двух. В то же время, если выход у(п) не вмещается в разрешенные границы, очевидно, что значение выходной выборки, поданной, например, в ЦАП, будет неверным, и эту ситуацию следует предотвратить. Можно детектировать и корректировать переполнение, но издержки в данном случае могут быть большими. Другая альтернатива — масштабировать коэффициенты и/или входные данные, чтобы избежать переполнения или держать его в определенных рамках. Для масштабирования коэффициентов можно использовать один из следующих подходов:
h(m) =h(m) =/г(т)/г(т)eVwiк=0eVwiк=0(7-47)(7-47)
h(m) =
h(m) =
/г(т)
/г(т)
eVwi
к=0
eVwi
к=0
(7-47)
(7-47)
/г(ттг) =/г(ттг) =/i(m)
/г(ттг) =
/г(ттг) =
(7-48)(7-48)"N—l"I1/2"
(7-48)
(7-48)
,к=0.
Если использовать преобразование (7.47, а), переполнение не произойдет никогда, но масштабирование в таком виде часто излишне, поскольку рассчитано на наихудший вариант переполнения, что на практике почти нереально. Кроме того, такой подход вводит больший шум квантования коэффициентов, чем метод с использованием преобразования (7.47, б), в котором предполагается, что переполнение происходит время от времени.
Подобно коэффициентам можно масштабировать входные данные, что часто приводит к улучшению отношения сигнал-шум. Третий подход — это масштабировать вход и выход так, чтобы получить наилучшее возможное отношение сигнал-шум. Эффективным является масштабирование с масштабом, представляющим собой степень двойки.
Методы реализации КИХ-фильтров
Разностное уравнение для цифрового КИХ-фильтра имеет вид
N-1
У^ = 52 h^x^n — к\(7.49)
к=0
Итак, на этапе аппроксимации получены коэффициенты Ык), выбрана подходящая структура, и анализ показал, что числа битов, выделенного для представления переменных и выполнения арифметических операций, достаточно. Финальный этап — реализовать фильтр, а ключевой вопрос здесь — произвести программный код и/или аппаратную реализацию выбранной структуры фильтра. Предположим, что используется трансверсальная структура (как наиболее популярная), которая характеризуется уравнением (7.48).
Изучая уравнение, видим, что для вычисления у(п) требуются только операции умножения, сложения/вычитания и задержки. Следовательно, для реализации фильтра нужны также базовые компоненты:
память (ОЗУ) для хранения текущей и предыдущих входных выборок, х(п') и х(п — /=);
память (ОЗУ или ПЗУ) для хранения коэффициентов фильтра, h.(ky,
умножитель (аппаратный или программный);
сумматоры или арифметико-логические устройства (АЛУ).
Данные компоненты плюс средства управления ими и образуют цифровой фильтр. Если источник входных данных аналоговый, дополнительно потребуется АЦП. Аналогично, если выход должен поступать на аналоговое устройство, потребуется ЦАП. Следовательно, фильтр реального времени имеет структуру, изображенную на рис. 7.34. Реализация фильтра традиционно разделяется на две части: аппаратную и программную. Впрочем, данное разделение уже становится артефактом в современной ЦОС, поскольку на настоящий момент практически не осталось истинно аппаратных решений,
Рис. 7.34. Упрощенная блок-схема цифрового фильтра реального времени с аналоговыми вход- ным/выходным сигналами
так как большинство устройств, используемых в фильтрации, теперь программируемые. В данной книге любую реализацию на больших системах, таких как мэйнфреймы и персональные компьютеры, будем рассматривать как программную. В этих случаях для кодирования уравнения фильтра и действий, которые производились бы в автономном режиме, будем использовать язык высокого уровня. Реализации с использованием устройств ЦОС и специального аппаратного обеспечения, включая стандартные микропроцессоры, будут рассматриваться как аппаратные. В таких случаях уравнение фильтрации для определенного устройства может представляться аппаратно-реализованным программным обеспечением или кодом на языке ассемблера.
В большинстве приложений основной целью часто является работа в реальном времени. Наилучший выбор в этих ситуациях — аппаратная реализация. Аппаратные реализации предлагают большую скорость, но они менее гибки. В настоящее время при выборе аппаратной реализации используется три подхода: стандартные микропроцессоры (например, Motorola 68000) и процессоры ЦОС (такие как Texas Instruments TMS320), стандартные аппаратные блоки и арифметико-логические устройства. При использовании в качестве основы алгоритмов и процессоров ЦОС различные устройства, требуемые для фильтрации (умножители, сумматоры и т.д.), реализуются на аппаратном уровне и вводятся в одну ИС с использованием технологии СБИС. В то же время, алгоритмические процессоры уже предназначены для выполнения КИХ-фильтрации. Разработчику достаточно предоставить коэффициенты фильтра и необходимую связующую логику для сопряжения процессора и внешнего мира (примеры подобных процессоров — Motorola DSP56200 и INMOS А100). Архитектуры и системы команд процессоров ЦОС, оптимизированные под КИХ-фильтрацию, гибче алгоритмических процессоров, но медленнее.
Разработка систем с использованием программных или аппаратных подходов рассмотрена в главах 12 и 13.
На рис. 7.35 изображена функциональная схема КИХ-фильтрации, из которой видно, что в каждый момент выборки данные вначале смещаются на одну позицию, считывается и сохраняется последняя входная выборка х(п), и с помощью разностного уравнения вычисляется текущая выходная выборка.
Пример разработки
Пример 7.20
Разработайте и реализуйте полосовой фильтр с линейной фазовой характеристикой согласно следующей спецификации:
Рис. 7.35. Упрощенная функциональная схема трансверсального КИХ-фильтра реального времени
полоса пропускания900-1100 Гц,
неравномерность в полосе пропускания 0,87 дБ,
затухание в полосе подавления>30 дБ,
частота дискретизации15 кГц,
число коэффициентов41.
Для реализации фильтра следует использовать целевую плату TMS32010 (см. главу 13).
Решение
Напомним, что разработка КИХ-фильтра состоит из пяти этапов.
Этап 1: спецификация. Спецификация уже дана.
Этап 2: расчет коэффициентов. Используем для вычисления коэффициентов оптимальный метод, дающий наименьшее число коэффициентов фильтра (для нерекурсивных КИХ-фильтров), поскольку он доступен. Коэффициенты данного фильтра уже вычислены в предыдущем примере; см. табл. 7.7. Соответствующая частотная характеристика приведена на рис. 7.13.
Этап 3: выбор структуры. Выбрана трансверсальная структура (см. рис. 7.29, а), поскольку она допускает более эффективную реализацию при использовании процессора TMS32010. Разностное уравнение для данной структуры имеет вид
40
у(п) = ^2 Цтп)х^п — тп).
m=Q
Этап 4: квантование и анализ ошибок. Поскольку используется процессор TMS32010, для эффективной работы каждый коэффициент следует квантовать до 16 бит. Для этого множим каждый коэффициент на 215, а затем округляем результат до ближайшего целого числа. Покажем для примера как квантуются первые два коэффициента:
/г(0) = -0,01534638 х 215 = -502,87 « -503,
/г(1) = -0,0000578055 х 215 = -1,89 и -2.
Квантованные и неквантованные коэффициенты перечислены в табл. 7.16. Частотную характеристику квантованного фильтра следует проверить на предмет соответствия спецификациям, особенно в полосе подавления. Находим, что после квантования до 16 бит наблюдается незначительное отличие характеристик квантованного и неквантованного фильтров.
При использовании TMS32010 частичные суммы, следующие из разностного уравнения, выносятся в 32-битовый накапливающий сумматор. Используется довольно большой (32 бит) регистр произведения. Следовательно, влияние ошибок округления при N = 41 будет небольшим. Возможность переполнения в данном примере не рассматривается. Если бы это было нужным, для подавления переполнения можно было бы умножить каждый коэффициент, полученный на этапе 2, на подходящий масштабный множитель (ММ). Например,
40мм = ^2 I^Hl-m=0
Целевая плата имеет только 8-битовый АЦП. Это ограничит динамический диапазон сигнала, который можно обработать, всего до 48 дБ. В аудиосистеме высокого качества, например, уровень шума квантования был бы неприемлемым, поэтому в таких случаях следует увеличивать разрешение АЦП.
Этап 5: реализация. Функциональная схема операции КИХ-фильтрации изображена на рис. 7.35. Далее эта схема транслируется в код ассемблера TMS32010 и сохраняется в памяти программы (в главе 12 приводятся детали разработки и кодирования операций КИХ-фильтрации)
Таблица 7.16. Неквантованные (h(m)) и квантованные (hq(m)) коэффициенты фильтра из примера 7.20
т
Неквантованные коэффициенты, Цт)Квантованные коэффициенты, hq(m)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
— 1,534638е - 02-503
-5,780550с - 05-2
5,023483е - 03165
1,266706е —02415
2,108206е - 02691
2, 776418с - 02910
3,005362с - 02985
2,586935с - 02848
1,444566с-02473
-3,189323с - 03-105
—2,416137е — 02-792
—4,420712е -02-1449
-5,857453с - 02-1919
-6,318557с - 02-2070
-5,575461е-02-1827
-3,654699е - 02-1198
-8,540099е - 03-280
2,308386е - 02756
5,201380е - 021704
7,224807е - 022367
7,9516816 - 022606
7,224807е - 022367
5,201380е-021704
2,308386е - 02756
-8,540099е - 03-280
-3,654699е - 02-1198
-5,575461е-02-1827
-6,318557е - 02-2070
-5,857453е-02-1919
-4,420712е-02-1449
-2,416137е-02-792
-3,189323е - 03-105
1,444566е-02473
2,586935е - 02848
3,005362е - 02985
2, 776418е - 02910
2,108206е - 02691
1,266706е-02415
5,023482е - 03165
-5,780550е - 05-2
-1,534638е - 02-503
Резюме
Разработку цифровых фильтров можно разделить на пять взаимозависимых этапов: спецификация фильтра, расчет коэффициентов, реализация, анализ ошибок и реализация фильтра в аппаратной и/или программной форме.
Спецификация фильтра зависит от приложения, но должна включать спецификацию амплитудной и/или фазовой характеристики.
Расчет коэффициентов, по сути, включает поиск значений /г(т), соответствующих спецификациям. Наиболее распространенные методы вычисления коэффициентов КИХ-фильтра: 1) вырезание; 2) частотная выборка; 3) оптимальный метод. Метод взвешивания прост, но ему недостает гибкости, особенно при наличии разных амплитуд колебаний характеристики в полосе пропускания и подавления. Метод частотной выборки великолепно подходит для рекурсивной реализации КИХ-фильтров и в тех случаях, когда требуются фильтры, отличные от стандартных частотно-избирательных фильтров (нижних частот, верхних частот, полосовых и режекторных). Оптимизационный метод наиболее мощный и гибкий. Все три метода подробно рассмотрены в данной главе.
Тремя наиболее распространенными структурами реализации КИХ-фильтров являются трансверсальная, которая включает прямую свертку с использованием коэффициентов фильтра, структура частотной выборки, которая непосредственно связана с вычислением коэффициентов методом частотной выборки, и структура быстрой свертки. Выбор структуры зависит от предполагаемого приложения.
На производительность КИХ-фильтров большой длины или с сильным затуханием в полосе подавления может влиять конечная длина слова, например, частотные характеристики этих фильтров могут меняться после квантования коэффициентов. Следовательно, с помощью характеристик таких фильтров необходимо проверять, достаточно ли длинные слова используются, особенно если длину слова предполагается выбрать меньшей, чем 12 бит.
К реализации фильтра обычно приступают после успешного завершения первых четырех этапов, и этот последний этап включает программное кодирование или аппаратную реализацию выбранной структуры.
Примеры применения КИХ-фильтров
Существует множество областей, где применяются КИХ-фильтры, в том числе обработка при нескольких скоростях [1], подавление шума [2], согласованная фильтрация (см. главу 13) и обработка изображений [17].
В системах с обработкой при нескольких скоростях КИХ-фильтры успешно используются для эффективной цифровой фильтрации с целью подавления наложения и зеркальных частот в таких областях, как сбор высококачественных данных и воспроизведение компакт-дисков (см. главу 9).
Задачи
Концепция КИХ-фильтра
Частотную характеристику Н(ш) КИХ-фильтра второго типа с линейной фазовой характеристикой можно выразить так (см. табл. 7.1):
N/2
Н(ш^ = exp_“(N-1)/2 У^ b(n) cos[u>(n - -)],
п=1
где 6(77) зависит от коэффициентов фильтра. Объясните, почему фильтры с приведенной выше характеристикой неустойчивы при использовании в качестве фильтров верхних частот. Для иллюстрации ответа используйте простую ситуацию (например, N = 4).
КИХ-фильтр имеет импульсную характеристику /7(77), которая определена в интервале 0 < 77 < ^-l. Покажите, что при N четном и /7(77) четно-симметричном (те. /г(п) = h(N — п - 1)) фильтр имеет линейную фазовую характеристику. Получите выражения для амплитудной и фазовой характеристики фильтра.
Метод взвешивания
Покажите, что импульсная характеристика идеального полосового фильтра (см. табл. 7.2) записывается как ..
, z a or Sinnw2sinn-u?!
hDW = 2/з2/j rz + О
77U7277U?i
= 2(/2-/!) 77 = 0,
где /1 и /2 — нижняя и верхняя частоты полосы пропускания соответственно.
1. Используя метод вырезания, получите коэффициенты цифрового КИХ-фильтра нижних частот согласно такой спецификации:
затухание в полосе подавления 50 дБ,
край полосы пропускания3,4 кГц,
ширина перехода0,6 кГц,
частота дискретизации8 кГц.
В ответе укажите использованную весовую функцию и аргументы в пользу такого выбора.
Предполагая, что коэффициенты фильтра хранятся в смежных ячейках памяти микрокомпьютера, перечислите значения коэффициентов в порядке их хранения.
Изобразите и кратко прокомментируйте функциональную схему прямой программной реализации фильтра в реальном времени и предложите два пути улучшения эффективности программной реализации.
Примечание. Можно использовать информацию, предоставленную в табл. 7.2.
Оптимизационные методы (Паркса-Мак-Клиллана)
1. КИХ-фильтр с линейной фазовой характеристикой имеет импульсную характеристику, удовлетворяющую следующему условию симметрии:
Цп) = h(N - п - 1), п = 0,1,..., (N - 1)/2,
где N — число коэффициентов фильтра. Предполагая, что N — нечетное, определите амплитудную и фазовую характеристику фильтра и покажите, что фильтр имеет постоянную фазовую и групповую задержки. Прокомментируйте практическое значение линейной фазовой характеристики цифрового фильтра.
Требуется создать цифровой полосовой фильтр с линейной фазовой характеристикой для извлечения характерных элементов в некотором анализаторе сигналов. Нужно, чтобы фильтр удовлетворял следующим спецификациям: полоса пропускания12-16 кГц,
ширина перехода3 кГц,
частота дискретизации96 кГц,
неравномерность в полосе пропускания 0,01 дБ, затухание в полосе подавления80 дБ.
Предположим, что коэффициенты фильтра нужно вычислить с использованием оптимального метода (замена Ремеза). Определите следующие параметры фильтра:
число коэффициентов фильтра, N;
подходящие весовые коэффициенты для полос фильтра;
частоты краев полос в форме, подходящей для оптимального метода. Кратко объясните роли весовых коэффициентов и частот сетки в оптимальном методе.
Предложите подходящую для поставленной задачи плотность решетки. Можно использовать информацию, предоставленную в табл. 7.17.
Цифровой КИХ-фильтр нижних частот должен удовлетворять следующим спецификациям:
затухание в полосе подавления>40 дБ,
край полосы пропускания100 Гц,
неравномерность в полосе пропускания <0,05 дБ, ширина перехода10 Гц,
частота дискретизации1024 Гц.
Вычислите и приведите коэффициенты фильтра, указав, какой метод выбран и почему.
Требуется с помощью метода быстрой свертки создать фильтр для работы в реальном времени. Покажите, как реализовать фильтр с преобразованием Фурье, используя метод наложения-записи. Явно укажите такие параметры, как число выборок, на которое перекрываются входные блоки, размер используемого преобразования и получение выборок из Фурье-образов.
Таблица 7.17. Соотношения для оценки длины N полосового фильтра
+р(5рЛ)ДГ+1;
где
С^Л) = [lg 5s][bi(lg 5Р)2 + WP + Ь3]++ [t*4 (1g ^p)2 + t>5 1g 6p + 6g]
5(<?РЛ) = -14,61g- 16,9
61 =0,01202 b2 = 0,09664 b3 — -0,51325 64 = 0,00203 b5 = —0,5705 b6 = -0,44314
AF — ширина перехода, нормированная на частоту дискретизации,
5Р — неравномерность (или колебание характеристики) в полосе пропускания, 5S — неравномерность (или колебание характеристики) в полосе подавления
Требуется 41-точечный КИХ-дифференциатор с линейной фазовой характеристикой, который должен удовлетворять следующим спецификациям:
край полосы пропускания
1 кГц,
край полосы подавления
1,5 кГц,
частота дискретизации
10 кГц,
отклонение в полосе пропускания
0,01,
отклонение в полосе подавления
0,01.
Вычислите коэффициенты дифференциатора, используя оптимальный метод (алгоритм Паркса-Мак-Клиллана/замена Ремеза). Изобразите его амплитудночастотную характеристику.
Требуется разработать 43-точечный КИХ-фильтр, реализующий преобразование Гильберта, с линейной фазовой характеристикой, который удовлетворяет следующим спецификациям:
верхняя краевая частота1 кГц,
нижняя краевая частота4,5 кГц,
частота дискретизации10 кГц,
отклонение в полосе пропускания 0,01.
Вычислите коэффициенты фильтра, используя оптимальный метод. Изобразите его амплитудно-частотную характеристику в децибелах.
Фильтры частотной выборки
Цифровой 4-точечный КИХ-фильтр с линейной фазовой характеристикой описывается следующими частотными выборками:
]H(fc)| = 1, к = 0
|, k = l,3
0, к = 2
начав с общего выражения передаточной функции (7.24), покажите, что передаточная функция описанного выше фильтра содержит четыре нуля и три полюса;
изобразите диаграмму нулей и полюсов данного фильтра;
изобразите частотную характеристику фильтра;
разработайте и изобразите диаграмму реализации фильтра с объединенными комплексно-сопряженными полюсами, использовав для этой цели структуру частотной выборки;
определите четыре коэффициента фильтра. Коэффициенты должны быть действительными.
Требуется 4-точечный КИХ-фильтр с линейной фазовой характеристикой, реализованный по принципу частотной выборки, который характеризуется следующими выборками:
|H(fc)| = 1, к = 0
0, к = 1,2,3
начав с общего выражения передаточной функции (7.24), определите число полюсов и нулей передаточной функции фильтра;
изобразите диаграмму нулей и полюсов фильтра;
разработайте и изобразите диаграмму реализации фильтра с объединенными комплексно-сопряженными полюсами, использовав для этой цели структуру частотной выборки;
определите четыре коэффициента фильтра. Коэффициенты должны быть действительными.
Фильтры, реализованные по принципу выборки частоты, имеют определенные особенности, общие с КИХ- и БИХ-фильтрами. Некоторые из этих особенностей рассматриваются в данной задаче.
В чем заключается основное преимущество рекурсивных фильтров частотной выборки по сравнению с нерекурсивными эквивалентами?
Опишите проблему влияния конечной длины слова, связанную с рекурсивными фильтрами частотной выборки, и предложите, как ее можно преодолеть.
На рис. 7.36 изображена диаграмма нулей и полюсов полосового фильтра частотной выборки.
А. Изучив диаграмму нулей и полюсов, запишите значения частотных выборок Н(к) полосового фильтра на частотах
2тг/с2тг/ск = 0,1,..., 7.к = 0,1,..., 7.
2тг/с
2тг/с
к = 0,1,..., 7.
к = 0,1,..., 7.
Можно использовать любые разумные допущения.
Б. Изобразите амплитудно-частотную характеристику фильтра, на которой отметьте моменты выборки.
В. Вычислите коэффициенты фильтра, определив таким образом передаточную функцию Я(г) в рекурсивной форме.
Таблица 7.18. Оптимальные частотные выборки в полосе перехода для фильтров нижних частот типа 1, полученных методом частотной выборки для ^ = 15 (адаптировано из [15])
ШП
Затухание в полосе подавления (дБ)
71
т2
Тз
Одна выборка в полосе перехода, N = 15
1
42,309 322 83
0,433 782 96
2
41,262 992 86
0,417 938 23
3
41,253 337 86
0,410 473 63
4
41,949 077 13
0,404 058 84
5
44,371 245 38
0,392 681 89
6
56,014 165 88
0,357 665 25
Две выборки в полосе перехода, N = 15
1
70,605 405 85
0,095 001 22
0,589 954 18
2
69,261 681 56
0,103 198 24
0,593 571 18
3
69,919 734 95
0,100 836 18
0,589 432 70
4
75,511 722 56
0,084 074 93
0,557 153 12
5
103,460 783 00
0,051 802 06
0,499 174 24
Три выборки в полосе перехода, N = 15
1
94,611 661 91
0,014 550 78
0,184 578 82
0,668 976 13
2
104,998 130 80
0,010 009 77
0,173 607 13
0,659 515 26
3
114,907 193 18
0,008 734 13
0,163 973 10
0,647 112 64
4
157,292 575 84
0,003 787 99
0,123 939 63
0,601 811 54
Ширина полосы (ШП) в данном контексте — число частотных выборок в полосе пропускания.
Объясните, как потоковый граф БПФ в двоичной системе (рис. 7.36, б) можно использовать для вычисления импульсной характеристики фильтра по полученным выше частотным выборкам.
1. С помощью схем объясните основные концепции разработки фильтров методом частотной выборки.
Требуется, чтобы цифровой фильтр нижних частот удовлетворял следующим спецификациям:
полоса пропускания0-20 Гц,
частота дискретизации300 Гц,
затухание в полосе подавления >50 дБ, длина фильтра15.
Найдите коэффициенты передаточной функции цифрового фильтра в рекурсивной форме, используя метод частотной выборки и информацию из табл. 7.18.
А. Разработайте и изобразите диаграмму реализации фильтра и сравните требования к памяти и вычислениям рекурсивной реализации с реализацией КИХ-фильтра в прямой форме.
Б. Объясните, почему фильтр, представленный указанной выше передаточной функцией, — это все еще КИХ-фильтр, несмотря на то, что из его передаточной функции следует, что это рекурсивный фильтр. Прокомментируйте трудности, которые могут встретиться на практике при использовании рекурсивных фильтров частотной выборки, и покажите, как их можно преодолеть.
Рис. 7.36
На рис. 7.37 показана диаграмма нулей и полюсов простого полосового фильтра частотной выборки.
Изобразите амплитудно-частотную характеристику фильтра, записав таким образом значения амплитудно-частотной характеристики в точках выборки.
Получите передаточную функцию фильтра частотной выборки, начав с выражения общей передаточной функции (7.24). Ответ прокомментируйте.
Изобразите диаграмму реализации фильтра и запишите разностное уравнение.
Сравните реализацию в форме частотной выборки и прямой форме с точки зрения их требований к вычислениям и памяти.
На рис. 7.38 показана диаграмма нулей и полюсов простого полосового фильтра частотной выборки.
Изобразите амплитудно-частотную характеристику фильтра с одними нулями.
Изобразите амплитудно-частотную характеристику фильтра, записав таким образом значения амплитудно-частотной характеристики в точках выборки.
Рис. 7.37
Запишите передаточную функцию фильтра в рекурсивной форме.
Получите передаточную функцию фильтра частотной выборки, начав с выражения общей передаточной функции (7.24). Ответ прокомментируйте.
Изобразите диаграмму реализации фильтра и запишите разностное уравнение.
1. Кратко обсудите условия, необходимые, чтобы реализуемый цифровой фильтр имел линейную фазовую характеристику, и достоинства фильтров с такой характеристикой.
В определенной задаче обработки сигналов выходной сигнал (значимые частотные компоненты) принадлежит диапазону 0</<10Гци загрязнен помехами со стороны питающей сети (частота 50 Гц). Было решено избавиться от интерференции, использовав цифровой фильтр с линейной фазовой
Рис. 7.39. Диаграмма нулей и полюсов для задачи 7.15; шоТ = т(5 радиан
характеристикой после оцифровки составного сигнала с частотой 500 выбо- рок/с. На первом этапе разработки фильтра была получена диаграмма нулей и полюсов, приведенная на рис. 7.39. Получите передаточную функцию Н(z) фильтра и разностное уравнение.
Фильтр, полученный в п. 2, нужно реализовать на микрокомпьютере с простой арифметикой, ограниченной только сложением/вычитанием и сдвигами. Переделайте фильтр так, чтобы коэффициенты были целыми числами. При этом число коэффициентов фильтра или частота дискретизации увеличиваться не должны.
Покажите, что фазовая характеристика 6(ш) фильтра, полученного в п. 3, записывается так:
^(ш) = —шТ.
1. Требуется узкополосный цифровой фильтр реального времени с линейной фазовой характеристикой для использования в определенной биомедицинской системе. Обоснуйте применение в такой системе фильтра частотной выборки.
Предположим, что передаточная функция N-точечного фильтра частотной выборки записывается так:
1 — rnz|H(/c)|[2cos(27t/cq:/A1) = 2rcos[2tt/c(1 + а)/^]]Щ0)
N1 — 2r cos^tt/c/AQz-1 + r2z~2"*" 1 — z-1
где H(k) — выборки желаемой частотной характеристики, взятые в точках Fs/N, a = (N — 1)/2.
Нужный фильтр описывается такой спецификацией: полоса пропускания48-52 Гц,
ширина перехода2 Гц,
частота дискретизации500 Гц,
затухание в полосе подавления >60 дБ.
Задайте подходящие частотные выборки |Н(/с)|. Разработайте и изобразите диаграмму реализации фильтра. Сравните полученный фильтр с эквивалентной трансверсальной структурой с точки зрения требований к вычислениям и памяти.
Прокомментируйте полученную выше функцию H(z) и сложности, которые могут возникнуть при использовании рекурсивных фильтров частотной выборки. Укажите, как эти трудности можно преодолеть.
Объясните, почему H(z) описывает рекурсивный фильтр и получите импульсную характеристику /г(п) этого фильтра, имеющую конечную длительность.
Требуется N-точечный КИХ-фильтр со следующей частотной характеристикой:
= \н^>-"°-,
где а = (^ — 1)/2. Предполагается, что N выборок Н(еш) берутся в точках fk = (k + 1№/N, к = 0,1,... ,N - 1.
Покажите, что для N четного импульсная характеристика имеет вид
rzv/2-i
/г(п) = — < У^ 2|Н(к)| соз[2тг(п — а)(к + 1/2)/А7]
Покажите, что при N нечетном импульсная характеристика имеет вид
Г(ЛГ-3)/2
^П) = ]У| ^ 2|Я(к)|cos[2Tr(n - а^к + 1/2)/ЛГ] + Н[(У - 1)/2] соз[тг(п - а)] I /с=0
Получите выражение для передаточной функции H^z) в рекурсивной форме для п. 1 и 2.
Особые КИХ-фильтры
КИХ-фильтр верхних частот характеризуется следующими коэффициентами импульсной характеристики:
/г(п) = 0,127; -0,026; -0,237; 0,017; 0,434.
Запишите коэффициенты эквивалентного фильтра нижних частот с помощью преобразования частоты, описанного в разделе 7.9.2.
Вычислите коэффициенты полуполосного КИХ-фильтра, используя вырезающую функцию Кайзера. Фильтр должен удовлетворять следующим спецификациям:
неравномерность в полосе пропускания 0,5 дБ,
затухание в полосе подавления45 дБ,
край полосы пропускания2 кГц,
частота дискретизации10 кГц.
Повторите задачу 7.19, используя оптимальный метод.
Реализация КИХ-фильтра
Аналоговый сигнал засорен компонентом с частотой 50 Гц и его гармониками на частотах 100, 150, 200, 250 и 300 Гц. Предположите, что паразитный сигнал выбирается и дискретизуется с частотой 1 кГц.
Найдите передаточную функцию простого цифрового фильтра, удаляющего помеху и ее гармоники. Изобразите диаграмму реализации цифрового фильтра. Сравните и противопоставьте влияние конечной разрядности на производительность цифровых фильтров и влияние допусков на элементы схемы на производительность аналоговых фильтров. Для иллюстрации ответа используйте узкополосный режекторный фильтр.
1. Оцените влияние конечной разрядности на производительность цифровых КИХ-фильтров реального времени и предложите, как это влияние минимизировать.
В определенной системе цифровой обработки сигналов реального времени каждый коэффициент У-точечного КИХ-фильтра представлен п-битовым числом в формате дополнения до двух. Покажите, что максимальное затухание в полосе подавления Атах ограничено величиной
Amax<201g^2-в,
где В — длина коэффициента, a N — длина фильтра.
Используйте любые разумные допущения и прокомментируйте приведенную выше границу.
Ниже перечислены коэффициенты 7-точечного КИХ-фильтра. Изобразите такую диаграмму реализации фильтра, чтобы для вычисления выхода требовалось минимальное число операций умножения.
/г(0) = -0,3
/г(1) = 0,4
/г(2) = 0,2
/г(3) = 0,5
/г(4)= 0,2
/г(5) = 0,4
/г(6) = -0,3
При реализации цифрового КИХ-фильтра с коэффициентами, представленными в формате с неподвижной точкой, используется дробная арифметика с дополнением до двух, коэффициенты представлены тремя битами (включая знак).
Определите и перечислите все возможные десятичные числа, которые можно представить. Укажите наибольшее и наименьшее десятичные числа, которые можно перечислить.
Ниже перечислены неквантованные коэффициенты КИХ-фильтра. Предполагается, что коэффициенты квантуются до трех бит после выделения целой части (знак включен). Перечислите квантованные коэффициенты вместе с их ошибками квантования.
п /г(п)
О -0,14975
10,256872
20,69940
30,256872
4 -0,149725
Повторите п. 2, если коэффициенты округляются.
Коэффициенты КИХ-фильтра имеют вид {/г(п) = {—1; 0,5; 0,75}}.
Изобразите структуру фильтра, предполагая трансверсальную реализацию.
Предполагая, что коэффициенты и выборки входных данных представляются 3 бит (включая бит знака), после выделения целой части определите и занесите в таблицу значения квантованных коэффициентов в двоичной и десятичной записи.
Покажите, что если на вход подаются данные {я(п) = {0,5; -1; -0,5}}, выход у(п) по-прежнему будет верным, несмотря на переполнение на стадии промежуточных результатов (предполагается использование накапливающего сумматора двойной длины).
Покажите, что вход {а?(п)} = {—1;—0,75;0,5} приведет к неверным выходным значениям из-за переполнения. Как предотвратить переполнение?
Разработайте цифровой фильтр нижних частот реального времени для подавления физиологического шума. Фильтр будет использоваться как часть большей системы ЦОС, так что число арифметических операций в фильтре должно быть минимальным.
Фильтр должен удовлетворять следующим спецификациям:
полоса пропускания8-12 Гц,
неравномерность в полосе пропускания 0,1 дБ, ширина перехода2 Гц,
затухание в полосе подавления30 дБ,
частота дискретизации100 Гц.
Дополнительные требования:
минимальное искажение гармонической связи между компонентами внутриполосных сигналов;
фильтр нужно реализовать с использованием процессора TMS320C25 с аналоговым входом, оцифрованным до 12 бит.
Разработайте многополосный цифровой КИХ-фильтр, удовлетворяющий следующим спецификациям:
полоса 1
0-0,5 кГц
полоса 2
затухание в полосе подавления 1-1,5 кГц
49 дБ
полоса 3
неравномерность в полосе пропускания 1,8-2,5 кГц
0,3 дБ
полоса 4
затухание в полосе подавления 3-3,6 кГц
38 дБ
полоса 5
неравномерность в полосе пропускания 4,1-5 кГц
0,3 дБ
затухание в полосе подавления
55 дБ
Для реализации фильтра должна использоваться система, включающая процессор TMS320C25,12-битовый АЦП и 12-битовый ЦАП с частотой дискретизации 10 кГц.
Обсудите пять основных этапов разработки цифрового фильтра, используя для иллюстрации ответа приведенную ниже задачу.
Требуется цифровой фильтр для подавления в реальном времени физиологического шума. Фильтр должен удовлетворять следующим спецификациям:
полоса пропускания0-10 Гц,
полоса подавления20-64 Гц,
частота дискретизации256 Гц,
максимальная неравномерность в полосе пропускания 0,026 дБ, затухание в полосе подавления30 дБ.
Дополнительные требования:
фильтр должен иметь линейную фазовую характеристику, чтобы минимально искажать внутриполосные компоненты сигнала;
время, доступное для проведения фильтрации, ограничено, фильтр — это часть большого процесса;
фильтр нужно реализовать с использованием процессора TMS320C25 с аналоговым входом, оцифрованным до 12 бит.
Задачи для решения с помощью MATLAB
Используйте MATLAB для вычисления коэффициентов, изобразите амплитудночастотную характеристику в децибелах и определите положения нулей каждого из следующих фильтров (получены с помощью весовой функции Хэмминга; частота дискретизации 2 кГц):
7-точечный полосовой КИХ-фильтр, край полосы пропускания — 200 Гц, край полосы подавления — 500 Гц;
8-точечный полосовой КИХ-фильтр, край полосы пропускания — 200 Гц, край полосы подавления — 500 Гц;
7-точечный КИХ-дифференциатор, край полосы пропускания — 200 Гц, край полосы подавления — 500 Гц;
8-точечный КИХ-фильтр, реализующий преобразование Гильберта, край полосы пропускания — 200 Гц, край полосы подавления — 500 Гц.
Прокомментируйте различие и/или сходство в положениях нулей.
теристику:теристику:С помощью метода взвешивания требуется разработать 41-точечный полосовой КИХ-фильтр, аппроксимирующий следующую идеальную амплитудную харак
теристику:
теристику:
Н^_Л = 1, 2 кГц < / < 4 кГц
0 — в противном случае
Определите коэффициенты частотной характеристики фильтра и изобразите его амплитудно- и фазово-частотную характеристики с помощью MATLAB для следующих случаев:
прямоугольная весовая функция;
весовая функция Хэмминга.
Требуется, чтобы оптимальный КИХ-фильтр нижних частот с линейной фазовой характеристикой удовлетворял следующим спецификациям:
длина фильтра21,
край полосы пропускания2 кГц,
край полосы подавления3 кГц,
частота дискретизации10 кГц.
С помощью MATLAB вычислите коэффициенты фильтра и изобразите его амплитудную характеристику в децибелах и фазовую характеристику в градусах.
Вычислите и изобразите характеристики фазовой и групповой задержки фильтра.
Изучив амплитудную и фазовую характеристики, определите положение нулей.
Объясните, почему фазовая характеристика имеет разрывы. Как можно их скорректировать?
Требуется, чтобы цифровой КИХ-фильтр удовлетворял следующим специфика
циям:
150-250 Гц,50 Гц,150-250 Гц,50 Гц,полоса пропускания ширина перехода
150-250 Гц,
50 Гц,
150-250 Гц,
50 Гц,
неравномерность в полосе пропускания 0,1 дБ,
60 дБ, 1 кГц.60 дБ, 1 кГц.затухание в полосе подавления частота дискретизации
60 дБ, 1 кГц.
60 дБ, 1 кГц.
Используйте функцию Хэмминга и MATLAB для расчета коэффициентов фильтра.
Необходим полосовой КИХ-фильтр с линейной фазовой характеристикой, удовлетворяющий следующим спецификациям:
8-12 Гц, 0,001, 0,01, 48 кГц, 3 кГц.8-12 Гц, 0,001, 0,01, 48 кГц, 3 кГц.полоса пропускания
8-12 Гц, 0,001, 0,01, 48 кГц, 3 кГц.
8-12 Гц, 0,001, 0,01, 48 кГц, 3 кГц.
неравномерность в полосе подавления неравномерность в полосе пропускания частота дискретизации
ширина перехода
Используйте MATLAB, чтобы получить для каждого из указанных случаев амплитудно-частотную характеристику фильтра.
Используется весовая функция Хэмминга.
Используется окно Кайзера.
Используется оптимальный метод.
Используется метод частотной выборки.
Сравните четыре варианта.
Для выделения характерных элементов в определенном анализаторе сигналов требуется цифровой полосовой фильтр с линейной фазовой характеристикой. Фильтр должен удовлетворять следующим спецификациям:
полоса пропускания12-16 Гц,
ширина перехода3 кГц,
частота дискретизации96 кГц,
неравномерность в полосе пропускания 0,01 дБ,
затухание в полосе подавления80 дБ.
Для вычисления коэффициентов используйте оптимальный метод. Определите с помощью MATLAB следующие величины:
число коэффициентов фильтра, N;
коэффициенты фильтра.
Изобразите амплитудно-частотную характеристику.
Требуется многополосный цифровой КИХ-фильтр, удовлетворяющий следующим спецификациям:
полоса 1: 0-0,5 кГц, затухание в полосе подавления > 49 дБ,
полоса 2: 1-1,5 кГц, неравномерность в полосе пропускания 0,3 дБ,
полоса 3: 1,8-2,5 кГц, затухание в полосе подавления 38 дБ,
полоса 4: 3-3,6 кГц, неравномерность в полосе пропускания 0,3 дБ,
полоса 5: 4,1-5 кГц, затухание в полосе подавления 55 дБ.
Используйте оптимальный метод и MATLAB для расчета коэффициентов фильтра и изобразите его амплитудно-частотную характеристику. Частоту дискретизации считайте равной 10 кГц, а ширину полосы перехода — 100 Гц.
Требуется оптимальный фильтр нижних частот, удовлетворяющий следующим
спецификациям:
полоса пропускания0-6 кГц,
ширина полосы перехода1 кГц,
неравномерность в полосе пропускания 0,1 дБ, затухание в полосе подавления50 дБ,
частота дискретизации16 кГц.
Определите длину фильтра и коэффициенты с помощью команд MATLAB ге- mezordиremez.
Изобразите амплитудно-частотную характеристику фильтра.
Вычислите коэффициенты полуполосного КИХ-фильтра, используя весовую функцию Кайзера и MATLAB. Фильтр должен удовлетворять следующим спецификациям:
неравномерность в полосе пропускания 0,5 дБ,
затухание в полосе подавления45 дБ,
край полосы пропускания2 кГц,
частота дискретизации10 кГц.
Повторите задачу 7.19, используя оптимальный метод и команды MATLAB remezordиremez.
Требуется разработать 41-точечный КИХ-дифференциатор с линейной фазовой характеристикой, удовлетворяющий следующим спецификациям:
край полосы пропускания1 кГц,
край полосы подавления1,5 кГц,
частота дискретизации10 кГц,
неравномерность в полосе пропускания0,01,
неравномерность в полосе подавления0,01.
Рассчитайте коэффициенты дифференциатора, используя оптимальный метод (алгоритм Паркса-Мак-Клиллана) и MATLAB. Изобразите его амплитудночастотную характеристику.
Требуется разработать 43-точечный КИХ-фильтр, реализующий преобразование Гильберта, с линейной фазовой характеристикой, удовлетворяющий следующим спецификациям:
нижняя граничная частота1 кГц,
верхняя граничная частота4,5 кГц,
частота дискретизации10 кГц,
колебание характеристики в полосе пропускания 0,01.
Вычислите коэффициенты фильтра, используя оптимальный метод (алгоритм Паркса-Мак-Клиллана) и MATLAB. Изобразите его амплитудно-частотную характеристику в децибелах.
Литература
Crochiere R. Е. and Rabiner L. R. (1981) Interpolation and decimation of digital signals — a tutorial review. Proc. IEEE, 69(3), 300-331.
Hamer C. F, Ifeachor E. C. and Jervis B. W. (1985) Digital filtering of physiological signals with minimal distortion. Medical and Biol. Eng. and Computing, 23, 274-278.
Harris S. P. and Ifeachor E. C. (1998) Automatic design of frequency sampling filters by hybrid Genetic Algorithm Techniques. IEEE Transactions on Signal Processing, 46(12), December, 3304-3314.
Herrman O., Rabiner R. L. and Chan D. S. K. (1973) Practical design rules for optimum finite impulse response digital filters. Beil System Technical J., 52, 769-799.
Ifeachor E. C. and Harris S. P. (1993) A new approach to frequency sampling filter design, in Proc. IEE/IEEE Workshop Natural Algorithms in Signal Processing, 5/1-8.
Lawrence V. B. and Salazar A. C. (1980) Finite precision design of linear-phase FIR filters. Bell System Technical J., 59(9), 1575-1598.
Lynn P. A. (1973) Recursive digital filters with linear phase characteristics. Computer J., 15, 337.
Lynn P. A. (1975) Frequency sampling filters with integer multipliers. In Introduction to Digital Filtering, Bogner R. E. and Constantinides A. G. (eds). New York: Wiley.
McClellan J. H., Parks T. W. and Rabiner L. R. (1973) A computer program for designing optimum FIR linear phase digital filters. IEEE Trans. Audio Electroacoustics, 21, 506-526.
Mintzer F. and Liu B. (1979) Practical design rules for optimum FIR bandpass digital filters. IEEE Trans. Acoustics, Speech Signal Processing, 27(2), 204-206.
Mitra S. K. and Kaiser J. F. (1993) Handbook for Digital Signal Processing. New York: Wiley.
Oppenheim A. V. and Schaffer R. W. (1975) Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Parks T. W. and Burrus C. S. (1987) Digital Filter Design. New York: Wiley.
Rabiner L. R. and Gold B. (1975) Theory and Applications of Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Rabiner L. R., Gold B. and McGonegal C. A. (1970) An approach to the approximation problem for nonrecursive digital filters. IEEE Trans. Audio Electroacoustics, 18, 83-106.
Suckley D. (1990) Genetic algorithm in the design of FIR filters. IEEE Proc. Part G, 138(2), 234-238.
Wade G., van Eetvelt P. and Darwen H. (1990) Synthesis of efficient low-order FIR filters from primitive sections. IEEE Proc. Part G, 137(5), 367-372.
Дополнительная литература,
Bateman A. and Yates W. (1988) Digital Signal Processing Design. London: Pitman.
Chan D. S. K. and Rabiner L. R. (1973) Analysis of quantization errors in the direct form for finite impulse response digital filters. IEEE Trans. Audio Electroacoustics, 21(4), 354-366.
Chan D. S. K. and Rabiner L. R. (1973) An algorithm for minimizing roundoff noise in cascade realizations of finite impulse response digital filters. Bell System Technical J., 52(3), 347-385.
DeFatta D. J., Lucas J. G. and Hodgkiss W. S. (1988) Digital Signal Processing: A System Design Approach. New York: Wiley.
Gersho A., Gopinath B. and Odlyzko A.M. (1979) Coefficient inaccuracy in transversal filtering. Bell System Technical J., 58(10), 2401-2416.
Gold B. and Jordan K. L., Jr (1968) A note on digital filter synthesis. Proc. IEEE (Lett.), 56, 1717, 1718.
Gold B. and Jordan K. L., Jr (1969) A direct search procedure for designing finite duration impulse response filters. IEEE Trans. Audio Electroacoustics, 17, 33-36.
Gold B. and Rader С. M. (1969) Digital Processing of Signals. New York: McGraw-Hill.
Gore A. E. (1986) Cascadable digital signal processor. New Electronics, 19, October, 39-41.
Heute U. (1977) Comments on Rabiner L. R. A simplified computational algorithm for implementing FIR digital filters. IEEE Trans. Acoustics, Speech Signal Processing, 25, June, 266, 267.
Hillman G. D. (1987) DSP56200: an algorithm-specific digital signal processor peripheral. Proc. IEEE, 75, September, 1185-1191.
Knowles J. B. and Olcayto E. M. (1968) Coefficient accuracy and digital filter response. IEEE Trans. Circuit Theory, 15, 31-41.
Lin K., Frantz G. A. and Simar R. (1987) The TMS320 family of digital signal processors. Proc. IEEE, 75, 1143-1159.
Lynn P. A. (1970) Economic linear-phase recursive digital filters. Electronics Lett., 6, 143-145.
Lynn P. A. and Fuerst W. (1989) Introductory Digital Signal Processing with Computer Applications. New York: Wiley.
Mintzer F. (1982) On half-band, third-band and Nth-band FIR filters and their design. IEEE Trans. Acoustics, Speech Signal Processing, 30, 734-738.
Mitra S. K. and Sherwood R. J. (1972) Canonic realizations of digital filters using the continued fraction expansion. IEEE Trans. Audio Electroacoustics, 20, 185-194.
Proakis J. G. and Manolakis D. G. (1992) Introduction to Digital Signal Processing. New York: Macmillan.
Rabiner L. R. (1971) Techniques for designing finite-duration impulse response digital filters. IEEE Trans. Communication Technology, 19, 188-195.
Rabiner L. R. (1973) Approximate design relationships for lowpass FIR digital filters. IEEE Trans. Audio Electroacoustics, 21, 456-460.
Rabiner L. R. (1977) A simplified computational algorithm for implementing FIR digital filters. IEEE Trans. Acoustics, Speech Signal Processing, 25, June, 259-261.
Rabiner L. R. and Schafer R. W. (1971) Recursive and nonrecursive realizations of digital filters designed by frequency sampling techniques. IEEE Trans. Audio Electroacoustics, 19, 200-207.
Rabiner L. R. and Schafer R. W. (1972) Correction to “Recursive and nonrecursive realizations of digital filters designed by frequency sampling techniques". IEEE Trans. Audio Electroacoustics (Corresp.), 20, 104, 105.
Rabiner L. R., Kaiser J. F. and Schafer R. W. (1974) Some considerations in the design of multiband finite impulse response digital filters. IEEE Trans. Acoustics, Speech Signal Processing, 22(6), 462-472.
Rabiner L. R., McClellan J. H. and Parks T. W. (1975) FIR digital filter design techniques using weighted Chebyshev approximation. Proc. IEEE, 63(4), 595-610.
Приложения; ■
A. Программы на С для разработки КИХ-фильтров i ■
В книге [Ifeachor, 2001] имеются следующие программы на С, облегчающие разработку КИХ-фильтров (подробности см. в приложении):
f resamp. с — программа вычисления коэффициентов фильтра по методу частотной выборки;
optimal.с — программа вычисления коэффициентов фильтра с помощью оптимального метода;
window. с — программа вычисления коэффициентов фильтра по методу вырезания;
firf ilt. с — программа КИХ-фильтрации данных;
ncoeff .с — программа оценки числа коэффициентов фильтра для оптимального фильтра нижних частота или полосового фильтра.
Для ограничения объема книги ниже приводится только последняя программа, псо- eff. с (программа 7АЛ), представляющая собой прямую реализацию уравнений, приведенных в разделе 7.6.3. Для применения программы используем ее для оценки длины полосового фильтра, удовлетворяющего следующим спецификациям:
полоса пропускания1800-3300 Гц,
полосы подавления0-1400, 3700-5000 Гц,
частота дискретизации10 кГц,
неравномерность в полосе пропускания 1 дБ,
затухание в полосе подавления40 дБ.
Программа 7АЛ
программа оценки числа коэффициентов*
оптимального КИХ-фильтра нижних частот или полосового фильтра*
**
*имяпрограммы: ncoeff.c*
**
*MannyIfeachor, 17.10.91*
**
**
* / ♦include <stdio.h> ♦include <math.h> ♦include <dos.h>
intfilterspec();
doubleIpfcoeff();
doublebpfcoeff();
floatdp, ds, df;
intftype;
main()
{
double N;
ftype=fliterspec(); /* получение спецификаций фильтра */ switch(ftype){ case 1:
N=lpfcoeff(); break; case 2:
N=bpfcoeff(); break;
default:
printf("неверно задан тип фильтра \n");
break;
1
printf("Число коэффициентов \t%f\n",N);
printf("неравномерность в полосе пропускания в дБ \t%f\n",dp);
printf("затухание в полосе подавления в дБ \t%f\n",ds);
printf("\n");
printf("Для продолжения нажмите <Enter> \n");
getch(); exit(0);
)
/**/
intfilterspec()
(
int itype;
printf("программа оценки длины оптимального фильтра \п");
printf("\п") ;
printf("выберите тип фильтра \п");
printf("1 оптимальный фильтр нижних частот \п");
printf("2 оптимальный полосовой фильтр \п");
scanf ("%d", Sitype);
printf("\n");
printf("введите неравномерность в полосе пропускания
и подавления в обычных единицах \п");
printf("неравномерность должна быть от 0 до 1\п");
scanf("%f%f",&dp,&ds);
switch(itype){
printf("введите нормированную ширину
полосы перехода\п");
scanf("%f", &df);
break;
printf("введите нормированную ширину полосы перехода - меньшую ширину \п");
scanf("%fY, &df);
break;
}
return(itype); )
/**/
doubleIpfcoeff()
(
floatddp, dds, al, a2, аЗ, a4, aS, a6, bl, b2;
doubledinf, ff, tl, t2, t3, t4, NI;
/♦константы */
al=0.005309; a2=0.07114; a3=-0.4761; a4=-0.00266;
a5=-0.5941; a6=-0.4278;
bl=ll.01217; b2=0.5124401;
ddp=logl0(dp);
dds=logl0(ds);
tl=al*ddp*ddp;
t2=a2*ddp;
t3=a4*ddp*ddp;
t4=a5*ddp;
dinf=((tl+t2+a3)*dds) +(t3+t4+a6);
ff=bl+b2*(ddp-dds);
NI-((dinf/df)-(ff*df)+1);
dp=20*logl0(1+dp); ds=-20*logl0(ds);
Таблица 7АЛ. Запросы, ответы и выход программы ncoef f, с
программа оценки длины оптимального фильтра
выберите тип фильтра
оптимальный фильтр нижних частот
оптимальный полосовой фильтр
2
ведите неравномерность в полосе пропускания и подавления в обычных единицах
неравномерность должна быть от 0 до 1
0.122 0.01
введите нормированную ширину полосы перехода - меньшую ширину 0.04
Число коэффициентов31.261084
неравномерность в полосе пропускания в дБ 0.999857
затухание в полосе подавления в дБ40.000000
для продолжения нажмите <Enter>
return(NI) ; } /**/
doublebpfcoeff()
{ float al, a2, аЗ, a4, a5, a6, ddp, dds; double tl, t2, t3, t4, cinf, ginf, Nb; al=0.01201, a2=0.09664, a3=-0.51325; a4=0.00203; a5=-0.57054; a6=-0.44314; ddp=logl0(dp); dds=logl0(ds) ; tl=al*ddp*ddp; t2=a2*ddp;-
t3=a4*ddp*ddp; t4=a5*ddp; cinf=dds*(tl+t2+a3)+t3+t4+a6; ginf=-14.6*logl0(dp/ds)-16.9; Nb=(cinf/df) + ginf*df+l; dp=20*log!0(1+dp); ds=-20*logl0(ds); return(Nb); }
Из спецификации следует, что нормированная ширина полосы перехода равна 0,04 (450/10 000), неравномерность в полосе пропускания — 0,122 (20 lg(l + 1)), а неравномерность в полосе подавления равна 0,01 (-201g(40)). Запросы программы, ответы пользователя и выход программы из предыдущего примера приведены в табл. 7А.1. Число коэффициентов фильтра, 31, в данном случае является лишь оценкой. В большинстве практических ситуаций для соответствия спецификациям требуется большее значение длины фильтра (т.е. большее число коэффициентов), чем выдает программа. В приведенном выше примере реальная длина для соответствия спецификации равна 35. Разработчик всегда должен помнить данный момент, используя программу.
7.Б. Разработка КИХ-фильтра с помощью MATLAB L
Прекрасный набор программ и функций разработки и анализа различных типов цифровых КИХ-фильтров содержит средство Signal Processing Toolbox в MATLAB. Доступ к программам и командам производится с помощью команд высокого уровня, что делает Toolbox ценным инструментом при разработке и изучении КИХ-фильтров без “закапывания” в пространное программирование.
В данном разделе иллюстрируется использование некоторых функций и программ MATLAB для разработки КИХ-фильтров с линейной фазовой характеристикой. В частности, иллюстрируется вычисление средствами MATLAB коэффициентов КИХ-фильтров с линейной фазовой характеристикой с использованием методов вырезания, оптимального (Паркса-Мак-Клиллана) и частотной выборки, что дополняет программу на С, рассмотренную в предыдущем разделе.
L 7.Б.1. Метод взвешивания
Этапы вычисления коэффициентов стандартного частотно-избирательного КИХ- фильтра с линейной фазовой характеристикой с помощью метода взвешивания можно упорядочить следующим образом.
Задать необходимую частотную характеристику.
Выбрать весовую функцию и оценить число коэффициентов фильтра, N.
Получить идеальную частотную характеристику, 6у(тг) (усеченную до N значений).
Получить N коэффициентов весовой функции, ги(п\
Получить коэффициенты КИХ-фильтра, воздействовав на частотную характеристику весовой функцией, h(n) = h.D(n) х w(n).
Для стандартного частотно-избирательного КИХ-фильтра с линейной фазовой характеристикой (нижних частот, верхних частот, полосовые и режекторные фильтры), при разработке которого используется метод вырезания, ключевой командой высокого уровня в Toolbox является команда firl. Синтаксис данной команды (в стандартной форме):
b = firl(N — l),Fc.
Команда в стандартной форме вычисляет и возвращает коэффициенты А-точечной импульсной характеристики КИХ-фильтра с частотой среза Fc. Команда возвращает коэффициенты в вектор Ь, упорядоченный по возрастанию отрицательной степени z:
Цг) = 6(0) + 6(1)2-* + 6(2)г-2 + ■ - - + 6(А - IK^1).
Параметр команды N — 1 задает порядок фильтра (обычно на единицу меньше числа коэффициентов КИХ-фильтра). Частота среза Fc нормирована на частоту Найквиста (т.е. половину частоты дискретизации).
По умолчанию стандартная команда firl действует на данные весовой функцией Хэмминга и в ней предполагается использование фильтра нижних частот (или полосовой фильтр, если Fc задает более одной частоты среза). Стандартную команду можно
расширить, задав тип фильтра и/или весовую функцию. В этом случае используется такой синтаксис:
b = firl(N — l,Fc, ‘тип фильтра’)
b = fir 1 (N — 1, Fc, window)
b = firl(N — 1,Fc, ‘тип фильтра’, window)
Для фильтра верхних частот (highpass) тип задается словом “high”, для режекгор- ного (stopband) — словом “stop”. Для полосовых и режекгорных фильтров переменная Fc — вектор, который задает частоты среза. Для фильтров верхних частот и режекторных длина фильтра должна быть нечетным целым числом (четные целые не подходят, поскольку, как показано ниже, это приведет к нулевой амплитудной характеристике на частоте Найквиста).
MATLAB поддерживает использование различных весовых функций, включая функции Хэмминга (Hamming), Хеннинга (Hanning), прямоугольную (boxcar), Кайзера (Kaiser) и Чебышева (Chebyshev). Для получения весовых коэффициентов следует использовать такой синтаксис:
w = boxcar(N)
w = blackman(N)
w = hamming(N).
w ~ hanning(N)
w = kaiser(N, beta)
На практике команда взвешивания часто вкладывается в команду f irl (см. примеры ниже).
Нужно отметить, что из-за различий в реализациях результаты, полученные при разработке КИХ-фильтров на основе методов вырезания с помощью MATLAB, могут отличаться от результатов, полученных с помощью других программ. Например, в MATLAB после вырезания коэффициенты импульсной характеристики могут масштабироваться для получения в середине полосы пропускания единичной амплитудно-частотной характеристики. Чтобы запретить такое поведение, следует добавить слово “noscale”, например, b = firl(N — 1, Fc, ‘noscale’). Кроме того, реализация в MATLAB большинства весовых функций может немного меняться, приводя к различным результатам. Разработчик должен знать об этих отличиях и при необходимости делать соответствующие допущения, чтобы их компенсировать.
Пример 7Б.1
Определите коэффициенты КИХ-фильтра нижних частот с линейной фазовой характеристикой с краями полосы пропускания и полосы подавления на частотах 1 и 4,3 кГц соответственно. Используйте весовую функцию Хэмминга, частоту дискретизации предполагайте равной 10 кГц.
Решение
Из табл. 7.3 находим подходящее соотношение между шириной перехода Д/ и длиной фильтра N для фильтра на основе весовой функции Хэмминга:
Таблица 7Б.1. Параметры фильтра из примера 7Б.1
п
Усеченная идеальная импульсная характеристика, hD(n)
Весовые коэффициенты, w(n)
Коэффициенты фильтра, /i(n)
0
0,0641
0,0800
0,0053
1
-0,0388
0,1876
-0,0075
2
-0,1052
0,4601
-0,0496
3
0,1235
0,7700
0,0974
4
0,4564
0,9723
0,4544
5
0,4564
0,9723
0,4544
6
0,1235
0,7700
0,0974
7
-0,1052
0,4601
-0,0496
8
-0,0388
0,1876
-0,0075
9
0,0641
0,0800
0,0053
В нашем случае △/ равно 0,33 (из (4,1 — 1)/Ю), так что длина фильтра N = 10. Используя тот же подход, что и в тексте главы, принимаем, что реальная частота среза (с учетом эффекта размывания) лежит посредине между заданными краями полос пропускания и подавления, т.е. на частоте 2,65 кГц. В MATLAB частоту среза можно нормировать на половину частоты дискретизации. Тогда /с (нормированная) = 2,65/5 = 0,53.
Команды MATLAB приведены в программе 7Б.1. Значения усеченной идеальной импульсной характеристики, коэффициенты весовой функции и финального фильтра представлены в табл. 7Б.1.
Программа 7Б.1. Реализация решения задачи 7Б.1 в форме m-файла MATLAB
fc=0.53; % Частота среза (нормированная на Fs/2)
N=10; % Длина фильтра (число отводов)
nd=firl(N-l,fc,boxcar(N)); % Усеченная идеальная импульсная характеристика wn=hamming(N); % Вычислить коэффициенты функции Хэмминга hn=firl(N-l,fc,wn); % Получить коэффициенты взвешенной функции
Пример 7Б.2
Иллюстрация вычисления коэффициентов КИХ-фильтра с использованием весовой функции Кайзера. Определите коэффициенты и изобразите амплитудно-частотную характеристику полосового КИХ-фильтра, используя весовую функцию Кайзера и MATLAB. Фильтр должен удовлетворять следующим спецификациям:
полоса пропускания150-250Гц,
ширина полосы перехода50 Гц,
неравномерность в полосе пропускания 0,1 дБ, затухание в полосе подавления60 дБ,
частота дискретизации1 кГц.
Частота (Гц)
Рис. 7Б.1
Решение
Данная задача идентична примеру 7.4 в тексте главы. В этот раз для решения задачи используем средства MATLAB.
В примере 7.4 была найдена длина фильтра А = 73 и параметр неравномерности Р = 5,65. Реализация решения задачи в форме m-файла MATLAB приведена в программе 7Б.2. Коэффициенты фильтра и амплитудный спектр представлены в табл. 7Б.2 инарис. 7Б.1.'
Следует отметить, что в данном примере коэффициенты весовой функции не вычисляются отдельно, просто в команду f irl включен тип весовой функции.
Программа 7Б.2. Реализация решения примера 7Б.2 в форме m-файла MATLAB
FS=1000; % Частота дискретизации
FN=FS/2; % Частота Найквиста
N=73; % Длина фильтра
beta=5.65; % Параметр неравномерности функции Кайзера
fcl=125/FN; % Нормированные частоты среза fc2=275/FN;
FC=[fcl fc2]; % Вектор краевых частот
hn=firl(N-l,FC, kaiser(N,beta)); % Получить коэффициенты фильтра [Н,f]=freqz(hn,1,512,FS); % Вычислить частотную характеристику mag=20*logl0(abs(Н)) ;
plot(f,mag), grid on
xlabel('Частота (Гц)1)
ylabel('Амплитудная характеристика (дБ)')
Таблица 7Б.2. Коэффициенты фильтра из примера 7Б.2
п
/г(п)
п
/г(п)
п
/г(п)
п
/г(п)
0
-0,0001
10
-0, 0005
20
0, 0069
30
0, 0094
1
-0,0004
11
-0, 0044
21
0, 0189
31
0, 0856
2
-0,0001
12
-0,0022
22
0,0029
32
0,0453
3
-0,0001
13
0,0069
23
0,0044
33
-0, 1665
4
-0,0007
14
0,0066
24
0,0188
34
-0,2066
5
0, 0005
15
-0,0016
25
-0,0125
35
0,0891
6
0, 0023
16
0,0000
26
-0,0520
36
0,2998
7
0, 0008
17
0,0022
27
-0,0165
8
-0,0017
18
-0,0117
28
0,0333
9
-0,0005
19
-0,0164
29
0,0104
.Б.2. Оптимизационные методы
Средство Signal Processing Toolbox в MATLAB содержит несколько программ разработки и функций для создания оптимальных КИХ-фильтров на основе алгоритмов Паркса-Мак-Клиллана и Ремеза. Основной командой для вычисления коэффициентов с помощью оптимального метода является remez. Команда может использоваться для разработки многополосных КИХ-фильтров с линейной фазовой характеристикой. В стандартной форме она имеет следующий синтаксис:
b = remez(N — 1, F, М),
где N — длина фильтра, F — вектор нормированных граничных частот, а М — вектор желаемой амплитудной характеристики фильтра на заданных граничных частотах. Граничные частоты нормированы на половину частоты дискретизации и лежат в диапазоне от 0 до 1 (частота Найквиста соответствует 1).
Стандартную команду можно расширить, задав, например, относительные коэффициенты колебаний характеристики в полосе пропускания и подавления и/или тип фильтра. Если задаются относительные весовые коэффициенты и требуются амплитуды колебаний характеристики в полосе пропускания и полосе подавления, используется следующий синтаксис:
b = remez(N — 1, F, М, WT),
где WT — вектор относительных коэффициентов амплитуд колебаний характеристики в полосах.
Для задания типа требуемого фильтра можно дополнительно добавить флаг ‘ftype’. Существует четыре возможных типа, в зависимости от четности N и типа симметрии коэффициентов фильтра. Фильтры относятся к типу 1, когда длина фильтра нечетная (т.е. когда порядок фильтра, А — 1, — четная величина), и к типу 2, когда длина фильтра четная. На использование фильтров типа 1 в качестве стандартных частотноизбирательных фильтров ограничений не существует. Фильтры типа 2 имеют нуль на частоте Найквиста, так что не могут использоваться при разработке фильтров верхних частот и заградительных фильтров. Фильтры типа 3 (N — нечетное) дают реализации преобразования Гильберта, и фильтры типа 4 (N — четное) — дифференциаторы. Для выбора фильтров типа 1 и 2 достаточно задать длину фильтра, но, чтобы указать тип фильтра для фильтров типа 3 и 4, необходимо включить флаг ‘hilbert’ или ‘differentiator’.
Пример 7Б.З
Используя оптимальный метод, вычислите коэффициенты и изобразите частотную характеристику полосового КИХ-фильтра с линейной фазовой характеристикой, удовлетворяющего следующим спецификациям:
полоса пропускания1 000-1500 Гц,
полоса перехода500 Гц,
длина фильтра41,
частота дискретизации10 000 Гц.
Решение
Полосы фильтра: 0-500 Гц (нижняя полоса подавления), 1000-1500 Гц (полоса пропускания), 2000-5000 Гц (верхняя полоса подавления). Граничные частоты нормируются на половину частоты дискретизации:
500/5000 = 0,11000/5000 = 0,21500/5000 = 0,32000/5000 = 0,4
5000/5000 = 1
Следовательно, вектор нормированных граничных частот F записывается в таком виде:
F [0;0,1;0,2;0,3;0,4;1].
Нужная амплитудная характеристика равна 1 в полосе пропускания и 0 в полосе подавления, поэтому вектор желаемой амплитудной характеристики записываем в виде
М = [001100]
Команды MATLAB для расчета коэффициентов и вывода графика амплитудной характеристики фильтра приведены в программе 7Б.З.
Коэффициенты фильтра и амплитудная характеристика приведены в табл. 7Б.З и на рис. 7Б.2.
Программа 7Б.З. Реализация вычисления коэффициентов оптимального КИХ-фильтра и вывода на экран частотной характеристики в форме m-файла MATLAB % %
Fs=1000; % Частота дискретизации
N=41; % Длина фильтра
М-[0 0 1 1 0 0]; % Желаемая амплитудная характеристика
F=[0, 0.1, 0.2, 0.3, 0.4, 1]; % Края полос
b=remez(N-l, F, М); % Вычислить коэффициенты фильтра
[Н, f]=freqz(b, 1, 512, Fs); % Вычислить частотную характеристику
mag=20*logl0(abs(Н)); % фильтра и нарисовать ее plot(f,mag)
xlabel('Frequency (Hz)')
ylabel('Magnitude (dB)')
Таблица 7Б.З. Коэффициенты фильтра из примера 7Б.З
п
/i(n)
п
/i(n)
0
-0,0001
11
-0,0044
1
-0,0004
12
-0,0022
2
-0,0001
13
0,0069
3
-0,0001
14
0,0066
4
-0,0007
15
-0,0016
5
0,0005
16
0,0000
6
0,0023
17
0,0022
7
0,0008
18
-0,0117
8
-0,0017
19
-0,0164
9
-0,0005
20
0,0069
10
-0,0005
21
0,0189
Рис. 7Б.2
Пример 7Б.4
Требуется полосовой фильтр с линейной фазовой характеристикой, удовлетворяю
щий следующим спецификациям: полоса пропускания12-16 Гц,
ширина полосы перехода2 кГц,
неравномерность в полосе пропускания 1 дБ, затухание в полосе подавления45 дБ,
частота дискретизации50 кГц.
Оцените длину фильтра N и используйте оптимальный метод, чтобы определить его коэффициенты и амплитудно-частотную характеристику. Сравните амплитуды колебаний характеристики в полосе пропускания и подавления с заданными значениями.
Решение
Как и ранее, граничные частоты нужно вначале определить, а затем нормировать на половину частоты Найквиста:
10/25 = 0,4,
12/25 = 0,48,
16/25 = 0,64,
18/25 = 0,72.
Используя эти значения, получаем следующий вектор граничных частот:
F = [00,40,480,640,721],
М = [001100].
Для оценки длины фильтра можно использовать команду remezord. Для этого неравномерность в полосе пропускания и полосе подавления нужно перевести из децибелов в стандартные линейные единицы:
,10^ - 110w + 1,10^ - 110w + 15S = Ю^,5S = Ю^,
,10^ - 1
10w + 1
,10^ - 1
10w + 1
5S = Ю^,
5S = Ю^,
где АриА8 — неравномерность в полосе пропускания и полосе подавления в децибелах.
На основе граничных частот, желаемой амплитудной характеристики, значений амплитуды колебаний и частоты дискретизации оценивается порядок (^ — 1), а следовательно, и длина фильтра (см. программу 7Б.4, рис. 7Б.З и табл. 7Б.4).
Получаем такие оценки параметров фильтра: N = 40, весовые коэффициенты 10,22:1: 10,22, максимальное отклонение 0,0774. Значение N можно увеличить, чтобы достичь большего затухания в полосе подавления и/или меньшей неравномерности в полосе пропускания (см. программу 7Б.5).
Рис. 7Б.З
Программа 7Б.4. Реализация вычисления коэффициентов оптимального КИХ-фильтра и вывода на экран частотной характеристики (пример 7Б.4) в форме m-файла MATLAB % %
Fs=50000; % Частота дискретизации
Ар=1; % Неравномерность в полосе пропускания в дБ
As=45; % Затухание в полосе подавления в дБ
М= [0 1 0]; % Желаемая амплитудная характеристика
F=[10000, 12000, 16000, 18000]; % Края полос
dp=(10А(Ар/20)Р1)/(10А(Ар/20)+1); % Неравномерность в полосе пропускания
% и полосе подавления ds=10A(-As/20); dev=[ds dp ds];
[Nl, F0, M0, W] = remezord(F, M, dev, Fs) % Определить порядок фильтра [b delta] = remez(Nl, F0, M0, W); % Вычислить коэффициенты фильтра
[H, f] = freqz(b, 1, 1024, Fs); % Вычислить частотную характеристику
mag = 20*logl0(abs(H));% фильтра и нарисовать ее
plot(f, mag), grid on
xlabel('Частота (Гц)1)
у label ('Амплитуда (дБ)1)
Таблица 7Б.4. Коэффициенты оптимального КИХ-фильтра из примера 7Б.4
п
А(п)
п
А(п)
0
0,0005
10
0,0054
1
-0,0017
11
-0,0080
2
-0,0088
12
0,0305
3
0,0139
13
0,0293
4
0,0136
14
-0,0988
5
-0,0273
15
-0,0085
6
-0,0060
16
0,1654
7
0,0363
17
-0,0595
8
-0,0059
18
-0,1854
9
-0,0225
19
0,1411
Программа 7Б.5. Альтернативный m-файл MATLAB для вычисления коэффициентов оптимального КИХ-фильтра и вывода на экран частотной характеристики (пример 7Б.4) % % N=44 Fs=50000; % Частота дискретизации Ар=1; % Неравномерность в полосе пропускания в дБ As=45; % Затухание в полосе подавления в дБ М= [ О 0 1 1 0 0 ]; % Желаемая амплитудная характеристика F=[0, 0.4, 0.48, 0.64, 0.72 1] ; % Края полос dp=(10А(Ар/20)Р1)/(10А(Ар/20)+1); ds=10A(-As/20); W=[dp/ds, 1, dp/ds); dev=[ds ds dp dp ds ds); [b delta) = remez(NPl, F, M, W); % Вычислить коэффициенты фильтра [H, f] = freqz(b, 1, 1024, Fs); % Вычислить частотную характеристику mag = 20*logl0(abs(Н));% фильтра и нарисовать ее
plot(f, mag), grid on xlabel('Частота (Гц)1) ylabel('Амплитуда (дБ)')
.Б.З. Метод частотной выборки
Для разработки КИХ-фильтров с произвольными частотными характеристиками, подобных фильтрам, рассмотренным при использовании метода частотной выборки, предназначена команда f ir2. Синтаксис стандартной команды:
b = fir2(N — 1), F, Н
Команда f ir2 вычисляет коэффициенты КИХ-фильтра длины N. Вектор F задает нормированные частоты в интервале от 0 до 1 (причем частоты, как и ранее, нормированы на половину частоты дискретизации). Вектор Н определяет желаемую амплитудную характеристику в точках, заданных в F. Оба вектора должны иметь одинаковую длину.
Ниже использование команды f ir2 иллюстрируется на примерах.
Пример 7Б.5
Пример разработки фильтра частотной выборки. КИХ-фильтр частотной выборки с линейной фазовой характеристикой имеет две частотные выборки в полосе перехода. Предполагается, что фильтр имеет 15 отводов и характеризуется следующими частотными выборками:
\H(k)\ = l к = 0,1,2,3
0,5571к = 4
0,0841к = 5
0 к = 6,7
Определите коэффициенты фильтра, если частота дискретизации равна 2 кГц.
Решение
Частотные выборки заданы в диапазоне от 0 до половины частоты дискретизации. Следовательно, имеем такие положения точек выборки, нормированные на половину частоты дискретизации: 0, 1/7, 2/7, 3/7, 4/7, 5/7, 6/7, 1.
Программа 7Б.6 представляет собой код MATLAB, в гатором частотные выборки используются для определения коэффициентов КИХ-фильтра; амплитудно-частотная характеристика фильтра представлена на рис. 7Б.4, а коэффициенты фильтра—в табл. 7Б.5.
Программа 7Б.6. Реализация вычисления коэффициентов КИХ-фильтра частотной выборки в форме m-файла MATLAB
N=15;
fd=[O 1/7 2/7 3/7 4/7 5/7 6/7 1];
Hd=[l 111 0.5571 0.0841 0 0];
hn=fir2(NPl, fd, Hd);
[H, f] = freqz(hn, 1, 512, Fs);
plot(f, abs(H)), grid on
xlabel('Частота (Гц)1)
ylabel('Амплитуда (дБ)')
Таблица 7Б.5. Коэффициенты фильтра из примера 7Б.5
п
А(п)
п
А(п)
0
-0,0001
8
0,2777
1
-0,0006
9
-0,0571
2
0,0017
10
-0,0299
3
0, 0128
11
0,0128
4
-0,0299
12
0,0017
5
-0,0571
13
-0,0006
6
0, 2777
14
-0,0001
7
0,5910
Пример 7Б.6
Разработка фильтра с произвольной амплитудной характеристикой. Требуется КИХ-фильтр, аппроксимирующий амплитудно-частотную характеристику, изображенную на рис. 7Б.5.
Определите коэффициенты подходящего КИХ-фильтра и изобразите его амплитудночастотную характеристику. Частоту дискретизации считайте равной 2 кГц, а длину фильтра — равной 10.
Решение
Желаемая амплитудная характеристика находится на уровне 1 между нормированными частотами 0 и 0,15, на уровне 0,3 между 0,25 и 0,45, на уровне 0,1 между 0,5 и 0,75 и на уровне 0 между 0,85 и 1.
Код MATLAB, реализующий решение задачи, приведен в программе 7Б.7. Для вычисления коэффициентов фильтра используется команда f ir2, а для определения амплитудной характеристики — команда freqz. Коэффициенты не приводятся из соображений экономии места. Амплитудно-частотная характеристика КИХ-фильтра изображена на рис. 7Б.6.
Программа 7Б.7. Вычисление коэффициентов КИХ-фильтра с произвольной амплитудной характеристикой с помощью MATLAB
Fs=2000;%Частота дискретизации
N=110;%Длина фильтра
fd=[0 0.15 0.250.45 0.5 0.75 0.85 1];%Точки выборки
Hd=[l 1 0.3 0.30.1 0.1 00];%Частотные выборки
hn=fir2(NPl, fd, Hd);% Вычислить импульсную характеристику
[Н, f] = freqz(hn, 1, 512, Fs);
plot(f, abs(H)), grid on
xlabel('Частота (Гц)1)
ylabel('Амплитуда (дБ)')
Разработка
ЙяйЫ
Sg
яМж
импульсном характеристикой (БИХ-фильтров)
: л^ S' ^;*<<W»^
Вступление: резюме по основным характеристикам БИХ-фильтров -
■ 8.2. Этапы разработки цифровых БИХ-фильтров ,
' 8.3. Спецификация производительности н-;’-,' ,1
Методы расчета коэффициентов БИХ-фильтров -
Расчет коэффициентов фильтра путем размещения нулей и полюсов '1
Расчет коэффициентов методом инвариантного преобразования импульсной характеристики,1, >, '
Расчет коэффициентов с помощью согпасованного г-преобразования 1
Расчет коэффициентов с помощью билинейного z-преобразования
Использование для разработки БИХ-фильтррвбйЛИнейного , z-преобразования и классических аналоговых фильтров -
Расчет коэффициентов БИХ-фильтра путем отображения полюсов и нулей
. Э^ЛСЙжбФтгЖ^7* у ■ Мл%^
Использование программ разработки БИХ-фильтров f ’,
' 8.12. Выбор метода расчета коэффициентов БИХ-фильтров11
Структуры реализации цифровых БИХ-фильтров*.
Влияние конечной разрядности на БИХ-фильтры 1
■ 8.15. Реализация БИХ-фильтров-,
Подробный пример разработки цифрового БИХ-фильтра •1
Резюме'''"и ',1
Примеры использования БИХ-фильтровв цифровых аудиосистемах
. и измерительных приборах1 । 11,
Примеры применения БИХ-фильтров в связи , ' ,',
Задачи'’.' ,.-
Литература> ‘,
Дополнительная литература ,.
Приложения‘‘’Х?,.-.''
500
501
502
504
504
508
513
517
527
544
553
554
562
569
573
574
579
580
582
593
603
603
605
В данной главе представлены практические методы разработки цифровых фильтров с бесконечной импульсной характеристикой (БИХ-фильтров), включая популярные методы, которые позволяют конвертировать аналоговые фильтры в эквивалентные цифровые. Приведено простое обобщенное пошаговое руководство по разработке цифровых БИХ-фильтров от спецификации до реализации в программной или аппаратной форме. Для иллюстрации различных аспектов разработки цифровых БИХ-фильтров (в том числе анализа влияния арифметики конечной точности на производительность фильтра и реализацию в реальном времени) разобрано несколько примеров.
Чтобы читатель мог сам вычислить коэффициенты и проанализировать влияние конечной разрядности, приводится насколько программ на языке С и ш-файлов MATLAB. При необходимости читатель может обращаться к главе 6, где рассмотрена общая схема разработки фильтра и приводится сравнительная характеристика БИХ- КИХ-, цифровых и аналоговых фильтров. В данной главе рассматривается исключительно разработка и применение БИХ-фильтров.
Вступление: резюме по основным характеристикам БИХ-фильтровi
Реальные цифровые БИХ-фильтры характеризуются следующим рекурсивным уравнением:
ООNМ
(8.1)(8.1)у^п) = У> h.Qc)x(ji — к) = У^ Ькх(п — к) — У^ йку^п — к),к=0к=0к=1
(8.1)
(8.1)
NEk=0M1 + E akZ"kk=lNEk=0M1 + E akZ"kk=l(8.2)(8.2)где Ь.(к') — импульсная характеристика фильтра, длительность которой теоретически бесконечна, Ьк и ак — коэффициенты фильтра, г(п) и у(п) — вход и выход фильтра. Передаточная функция БИХ-фильтра записывается следующим образом:
N
Ek=0
M
1 + E akZ"kk=l
N
Ek=0
M
1 + E akZ"kk=l
(8.2)
(8.2)
гг/ х bo + bjZ 1 + ... + b^z N
HlZ) = ;—
1 + a.xz"x + ... + aMz"M
Важной составляющей процесса разработки БИХ-фильтра является поиск таких значений коэффициентов Ьк и ак, чтобы определенные аспекты характеристик фильтра, например, частотная характеристика, вели себя определенным образом. Уравнения БИХ- фильтров приведены в формулах (8.1) и (8.2).
Обратите внимание на то, что в уравнении (8.1) текущая выходная выборка ?/(п) является функцией прошедших выходов у(п — к), а также текущей и прошедших входных выборок х(п — к), т.е. БИХ-фильтр — это определенная система с обратной связью. Достоинства БИХ-фильтров объясняются именно гибкостью, которую обеспечивает обратная связь. Например, БИХ-фильтр обычно требует меньше коэффициентов, чем КИХ- фильтр при идентичном наборе спецификаций, поэтому БИХ-фильтры используются
тогда, когда важны резкие срезы характеристики. Ценой этого является потенциальная неустойчивость БИХ-фильтра, кроме того, если при разработке не принять надлежащих мер, возможно значительное снижение производительности.
Передаточную функцию БИХ-фильтра H(z), представленную в формуле (8.2), можно факторизовать следующим образом:
(8.3)(8.3)= Я(г-г1)(г-г2)...(г-г;у)
(8.3)
(8.3)
(z-p1)(z-p2)...(z-pM) ’
где zi,z2,... — нули H(z), т.е. те значения г, при которых Щг) становится равной нулю, а р!,р2,... — полюса H(z), т.е. значения z, при которых H(z) бесконечна.
График полюсов и нулей передаточной функции называется диаграммой нулей и полюсов и является удобным средством представления и анализа фильтра на комплексной плоскости; подробности см. в главе 3. Чтобы фильтр был устойчивым, все его полюса должны лежать внутри единичной окружности (или совпадать с нулями на единичной окружности). На положения нулей ограничений не существует.
Этапы разработки цифровых БИХ-фильтров .
Разработку БИХ-фильтров можно условно разбить на пять основных этапов.
Составление спецификации фильтра, в которой разработчик задает передаточную функцию фильтра (например, указывает, что требуется фильтр нижних частот) и желаемую производительность.
Аппроксимация или расчет коэффициентов, когда выбирается один из доступных методов и вычисляются значения коэффициентов Ьк и ак, передаточной функции H^z\ которая соответствует спецификациям, предложенным на этапе 1.
Выбор подходящей фильтрующей структуры, в которую переводится передаточная функция. Обычно в БИХ-фильтрах используются параллельная структура и/или каскады блоков второго и/или первого порядка.
Анализ ошибок, которые могут появиться при представлении коэффициентов фильтра и выполнении арифметических операций, фигурирующих при фильтрации, с помощью конечного числа битов.
Реализация, которая включает построение аппаратного обеспечения и/или написание программного кода плюс выполнение собственно фильтрации.
Данные этапы сведены на рис. 8.1. Как видно из рисунка, пять этапов не являются независимыми, и они не всегда выполняются в указанном порядке. Фактически существуют методы, в которых второй, третий и четвертый этапы объединены. В то же время описанный подход гарантирует успешный результат, иногда, правда, для этого требуется несколько итераций, в ходе которых повторяется один или несколько этапов.
Рис. 8.1. Этапы разработки цифровых фильтров
Спецификация производительности ! :
Как и большинство других технологических задач, разработка БИХ-фильтров начинается с составления списка требований к производительности. В спецификациях должны указываться 1) характеристики сигнала (тип источников и получателей данных, интерфейс ввода-вывода, скорости передачи данных и длины слов, а также частоты, представляющие практический интерес); 2) частотная характеристика фильтра (желаемые амплитудные и/или частотные характеристики плюс их допуски (если есть), скорость работы); 3) способ реализации (например, как компьютерная программа на языке высокого уровня или система на основе процессора ЦОС, здесь же выбирается процессор обработки сигналов и режим фильтрации (реальное или модельное время)); 4) другие условия разработки (такие как стоимость и разрешенное ухудшение сигнала при прохождении через фильтр). Вообще, большинство из приведенных выше требований зависят от конкретного приложения. Разработчик может не иметь достаточно информации, чтобы изначально полностью определить фильтр, но задать максимально много требований стоит, поскольку это облегчает процесс разработки.
У частотно-избирательных фильтров, таких как фильтры нижних частот и полосовые фильтры, спецификация частотной характеристики часто задается в форме схемы допусков. Пример такой схемы для полосового БИХ-фильтра приведен на рис. 8.2. Заштрихованные горизонтальные полоски обозначают допуски. Для определения частотной характеристики обычно используются следующие параметры:
Рис. 8.2. Схема допусков для полосового БИХ-фильтраРис. 8.2. Схема допусков для полосового БИХ-фильтра
Рис. 8.2. Схема допусков для полосового БИХ-фильтра
Рис. 8.2. Схема допусков для полосового БИХ-фильтра
е2 параметр неравномерности в полосе пропускания;
5Рамплитуда отклонений в полосе пропускания;
6Sамплитуда отклонений в полосе подавления;
/Р1 и /Р2 граничные частоты полосы пропускания;
/si и /д2 граничные частоты полосы подавления.
Граничные частоты часто приводятся в нормированной форме, т.е. как доли частоты дискретизации (f/Fs), но далее мы будем задавать их в обычных единицах частоты, герцах или килогерцах, поскольку так более понятно, особенно молодому разработчику. Амплитуды отклонений в полосе пропускания и подавления можно выразить как обычные числа или как величины в децибелах: амплитуда отклонений (неравномерность) в полосе пропускания в децибелах равна
(8.4, а)(8.4, а)Ар = 101g(l + е2) = —201g(l — 5Р),
(8.4, а)
(8.4, а)
а амплитуда отклонений (затухание) в полосе подавления в децибелах выражается так:
(8.4, б)(8.4, б)А, = -20 Ш).
(8.4, б)
(8.4, б)
Как обсуждалось в главе 6 (см. также рис. 8.2) для БИХ-фильтров неравномерность в полосе пропускания — это разность между минимальным и максимальным отклонением в полосе пропускания. Для КИХ-фильтров неравномерность в полосе пропускания — это разность между идеальной характеристикой и максимальным (или минимальным) отклонением в полосе пропускания. Следовательно, при обсуждении БИХ-фильтров мы будем говорить “неравномерность в полосе пропускания”, подразумевая “удвоенная амплитуда отклонения характеристики в полосе пропускания”.
Методы расчета коэффициентов БИХ-фильтров
На этом этапе вначале выбирается метод аппроксимации, который затем используется для расчета значений коэффициентов ак и Ък в уравнении (8.2), при которых спецификации частотной характеристики, полученные на первом этапе разработки, будут удовлетворены.
Для простого получения коэффициентов БИХ-фильтра можно разумно разместить полюса и нули на комплексной плоскости, чтобы получающийся в результате фильтр имел нужную частотную характеристику. Данный подход, известный как метод размещения нулей и полюсов, полезен только при разработке простых фильтров, например, узкополосных режекторных фильтров, где параметры фильтра (такие как неравномерность в полосе пропускания) не обязательно задавать точно. Более эффективный подход — вначале разработать аналоговый фильтр, удовлетворяющий желаемой спецификации, а затем преобразовать его в эквивалентный цифровой. Большинство цифровых БИХ-фильтров разрабатываются именно так. Данный подход получил широкое распространение потому, что на настоящий момент в литературе имеется масса информации по аналоговым фильтрам, которую можно использовать при разработке цифровых фильтров. Тремя наиболее распространенными методами конвертации аналоговых фильтров в эквивалентные цифровые являются метод инвариантного преобразования импульсной характеристики, согласованное г-преобразование и билинейное z-прсобразование.
В следующих разделах рассмотрены такие методы расчета коэффициентов БИХ- фильтров:
метод размещения нулей и полюсов;
метод инвариантного преобразования импульсной характеристики;
согласованное ^-преобразование;
билинейное г-преобразование.
Расчет коэффициентов фильтра путем размещения . нулей и полюсов'-
Основные концепции и пример разработки
Если в некоторую точку комплексной плоскости поместить нуль, частотная характеристика в этой точке будет равной нулю. Полюс, с другой стороны, порождает максимум (рис. 8.3). Полюса, расположенные близко к единичной окружности, дают большие пики, тогда как нули, расположенные близко к единичной окружности или лежащие на ней, дают минимумы характеристики. Следовательно, стратегическое размещение полюсов и нулей на комплексной плоскости позволяет получить простой фильтр нижних частот или другой частотно-избирательный фильтр. Более подробно фильтры такого типа описаны в работе [15].
При разработке фильтра стоит помнить один важный момент: чтобы коэффициенты фильтра были действительными, полюса и нули должны либо быть действительны-
Рис. 8.3. Диаграмма нулей и полюсов простого фильтра (панель а); схематическое изображение частотной характеристики этого фильтра (панель б)
ми, либо образовывать комплексно сопряженные пары. Проиллюстрируем описанный метод на примерах.
Пример 8.1
Иллюстрация расчета коэффициентов фильтра с помощью простого метода нулей и полюсов. Требуется цифровой полосовой фильтр, удовлетворяющий следующим спецификациям:
полная режекция сигнала на 0 и 250 Гц;
узкая полоса пропускания, центрированная на 125 Гц;
ширина полосы пропускания по уровню 3 дБ равна 10 Гц.
Считая частоту дискретизации равной 500 Гц, определите передаточную функцию фильтра, подходящим образом расположив на комплексной плоскости полюса и нули, и запишите разностное уравнение.
Решение
Вначале нужно определить, где на комплексной плоскости поместить полюса и нули. Поскольку полная режекция требуется на 0 и 250 Гц, в соответствующих точках комплексной плоскости следует поместить нули. Эти точки лежат на единичной окружности в местах, соответствующих углам 0° и 360° х 250/500 = 180°. Чтобы полоса пропускания была центрирована на 125 Гц, требуется поместить полюс в точках ±360° х 125/500 = ±90°. Чтобы коэффициенты были действительными, нужна пара комплексно-сопряженных полюсов.
Радиус т полюсов определяется желаемой шириной полосы. Для определения приблизительной ширины полосы (шп) при г > 0,9 используется следующее соотношение:
г и 1 — (mn/Fs)rr.(8.5)
6)6)Рис. 8.4. Диаграмма нулей и полюсов (панель а\ Блок-схема фильтра (панель б)Рис. 8.4. Диаграмма нулей и полюсов (панель а\ Блок-схема фильтра (панель б)
6)
6)
Рис. 8.4. Диаграмма нулей и полюсов (панель а\ Блок-схема фильтра (панель б)
Рис. 8.4. Диаграмма нулей и полюсов (панель а\ Блок-схема фильтра (панель б)
В данной задаче шп = 10 Гц и F, = 500 Гц, откуда г = 1 - (10/500)тг = 0,937. Получающаяся диаграмма нулей и полюсов изображена на рис. 8.4, а. С помощью этой диаграммы записываем передаточную функцию:
н( х =(z-l)(z + l) =
(г — Te"^^ — те-*"/2)
г2 - 11 - г"2
“ г2 + 0,877969 “ 1 + 0,877969г-2'
Разностное уравнение:
»/(п) = —0,877969у(п — 2) + ir(n) — ir(n — 2).
Сравнивая передаточную функцию H(z) с общим уравнением БИХ-фильтров (8.2), находим, что фильтр представляет собой блок второго порядка со следующими коэффициентами:
&о = 1 <zj — 0
bi = 0 а2 = 0, 877969
Ь2 — ~1
Пример 8.2
Расчет коэффициентоврежекторного фильтра путем размещения нулей и полюсов. С помощью метода размещения нулей и полюсов получите передаточную функцию и разностное уравнение простого цифрового режекторного фильтра, удовлетворяющего следующим спецификациям:
частота режекции50 Гц,
уровень 3 дБ±5 Гц,
частота дискретизации 500 Гц.
Рис. 8.5. Диаграмма нулей и полюсов фильтра из примера 8.2 (панель а); соответствующая частотная характеристика (панель б)Рис. 8.5. Диаграмма нулей и полюсов фильтра из примера 8.2 (панель а); соответствующая частотная характеристика (панель б)
Рис. 8.5. Диаграмма нулей и полюсов фильтра из примера 8.2 (панель а); соответствующая частотная характеристика (панель б)
Рис. 8.5. Диаграмма нулей и полюсов фильтра из примера 8.2 (панель а); соответствующая частотная характеристика (панель б)
Решение
Для режекции компонента на частоте 50 Гц поместим пару комплексных нулей в точках единичной окружности, соответствующих 50 Гц, т.е. в точках с угловыми координатами 360° х 50/500 = ±36°.
Чтобы получить узкополосный режекторный фильтр и улучшить амплитудную характеристику по обе стороны от частоты режекции, поместим пару комплексносопряженных полюсов на радиусе г < 1. Ширина полосы режекции определяется положением полюсов. Используем то же соотношение, что и в примере 8.1, и получим г = 0,9372.
Диаграмма нулей и полюсов приведена на рис. 8.5, а. Из рисунка находим передаточную функцию:
и/ х lz ~ ехр(-г36°)] [z - ехр(г36°)]=
W \z - 0,937ехр(—36°)] [г - 0,9372ехр(36°)]
z2 —1,6180г+ 11 - 1,6180г-1 + г"2
~ г2 - 1,5164г + 0,8783 — 1 — 1,5164г"1 + 0,8783г-2"
Разностное уравнение:
у(тг) = ж(тг) — 1,6180ж(п — 1) + ж(тг — 2) + 1, 5164i/(n — 1) — 0,8783у(тг — 2).
Сравнивая вид Я(г) с формулой (8.2), находим, что режекторный фильтр имеет следующие коэффициенты:
b0 = lQ1 = -1,5164
bi = -1,6180 а2 = 0,8783
Ь2 = 1
Расчет коэффициентов методом инвариантного преобразования импульсной характеристики
Основные концепции и пример разработки
В данном методе с помощью преобразования Лапласа из подходящей аналоговой передаточной функции H(s) получают импульсную характеристику h(tY Затем /i(t) дискретизуется, а получающаяся функция /г(пГ) (где Т — интервал дискретизации) подвергается z-преобразованию и дает желаемую передаточную функцию H^zY Ниже данный метод иллюстрируется на примерах.
Пример 8.3
Иллюстрация метода инвариантного преобразования импульсной характеристики. С помощью метода инвариантного преобразования импульсной характеристики оцифруйте простой аналоговый фильтр с передаточной функцией
Н^ =Н^ =Сs — рСs — р(8-6)(8-6)
Н^ =
Н^ =
Сs — р
Сs — р
(8-6)
(8-6)
Решение
Импульсная характеристика /i(t) находится через обратное преобразование Лапласа:
Ы^ = L"1 [Я(з)1 = L"x f= Cept,\s — ру
где L-1 обозначает обратное преобразование Лапласа. Согласно методу инвариантного преобразования импульсной характеристики импульсная характеристика эквивалентного цифрового фильтра ЦпТ) равна /i(t) в дискретные моменты времени t = пТ, п = 0,1,2,..., т.е.
h^nt') = /z(t) I СерпТ.
Передаточная функция Н (z) находится как результат действия z-преобразования на h^nTY-
Н^ = ^h№z-n = ^ce^z”1 =n=0n=0
С
= l-ePTz-v
Значит, используя приведенный результат, можно записать:
С С
► ;(8.7)
s — р 1 — epTz‘
Чтобы применить метод инвариантного преобразования импульсной характеристики к БИХ-фильтрам высоких порядков (например, фильтрам М-то порядка) с простыми полюсами, передаточную функцию H(s) вначале нужно разложить на простые дроби (такое разложение описывает цепь фильтров с единственным полюсом):
Ci С2См
1р_
- Pl 3 - р23 - Рм
м п(8.8)
где рк — полюса функции Я(з). Каждый член в правой части уравнения (8.8) имеет вид, как в формуле (8.6), так что преобразование (8.8) правомерно. Следовательно,
аглг
Е - Е1 - % г<8-9)
- рк 1 ~ еРК z
БИХ-фильтры высоких порядков обычно реализуются как каскад или параллельная структура из стандартных фильтрующих блоков второго порядка. Следовательно, особый интерес представляет вариант М ~ 2. Здесь преобразование (8.9) имеет вид
CiС2СгС2 _
з — piз — р21 — eplTz~11 — eP2Tz-1
= с1 + с2- (С^ +(8Л0)
1 - (epiT 4. eP2T)z-i 4. е(и+Р2)тг-2'
Если полюса рт и р2 — комплексно-сопряженные, то Сх и С2 также будут комплексно- снаряженными, и уравнение (8.10) сводится к такому виду:
Ci . с;
- eP^z-1 1 - eP^z'1
_ 2Cre - \Сте cos(pimT) 4- Cim sm(pimT^ 2cp'«Tz"1
1 — 2ePreT cos(pimT)z-1 4- e2preTz-2 ’
где Cre и Cim — действительная и мнимая части С\, рте и ргт — действительная и мнимая части pi, а * обозначает “комплексно-сопряженное".
Для большинства практических БИХ-фильтров, которые можно реализовать по схеме инвариантного преобразования импульсной характеристики, для получения коэффициентов передаточной функции достаточно преобразований (8.7), (8.10) и (8.11). В приложении к данной главе приводится программа на языке С для вычисления коэффициентов фильтров по описанной схеме, а показанный ниже пример поможет проиллюстрировать данную концепцию.
Пример 8.4
Применение метода инвариантного преобразования импульсной характеристики в разработке фильтров. Требуется разработать цифровой фильтр, аппроксимирующий следующую нормированную аналоговую передаточную функцию:
.
s2 + V2s + 1
Используя метод инвариантного преобразования импульсной характеристики, получите передаточную функцию Н^ цифрового фильтра, предполагая частоту среза по уровню 3 дБ равной 150 Гц и частоту дискретизации 1,28 кГц.
Решение
Перед тем как применять метод инвариантного преобразования импульсной характеристики, следует масштабировать нормированную передаточную функцию. Для этого в меняется на s/a, где а = 2тг х 150 = 942,4778, в результате чего фильтр получит желаемую характеристику. Итак,
11 VO1 —- 11 IO J— Т,
ls=«/a s2 + v2ctS + a:2 s — Рх 8 — р2
где
Pi =—- = -666,4324(1 - г),р2 =
Сх = —^г = -666,4324г; С2 = С*.
V2
Поскольку полюса комплексно-сопряженные, для получения передаточной функции дискретного времени Н(г) используется преобразование (8.11). В данной задаче Сте = 0, Cim = -666,4324, pimT = 0,5207, preT = -0,5207, ер'=т = 0,5941, sin(pimT = 0,4974), cos(pimT) = 0,8675 и ePreT = 0,3530. Подставляя эти значения в уравнение (8.11), получаем H(z\.
393,9264г-1~ 1 - 1,0308г"1 + 0,3530г-2'
Если в приведенное уравнение подставить г = е"7, значение H(z) на частоте ш = 0 будет равно 1223, что примерно равно частоте дискретизации. Вообще такое большое усиление характерно для фильтров, реализованных по схеме инвариантного преобразования импульсной характеристики, и усиление передаточной функции примерно равно частоте дискретизации, т.е. ЦТ (следствие дискретизации частотной характеристики). Чтобы уменьшить усиление и избежать переполнения при реализации фильтра, Я (г) часто множится на Т (или делится на частоту дискретизации). При таком подходе в данной задаче получим следующую передаточную функцию:
Н(2Л =0,3078г-1
1 - 1,0308г-1 + 0,3530г-2'
-0,3530-0,3530Рис. 8.6. Блок-схема фильтра из примера 8.4Рис. 8.6. Блок-схема фильтра из примера 8.4
-0,3530
-0,3530
Рис. 8.6. Блок-схема фильтра из примера 8.4
Рис. 8.6. Блок-схема фильтра из примера 8.4
Таким образом,
^ =0^ =0а! = —1,0308а! = —1,0308
^ =0
^ =0
а! = —1,0308
а! = —1,0308
Ь1 =0,3078 а2 = 0,3530
Альтернативный метод устранения влияния частоты дискретизации на усиление фильтра — это работа с нормированными частотами. Тогда в последнем примере можно использовать Т=1иа = 2тгх 150/1280 = 0,7363. Подставляя эти значения в уравнение (8.11), сразу получаем указанную выше желаемую передаточную функцию. Важным преимуществом работы с нормированными частотами является использование значительно более простых чисел. Это также означает, что результаты можно обобщить; соответствующая блок-схема фильтра приведена на рис. 8.6.
Метод инвариантного преобразования импульсной характеристики: резюме
Определить нормированную характеристику аналогового фильтра H(s), удовлетворяющую спецификациям желаемого частотного фильтра.
При необходимости разложить Н (s) на элементарные дроби, чтобы упростить следующий этап.
Применить z-преобразование к каждой дроби и получить выражение в форме (8.9).
Получить H(z), сгруппировав результаты п. 3 в члены второго порядка и, возможно, один член первого порядка. Если используется реальная частота дискретизации, Н (z) нужно затем умножить на Т.
Метод инвариантного преобразования импульсной характеристики: замечания
Импульсная характеристика дискретного фильтра ЦпТ) идентична характеристике аналогового фильтра /z(t) в дискретные моменты времени t = пТ, п = 0,1,...; см., например, рис. 8.7. Именно по этой причине метод называется инвариантным преобразованием импульсной характеристики.
Рис. 8.7. Сравнение импульсной характеристики а) аналогового фильтра h(t) и б) эквивалентного цифрового фильтра ЦпТ). В методе инвариантного преобразования импульсной характеристики две характеристики идентичны в моменты взятия выборок
На частотную характеристику дискретного фильтра, построенного по схеме инвариантного преобразования импульсной характеристики, влияет частота дискретизации. Чтобы частотная характеристика была ближе к характеристике эквивалентного аналогового фильтра, необходима достаточно большая частота дискретизации.
Как и для систем дискретизованных данных, спектр фильтра с инвариантным преобразованием импульсной характеристики, соответствующий Я(г), аналогичен спектру исходного аналогового фильтра H(s), но повторяется с периодом, равным частоте дискретизации, как показано на рис. 8.8, вызывая таким образом наложение спектров. В то же время, если характеристика исходного аналогового фильтра имеет достаточно резкие срезы, или если ширина полосы характеристики аналогового фильтра была ограничена перед применением метода инвариантного преобразования импульсной характеристики, наложение будет незначительным. Этого же эффекта можно добиться, увеличив частоту дискретизации. Делаем вывод, что метод стоит использовать для фильтров нижних частот с очень резкими срезами и незначительным наложением, поскольку при таких условиях частота дискретизации разумно велика. Данный метод не подходит для фильтров верхних частот или режекторных фильтров, если дополнительно не используется фильтр защиты от наложения спектров.
Рис. 8.8. Спектр аналогового фильтра (панель а); спектр эквивалентного цифрового фильтра, полученного методом инвариантного преобразования импульсной характеристики, на котором виден эффект наложения (панель б)Рис. 8.8. Спектр аналогового фильтра (панель а); спектр эквивалентного цифрового фильтра, полученного методом инвариантного преобразования импульсной характеристики, на котором виден эффект наложения (панель б)
Рис. 8.8. Спектр аналогового фильтра (панель а); спектр эквивалентного цифрового фильтра, полученного методом инвариантного преобразования импульсной характеристики, на котором виден эффект наложения (панель б)
Рис. 8.8. Спектр аналогового фильтра (панель а); спектр эквивалентного цифрового фильтра, полученного методом инвариантного преобразования импульсной характеристики, на котором виден эффект наложения (панель б)
Расчет коэффициентов с помощью согласованного ^-преобразования
Основные концепции и примеры разработки
Согласованное z-преобразование позволяет преобразовать аналоговый фильтр в эквивалентный цифровой. В данном методе каждый полюс и нуль аналогового фильтра непосредственно переводятся с з- на z-плоскость (комплексную плоскость):
(8-12)(8-12)(з — а) —> (1 — z 1еаТ),
(8-12)
(8-12)
где Т — период дискретизации. Преобразование (8.12) отображает полюс (или нуль), находящийся в точке з = а s-плоскости, в полюс (или нуль) комплексной плоскости, находящийся в точке z = еаТ.
Для аналоговых фильтров высоких порядков передаточная функция имеет несколько полюсов и/или нулей, которые нужно отобразить с з- на z-плоскость. Для аналогового фильтра наивысшего порядка с различными полюсами и нулями передаточную функцию можно записать в следующем виде:
(8.13)(8.13)ш х (s-z1)(s-z2)...(s-zM)
(8.13)
(8.13)
(s-pi)(s-p2)...(s-pjv)’
где zk и рк — нули и полюса Н(з) соответственно.
Далее на каждый множитель действуем согласованным z-преобразованием: (s - zk) (1 - z~VkT), (s-pk) -+ (1 - z~VkT\
В БИХ-фильтрах высокого порядка основной составляющей является фильтрующий блок второго порядка. Следовательно, особый интерес представляет случай, когда в уравнении (8.13) М = N = 2. При этом аналоговая передаточная функция сводится к виду
(8-14)(8-14)rrz а = (б - zj(3 - Z2)
(8-14)
(8-14)
(s_pi)(s_p2)-
Применяя к этой функции согласованное z-преобразование, получаем
(s - z^s - z2)1 - (eziT + e22T)z-1 + е^+^г"2
(s — Pi)(s — p2)1 — (epiT + eP^T^z-i + e*.pi+p2)Tz~2
Если полюса и нули звена второго порядка формируют комплексно-сопряженные пары, тогда р2 = ру и z2 = Zy и правая часть уравнения (8.15) сводится к виду
(8.16)(8.16)1 - 2e2rcTcos(zlmT)z^1 + eZrcTz-2
(8.16)
(8.16)
1 — 2ePreT cos(pimT)z-1 + gpreT z~2 ’
где zTe и zim, pre и pim — действительная и мнимая части zx и рх соответственно.
На практике аналоговые фильтрующие блоки второго порядка удобнее представить в знакомой форме рациональной дроби:
и/ х _ (з — г1)(з — ^2) _ Др + Д13 + А2з2
5(s-Pi)(s-p2) Во + Вуз + В2з2
В такой форме полюса и нули H(s') определяются следующими выражениями:
2S2\ 25г /В22S2\ 25г /В2(8.17, а)(8.17, а)
2S2\ 25г /В2
2S2\ 25г /В2
(8.17, а)
(8.17, а)
(8.17,6)(8.17,6)Ау ± / Ау \Ло
(8.17,6)
(8.17,6)
2Д2\2Д2/Д2
На практике формулы (8.17, а) и (8.17, б) позволяют по данной передаточной функции аналогового фильтра сразу определить, где находятся полюса и нули (а следовательно, их действительную и мнимую части). Определив действительную и мнимую части нулей и полюсов H(s), с помощью уравнения (8.15) или (8.16) можно вычислить передаточную функцию Н(z) эквивалентного дискретного фильтра.
Пример 8.5
Дана нормированная передаточная функция аналогового фильтра:
Я(з) =L.
з2 + V2s + 1
Получите передаточную функцию Н (z) эквивалентного цифрового фильтра, используя метод согласованного z-преобразования. Частота среза по уровню 3 дБ равна 150 Гц, частота дискретизации — 1,28 кГц.
Решение
Частоту среза можно выразить как шс = 2тг х 150 = 942,4778 рад/с. Передаточная функция денормированного аналогового фильтра получается заменой s на s/wc:
Я'М - H(s) I =
s2 + V2wcs + w2
(1Т г).(1Т г).Полюса фильтра расположены в точках
(1Т г).
(1Т г).
V2wc
2
В данной задаче действительная и мнимая части полюсов равны
Рте = ~^~ = —666,4324, pim = ^^г = 666,4324г.
Следовательно,ртеТ = —0,5206503, pimT = 0,5206503, cos(pimT) = 0,867496 и еРтсТ = 0,594134. В результате получаем такую передаточную функцию:
Н(г) =Н(г) =8,8876 х 105
Н(г) =
Н(г) =
1 - 1,030818г-1 + 0,594134г-2'
Метод согласованного z-преобразования: резюме
Определить подходящую аналоговую передаточную функцию H(s), удовлетворяющую спецификациям искомого цифрового фильтра.
Найти положение полюсов и нулей H(s). При этом может потребоваться факторизация аналоговой передаточной функции Uis').
Отобразить полюса и нули с s- на z-плоскость, используя формулу (8.12). Для блоков второго порядка можно использовать формулы (8.15) и (8.16).
Объединить уравнения, записанные на z-плоскости, для получения передаточной функции H(z\
Метод согласованного z-преобразования: замечания
Метод согласованного ^-преобразования требует знания положений полюсов и нулей аналогового фильтра. Для получения этой информации можно факторизовать аналоговую передаточную функцию H(s\ После этого применить преобразование относительно просто.
Метод согласованного ^-преобразования и метод инвариантного преобразования импульсной характеристики дают дискретные фильтры с идентичными знаменателями. Сравните, например, знаменатели согласованного ^-преобразования (8.15) и результат преобразования по схеме инвариантного преобразования импульсной характеристики (8.10). Это также очевидно, если сравнить знаменатели передаточных функций, полученных в примерах 8.4 и 8.5.
В цифровых фильтрах полезная полоса частот лежит в диапазоне от нуля до частоты Найквиста (половина частоты дискретизации), тогда как в аналоговых фильтрах фигурируют частоты в диапазоне от нуля до бесконечности. Следовательно, отображение, которое производит согласованное z-преобразование, сжимает бесконечную аналоговую полосу частот в конечную. Это приводит к искажению частотных характеристик эквивалентных цифровых фильтров по сравнению с аналоговыми фильтрами. Для фильтров, получающихся при использовании согласованного z-преобразования, характерно меньшее затухание по сравнению с аналоговыми фильтрами. К данному вопросу мы еще вернемся в разделе 8.12, где будет показано, как можно использовать данную особенность.
Если аналоговый фильтр имеет полюса на частотах, близких к частоте Найквиста, или нули на частотах, превышающих ее, частотная характеристика получающегося цифрового фильтра будет искажена в результате наложения (см. далее). В таких случаях характеристика аналогового фильтра, которая приходится на диапазон за частотой Найквиста, существенна. Чтобы отобразить эту часть характеристики в желаемую полосу частот, используется процесс неявной дискретизации.
Согласованное z-преобразование также не подходит для оцифровки фильтров с одними полюсами, поскольку они не имеют нулей за частотой Найквиста. Несколько улучшить ситуацию в этом случае можно, добавив нули в точке z = — 1 (т.е. на частоте Найквиста).
^-ПЛОСКОСТЬ^-ПЛОСКОСТЬ^-ПЛОСКОСТЬ^-ПЛОСКОСТЬРис. 8.9. Иллюстрация отображения с s-плоскости на комплексную (z) плоскость с использованием билинейного «-преобразования. Обратите внимание на то, что положительная часть оси геи' на s-плоскости (т.е. точки от s = 0 до s = гос) отображается в верхнюю половину единичной окружности, а отрицательная часть оси W переводится в нижнюю половинуРис. 8.9. Иллюстрация отображения с s-плоскости на комплексную (z) плоскость с использованием билинейного «-преобразования. Обратите внимание на то, что положительная часть оси геи' на s-плоскости (т.е. точки от s = 0 до s = гос) отображается в верхнюю половину единичной окружности, а отрицательная часть оси W переводится в нижнюю половину
^-ПЛОСКОСТЬ
^-ПЛОСКОСТЬ
^-ПЛОСКОСТЬ
^-ПЛОСКОСТЬ
Рис. 8.9. Иллюстрация отображения с s-плоскости на комплексную (z) плоскость с использованием билинейного «-преобразования. Обратите внимание на то, что положительная часть оси геи' на s-плоскости (т.е. точки от s = 0 до s = гос) отображается в верхнюю половину единичной окружности, а отрицательная часть оси W переводится в нижнюю половину
Рис. 8.9. Иллюстрация отображения с s-плоскости на комплексную (z) плоскость с использованием билинейного «-преобразования. Обратите внимание на то, что положительная часть оси геи' на s-плоскости (т.е. точки от s = 0 до s = гос) отображается в верхнюю половину единичной окружности, а отрицательная часть оси W переводится в нижнюю половину
Тема влияния согласованного ^-преобразования на частотную характеристику фильтра будет продолжена в разделе 8.12.
Расчет коэффициентов с помощью билинейного «-преобразования
Основные концепции и примеры разработки
Данный метод является, пожалуй, самым важным методом получения коэффициентов БИХ-фильтра. В нем для преобразования характеристики аналогового фильтра Н(s) в характеристику эквивалентного цифрового фильтра применяется следующая замена:
(8.18, а)(8.18, а)2 к = 1 или —.
(8.18, а)
(8.18, а)
Т
Приведенное выше преобразование отображает аналоговую передаточную функцию H(s), записанную на s-плоскости, в дискретную передаточную функцию Н(г) комплексной плоскости, как показано на рис. 8.9. Обратите внимание на то, что на рисунке вся ось ш s-плоскости отображается в единичную окружность, левая половина s-плоскости отображается внутрь единичной окружности, а правая — в область снаружи единичной окружности. Таким образом, устойчивый аналоговый фильтр с полюсами в левой половине s-плоскости перейдет в цифровой фильтр с полюсами внутри единичной окружности.
Рис. 8.10. Связь между аналоговыми и цифровыми частотами, демонстрирующая эффект деформации. Обратите внимание на то, что равноотстоящие аналоговые полосы после преобразования в цифровую область на высоких частотах сжимаются и располагаются плотнееРис. 8.10. Связь между аналоговыми и цифровыми частотами, демонстрирующая эффект деформации. Обратите внимание на то, что равноотстоящие аналоговые полосы после преобразования в цифровую область на высоких частотах сжимаются и располагаются плотнее
Рис. 8.10. Связь между аналоговыми и цифровыми частотами, демонстрирующая эффект деформации. Обратите внимание на то, что равноотстоящие аналоговые полосы после преобразования в цифровую область на высоких частотах сжимаются и располагаются плотнее
Рис. 8.10. Связь между аналоговыми и цифровыми частотами, демонстрирующая эффект деформации. Обратите внимание на то, что равноотстоящие аналоговые полосы после преобразования в цифровую область на высоких частотах сжимаются и располагаются плотнее
2 к = 1 или —.2 к = 1 или —.К сожалению, прямая замена s в H(s), как она записана в формуле (8.18, а) может привести к получению цифрового фильтра с нежелательной характеристикой. Это легко показать, сделав в уравнении (8.18, а) замену z = е1шТ и s = iw'. Упрощая, находим, что аналоговая частота ш' и цифровая частота w связаны соотношением
2 к = 1 или —.
2 к = 1 или —.
(8.18, б)
Зависимость (8.18, б) схематически изображена на рис. 8.10. Видно, что связь аналоговой частоты w' с цифровой частотой ш почти линейна при малых значениях ш, но становится нелинейной при больших значениях ш, что приводит к искажению (или деформации) цифровой частотной характеристики. Обратите внимание на то, что полосы пропускания аналогового фильтра слева имеют постоянную ширину и их центры располагаются через равные промежутки, тогда как полосы пропускания цифрового эквивалента несколько сгущены. Для компенсации этого эффекта аналоговый фильтр (одна или несколько критичных частот) обычно предварительно деформируется перед применением билинейного преобразования. Например, при разработке фильтра нижних частот предварительной деформации часто подвергаются частота среза или граничная частота:
ш'р = к tgш'р = к tg
ш'р = к tg
ш'р = к tg
гдегдешр = заданная частота среза,
где
где
ш'р = предварительно деформированная частота среза,
Т
k = 1 или —,
2
Т — период дискретизации.
Метод билинейного z-преобразования: резюме
Для стандартных частотно-избирательных БИХ-фильтров можно следующим образом обобщить этапы использования билинейного z-преобразования.
На основе спецификаций цифрового фильтра определить подходящий нормированный аналоговый фильтр-прототип с передаточной функцией Н(з\
Определить и деформировать граничные или критичные частоты нужного фильтра. Для фильтров нижних или верхних частот существует единственная граничная частота, или частота среза (скажем, шр). Для полосовых и режекгорных фильтров имеем верхнюю и нижнюю граничные частоты полосы пропускания шр1 и wp2, каждую из которых нужно деформировать (также могут задаваться граничные частоты полосы подавления):
(8.20, а)
(8.20, б)
Денормировать аналоговый фильтр-прототип, заменив з в передаточной функции с помощью одного из следующих преобразований (в зависимости от типа требуемого фильтра):
вз = — нижних частот в нижних частот,вз = — нижних частот в нижних частот,в = — нижних частот в верхних частот,
в
з = — нижних частот в нижних частот,
в
з = — нижних частот в нижних частот,
(8.21, а)(8.21, а)(8.21,6)(8.21,6)(8.21, в)(8.21, в)ЗдесьЗдесьWsWsнижних частот в режекторный.нижних частот в режекторный.(8.21, г)(8.21, г)нижних частот в полосовой,
(8.21, а)
(8.21, а)
(8.21,6)
(8.21,6)
(8.21, в)
(8.21, в)
Здесь
Здесь
Ws
Ws
нижних частот в режекторный.
нижних частот в режекторный.
(8.21, г)
(8.21, г)
Применить билинейное z-преобразование и получить передаточную функцию нужного цифрового фильтра H^zy следующим образом заменив s в масштабированной (т.е. денормированной) передаточной функции H'^sy.
s =s =z - 17+Тz - 17+Т
s =
s =
z - 1
7+Т
z - 1
7+Т
Пример 8.6
Фильтр нижних частот. Требуется разработать цифровой фильтр нижних частот, аппроксимирующий следующую передаточную функцию:
H(s) =.
' s2 + V2s + 1
Используя метод билинейного z-преобразования, получите передаточную функцию Н(z) цифрового фильтра, если частота среза по уровню 3 дБ равна 150 Гц, а частота дискретизации равна 1,28 кГц.
Решение
Используя критическую частоту щр = 2тг х 150 рад/с и Fs = ЦТ = 1,28 кГц, получаем следующую деформированную критическую частоту:
W; = tg(wpT/2) = 0,3857.
Масштабированный аналоговый фильтр характеризуется функцией
Я'(б) = Я(8) I =1-7=—=
1»=»/^(s/Wp)2 + Xpisl^'p + 1
-^Р2_0’ 1488
s2 + xpiuj'pS + w'ps S2 + 0,5455s + 0,1488
После применения билинейного z-преобразования получаем такой результат:
х , I 0,0878г2 + 0,1756г+ 0,0878
Я(г) = Н (,)- —————— =
0,0878(1 -2г"1 + г'2) - 1 - 1,0048г-1 + 0,3561г-2 ‘
Пример 8.7
Фильтр верхних частот. Нормированная передаточная функция простого аналогового RC-фильтра верхних частот записывается как
H(S) =H(S) =1S + Г1S + Г
H(S) =
H(S) =
1
S + Г
1
S + Г
Начав с уравнения на s-плоскости, определите с помощью метода билинейного z- преобразования передаточную функцию эквивалентного фильтра верхних частот, работающего в дискретном времени. Частоту дискретизации считайте равной 150 Гц, а частоту среза — 30 Гц.
Решение
Критичной частотой для данного цифрового фильтра является шр = 2тг х 30 рад/с. Частота среза после деформации равна wp = tg(wpT/2). При Т = 1/150 Гц шр = tg(Tr/5) = 0,7265.
Используя преобразование “фильтр нижних частот в фильтр верхних частот”, представленное в формуле (8.21, а), получаем следующую денормированную аналоговую передаточную функцию:
Н'^ = Н^ IIs—u,p/sН'^ = Н^ IIs—u,p/s1_2ш'р/8 + 1 s + 0, 7265'1_2ш'р/8 + 1 s + 0, 7265'
Н'^ = Н^ I
Is—u,p/s
Н'^ = Н^ I
Is—u,p/s
1_2
ш'р/8 + 1 s + 0, 7265'
1_2
ш'р/8 + 1 s + 0, 7265'
Для получения передаточной функции на комплексной плоскости применим билинейное z-преобразование:
Н^ = Н\з^Н^ = Н\з^_(z-l)/(z + l)
Н^ = Н\з^
Н^ = Н\з^
s=(z-i)/(z+i) (z — l)/(z + 1) + 0,7265
Упрощая, получаем
Н^ = 0,5792Н^ = 0,57921-z-11 + 0,1584г-1'1-z-11 + 0,1584г-1'
Н^ = 0,5792
Н^ = 0,5792
1-z-1
1 + 0,1584г-1'
1-z-1
1 + 0,1584г-1'
Коэффициенты фильтра дискретного времени:
Ьо = 0,5792, а! = 0,1584, Ьг = -0,5792.
Пример 8.8
Полосовой фильтр. Требуется полосовой фильтр дискретного времени с характеристиками фильтра Баттерворта, удовлетворяющий приведенным ниже спецификациям. Для получения коэффициентов фильтра используйте метод билинейного z-преобразования.
полоса пропускания 200-300 Гц,
частота дискретизации 2 кГц,
порядок фильтра, N 2.
Решение
Требуется нормированный аналоговый фильтр нижних частот первого порядка (поскольку преобразование полосы частот для полосовых фильтров, выраженное в формуле (8.21, в), удвоит порядок фильтра). Следовательно,
Критичные частоты после предварительной деформации:
W = ш'р2- ^ = 0,1846.
Используя преобразование “фильтр нижних частот в полосовой фильтр” (формулу (8.21, в)), получаем
TVs
s2 + Ws + ^‘
H(z) = H'(s)\9=sH(z) = H'(s)\9=sПосле применения билинейного z-преобразования получаем
H(z) = H'(s)\9=s
H(z) = H'(s)\9=s
Н(г) = 0,1367Н(г) = 0,1367
Н(г) = 0,1367
Н(г) = 0,1367
Подставляя значения и2 и W и упрощая, получаем
1 - 1,2362z-1 + 0,7265z~2
Рис. 8.11. Диаграмма нулей и полюсов для а) фильтра-прототипа нижних частот, б) промежуточного аналогового полосового фильтра и в) дискретного полосового фильтра, полученного путем преобразования полосы
Диаграмма нулей и полюсов нормированного фильтра-прототипа нижних частот, аналогового полосового фильтра и цифрового полосового фильтра дискретного времени изображены на рис. 8.11. Отметим, что преобразование “фильтр нижних частот в полосовой фильтр” ввело по одному нулю в начале координат s-плоскости и на бесконечности. Затем билинейное z-преобразование отобразило эти нули в z = ±1. Таким образом, нули дискретного полосового фильтра — z = 1 и z = — 1. Его полюса расположены в точках z = 0,6040 ± 0,6015г. Нули аналогового полосового фильтра находятся в точке s = 0 и на бесконечности (на рисунке не показано), а полюса — в точках s = -0,0923 ± 0,3962г.
На практике БИХ-фильтры высоких порядков (например, N > 3) обычно реализуются как каскады или параллельные соединения фильтрующих звеньев второго и/или первого порядков, что позволяет снизить влияние конечной разрядности на производительность фильтра (см. далее). Следовательно, после преобразования аналогового фильтра в дискретную форму получающуюся передаточную функцию Щх), если она имеет большой порядок, нужно выразить в факторизованном виде (для каскадной реализации) или как сумму членов второго и/или первого порядка (для параллельной реализации). Для упрощения данной задачи Н(s) изначально можно выразить в факторизованном виде, а затем преобразовать каждый множитель отдельно. После этого все полученные множители можно объединить или перегруппировать в формат, подходящий для нужной реализации. По сути, такой подход использован в примере 8.15.
Метод билинейного z-преобразования: замечания
По сути, метод билинейного преобразования включает два отдельных преобразования. Во-первых, нормированная аналоговая передаточная функция масштабируется (в частотной области) посредством следующей замены аргумента s:
s
8 = 77’(8.22, а)
гдегде(8.22, б)
где
где
Во-вторых, применяется билинейное z-преобразование, при котором s в новой передаточной функции заменяется величиной
z + 1
Во многих работах (например, [19]) в двух приведенных выше операциях используется множитель к = 2/Т. Следует помнить, что к = 1 и к = 2/Т приводят к одинаковым результатам, поскольку в любом случае к сокращается. Продемонстрируем это на примере. Рассмотрим простой фильтр:
Предположим, что цифровой фильтр должен иметь частоту среза шр, тогда H(s') следует масштабировать следующим образом:
H'(S) = H(s)|H'(S) = H(s)|^^ s/ktg^pT/2) + l^^ s/ktg^pT/2) + lПолучаем такую передаточную функцию:
H'(S) = H(s)|
H'(S) = H(s)|
^^ s/ktg^pT/2) + l
^^ s/ktg^pT/2) + l
H^ = H'(s)\H^ = H'(s)\Далее заменяем s на k(z — l)/(z + 1):
H^ = H'(s)\
H^ = H'(s)\
s=t(2-i)/(2+i) ц2 _ ^^ + ^ ,k tg(WpT/2) + 1
Из приведенных выкладок видно, что множитель к сокращается, и не важно, какой величине он равен, 1 или 2/Т.
Для повышения вычислительной эффективности два преобразования можно объеди-
Данный подход иллюстрируется в примере 8.15.
Для фильтров верхних и нижних частот порядок Н^ равен порядку Н(з\ Например, если функция Н^ выведена из функции H(s) аналогового фильтра второго порядка, то Щг) также будет описывать систему второго порядка. Для полосовых и заградительных фильтров порядок H(z) будет вдвое больше порядка H(s\ Данная связь иногда используется для сокращения алгебраических вычислений в методе билинейного z-преобразования (см., например, [22]).
На практике иногда бывает так, что передаточную функцию на s-плоскости H(s) существующего аналогового фильтра нужно преобразовать в функцию эквивалентного полосового фильтра дискретного времени. Такая ситуация обычна, например, при разработке цифровых аудиосистем, где аналоговый фильтр, ранее успешно использовавшийся для выравнивания, теперь нужно преобразовать в цифровой эквивалент [5].
В подобных случаях аналоговая передаточная функция реального фильтра уже дана, так что билинейное .г-преобразование можно применить непосредственно после предварительной деформации и прямого частотного масштабирования характеристики аналогового фильтра нижних частот в характеристику цифрового фильтра нижних частот. Вопросы, возникающие при разработке, иллюстрируются ниже на примере.
Пример 8.9
Иллюстрация метода билинейного z-преобразования при наличии аналоговой передаточной функции реального фильтра. Определите, используя метод билинейного преобразования, коэффициенты фильтра дискретного времени, который предназначен для обработки аудиосигналов в цифровом микшере, при такой настройке управляющих сигналов, когда при добротности Q = 2 фильтр на частоте 5 кГц дает (максимальное) усиление на 6,02 дБ. Частота дискретизации равна 48 кГц, а передаточная функция эквивалентного аналогового фильтра в s-представлении имеет такой вид:
s2 + (3 + fc)^s + u2
.S^ + ^-k^S + w2'
где
k = 3k = 3G- 1G + lG- 1G + l
k = 3
k = 3
G- 1
G + l
G- 1
G + l
w0 — частота усиления, G — коэффициент усиления, Q — добротность.
Решение
Усиление 6,02 дБ соответствует
0 = 10^ = 1,9999; к = 0,9999.
Передаточная функция на s-плоскости записывается теперь так:
_ S^s + w^s2+2^s + w2"
Для получения аналоговой частотной характеристики в этом уравнении делается замена
s = IW.
Теперь деформированная частота усиления вычисляется как
== 0,339454,
а коэффициент деформации шкалы частот (согласно [5]) записывается как
Wq _ Wo
tg(^) “ 0,339454'
Итак, деформированная аналоговая передаточная функция равна
Н'^ = Я(з) |s=psН'^ = Я(з) |s=psp2s2 _|_ 4^Lps +й;2p2s2 _|_ 2^ps + W^'p2s2 _|_ 4^Lps +й;2p2s2 _|_ 2^ps + W^'
Н'^ = Я(з) |s=ps
Н'^ = Я(з) |s=ps
p2s2 _|_ 4^Lps +й;2
p2s2 _|_ 2^ps + W^'
p2s2 _|_ 4^Lps +й;2
p2s2 _|_ 2^ps + W^'
Далее применяем билинейное г-преобразование:
№ = H\s) |e=si =
/\ 2/ х
(Sr) + °’6789085 (Si) + °’115229
/ х 2/ х
(Sf) + °’339454 (Si) + °’115229
1,233352 - 1,216444г"1 + 0,29994г"2“1 - 1,216444г"1 + 0,5332946г-2
Пример 8.10
Простой режекториый LRC-фильтр имеет следующую нормированную передаточную функцию на s-плоскости:
я(5) = -/2 —-
х ' s2 + s + 1
Определите передаточную функцию эквивалентого фильтра дискретного времени, используя метод билинейного г-преобразования. Частота режекции равна 50 Гц, частота дискретизации — 500 Гц.
Решение
Поскольку передаточная функция на s-плоскости уже известна, применять преобразование “фильтр нижних частот в режекториый фильтр" нет смысла, поскольку это будет двойным преобразованием. Критичная частота в этой задаче равна
, // 2тг х 50\ „ ,
";=«Ц-Н=чй^г0'3249196'
Масштабированная передаточная функция на s-плоскости записывается как
s2 + 0,105572
s2 + 0,3249196s + 0,105572’
Применяем билинейное z-преобразование:
Я(2) = Я'(2) ^^
(Si) +0,105572
772
f^|J + 0,3249196^+0,105572
Использование для разработки БИХ-фильтров билинейного z-преобразования и классических аналоговых фильтров
Во многих практических ситуациях аналоговая передаточная функция H(s), по которой вычисляется H^z\ может быть неизвестной, и ее нужно определить по спецификациям желаемых цифровых фильтров. В стандартных задачах частотно-избирательиой цифровой фильтрации (т.е. включающих фильтры нижних частот, верхних частот, полосовые и режекторные) Я (s) можно получить на основе классических фильтров с характеристиками Баттерворта, Чебышева или эллиптическими (см. рис. 8.12). В данном разделе представлены методы разработки БИХ-фильтров по таким классическим аналоговым фильтрам. Будут подробно рассмотрены основные концепции и на примерах проиллюстрированы вопросы разработки. Вначале кратко описаны важные особенности классических аналоговых фильтров, которые нужно знать при разработке БИХ- фильтров. Рассматриваются только фильтры-прототипы нижних частот, поскольку, как будет показано ниже, фильтры других типов обычно выводятся из нормированных фильтров нижних частот.
6)6)Ош'рш\ЧастотаОш'рш\Частотав)в)Рис. 8.12. Схематические частотные характеристики некоторых классических аналоговых фильтров: а) фильтр Баттерворта; б) фильтр Чебышева I типа; в) фильтр Чебышева II типа;г) эллиптический фильтрРис. 8.12. Схематические частотные характеристики некоторых классических аналоговых фильтров: а) фильтр Баттерворта; б) фильтр Чебышева I типа; в) фильтр Чебышева II типа;г) эллиптический фильтрW/o/)lW/o/)lг)г)ЧастотаЧастота
6)
6)
Ош'рш\Частота
Ош'рш\Частота
в)
в)
Рис. 8.12. Схематические частотные характеристики некоторых классических аналоговых фильтров: а) фильтр Баттерворта; б) фильтр Чебышева I типа; в) фильтр Чебышева II типа;
г) эллиптический фильтр
Рис. 8.12. Схематические частотные характеристики некоторых классических аналоговых фильтров: а) фильтр Баттерворта; б) фильтр Чебышева I типа; в) фильтр Чебышева II типа;
г) эллиптический фильтр
W/o/)l
W/o/)l
г)
г)
Частота
Частота
Характерные особенности классических аналоговых фильтров
Фильтр Баттерворта
Фильтр нижних частот Баттерворта характеризуется следующим квадратом амплитудночастотной характеристики:
=- г^(8.24)
где N — порядок фильтра, а ^ - частота среза фильтра нижних частот по уровню 3 дБ (для нормированного фильтра-прототипа w£ = 1). Амплитудно-частотная характеристика типичного фильтра Баттерворта изображена на рис. 8.12, а и видно, что она монотонна в полосе пропускания и полосе подавления. Характеристика называется максимально плоской из-за ее изначальной пологости (с нулевым наклоном на постоянной составляющей).
Порядок фильтра N определяется соотношением
N >(8.25)
" 21=(S) ’
где Ар и As соответственно — неравномерность в полосе пропускания и затухание в полосе подавления в децибелах, a mf — граничная частота полосы подавления.
Передаточная функция нормированного аналогового фильтра Баттерворта Я(з) содержит нули на бесконечности и полюса, равномерно распределенные по окружности единичного радиуса на s-плоскости (см. [14, 23]):
Sk = e-(2k+N-l)/2N = cogSk = e-(2k+N-l)/2N = cog(2k + N — 1тг)(2k + N — 1тг)2N2N+ г sin+ г sin(2k + N — 1тг)(2k + N — 1тг)2N2N(8.26)(8.26)
Sk = e-(2k+N-l)/2N = cog
Sk = e-(2k+N-l)/2N = cog
(2k + N — 1тг)
(2k + N — 1тг)
2N
2N
+ г sin
+ г sin
(2k + N — 1тг)
(2k + N — 1тг)
2N
2N
(8.26)
(8.26)
k = l,2,... ,(V.
Полюса располагаются комплексно-сопряженными парами и лежат в левой части s- плоскости.
Фильтр Чебышева
Альтернативный путь получения подходящей аналоговой передаточной функции H(s) предлагает характеристика Чебышева. Существует два типа фильтров Чебышева, тип I и тип II, отличающиеся следующими особенностями (рис. 8.12, б и 8.12, в).
Тип I: характеристика с равными колебаниями в полосе пропускания, монотонная в полосе подавления.
Тип II: характеристика с равными колебаниями в полосе подавления, монотонная в полосе пропускания.
Фильтры Чебышева типа I, например, характеризуются следующим квадратом амплитудно-частотной характеристики:
№)12№)12к1 + е^Ш'/Ш'рУк1 + е^Ш'/Ш'рУ(8.27, а)(8.27, а)
№)12
№)12
к
1 + е^Ш'/Ш'рУ
к
1 + е^Ш'/Ш'рУ
(8.27, а)
(8.27, а)
где Cjv(w'/wp) — полином Чебышева с равными колебаниями в полосе пропускания, N — порядок полинома (также порядок фильтра), а е определяет неравномерность в полосе пропускания, которая в децибелах выражается так:
неравномерность в полосе пропусканиянеравномерность в полосе пропускания<101g(l + e2) =<101g(l + e2) == -201g(l - 5Р).= -201g(l - 5Р).(8.27, б)(8.27, б)
неравномерность в полосе пропускания
неравномерность в полосе пропускания
<101g(l + e2) =
<101g(l + e2) =
= -201g(l - 5Р).
= -201g(l - 5Р).
(8.27, б)
(8.27, б)
Типичная амплитудная характеристика фильтра Чебышева первого типа показана на рис. 8.12, б. Передаточная функция фильтра Чебышева H(s) зависит от желаемой неравномерности в полосе пропускания и порядка фильтра N. Величина N определяется соотношением
N >N >csh 1csh 1ют#-!iotS -1ют#-!iotS -1(8.28)(8.28)
N >
N >
csh 1
csh 1
ют#-!
iotS -1
ют#-!
iotS -1
(8.28)
(8.28)
где Ар и As соответственно — неравномерность в полосе пропускания и затухание в полосе подавления в децибелах, шр — граничная частота полосы подавления.
Полюса нормированного ФНЧ Чебышева лежат на эллипсе в s-плоскости, а их координаты определяются выражением [23]
(8.29)(8.29)sk = sh(a) cos(/3fc) + icsh(a) sin(/3fc),
(8.29)
(8.29)
где
1 a=-sh1 a=-sh2N ’’ ’’2N ’’ ’’
1 a=-sh
1 a=-sh
2N ’’ ’’
2N ’’ ’’
Эллиптический фильтр
Характеристика эллиптического фильтра имеет равные колебания в полосе пропускания и подавления (см. рис. 8.12, г). Данный фильтр характеризуется следующим квадратом амплитудно-импульсной характеристики:
|я(й/)12 = ГГ^с^И’ (830)
где GN(u') — рациональная функция Чебышева. В отличие от фильтров Баттерворта и Чебышева, простого выражения для полюсов эллиптического фильтра не существует, взамен этого есть процедуры вычисления положений полюсов (например, см. [2, 7, 14]). Нули эллиптического фильтра нижних частот полностью мнимые.
Эллиптическая характеристика дает наиболее эффективные фильтры с точки зрения амплитудной характеристики. Она позволяет получать фильтры наименьшего порядка при данном наборе спецификаций, и в первую очередь при разработке БИХ-фильтров следует попробовать именно эллиптическую характеристику. Исключение составляют те случаи, когда важна фазовая характеристика (тогда стоит использовать характеристику Баттерворта).
Во многие книги по аналоговой разработке включены таблицы полиномиальных представлений H(s) для фильтров Баттерворта, Чебышева и эллиптических, где они приводятся в нормированной форме, так что их можно использовать в билинейном преобразовании. На практике, впрочем, для вычисления Н^ по данной Щв) обычно используются программные пакеты, что будет продемонстрировано ниже.
Методология билинейного ^-преобразования с использованием классических аналоговых фильтров
Если ФНЧ-прототипа не существует, схема билинейного z-преобразования реализуется следующим образом.
Деформировать граничные или критичные частоты цифрового фильтра, как описывалось выше.
На основе спецификации цифрового фильтра и классических характеристик фильтров найти подходящий аналоговый фильтр-прототип нижних частот. Данный этап включает использование одного из уравнений преобразования частоты (в зависимости от типа цифрового фильтра — нижних частот, верхних частот, полосовой или
режекгорный) для определения спецификаций фильтра-прототипа нижних частот. На основе полученных данных определяется порядок фильтра-прототнпа, а следовательно, его передаточная функция H(s\
Денормировать передаточную функцию аналогового ФНЧ-прототипа Я(з), использовав преобразование частоты и масштабирование, и получить новую передаточную функцию Я'(з), как описывалось выше.
Применить билинейное z-преобразование и получить передаточную функцию искомого цифрового фильтра H(z), заменив s в частотно-масштабированной передаточной функции Я'(з), как описывалось выше.
Рассмотрим теперь основные концепции всех типов фильтров (нижних частот, верхних частот, полосовых и режекторных).
Фильтр нижних частот: основные концепции
Преобразование передаточной функции фильтра нижних частот в передаточную функцию фильтра нижних частот происходит по следующему закону:
8
р
Если в этом выражении заменить s на гы и записать частоты фильтра-прототипа как шр, а частоты разрабатываемого фильтра нижних частот как юпч (чтобы как-то их различать), приведенное выше выражение переходит в такую форму:
гшр = г — , т.е.шр =(8.31) шршр
Уравнение (8.31) определяет связь между частотами фильтра-прототипа и фильтра нижних частот, который требуется разработать. Зная критичные частоты денормированного фильтра нижних частот, можно использовать формулу (8.31) и иайти критичные частоты фильтра-прототипа, а следовательно, определить его спецификации.
Фильтр-прототип имеет три критичные частоты: 0, граничная частота полосы пропускания; уР (это практически всегда 1); и граничная частота полосы подавления, шр: 1) если wII4 = 0, шр = 0 (из уравнения (8.31));
если wII4 = Wp (т.е. граничной частоте полосы пропускания), wp = шр/шр = 1 = шр;
если ы||Ч = w^, шр = ш'8/ш'р = шр.
Итак, критичными частотами для фильтра-прототипа являются 0, 1, ш'а/и/р.
Связь частот денормированного фильтра нижних частот и фильтра-прототипа показана на рис. 8.13.
Фильтр верхних частот: основные концепции
Используя преобразование “НЧ-фильтр в ВЧ-фильтр”, s = ш'р/s и обозначив через швч частоты денормированного фильтра верхних частот, а через шр — частоты ФНЧ-
Рис. 8.13. Связь между частотами денормированного ФНЧ и ФНЧ-прототипаРис. 8.13. Связь между частотами денормированного ФНЧ и ФНЧ-прототипа
Рис. 8.13. Связь между частотами денормированного ФНЧ и ФНЧ-прототипа
Рис. 8.13. Связь между частотами денормированного ФНЧ и ФНЧ-прототипа
прототипа (как и выше), получим следующую связь между частотами ФНЧ-прототипа и нужного фильтра верхних частот:
wwр _р _WрУвчWрУвч(8.32)(8.32)
w
w
р _
р _
Wр
Увч
Wр
Увч
(8.32)
(8.32)
Используя формулу (8.32), критичные частоты ФНЧ-прототипа можно выразить через частоты искомого фильтра верхних частот:
если швч = 0, шр = ос (используем формулу (8.32));
если швч = Шр (т.е. граничной частоте полосы пропускания), шр = 1.
если совч = w', wp = — ^;
если швч = -Wp, шр = 1;
если швч = -w', шр = ^.
Следовательно, при разработке фильтра верхних частот тремя критичными частотами ФНЧ-прототипа являются 0, 1 и w'plw's.
Критичные частоты ФНЧ-прототипа и их связь с частотами денормированного фильтра верхних частот изображены на рис. 8.14. Отметим, что преобразование “НЧ-фильтр в ВЧ-фильтр” переводит частоты фильтра верхних частот: 0 отображается в бесконечность, wp — в единицу, а бесконечность — в нуль.
Полосовые фильтры: основные концепции
Преобразование “фильтр нижних частот в полосовой фильтр" записывается следующим образом:
Ws "
Рис. 8.14. Связь частот денормированного ФВЧ и ФНЧ-прототипаРис. 8.14. Связь частот денормированного ФВЧ и ФНЧ-прототипа
Рис. 8.14. Связь частот денормированного ФВЧ и ФНЧ-прототипа
Рис. 8.14. Связь частот денормированного ФВЧ и ФНЧ-прототипа
Согласно этому правилу частоты полосового фильтра шпп и частоты ФНЧ-прототипа шр связаны следующим соотношением:
. р _ (iWnn)2 + WpiWWnn "
т.е.
(8.33)(8.33)р =
(8.33)
(8.33)
Wwnn
Полосовой фильтр имеет четыре критичные, или граничные, частоты и центральную частоту:
ypi> ы'р2 ~ верхняя и нижняя граничные частоты полосы пропускания
w^, w'2 = верхняя и нижняя граничные частоты полосы поглощения
w0 = центральная частота (wq = ^w^)
Используя соотношение (8.33), граничные частоты ФНЧ-прототипа можно выразить через граничные частоты полосового фильтра:
если шпп = w'p wp = w'pi = ^„^;
если wn„ == ti& = -1;
pl 4 р2 ply pl
если.пп = ^ = ^ = ^
если шпп = w'2, wp = w'^ = ^^^;
если шпп = w0, wp = 4т^;
wp =min(w'p1,w^).
Рис. 8.15. Отображение ФНЧ-прототипа в полосовой фильтр
Следовательно, важными критичными частотами ФНЧ-прототипа являются
О, l,min(w'P, |w'2|).
Отображение частот полосового фильтра в частоты ФНЧ-прототипа изображено на рис. 8.15. Отметим, что центральная частота полосового фильтра отображается в нулевую частоту фильтра-прототипа, а верхние граничные частоты полосы пропускания и полосы подавления Wp2 и w'2 соответственно переводятся в положительные граничные частоты полосы пропускания и полосы подавления фильтра-прототипа. С другой стороны, нижние граничные частоты полосы пропускания и полосы подавления и/р1 и w'j соответственно переводятся в отрицательные граничные частоты полосы пропускания и полосы подавления фильтра-прототипа. На практике используется граничная частота полосы подавления фильтра-прототипа, равная меньшей из двух частот полосы подавления w₽2 и wf2, как отмечалось выше. Неравномерности в полосе пропускания и затухания в полосе подавления ФНЧ-прототипа равны соответствующим величинам цифрового полосового фильтра.
По спецификациям ФНЧ-прототипа можно определить порядок N передаточной функции фильтра, используя, например, уравнение (8.25) или (8.28). Порядок полосового фильтра равен удвоенному порядку ФНЧ-прототипа, те. 2N. Полюса фильтра- прототипа определяются из уравнений (8.26) и (8.29). Для фильтров Баттерворта и Чебышева (тип I) нули ФНЧ-прототипа расположены на бесконечности, а для эллиптического фильтра они полностью мнимые. Зная положения полюсов и нулей (или имея стандартные таблицы для классических фильтров), можно вычислить передаточную функцию фильтра-прототипа.
Режекторные фильтры: основные концепции
Преобразование “фильтр нижних частот в режекторный фильтр” записывается следующим образом:
_ Ws
S S2 +’
Частота режекции wnp и частота фильтра-прототипа шр связаны соотношением
■ рi W wnp
Ш = Т2’
(г^прГ + wg
те.
wp =wp =И^прИ^пр(8.34)(8.34)
wp =
wp =
И^пр
И^пр
(8.34)
(8.34)
Из соотношения (8.34) можно определить граничные частоты ФНЧ-прототипа по известным частотам нужного цифрового режекторного фильтра. Напомним, что режекторный фильтр имеет четыре граничные частоты — а/р1, а/р2 (нижняя и верхняя граничные частоты полосы пропускания), w'„ w'2 (нижняя и верхняя граничные частот полосы подавления) и центральную частоту w0 (Wg = шр1шр2У-
если wnp = Wpi, шр = -тг^тг =1;
'ПР pl’’
если wnp = w^, wp = шр№ = j^-;
если wnp = w'2, шр = шр^ = ^3^;
если wnp = w0, шр Jrz^r = сю;
если wnp = w' , шр = -^г == -1.
Таким образом, граничная частота полосы подавления ФНЧ-прототипа шр = min(wp4),wp(2)), а его граничная частота полосы пропускания равна 1. Неравномерность в полосе пропускания и затухание в полосе подавления равны соответственно Лр и As. Отображение частот режекторного фильтра в частоты фильтра нижних частот показано на рис. 8.16. Видно, что верхние граничные частоты полосы подавления и полосы пропускания в режекторном фильтре отображаются в отрицательные частоты фильтра-прототипа, тогда как нижние граничные частоты отображаются в положительные частоты фильтра-прототипа.
Итак, существенными критичными частотами фильтра нижних частот являются
О, l,wp(raewp = min(wp(1), wp(2))).
Из спецификации ФНЧ-прототипа можно, используя уравнения (8.25) и (8.28), определить порядок N и передаточную функцию фильтра. Порядок режекторного фильтра равен удвоенному порядку фильтра-прототипа, т.е 2N.
Рис. 8.16. Связь частот денормированного режекторного фильтра и фильтра нижних частот, используемого при разработке как прототипРис. 8.16. Связь частот денормированного режекторного фильтра и фильтра нижних частот, используемого при разработке как прототип
Рис. 8.16. Связь частот денормированного режекторного фильтра и фильтра нижних частот, используемого при разработке как прототип
Рис. 8.16. Связь частот денормированного режекторного фильтра и фильтра нижних частот, используемого при разработке как прототип
Примеры разработки фильтров нижних частот, верхних частот, полосовых и режекторных
Пример 8.11
Фильтр нижних частот. Требуется цифровой фильтр нижних частот, удовлетворя
ющий следующим спецификациям:
полоса пропускания0-500 Гц,
полоса подавления2-4 кГц,
неравномерность в полосе пропускания 3 дБ, затухание в полосе подавления20 дБ,
частота дискретизации8 кГц.
Определите следующие величины:
граничные частоты полосы пропускания и полосы подавления для подходящего аналогового фильтра-прототипа нижних частот;
порядок N фильтра-прототипа;
коэффициенты, а следовательно, передаточную функцию фильтра дискретного времени, используя билинейное z-преобразование.
Считайте, что аналоговый фильтр имеет характеристику Баттерворта.
Решение
1.1.2.2.На основе спецификации находим деформированные частоты:
1.
1.
2.
2.
,/ 2тг х 500 X
<Z = tg т—= 0,198912,р 6 \ 2 х 8000 )’
,/ 2тг х 2000 X
ш= = tg V 2 х 8000 ) = ’
ш? == 1/0,198912 = 5,0273.
Следовательно, имеем такие деформированные граничные частоты полосы пропускания и полосы подавления ФНЧ-прототипа: 0; 1; 5,0273.
Используем уравнение (8.25) и параметры, найденные в п. 1, чтобы определить порядок фильтра.
ИТЗК’ 10Л5/1° - 1 = Ю20/10 - 1 = 99; 1ОЛ^10 - 1 = 1О3/10 - 1 = 0,9952623;
/99 X
I = 1 997697
g V0,9952623)’"
Для ФНЧ-прототипа
wp = 1; wf = 5,0273; 1g
Передаточная функция на s-плоскости H(s) записывается следующим образом:
H(s) = -VH(s) = -V1 1
H(s) = -
V
H(s) = -
V
Sp,l)(s ®р,1) s + \/2s + 1
Частотно-масштабированная передаточная функция на s-плоскости записывается
так:
Н'^ = Н^Н'^ = Н^
Н'^ = Н^
Н'^ = Н^
Применяя билинейное z-преобразование, получаем такой результат:
w'2
н^ - н-^р—
=^+1)2
(z - 1)2 + V2u>p(z - l)(z + 1) + ^(z + I)2 ‘
Упрощаем, делим числитель и знаменатель на z2 и получаем такую передаточную функцию:
1 ++ Uj'2 Х 1 + 2(^2-l)z-l(1-V2^+^)z-2 •
Подставляя следующие значения параметров:
1 + V3w'p + ^2 = 1,32087; ^2 - 1 = -0,96043
1 - V%?p + ^2 = 0,758285; w* = 0,0395659
в приведенную выше формулу, получаем
0,02995(1 + 2Z" + z"2)“ 1 - 1,4542г"1 + 0,57408z-2 ’
Пример 8.12
Фильтр верхних частот. Требуется цифровой фильтр верхних частот, удовлетворя
ющий следующим спецификациям:
полоса пропускания2-4 Гц,
полоса подавления0-500 кГц,
неравномерность в полосе пропускания 3 дБ, затухание в полосе подавления20 дБ,
частота дискретизации8 кГц.
Определите следующие величины:
Решение
На основе спецификации находим деформированные частоты:
,/ 2тг х 500 \„
W-tg 2 7 8000 И 198912’
,/ 2тг х 2000 \1
- tg ( 2 х 8000 ) - ,
wf = ^ = 1/0,198912 = 5,0273.
Следовательно, имеем такие деформированные граничные частоты полосы пропускания и полосы подавления ФНЧ-прототипа: 0; 1; 5,0273.
Используем уравнение (8.25) и параметры, найденные в п. 1, чтобы определить порядок фильтра.
ИТЗК’ ЮЛа/1° - 1 = Ю20/10 — 1 = 99; Ю^10 - 1 = 103/10 - 1 = 0,9952623;
= 1,997697.= 1,997697.1 ( "g \ 0,9952623
= 1,997697.
= 1,997697.
Для ФНЧ-прототипа
шр = l;w? = 5,0273;lg = 21g(5,0273) = 1,40266
1 997697
N > ’= 1,424. Пусть N = 2.
“ 1,40266’ J
Полюса фильтра-прототипа (из уравнения (8.26)) расположены в точках
Передаточная функция на s-плоскости Щз) записывается следующим образом:
(s sp i)(s Sp ^) s2 -f- -/2 s + 1
Частотно-масштабированная передаточная функция на s-плоскости записывается
следующим образом:
н'^н^ |^ =
Применяя билинейное z-преобразование, получаем такой результат:
22/\ 2
2
2
-I)2
(z - 1)2 + V^z - l)(z + 1) + ^2(z + I)2 ■Упрощаем, делим числитель и знаменатель на z2 и получаем такую передаточную(z - 1)2 + V^z - l)(z + 1) + ^2(z + I)2 ■Упрощаем, делим числитель и знаменатель на z2 и получаем такую передаточнуюфункцию:НМ-функцию:НМ-111 +ад; + ^2 х1 +ад; + ^2 х1 -2Z"1 +z~2l+x/^Up+u?^l+v^ujp+ujp21 -2Z"1 +z~2l+x/^Up+u?^l+v^ujp+ujp2
(z - 1)2 + V^z - l)(z + 1) + ^2(z + I)2 ■
Упрощаем, делим числитель и знаменатель на z2 и получаем такую передаточную
(z - 1)2 + V^z - l)(z + 1) + ^2(z + I)2 ■
Упрощаем, делим числитель и знаменатель на z2 и получаем такую передаточную
функцию:
НМ-
функцию:
НМ-
1
1
1 +ад; + ^2 х
1 +ад; + ^2 х
1 -2Z"1 +z~2
l+x/^Up+u?^l+v^ujp+ujp2
1 -2Z"1 +z~2
l+x/^Up+u?^l+v^ujp+ujp2
Подставляя следующие значения параметров:
1 + ^w; + Wp = 3,41421; w;2 - 1 = о
1 - V2^ + Wp = о, 585786; ^2 = 1 в приведенную выше формулу, получаем
0,029289(1 - 2z-1 + z"2)
-1 + 0,17157Z-2‘
Пример 8.13
Полосовой фильтр. Требуется цифровой полосовой фильтр с амплитудно-частотной характеристикой типа Баттерворта, удовлетворяющий следующим спецификациям:
нижняя граничная частота полосы пропускания
200 Гц,
верхняя граничная частота полосы пропускания
300 Гц,
нижняя граничная частота полосы подавления
50 Гц,
верхняя граничная частота полосы подавления
450 Гц,
неравномерность в полосе пропускания
ЗдБ,
затухание в полосе подавления
20 дБ,
частота дискретизации
8 кГц.
Определите следующие величины:
Использование для разработки БИХ-фильтров билинейного ^-преобразования... Решение
Деформированные критичные частоты полосового фильтра равны
^о — 1> w^ = 0,7265, w'i = 0,1584,^о — 1> w^ = 0,7265, w'i = 0,1584,TV = О,6498, w;2 = 1,37638, w'2 = 6,3138.TV = О,6498, w;2 = 1,37638, w'2 = 6,3138.
^о — 1> w^ = 0,7265, w'i = 0,1584,
^о — 1> w^ = 0,7265, w'i = 0,1584,
TV = О,6498, w;2 = 1,37638, w'2 = 6,3138.
TV = О,6498, w;2 = 1,37638, w'2 = 6,3138.
Следовательно, граничные частоты фильтра-прототипа равны (используются соотношения, приведенные выше)
£ = 1; w₽ = 9,4721.
Итак, требуется НЧ-фильтр-прототип с w₽ = 1; wf = 9,4721; Ар = 3 дБ; As = 20 дБ.
Из уравнения (8.25) находим порядок фильтра-прототипа:
Ю^/ю _ } = 1О2о/ю _ 1 = gg; 10^Р/ю _ х = 10з/ю _ х = 0,9952623;
/99\
1g= 1,9976976;= 9,4721; 21g(9,4721) = 1,95289
6 \0,9952623/’шрр'
1,9976976,
N = = 1,0229.
1,95289’
Величина N должна быть целой, поэтому для простоты используем значение N = 1.
Передаточная функция на s-плоскости ФНЧ первого порядка записывается как
Используя преобразование “фильтр нижних частот в полосовой фильтр" из таблицы,
получаемполучаем2+А =2+А =11
получаем
получаем
2+А =
2+А =
1
1
_ Wss2 + TVs + и2
Результат применения билинейного z-преобразования таков:
,2,22
,2
,2
+ W
Подставляя значения ш2 и ^ окончательно получаем
= 0,2452(1 -z~2)U 1 + 0,5095z-2 ‘
Пример 8.14
Заграждающий фильтр. Требуется цифровой режекторный БИХ-фильтр с амплитудночастотной характеристикой типа Баттерворта, удовлетворяющий следующим спецификациям:
0-50 Гц,450-500 Гц,200-300 Гц,0-50 Гц,450-500 Гц,200-300 Гц,нижняя полоса пропускания верхняя полоса пропускания полоса подавления
0-50 Гц,
450-500 Гц,
200-300 Гц,
0-50 Гц,
450-500 Гц,
200-300 Гц,
неравномерность в полосе пропускания 3 дБ,
20 дБ, 8 кГц.20 дБ, 8 кГц.затухание в полосе подавления частота дискретизации
20 дБ, 8 кГц.
20 дБ, 8 кГц.
Определите следующие величины:
граничные частоты полосы пропускания и полосы подавления для подходящего аналогового фильтра-прототипа нижних частот;
порядок N фильтра-прототипа;
коэффициенты, а следовательно, передаточную функцию фильтра дискретного времени, используя билинейное z-преобразование.
Решение
Деформированные критичные частоты режекторного фильтра равны
^о — 1,^о — 1,W = 6,1554,W = 6,1554,
^о — 1,
^о — 1,
W = 6,1554,
W = 6,1554,
w^ = 0,1584, w^ = 6,3138, ^^=0,7265, ш'2 = 1,37638.
Следовательно, граничные частоты фильтра-прототипа равны (используются соотношения, приведенные выше)
о£ = 1; ^ = 9,4721.
Итак, требуется НЧ-фильтр-прототип с w£ = 1; wf = 9,4721; Ар = 3 дБ; А, = 20 дБ.
Из уравнения (8.25) находим порядок фильтра-прототипа:
10д«/10 _ J = 1020/ю _ ! _ gg. 10ар/ю _ * = 103/io _ * _ 0, g952623;
Величина N должна быть целой, и для простоты используем значение N = 1. Передаточная функция на s-плоскости ФНЧ первого порядка записывается как
Используя преобразование “фильтр нижних частот в режекторный фильтр” из таблицы, получаем
1
,2+шо
_ S2 + Wo
- s2 + Ws+w2‘
Результат применения билинейного z-преобразования таков:
Н^ = Я'(а) I t =
+ Wq+ Wq
+ Wq
+ Wq
Подставляя значения Wg и W, окончательно получаем
0,2452(1 +z"2)* 1^5095^'
Пример 8.15
Получите передаточную функцию цифрового фильтра нижних частот, который удовлетворяет следующим спецификациям:
полоса пропускания0-60 Гц,
полоса подавления>85 Гц,
затухание в полосе подавления >15 дБ.
Частоту дискретизации считайте равной 256 Гц и используйте характеристику Баттерворта.
Решение
На данном примере иллюстрируется объединение согласно формуле (8.23) этапов 4 и 5 процесса билинейного z-преобразования.
Критичные частоты цифрового фильтра:
„,T=^ = ^ = 2.xO,2344,
Ш2Т=^ = ^ = 2,х 0.3320.
Fs 256
Деформированные аналоговые частоты:
w', = tg = °, 906347; w' = tg — = 1,71580.Лl Cl I''«6I Cl I•
Далее нужно получить Щз) с характеристикой Баттерворта, частотой среза по уровню 3 дБ 0,906347 и откликом 85 Гц, уменьшенным на 15 дБ. При затухании 15 дБ и неравномерности в полосе пропускания 3 дБ из уравнения (8.25) получаем ^ = 2,68. Поскольку N должно быть целым, выбираем ^ = 3. Далее записываем нормированный фильтр третьего порядка:
1 =1= 1 1 =
S (s + l)(s2 + S + 1) s + ls2 + s + l
= HWs\
fu^TX /2тгх 0,2344\,
ctg I — j = ctg I-J = 1,103155.
Выполняя преобразование в два этапа (отдельно для каждого сомножителя H(s^), находим.
Я2(г) = tf2(s)=
ls=ctg(u>iT/2)[(z-l)/(z+l)]
1 + 2z-1 + z-2
— n 3012
’1 -0,1307г-1 +0,3355z"2’
результат, которой мы уже получали ранее, правда, после значительных выкладок.
1 + Z-11 -0,04902-!1 + Z-11 -0,04902-!Подобным образом вычисляем HxUy.
1 + Z-1
1 -0,04902-!
1 + Z-1
1 -0,04902-!
Нх^ = 0,4754
Далее функции НДг) и H2(z) можно объединить и получить желаемую передаточную функцию H{z)-.
H(z) = H^z)H2(z) = 0,1432H(z) = H^z)H2(z) = 0,14321 + 3z-1 + 3z-2 + z-3
H(z) = H^z)H2(z) = 0,1432
H(z) = H^z)H2(z) = 0,1432
1 - 0,1801г-1 + 0,3419z-2 - 0,0165z-3 ’
Расчет коэффициентов БИХ-фильтра путем отображения полюсов и нулей s-плоскости
Основные концепции
Альтернативным, а возможно, даже более мощным и гибким методом расчета коэффициентов H(z) конкретного БИХ-фильтра является отображение отдельных полюсов и нулей подходящего аналогового фильтра с s- на z-плоскость с последующим выводом коэффициентов цифрового фильтра по нулям и полюсам на z-плоскости. Данный
подход использован в нескольких коммерческих программах и удобен при разработке фильтров высокого порядка.
Процедура вычисления коэффициентов БИХ-фильтра путем отображения полюсов и нулей с s-плоскости на z-плоскость описана ниже.
Этап 1
Как и ранее, разработчик начинает с нормированного аналогового фильтра нижних частот TV-го порядка с характеристикой типа Баттерворта, Чебышева или эллиптической в зависимости от требований к разработке. Затем с помощью уравнения (8.26) для фильтра Баттерворта или уравнения (8.29) для фильтра Чебышева находятся полюса нормированного фильтра нижних частот. Для эллиптического фильтра каждый полюс комплексный и в общем случае имеет вид
®1,к — ^р,к ^Зр,к*(8.35)
Для фильтров Баттерворта и Чебышева (тип I) нули фильтра-прототипа находятся на бесконечности, а для эллиптического фильтра они полностью мнимые. Вообще, положения нулей нормированного фильтра нижних частот определить легче, чем положения полюсов.
Этап 2
Далее полюса и нули нормированного аналогового фильтра нижних частот преобразуются в полюса и нули фильтра нижних частот, верхних частот, полосового или режекторного фильтра, при этом используется подходящее преобразование из набора (8.21, а-г).
Фильтры нижних и верхних частот
Для цифрового фильтра нижних или верхних частот N полюсов нормированного фильтра нижних частот преобразуются следующим образом:
si,k = s^kfw' k = l,2,...,N
(8.36, а) (фильтр нижних частот в фильтр нижних частот),
SK,k=Wp/sl.k k=l,2,...,N(8.36,6)
(фильтр нижних частот в фильтр верхних частот),
где ш'р — желаемая граничная частота полосы пропускания, slk — полюса аналогового фильтра нижних частот, a shk — полюса аналогового фильтра верхних частот.
Сходство уравнений (8.36, я и б) очевидно, и оно объясняется дуальностью характеристик фильтров верхних частот и нижних частот. При N четном будет N/2 пар комплексных полюсов. При нечетном N будет (N — 1)/2 пар комплексных полюсов и один действительный полюс.
Для классических фильтров (Баттерворта, Чебышева и эллиптического) преобразования (8.36, а и б) переводят нули ФНЧ-прототипа на мнимую ось s-плоскости. В фильтрах Баттерворта и Чебышева нули фильтра-прототипа расположены на бесконечности.
В любом случае преобразование переводит нули с бесконечности на бесконечность (для фильтров нижних частот) или с бесконечности в начало координат (для фильтров верхних частот), как показано на рис. 8.17, а(11) и 8.17, 6(11).
Полосовые и режекторные фильтры
При разработке полосовых цифровых фильтров полюса аналогового полосового фильтра получаются из полюсов нормированного фильтра-прототипа нижних частот:
Sb,к + woSb,к + woSi,кuz 1Si,кuz 1(8.37)(8.37)
Sb,к + wo
Sb,к + wo
Si,кuz 1
Si,кuz 1
(8.37)
(8.37)
(8.38)(8.38)где 8[к — полюса аналогового фильтра-прототипа нижних частот, sbk — пары полюсов промежуточного аналогового полосового фильтра, W = ш2 — i^ — ширина полосы пропускания фильтра, а Д = ш'^ определяет центральную частоту полосы пропускания. Из уравнения (8.37) получаем следующее квадратное уравнение на sb;k:
(8.38)
(8.38)
Sb,k — W SlikSb,k + U>g — 0.
Решая его относительно sbik, вычисляем следующее выражение для полюсов аналогового полосового фильтра:
WWSi,k ±Si,k ±/ 2 _ ^0 |/ 2 _ ^0 |(8.39)(8.39)
W
W
Si,k ±
Si,k ±
/ 2 _ ^0 |
/ 2 _ ^0 |
(8.39)
(8.39)
Из формулы (8.39) видно, что каждый полюс аналогового фильтра нижних частот дает пару полюсов аналогового полосового фильтра, что объясняется наличием члена s2 в формуле преобразования. Вообще, полюс аналогового фильтра нижних частот st-k комплексный, так что в результате действий с этой величиной также получится комплексное значение. Вычислять корень квадратный из комплексного числа следует аккуратно, если, конечно, нужно получить точное решение (см. приложение 8В).
Для режекторных цифровых фильтров можно использовать следующее преобразование:
Si, к —Si, к —WsT,ks^k + ^о ’WsT,ks^k + ^о ’(8.40)(8.40)
Si, к —
Si, к —
WsT,ks^k + ^о ’
WsT,ks^k + ^о ’
(8.40)
(8.40)
где si,k — полюса аналогового прототипа, sr,k — полюса промежуточного аналогового режекторного фильтра, W — ширина полосы подавления, a u>g — центральная частота полосы подавления. Из уравнения (8.40) получаем следующее выражение для полюсов аналогового режекторного фильтра через полюса фильтра-прототипа.
IVIVSi,к 32 I ь1,кSi,к 32 I ь1,кMV/2"IV2)MV/2"IV2)(8-41)(8-41)
IV
IV
Si,к 32 I ь1,к
Si,к 32 I ь1,к
MV/2"
IV2)
MV/2"
IV2)
(8-41)
(8-41)
Не должно удивлять, что уравнение (8.41) по форме схоже с уравнением (8.39), исключая инверсию полюсов фильтра нижних частот вследствие дуальности полосового и режекторного фильтров.
Рис. 8.17. Отображение нулей фильтра-прототипа нижних частот второго порядка в нули а) фильтра нижних частот; б) фильтра верхних частот; в) полосового фильтра;
г) режекторного фильтра
Как и в ситуации с фильтрами нижних и верхних частот, преобразования (8.39) и (8.41) переводят нули на мнимую ось. Для фильтров Баттерворта и Чебышева преобразование “фильтр нижних частот в полосовой фильтр” отображает N нулей ФНЧ- прототипа с бесконечности на бесконечность и в начало координат s-плоскости (см. рис. 8.17, в). С другой стороны, преобразование “фильтр нижних частот в режектор- ный фильтр” переводит N нулей фильтра-прототипа бесконечности в точки ±гш0 s- плоскости; см. рис. 8.17, г. Для эллиптических полосовых и режекторных фильтров преобразование отображает полностью мнимые нули фильтра-прототипа в другие точки на ось гш.
ЭтапЗ
После указанных действий применяется билинейное z-преобразование, переводящее полюса и нули с s-плоскости на цифровую z-плоскость. Каждый полюс s-плоскости sPik отображается согласно следующему правилу:
Zp,k =Zp,k =1 + sp,k1 ®р,к1 + sp,k1 ®р,к(8-42)(8-42)
Zp,k =
Zp,k =
1 + sp,k
1 ®р,к
1 + sp,k
1 ®р,к
(8-42)
(8-42)
Подобным образом каждый нуль s-плоскости преобразованного аналогового фильтра следующим образом отображается на z-плоскость:
Zz>k =Zz>k =1 + szk1 + szk1 - sz,k1 - sz,k(8.43)(8.43)
Zz>k =
Zz>k =
1 + szk
1 + szk
1 - sz,k
1 - sz,k
(8.43)
(8.43)
Отображение нулей s-плоскости на z-плоскость с помощью билинейного z-преобразования иллюстрируется на рис. 8.17, а-г (фильтры Баттерворта и Чебышева). Отметим, в частности, что для фильтров нижних частот (рис. 8.17, n(ii)) нули располагаются на бесконечности s-плоскости, и билинейное z-преобразование переводит их в точку z = —1 z-плоскости (рис. 8.17, n(iii)), тогда как для полосового фильтра нули s-плоскости (рис. 8.17, в(й)) отображаются с начала координат в точку z = 1, а с бесконечности — в точку Z = —1.
Для эллиптических фильтров нижних частот, верхних частот, полосовых и режекторных szk — мнимые, и билинейное z-преобразование переводит эти точки на единичную окружность в z-плоскости. Вообще, нули z-плоскости для всех классических фильтров (Баттерворта, Чебышева и эллиптического), полученные методом билинейного z-преобразования, лежат на единичной окружности вне зависимости от типа фильтра. В результате коэффициенты числителя H(z) классических фильтров всегда целые (0, ±1, ±2).
Этап 4
Финальный этап — это определение коэффициентов числителя и знаменателя фильтрующих звеньев второго и первого порядка. Для этого следующим образом объединяются пары комплексно-сопряженных нулей:
(8.44, a)(8.44, a)„ , , (z - zZtk^z - z*k)
(8.44, a)
(8.44, a)
HAZ) = ——-
(z - zp^z - z* J
=^^4-f844-6»
1 + a^z 1 + a2iz 2
Вообще, пара комплексных полюсов или нулей, расположенных в точках а ± гЗ, дает квадратный по z полином следующего вида:
(8.45, а)(8.45, а)[z — (а + 13^ [z — (а — гЗУ\ = z2 — 2az + а2 + З2 ~
(8.45, а)
(8.45, а)
= 1 - 2az-1 + (а2 + Д2
Отдельный полюс на действительной оси (те. z = ±а) дает множитель вида
z±a = 1 ±az-1.(8.45,6)
Довольно часто фильтр TV-го порядка имеет 7V действительных корней на действительной оси в z-плоскости. В этом случае можно объединять в пары нули z-плоскости, чтобы числитель каждого звена фильтра описывался квадратным выражением вида
l±2z-1+z"2.(8.45, в)
Общая передаточная функция Н^ записывается как
Н^ = КН^Н2(2у..Нм^,
где К — коэффициент усиления, который используется для подгонки амплитудной характеристики в полосе пропускания до нужного уровня. В большинстве случаев значение К выбирается так, чтобы максимальный отклик в полосе пропускания был равен единице.
Примеры
Пример 8.16
В определенном приложении ЦОС требуется цифровой полосовой фильтр второго порядка с характеристикой Баттерворта и полосой пропускания между 200 и 300 Гц с частотой дискретизации 2 кГц. Определите передаточную функцию цифрового фильтра путем отображения полюсов и/или нулей подходящего аналогового ФНЧ-прототипа с s-плоскости на z-плоскость.
Представьте с соответствующими пометками диаграмму нулей и полюсов прототипа, промежуточного аналогового полосового фильтра и цифрового полосового фильтра.
Решение
Поскольку порядок фильтра удваивается при преобразовании в полосовой фильтр, требуется найти нормированный фильтр нижних частот первого порядка. Следовательно,
18 + 1'18 + 1'
1
8 + 1'
1
8 + 1'
Передаточная функция имеет единственный нуль в точке з/д = — 1. Далее Fs =2 кГц = 1/Т. Следовательно, деформированные граничные частоты имеют вид
^ = tg^ = tgшхТ~2~шхТ~2~2тг х 200 \ 2 х 2000 )2тг х 200 \ 2 х 2000 )= 0,3249,= 0,3249,^2 = tg^2 = tgш2Тш2Т2тг х 300 \ 2 х 2000 )2тг х 300 \ 2 х 2000 )= 0,5095.= 0,5095.
^ = tg
^ = tg
шхТ
~2~
шхТ
~2~
2тг х 200 \ 2 х 2000 )
2тг х 200 \ 2 х 2000 )
= 0,3249,
= 0,3249,
^2 = tg
^2 = tg
ш2Т
ш2Т
2тг х 300 \ 2 х 2000 )
2тг х 300 \ 2 х 2000 )
= 0,5095.
= 0,5095.
Итак, находим ш0 и W:
^ = ш'^з = 0,1655, И7 = ш' - ^ = 0,1846.
Согласно формуле (8.39) один полюс фильтра нижних частот преобразуется в два полюса полосового фильтра:
0,1846) 1 +0,1846) 1 +4 х 0,165511/24 х 0,165511/2(0,1846)2(0,1846)2
0,1846
) 1 +
0,1846
) 1 +
4 х 0,165511/2
4 х 0,165511/2
(0,1846)2
(0,1846)2
= -0,0923 +0,4172г;
^6,2 —^6,2 —0,18460,18464 x 0,165511/24 x 0,165511/2(0,1846)2(0,1846)2
^6,2 —
^6,2 —
0,1846
0,1846
4 x 0,165511/2
4 x 0,165511/2
(0,1846)2
(0,1846)2
= -0,0923-0,4172г = 8^.
Из билинейного z-преобразования (формула (8.42)) получаем
2рД2рД
2рД
2рД
1 — 0,0923 + 0,4172г
= 0,5979 + 0,6103г
ZP,2 — 2рД"
Фильтр-прототип имеет нуль на бесконечности, который при преобразовании “фильтр нижних частот в полосовой фильтр” отображается в начало координат и на бесконечность s-плоскости. Следовательно szj = 0, sZi2 = оо. Билинейное z-преобразование переводит эти нули в точки z-плоскости z = 1 и z = — 1.
8гД -> Zz.,l — I-! sz,2 -* '-z,2 — ~ 1-
Далее, зная полюса и нули, определяем дискретную передаточную функцию H(z):
H(z) = (z=H(z) = (z=(z - zPil)(z - zp,2)z2-l(z - zPil)(z - zp,2)z2-l
H(z) = (z=
H(z) = (z=
(z - zPil)(z - zp,2)z2-l
(z - zPil)(z - zp,2)z2-l
z2 - 1,1958z + 0,79951 - 1,1958г-1 + 0,7995z-2'
Полученная передаточная функция идентична функции из примера 8.9 с точностью до постоянного множителя. Диаграммы нулей и полюсов также идентичны приведенным на рис. 8.11.
Пример 8.17
Начав с подходящего аналогового фильтра нижних частот, найдите передаточную функцию цифрового фильтра Чебышева верхних частот в факторизированном виде, который удовлетворяет следующим спецификациям:
граничная частота полосы пропускания 15 кГц,
затухание на частоте 18 кГц>30 дБ,
неравномерность в полосе пропускания 1 дБ,
частота дискретизации48 кГц.
Решение
Деформированные критичные частоты:
На основе спецификаций полосы пропускания находим е = 0,3493. Порядок подходящего фильтра Чебышева нижних частот равен 5 (ближайшее целое).
При а = l/Nsh-1 (1/е) = 0,3548, s/i(a) = 0,3623 и csh(a) = 1,0636 полюса левой полуплоскости нормированного фильтра Чебышева нижних частот расположены в точках (Ц, = 1)
8/1 = 0,3623 cos8/1 = 0,3623 cos(2 + 5- 1)тг(2 + 5- 1)тг+ 1,0636 sin+ 1,0636 sin(2 + 5- 1)тг(2 + 5- 1)тг
8/1 = 0,3623 cos
8/1 = 0,3623 cos
(2 + 5- 1)тг
(2 + 5- 1)тг
+ 1,0636 sin
+ 1,0636 sin
(2 + 5- 1)тг
(2 + 5- 1)тг
= —0,11196 + 1,0115г;
в/,2 = 0,3623 cosв/,2 = 0,3623 cos(4 + 5 — 1)тг(4 + 5 — 1)тг+ 1,0636 sin+ 1,0636 sin(4 + 5 —1)тг" . г(4 + 5 —1)тг" . г
в/,2 = 0,3623 cos
в/,2 = 0,3623 cos
(4 + 5 — 1)тг
(4 + 5 — 1)тг
+ 1,0636 sin
+ 1,0636 sin
(4 + 5 —1)тг" . г
(4 + 5 —1)тг" . г
= -0,2931 + 0, 6252г;
s, з = 0,3623 coss, з = 0,3623 cos(6 + 5 — 1)тг10(6 + 5 — 1)тг10+ 1,0636 sin+ 1,0636 sin(6 + 5 — 1)тг16(6 + 5 — 1)тг16= -0,3623;= -0,3623;si4 = 0,3623 cossi4 = 0,3623 cos(8 + 5-1)%]Г(8 + 5 - 1)тг_ + 1,0636 sin (8 + 5-1)%]Г(8 + 5 - 1)тг_ + 1,0636 sin = -0,2931 - 0,6252г;= -0,2931 - 0,6252г;„ „Г(10 + 5 —1)%sj]5 = 0,3623 cos —„ „Г(10 + 5 —1)%sj]5 = 0,3623 cos —, „ „ .(10 + 5-1)%'+ 1,0636 sin ———, „ „ .(10 + 5-1)%'+ 1,0636 sin ———
s, з = 0,3623 cos
s, з = 0,3623 cos
(6 + 5 — 1)тг10
(6 + 5 — 1)тг10
+ 1,0636 sin
+ 1,0636 sin
(6 + 5 — 1)тг
16
(6 + 5 — 1)тг
16
= -0,3623;
= -0,3623;
si4 = 0,3623 cos
si4 = 0,3623 cos
(8 + 5-1)%]Г(8 + 5 - 1)тг
_ + 1,0636 sin
(8 + 5-1)%]Г(8 + 5 - 1)тг
_ + 1,0636 sin
= -0,2931 - 0,6252г;
= -0,2931 - 0,6252г;
„ „Г(10 + 5 —1)%
sj]5 = 0,3623 cos —
„ „Г(10 + 5 —1)%
sj]5 = 0,3623 cos —
, „ „ .(10 + 5-1)%'
+ 1,0636 sin ———
, „ „ .(10 + 5-1)%'
+ 1,0636 sin ———
= -0,11196 - 1,0115г.
Из приведенных данных видна симметрия полюсов и то, что s/ ] и sJ5 (а также s/2 и sz 4) формируют комплексно-сопряженную пару. Обратите также внимание на то, что все полюса лежат в левой полуплоскости s-плоскости, что является необходимым условием устойчивости.
Для преобразования полюсов прототипа в полюса нужного фильтра верхних частот используется уравнение (8.36, б):
shA = -0,1618- 1,4616г,
sh,2 = -0,92013 - 1,9625г,
sh,3 = -4,1306,
SM = sh,2 ~ °,92013 + ^ 9625г,
sh,5 = s*hl = -0,1618 + 1,4616г.
Далее полюса отображаются с s- на z-плоскость с помощью билинейного z-преобразовани Из уравнения (8.42) полюса z-плоскости после билинейного z-преобразования записываются так (рассматриваются только полюса над действительной осью):
гкд = -0,3335 + 0,8386г,
zh2 = -0,4906 + 0,5207г,
zh,3 = -0,6102.
Все нули zZik расположены в точке z = 1. Далее по полюсам и нулям вычисляются коэффициенты звеньев фильтра второго и первого порядка (уравнения (8.45, а и б)):
6ц — —2,
621 = !, оц = °, 6670, а21 = 0,8145,
612 — —2,61з — ~!,
622 — !>^23°>
012 = 0,9812, 013 = 0,6102, O22 “ 0,5118, ^23 ™ 0.
Наконец, передаточная функция записывается как
Н^ - КЯ1(2)Н2(2)Я3(2),
где
Ц-0,66702-1 + 0,8145z-2’
11 + 0,98122"!+0,51182-2’
1 — 2-1
H^Z>) = 1 + 0,61022-1'
Использование программ разработки БИХ-фильтров
Какой бы метод мы не выбрали, очевидно, что метод билинейного 2-преобразования включает значительные алгебраические манипуляции со множеством потенциальных ошибок. В настоящее время существуют компьютерные программы вычисления коэффициентов фильтра с помощью билинейного метода, в которых требуется только задать необходимые параметры [7, 10, 11, 14, 18]. Большинство компьютерных программ в литературе написаны на языке FORTRAN, хотя в настоящее время от этого языка отказываются в пользу более современных С и BASIC. Программу на языке С вычисления коэффициентов фильтра с помощью билинейного 2-преобразования можно, например, найти в книге [Ifeachor, 2001]. Использование этой программы иллюстрируется на следующем примере. В приложении 8Б показано, как для разработки цифровых БИХ-фильтров можно использовать MATLAB.
Пример 8.18
Иллюстрация использования программы разработки БИХ-фильтров. Вычислите коэффициенты цифрового аудиофильтра с характеристикой Чебышева, удовлетворяющего следующим спецификациям:
полоса пропускания0-2,5 кГц,
граничная частота полосы подавления2820 кГц,
неравномерность в полосе пропускания 0,47 дБ, частота дискретизации10 кГц,
порядок фильтра4.
Решение
Используя программу, получаем следующий выход:
к
Ак
вк
0
1,000 000 х 10°
1,934 410 х IO"1
1
-2,516 884 х 10-1
3,783 311 х 10-1
2
1,054 118 х 10°
5,241 429 х IO"1
3
-2,406 030 х ПГ1
3,783 311 х 10-1
4
1,985 861 х 10-1
1,934 410 х 10"1
Выбор метода расчета коэффициентов БИХ-фильтров
При использовании метода инвариантного преобразования импульсной характеристики после оцифровки аналогового фильтра импульсная характеристика исходного аналогового фильтра сохраняется, а амплитудно-частотная характеристика — нет. Вследствие присущего методу наложения он не подходит для разработки фильтров верхних частот или режекторных фильтров. Метод билинейного z-преобразования, с другой стороны, дает весьма эффективные фильтры и прекрасно подходит для расчета коэффициентов частотно-избирательных фильтров. Он позволяет разрабатывать цифровые фильтры с такими широко известными классическими характеристиками, как Баттерворта, Чебышева и эллиптические. Цифровые фильтры, полученные с помощью метода билинейного z-преобразования, будут, в общем случае, сохранять специфические особенности амплитудной характеристики аналогового фильтра (например, граничные частоты, неравномерность в полосе пропускания и затухание в полосе подавления), но не свойства, связанные с временной областью. Метод инвариантного преобразования импульсной характеристики хорош для моделирования аналоговых систем с характеристиками фильтров нижних частот, но для частотно-избирательных БИХ-фильтров наилучшим является билинейный метод. Согласованное z-преобразование порождает большинство проблем, присущих методу инвариантного преобразования импульсной характеристики. Если поставленная задача проста, то простым и эффективным методом расчета коэффициентов является метод размещения нулей и полюсов.
Эффект Найквиста
Три метода преобразования аналоговых фильтров в эквивалентные фильтры дискретного времени (а именно, согласованное z-преобразование, метод инвариантного преобразования импульсной характеристики и билинейное z-преобразование) могут в некоторых случаях значительно влиять на характеристики фильтра (например, амплитудную характеристику, фазовую и групповую задержки и т.д.). Как отмечалось ранее, доступная полоса частот аналогового фильтра простирается от нуля до бесконечности, тогда как для цифрового фильтра — от нуля до частоты Найквиста (половина частоты дискретизации). Следовательно, амплитудно-частотная характеристика цифровых
фильтров, разработанных с помощью любого из названных методов, может значительно отличаться от характеристики аналогового фильтра, поскольку теперь аналоговая полоса частот (от нуля до бесконечности) сжата до узкой полосы (от нуля до частоты Найквиста). Данное отличие характеристик представляет искажение, которое иногда называют эффектом Найквиста.
Во многих приложениях эффект Найквиста не вреден, просто он вызывает определенное дополнительное искажение. Впрочем, если в некоторой ситуации следует сохранить характеристику аналогового фильтра, например, при профессиональной или полупрофессиональной работе с аудио [5], данный эффект все же представляет нежелательное искажение. В таких случаях при выборе метода преобразования аналогового фильтра в эквивалентный фильтр дискретного времени может учитываться степень искажения. При выборе метода также следует учитывать влияние метода на такие характеристики фильтра, как групповая задержка и импульсная характеристика [19].
В данном разделе кратко рассматриваются последствия эффекта Найквиста. В конце главы приведено несколько задач, позволяющих читателю изучить относительные преимущества методов преобразования аналоговых фильтров в эквивалентные цифровые.
Пример 8.19
Требуется фильтр нижних частот дискретного времени с характеристикой Баттерворта согласно следующей спецификации:
частота среза300 Гц,
порядок фильтра5,
частота дискретизации 1000 Гц.
С помощью MATLAB получите и изобразите следующие характеристики:
амплитудно-частотную характеристику и характеристику групповой задержки (используйте метод инвариантного преобразования импульсной характеристики);
амплитудно-частотную характеристику и характеристику групповой задержки (используйте метод билинейного ^-преобразования).
Сравните два метода с позиции искажения амплитудной характеристики вследствие эффекта Найквиста.
Решение
а. Начнем с разработки аналогового фильтра, который будет служить эталоном.
Расчет аналогового фильтра производится с помощью программы 8.1,. Полученная амплитудно-частотная характеристика показана на рис. 8.18.
Амплитудно-частотная характеристика и характеристика групповой задержки эквивалентного дискретного фильтра показаны на рис. 8.19, а и б. Для расчета этого фильтра использовалась программа 8.2. Для получения характеристики групповой задержки использовалась команда grpdelay из MATLAB Signal Processing Toolbox.
б. Амплитудно-частотная характеристика и групповая задержка эквивалентного дискретного фильтра, разработанного с помощью метода билинейного z- преобразования, показаны на рис. 8.20, а и б. Для расчета этого фильтра использовалась программа 8.3.
Если сравнить амплитудно-частотные характеристики фильтра, полученного методом инвариантного преобразования импульсной характеристики, и фильтра, полученного с помощью билинейного z-преобразования, очевидно, что первый фильтр дает меньшее, а второй — большее затухание возле частоты Найквиста. Например, на частоте 500 Гц фильтр, полученный методом инвариантного преобразования импульсной характеристики, дает затухание порядка 17 дБ, тогда как фильтр, полученный методом билинейного z-преобразования, имеет затухание более 200 дБ.
Программа 8.1. Программа разработки аналогового фильтра
%
% Название программы: EXS-l.m’
% FN=1000/2; fc=300;%Частотасреза
N=5;%Порядокфильтра
[z, р, k]=buttap(N);%Создатьаналоговыйфильтр
w=linspace(0,FN/fc, 1000); %Вывестина экранхарактеристику фильтра
h=freqs(k*poly(z), poly(p), w); f=fc*w; plot(f, 20*logl0(abs(h))), grid ylabel('Амплитудная характеристика (дБ)1) xlabel ('Частота (Гц)')
Программа 8.2. Программа разработки фильтра с помощью метода инвариантного преобразования импульсной характеристики % % Название программы: ЕХ8-2.Ш % Fs=1000;%Частотадискретизации
fc=300;%Частотасреза
WC=2*pi*fc;%Частотасреза в радианах
N=5; [b,a]=butter(N, WC, 's');% Создать аналоговый фильтр
[z,p, k]=butter(N, WC, 's') ; [bz, az]=impinvar(b, a, Fs); % Определить коэффициенты БИХ-фильтра [h, f]=freqz(bz, az, 512, Fs); plot(f, 20*logl0(abs(h))), grid ylabel ('Амплитудная характеристика (дБ)') xlabel('Частота (Гц)1)
Рис. 8.18. Амплитудная характеристика аналогового фильтра
Программа 8.3. Программа разработки фильтра с помощью билинейного z-преобразования
%
% Название программы: ЕХ8-З.Ш %
FslOOO;% Частота дискретизации
FN=Fs/2;
fc=300;% Частота среза
N=5;
[z, р, k]=butter(N, fc/FN);
[h, f]=freqz(k*poly(z), poly(p), 512, Fs);
plot(f, 20*logl0(abs(h))), grid
ylabel('Амплитудная характеристика (дБ)1)
xlabel('Частота (Гц)')
Анализ фильтра, полученного с помощью билинейного z-преобразования, показывает, что передаточная функция имеет пять нулей на частоте Найквиста (см. рис. 8.20, в), которые отвечают за быстрый спад амплитудной характеристики. Такая ситуация характерна для дискретных фильтров, полученных с помощью билинейного z-преобразования, и это является причиной, по которой данные цифровые фильтры дают большее затухание, чем исходные аналоговые фильтры. Дискретный фильтр, полученный методом инвариантного преобразования импульсной характеристики, наоборот, имеет нуль в начале координат и нуль вне единичной окружности. Получившееся искажение представляет отличие амплитудных характеристик двух дискретных и аналогового фильтров.
Рис. 8.19. Амплитудно-частотная характеристика инвариантного преобразования импульсной характеристики (панель а); групповая задержка фильтра, полученного методом инвариантного преобразования импульсной характеристики (панель б)
Частота (Гн)
Действительная часть в)
Рис. 8.20. Амплитудно-частотная характеристика билинейного z-преобразования (панель о); групповая задержки фильтра, полученного методом билинейного z-преобразования (панель б); диаграмма нулей и полюсов фильтра, полученного методом билинейного z-преобразования (панель в)
Во многих случаях искажения амплитудной характеристики фильтров, полученных методом согласованного z-преобразования или инвариантного преобразования импульсной характеристики, и фильтров, полученных методом билинейного z-преобразования, противоположны по знаку. Первая группа фильтров дает меньшее затухание, чем вторая. При низких и средних частотах (относительно частоты Найквиста) амплитудные характеристики фильтров нижних частот и верхних частот, разработанных с помощью согласованного z-преобразования и метода инвариантного преобразования импульсной характеристики, разумно близки к характеристикам исходных аналоговых фильтров, но искажаются возле частоты Найквиста. То же справедливо и для фильтров, разработанных с помощью билинейного z-преобразования, только искажение характеристики ближе к частоте Найквиста происходит в противоположном смысле. Для простого и эффективного подавления искажения характеристики фильтров нижних и верхних частот можно объединить билинейное z-преобразование с согласованным z-преобразованием либо методом инвариантного преобразования импульсной характеристики, усреднив их коэффициенты (см. [4, 5]). При таком подходе фильтр нижних частот или полосовой фильтр вначале разрабатывается отдельно с помощью билинейного z-преобразования и согласованного z-преобразования. Затем коэффициенты этих двух фильтров объединяются для получения коэффициентов нового фильтра:
Ук = [bk(BZT) + bk(MZT)]/2, /с = 0,1,2,
а'к = [at (BZT) + ак(MZT)] /2, к = 0,1,2.
На рис. 8.21 сравниваются характеристики двух дискретных фильтров (билинейное z-преобразование и согласованное z-преобразование). Данные фильтры предназначены для обработки аудиосигналов, причем требуется эффективно и оперативно генерировать коэффициенты фильтра при слабом искажении характеристики. Как и ранее, фильтр, основанный на билинейном z-преобразовании, дает более резкую амплитудночастотную характеристику за частотой 10 кГц (частота Найквиста — 24 кГц), тогда как согласованное z-преобразование дает меньшее затухание. Оба отклонения амплитудной характеристики представляют в данной задаче искажение. Усредненная характеристика (рис. 8.21), с другой стороны, менее искажена. На диаграмме нулей и полюсов на рис. 8.22 сравниваются положения полюсов и нулей фильтра, основанного на согласованном z-преобразовании, и фильтра, основанного на комбинированном согласованном z-преобразовании и билинейном z-преобразовании. Как и следовало ожидать, процесс усреднения приводит к чередованию полюсов и нулей фильтра, построенного на согласованном z-преобразовании. В частности, он вводит “мягкий” нуль на частоте Найквиста. Нуль называется мягким, поскольку он расположен глубоко внутри единичной окружности и поэтому не дает амплитудной характеристике быстро снизиться до нуля, как при билинейном z-преобразовании.
— Согласованное z-преобразование
Билинейное z-преобразование
— — — Среднее билинейного и согласованного z-преобразований
Идеал непрерывного времени
Рис. 8.21. Амплитудная характеристика фильтров, полученных методами согласованного z-преобразования, билинейного z-преобразования, усредненного согласованно- го/билинейного z-преобразования и аналогового эталона, 15 кГц, Q = 2, усиление 15 дБ
Рис. 8.22. Сравнение графиков нулей и полюсов фильтров, полученных путем согласованного z-преобразования и усредненного согласо- ванного/билииейного z-преобразования. Стрелочками указано Движение полюсов/нулей при переходе от первого фильтра ко второму
Умножитель
Сум м атор/на коп ител ь
Задержка в одну единицу времени
кх(п)
х(п) + w(n)
х(п-1)
w(n)
Рис. 8.23. Основные элементы структуры фильтра
Структуры реализации цифровых БИХ-фильтров
Реализация включает преобразование данной передаточной функции Н(г) в подходящую фильтрующую структуру. Для отображения структуры фильтра обычно используются блок-схемы или функциональные схемы, на которых показана вычислительная процедура, которая будет воплощена в цифровом фильтре. Основными элементами структуры реализации фильтров являются умножители, сумматоры и элементы задержки (рис. 8.23).
N-1N-1(8.46, а)(8.46, а)(8.46, б)(8.46, б)Напомним, что БИХ-фильтр характеризуется следующими уравнениями:
N-1
N-1
(8.46, а)
(8.46, а)
(8.46, б)
(8.46, б)
ум = 52 ЬкЖ^п ~ ^) - 52 аку^п ~ kv
Реализация уравнения (8.46) в прямой форме приведена на рис. 8.24, где для простоты N = М. Отметим, что коэффициенты, использованные на диаграмме, аналогичны коэффициентам передаточной функции, но коэффициенты знаменателя имеют противоположный знак. Если фильтр имеет большой порядок, например, М > 3, прямая реализация фильтра (как на рис. 8.24) очень чувствительна к эффектам конечной разрядности, и в таких случаях ее следует избегать. На практике H(z) обычно разбивается на меньшие фрагменты, обычно звенья второго и/или первого порядка, которые затем соединяются каскадом или параллельно.
Практические стандартные блоки БИХ-фильтров
Примеры практических стандартных блоков второго порядка, используемых при реализации БИХ-фильтров высоких порядков, изображены на рис. 8.25. Первый блок (рис. 8.25, а) часто называется каноническим звеном (или прямой формой 2), поскольку он имеет минимальное число элементов задержки. Данное биквадратное звено характеризуется следующими уравнениями:
(8.47, а)(8.47, а)2w(n) = х(п) —~ к),
(8.47, а)
(8.47, а)
к=1
-ам-амbbNNРис. 8.24. Реализация БИХ-фильтра в прямой формеРис. 8.24. Реализация БИХ-фильтра в прямой форме
-ам
-ам
b
b
N
N
Рис. 8.24. Реализация БИХ-фильтра в прямой форме
Рис. 8.24. Реализация БИХ-фильтра в прямой форме
(8.47, б)(8.47, в)(8.47, б)(8.47, в)2
(8.47, б)
(8.47, в)
(8.47, б)
(8.47, в)
3/(п) = "^b^n - к),к=0
тг/ х ^о + bxz-1 + b2z 2
НI z) = .
1 + a^z-1 + a2z~2
Второе звено фильтра (рис. 8.25, б) называется прямой реализацией БИХ-уравнения второго порядка. Оно характеризуется следующими уравнениями:
22
(8.48, a)(8.48, 0(8.48, a)(8.48, 0ум = 52 bkX^n ~fc) ~ 52 ^у^ - ^
(8.48, a)
(8.48, 0
(8.48, a)
(8.48, 0
fc—О^=1
Ьо + ^z"1 + b2z^2
Н^ =ЗГ~Z7-
1 + axz 1 + a2z г
Каноническое звено (рис. 8.25, а) более популярно, поскольку сигнал в нем незначительно искажается шумом округления, а само звено требует минимального числа элементов памяти, хотя и подвержено внутреннему переполнению. Чтобы избежать этого переполнения, вход звена необходимо масштабировать. Для прямой формы (см. рис. 8.25, б) масштабирование не обязательно, поскольку это звено имеет всего один сумматор и может быть более выгодным в реализациях, когда масштабирование нежелательно, как, например, в системах качественного цифрового аудио [6]. Кроме того, при определенных условиях прямая форма лучше канонической с точки зрения шумовых характеристик.
Связанная форма обладает некоторыми преимуществами, касающимися эффектов конечной разрядности [9], но требует больше вычислительных усилий и ее трудно использовать при воплощении передаточных функций, коэффициенты числителей которых имеют второй порядок.
Рис. 8.25. Стандартные блоки структуры реализации БИХ-фильтров: а) каноническое звено второго порядка; б) звено второго порядка в прямой форме
Фильтрующие блоки, представленные на рис. 8.25, — это общие звенья второго порядка. Из них можно вывести несколько других блоков. Например, если коэффициенты числителя О] и а2 на рис. 8.25, а равны нулю, имеем чисто рекурсивную структуру. С другой стороны, если для вычисления коэффициентов фильтра использовались эллиптические функции, коэффициент а2 равен единице. Кроме того, в любой из приведенных выше структур можно положить а, = Ь2 = 0 и получить звено первого порядка.
На рис. 8.26 показаны переупорядоченные каноническое звено второго порядка и звено второго порядка в прямой реализации. Рисунки получены из рис. 8.25, аиб соответственно — переставлены сумматоры и соединительные узлы и обращены направления стрелок. Хотя передаточные функции звеньев на рис. 8.26 от перестановки не изменились, свойства, касающиеся эффектов конечной разрядности, изменились значительно. Вообще, существуют и другие структуры, менее чувствительные к эффектам конечной длины слова, но обычно они очень сложны. В качестве примеров таких структур можно назвать блоки минимального шума, блоки с изменяемыми параметрами и решетчатую структуру.
Рис. 8.26. Переупорядоченное каноническое звено второго прядка (панель о); переупорядоченное звено второго порядка в прямой реализации (панель б)Рис. 8.26. Переупорядоченное каноническое звено второго прядка (панель о); переупорядоченное звено второго порядка в прямой реализации (панель б)
Рис. 8.26. Переупорядоченное каноническое звено второго прядка (панель о); переупорядоченное звено второго порядка в прямой реализации (панель б)
Рис. 8.26. Переупорядоченное каноническое звено второго прядка (панель о); переупорядоченное звено второго порядка в прямой реализации (панель б)
Каскадная и параллельная реализации БИХ-фильтров больших порядков
На практике передаточные функции больших порядков реализуются как каскады или параллельные комбинации описанных выше стандартных блоков второго и/или первого порядка. Обычно каскадная реализация передаточной функции факторизуется в N/2 множителей второго порядка:
NJ2 н^ = П к=1NJ2 н^ = П к=1bpk + b^z 1 + b2kZ 21 + a^z-1 + a2kZ-2bpk + b^z 1 + b2kZ 21 + a^z-1 + a2kZ-2W2 V f X TT Nk^W2 V f X TT Nk^(8.49, a)(8.49, a)
NJ2 н^ = П к=1
NJ2 н^ = П к=1
bpk + b^z 1 + b2kZ 21 + a^z-1 + a2kZ-2
bpk + b^z 1 + b2kZ 21 + a^z-1 + a2kZ-2
W2 V f X TT Nk^
W2 V f X TT Nk^
(8.49, a)
(8.49, a)
гдегде~й21^21~°2л^2и~й21^21~°2л^2иад = сП ^‘ths'ths1.*='1+аиг '+ 021? 2ад = сП ^‘ths'ths1.*='1+аиг '+ 021? 2Рис. 8.27. Каскадная реализацияРис. 8.27. Каскадная реализация№ОкУ)№ОкУ)— Ьук + bxkZ 1 + b^kz 2— 1 + O-a^z-l-Va^z'1— Ьук + bxkZ 1 + b^kz 2— 1 + O-a^z-l-Va^z'1(8.49, 0(8.49, 0
где
где
~й21^21~°2л^2и
~й21^21~°2л^2и
ад = сП ^‘ths'ths1.
*='1+аиг '+ 021? 2
ад = сП ^‘ths'ths1.
*='1+аиг '+ 021? 2
Рис. 8.27. Каскадная реализация
Рис. 8.27. Каскадная реализация
№
ОкУ)
№
ОкУ)
— Ьук + bxkZ 1 + b^kz 2
— 1 + O-a^z-l-Va^z'1
— Ьук + bxkZ 1 + b^kz 2
— 1 + O-a^z-l-Va^z'1
(8.49, 0
(8.49, 0
а порядок фильтра N предполагается четным. Если N нечетное, то одна из функций Нк (z) будет описывать звено первого порядка.
Каждый сомножитель НкУ) можно реализовать с использованием одного из стандартных блоков, а затем полученные блоки соединить каскадом (рис. 8.27). При каскадной реализации возникают три проблемы: 1) как образовать пары “множитель числителя-множитель знаменателя”; 2) в каком порядке объединять отдельные звенья; 3) как масштабировать уровни сигналов в различных внутренних точках фильтра, чтобы уровни не стали слишком низкими или высокими.
Упорядочить множители числителя и знаменателя можно по-разному. Например, фильтр четвертого порядка можно факторизовать в два звена второго порядка, а затем упорядочить их одним из четырех различных способов:
1) НУУ
Nxz N2z
~ ОхУ) о2уу
2) НУУ
N2z Nrz ^2(2) Dxyy
з) нуу
Nxz N2z
О2У) ВхУУ
4) НУУ
_ N2z Nxz
~ Dx У) D2yy
причем каждое ^(z) и ВкУ') — это полином второго порядка, определенный в уравнении (8.49, 0. В первом случае первое звено фильтра состоит из пары числитель- знаменатель M(z) и Dx(z), а второе звено — из пары N2y) и D2y\ Очевидно, что
число возможных способов разбиения на пары достаточно велико. Как правило, для фильтра ^-ro порядка число различных разбиений равно
Чтобы избежать появления большой амплитудной характеристики на частоте, соответствующей полюсу, применяется следующее эмпирическое правило: объединять в пару M(z) с Dk(z), если нули N^z) близки к полюсам Dk(z), и располагать в конце каскада звенья второго порядка с полюсами, наиболее близкими к единичной окружности [12]. Кроме того, разработано немало эффективных схем организации пар и упорядочения звеньев фильтра, основанных на том, какое упорядочение дает наилучшее отношение сигнал-шум (см. главу 13).
При параллельной реализации передаточная функция N-ro порядка H(z) раскладывается в ряд элементарных дробей:
N/2
H(z) = C + ^Hk(z),,(8.51)
где
ы г \ Ъок+Ь1кг-1a-N1 + aikZ 1 + aikz
Как и ранее, звено второго порядка можно реализовать с использованием описанных ранее стандартных блоков, как показано на рис. 8.28. Стоит отметить, что в параллельной реализации коэффициент числителя при z-2 равен нулю. В параллельной структуре порядок соединения звеньев не важен. Более того, масштабирование выполняется легче и его можно провести независимо для каждого блока (см. далее), а отношения сигнал- шум сравнимы с наилучшими значениями для каскадной реализации [12]. В то же время нули параллельных структур более чувствительны к ошибкам квантования коэффициентов. Следует также отметить, что чувствительность нулей параллельной структуры к квантованию коэффициентов кажется более серьезной, когда длина коэффициентов уменьшается до 5 бит или меньше. Похоже, что для длин коэффициентов от 12 бит отличие параллельной и каскадной структур для большинства фильтров менее значительно. В то же время, важным преимуществом каскадного метода является то, что примерно от 25 до 50% коэффициентов фильтра являются простыми целыми числами (0, ±1 или ±2), если фильтр выведен из классических аналоговых фильтров посредством билинейного z-преобразования. Эта особенность привлекательна в системах, имеющих только примитивные арифметические возможности, где число умножений должно быть малым. Отметим также, что большинство доступных программных пакетов рассчитывают коэффициенты для каскадной реализации, но не для параллельной структуры. По этим причинам каскадный метод в настоящее время более популярен.
Рис. 8.28. Параллельная реализация
Пример 8.20
Используя звенья второго и первого порядка, перепишите представленную ниже передаточную функцию для каскадной (1) и параллельной (2) реализации фильтра
0,1432(1 + 3z-1 + 3z"2 + г'3)
“ 1 - 0,180U-1 + 0,3419г-2 - 0,0165г-3 ’
Решение
Для каскадной реализации H(z) выражается в факторизованном виде:
= 0 14321 + 2^-»+г~21 + г"1
’1 -0,1307г"1 + 0,3355г-2 1 -0,0490г"1’
Для параллельной реализации Я(г) выражается как сумма звеньев второго и первого порядков:1,2916 -0,08407г"110,1764 о _
" 1-0,131г-1 + 0,3355г"1 + 1-0,049г"1 ~ ’ 1 '
Диаграммы реализации каскадного и параллельного представлений изображены на рис. 8.29, аиб соответственно. Коэффициенты параллельной реализации получены с помощью программы на языке С, приведенной в главе 4.
Рис. 8.29. Реализации фильтра из примера 8.20: а) каскадная; 6) параллельная
Влияние конечной разрядности на БИХ-фильтры
Полученные ранее (см. разделы 8.4-8.10) коэффициенты ак и Ьк имеют бесконечную или очень высокую точность, обычно 6-7 десятичных разрядов. Когда же цифровой БИХ-фильтр реализуется в такой малой системе, как 8-битовый микрокомпьютер, при представлении коэффициентов и выполнении арифметических операций, указанных в разностном уравнении, появляются ошибки. Данные ошибки отрицательно сказываются на производительности фильтра и в крайних случаях приводят к его неустойчивости.
Перед воплощением БИХ-фильтра в программной или аппаратной форме важно выяснить степень ухудшения производительности за счет эффектов конечной разрядности и найти “лекарство”, если ухудшение неприемлемо. Вообще, влияние названных ошибок можно уменьшить до приемлемых уровней, использовав больше битов, но такое решение иногда приводит к увеличению стоимости фильтра.
Перечислим основные искажающие факторы цифровых БИХ-фильтров.
Шум квантования АЦП, проистекающий от представления выборок входных данных х(п) малым числом битов.
Ошибки квантования коэффициентов, вызванные представлением коэффициентов БИХ-фильтров конечным числом битов.
Ошибки переполнения, которые возникают при сложении или промежуточном суммировании частичных результатов в регистре ограниченной длины.
Ошибки округления результата, когда выход у(п) и результаты внутренних арифметических операций округляются (или усекаются) до разрешенной длины слова. Степень ухудшения фильтра зависит, во-первых, от длины слова и типа арифметики, используемой для выполнения операции фильтрации, во-вторых, метода, используемого для квантования коэффициентов и переменных фильтра, и, в-третьих, структуры фильтра. Зная данные факторы, разработчик может оценить влияние конечной разрядности на производительность фильтра и при необходимости принять меры. В зависимости от реализации фильтра, некоторые эффекты могут быть незначительными. Например, если фильтр реализуется как программа на языке высокого уровня преимущественно на больших компьютерах, ошибки квантования коэффициентов и округления несущественны. При обработке в реальном времени входные и выходные сигналы, коэффициенты фильтра и результаты арифметических операций представляются с использованием слов конечной длины (обычно 8, 12 и 16 бит). В таких случаях практически всегда необходимо проанализировать влияние квантования на производительность фильтра.
Влияние конечной разрядности на производительность более сложно проанализировать для БИХ-, чем для КИХ-фильтров из-за наличия обратной связи. В то же время, использование MATLAB (см. приложение 8Б) позволяет для определенных фильтров получить практические решения. Влияние каждого из четырех перечисленных источников ошибок рассматривается ниже в этой главе. Более подробный анализ влияния конечной длины слова на производительность БИХ-фильтров и других систем цифровой обработки сигналов приводится в главе 13.
Ошибки квантования коэффициентов
Напомним, что БИХ-фильтр характеризуется следующим уравнением:
м
Е bkz-kад = —1 + Е ак2~к
Когда коэффициенты квантуются до конечного числа битов, например, 8 или 16, квантованную передаточную функцию можно записать следующим образом:
м
Е1Чг^
,(8.52)
+ Е Ы, z-k
к=1
Рис. 8.30. Практическое влияние квантования коэффициентов на частотную характеристику: ■ — иеквантованная характеристика; □ — квантованная характеристика (5 бит)
где
И, — bk + ZXbk; [at]g = ак + Да^,
М>к. ^ак — изменение соответственно коэффициентов Ьк и ак,q —“квантованный коэффициент".
Основное влияние квантования коэффициентов фильтра с использованием конечного числа битов проявляется в изменении положения полюсов и нулей Н^ на комплексной плоскости. Это может привести к следующим последствиям:
неустойчивость или потенциальная неустойчивость фильтров больших порядков с узкими полосами перехода и полюсами, близкими к единичной окружности;
изменение желаемой частотной характеристики, как показано на рис. 8.30.
Квантованный фильтр всегда следует анализировать, чтобы убедиться, что используемой длины слова достаточно для обеспечения устойчивости и получения удовлетворительной частотной характеристики. Влияние квантования коэффициентов на частотную характеристику иллюстрируется ниже на примере. Более подробный анализ влияния квантования коэффициентов на производительность фильтра проводится в главе 13.
Пример 8.21
Полосовой цифровой фильтр планируется использовать для цифрового восстановления тактовой синхронизации на скорости 4,8 Кбод при частоте дискретизации 153,6 кГц. Фильтр характеризуется следующей передаточной функцией:
1 + c^z-1 + a2z-2 ’ где
аг = — 1,957558 и а2 = О,995913.
Оцените влияние квантования коэффициентов до 8 бит на положение полюсов, а следовательно, центральной частоты.
Решение
Вначале найдем положения всех полюсов неквантованного фильтра. Радиус г и угол 9 полюса записываются как
г =г =9 = cos-19 = cos-1О1\ 2т /О1\ 2т /
г =
г =
9 = cos-1
9 = cos-1
О1\ 2т /
О1\ 2т /
Следовательно,
г = VO, 995913 = 0,99795 и 9 = cos'1 (= И, 25°.
v ’’\2х 0,99795/
11,25\360 )11,25\360 )Найденные величины соответствуют центральной частоте
11,25\
360 )
11,25\
360 )
х 153,6 х 103 = 4,7999 кГц.
Поскольку один коэффициент больше единицы, выделим 1 бит для хранения бита знака, 1 бит для целой и 6 бит — для дробной части коэффициента. Таким образом, после квантования до 8 бит коэффициенты приобретают такие значения:
аг = -1,957558 х 26 = -125(= 10000100)
а2 = 0,995913 х 26 = 63 (максимальная положительная дробная часть) (= 00111111)
В дробной записи значения квантованных коэффициентов имеют такой вид:
'12563
а, = -— = -1,953125; а2 = — = 0,984375.
6464
_ /10,17\Л ~360 )_ /10,17\Л ~360 )Новое положение полюса: г = 0,992156, 9 = 10,17°; центральная частота смещается в положение
_ /10,17\
Л ~360 )
_ /10,17\
Л ~360 )
х 153,6 х 103 = 4,34 кГц.
Реализация БИХ-фильтров
Выход БИХ-фильтра у(п) вычисляется для каждой входной выборки ж(п). Учитывая каскадную реализацию с использованием звеньев второго порядка в прямой форме, записываем следующее уравнение фильтрации:
22
= 52 bki^n ~fc) - 52 ак,у^п - к^-k=0к=1
Из данного уравнения ясно видно, что для реализации фильтра требуются следующие компоненты:
память (например, ПЗУ) для хранения коэффициентов фильтра;
память (например, ОЗУ) для хранения текущих и прошедших входных и выходных выборок {i(n),a;(n — 1),...} и {y(n),y(n — 1),...};
аппаратный или программный умножитель (умножители);
сумматор или арифметико-логическое устройство (АЛУ).
В современной цифровой обработке сигналов в реальном времени для фильтрации эффективно используются такие процессоры ЦОС, как TMS320C50. В данные процессоры встроены все стандартные блоки, в том числе аппаратные умножители. В некоторых приложениях привлекательна альтернативная реализация — с помощью таких стандартных 8- или 16-битовых микропроцессоров, как процессоры семейства Motorola 6800 или 68000. В дополнение к аппаратуре обработки сигналов разработчик должен обеспечить подходящие интерфейсы ввода-вывода (например, при преобразовании аналоговый-цифровой-аналоговый сигнал) цифровой аппаратуры в зависимости от типа источника и получателя данных. Данный подход можно назвать аппаратной реализацией.
При обработке сигналов в модельном времени или автономно для реализации фильтра используется подходящий язык высокого уровня. В этом случае фильтр часто реализуется на языке С или FORTRAN и запускается на универсальном компьютере, таком как персональный компьютер или мэйнфрейм, где все стандартные блоки уже сконфигурированы. Следовательно, обработку в модельном времени можно описать как чисто программную реализацию.
Требования к вычислениям
Разработчик также должен анализировать влияние на цифровой фильтр, построенный на используемом процессоре, требований к вычислению. Основными вычислительными операциями в фильтре являются умножение, сложение, накопление и задержки или сдвиги. Например, фильтр, состоящий из звеньев второго порядка, обычно требует четыре операции умножения, четыре операции сложения и несколько операций сдвига и обращения к ЗУ. Если фильтрация выполняется в реальном времени, например, с частотой 44,1 кГц (цифровое аудио), арифметические операции нужно выполнять каждые 1/(44,1 кГц). Кроме того, нужны допуски для учета других служебных издержек, таких
как выборка выходных данных, запоминание или извлечение из памяти фильтрованных выборок, а также других вспомогательных служебных операций.
Подробный пример разработки цифрового БИХ-фильтра
Данный пример иллюстрирует некоторые концепции, представленные в данной главе. В частности, показана реализация пятиэтапной процедуры разработки.
Этап 1: спецификация фильтра
Разработайте и реализуйте цифровой БИХ-фильтр, используя программный пакет. Учтите, что конечная реализация будет выполнена на основе TMS320C50, и фильтр должен удовлетворять следующим спецификациям:
частота дискретизации15 кГц,
полоса пропускания0-3 кГц,
ширина полосы перехода450 Гц,
неравномерность в полосе пропускания 0,5 дБ, затухание в полосе подавления45 дБ.
Примечание', целевая плата имеет 12-битовые АЦП и ЦАП.
Этап 2: вычисление коэффициентов
Используя программу разработки БИХ-фильтров из книги [Ifeachor, 2001], находим, что спецификации соответствует эллиптический фильтр четвертого порядка, разработанный с помощью билинейного преобразования. Выход программы разработки при
водится ниже.ЗнаменательАк1,0000005 + 00— 1,3252635 + 001,4802025 + 00-7,841098 - 012,3392705 - 01водится ниже.ЗнаменательАк1,0000005 + 00— 1,3252635 + 001,4802025 + 00-7,841098 - 012,3392705 - 01ЧислительВк5,8463995 - 021,3595075 - 011,8202975 - 011,3595065 - 015,8463985 - 02ПолюсаЧислительВк5,8463995 - 021,3595075 - 011,8202975 - 011,3595065 - 015,8463985 - 02ПолюсаДействительная часть 0,247967 0,414664Действительная часть-0,337859-0,824828Действительная часть 0,247967 0,414664Действительная часть-0,337859-0,824828Мнимая часть 0,836885 0,367559 НулиМнимая часть 0,941197 0,565383Мнимая часть 0,836885 0,367559 НулиМнимая часть 0,941197 0,565383Коэффициенты z"1z"2-0,495935 0, 761864 -0,829328 0,307046КоэффициентыZ — 1Z~20,675718 1,000000 1,649656 1,000000Коэффициенты z"1z"2-0,495935 0, 761864 -0,829328 0,307046КоэффициентыZ — 1Z~20,675718 1,000000 1,649656 1,000000
водится ниже.
Знаменатель
Ак
1,0000005 + 00
— 1,3252635 + 00
1,4802025 + 00
-7,841098 - 01
2,3392705 - 01
водится ниже.
Знаменатель
Ак
1,0000005 + 00
— 1,3252635 + 00
1,4802025 + 00
-7,841098 - 01
2,3392705 - 01
Числитель
Вк
5,8463995 - 02
1,3595075 - 01
1,8202975 - 01
1,3595065 - 01
5,8463985 - 02
Полюса
Числитель
Вк
5,8463995 - 02
1,3595075 - 01
1,8202975 - 01
1,3595065 - 01
5,8463985 - 02
Полюса
Действительная часть 0,247967 0,414664
Действительная часть
-0,337859
-0,824828
Действительная часть 0,247967 0,414664
Действительная часть
-0,337859
-0,824828
Мнимая часть 0,836885 0,367559 Нули
Мнимая часть 0,941197 0,565383
Мнимая часть 0,836885 0,367559 Нули
Мнимая часть 0,941197 0,565383
Коэффициенты z"1z"2
-0,495935 0, 761864 -0,829328 0,307046
Коэффициенты
Z — 1Z~2
0,675718 1,000000 1,649656 1,000000
Коэффициенты z"1z"2
-0,495935 0, 761864 -0,829328 0,307046
Коэффициенты
Z — 1Z~2
0,675718 1,000000 1,649656 1,000000
-а2|
Рис. 8.31. Диаграмма реализации фильтра из раздела 8.16
На основе приведенных данных находим, что передаточная функция фильтра, реализованного в прямой форме, записывается как
0,05846399 + 0,1359507г" + 0,1820979г" + 0,1359506г" + 0,05846398г"
Звено фильтра 1'
Wi(n) = (l/sja^n) — a^w^n — 1) — a2jW](n — 2),
У1(п) = boiWi(n)s1/s2 + buwi(n - 1)з!/з2 + b2iWi(n - 2)s!/s2.
Звено фильтра 2
w2(n) = У1(п) — a12w2(n — 1) — a22w2(n — 2), y2(n) = Z>02to2(n)s2 4- bi2w2(n — l)s2 + b22w2(n — 2)s2.
Точные значения коэффициентов a^- и bij зависят от разбиения на пары полиномов числителя и знаменателя Н^ и упорядочения звеньев фильтра второго порядка, использованных для реализации полиномов. Наилучший выбор пар и сортировки можно определить, только проанализировав влияние конечной разрядности.
Этап 4: анализ влияния конечной разрядности
Основываясь на данной спецификации, предположим, что будет использоваться арифметика с дополнением до двух с фиксированной запятой, и что каждый коэффициент будет квантоваться через округление до 16 бит.
Основная цель на этом этапе — оценить влияние различных ошибок квантования на производительность фильтра и определить наилучшую конфигурацию фильтра с позиции отношения сигнал-шум. При оценке рассматриваются следующие источники ошибок (подробнее см. главу 13):
ошибки переполнения;
ошибки округления;
ошибки квантования коэффициентов.
Чтобы избежать переполнения на выходе сумматоров, показанных на рис. 8.31, вводятся подходящие масштабные множители, которые выписаны перед сумматорами.
Поскольку Н^ описывает фильтр четвертого порядка, который нужно реализовать как два звена второго порядка, множители числителя и знаменателя этой функции можно упорядочить четырьмя различными способами:
НА^ -НА^ -Н<М =Н<М =АМАМ АМ АМ’
НА^ -
НА^ -
Н<М =
Н<М =
NM NM
DM DM’
NM AM DM AM’ AM NM AM AM’
Таблица 8.1. Масштабные множители четырех конфигураций фильтра
Фильтр
Масштабный множитель
Li
l2
Loo
А
si
5,524 844
1,608 890
4,379 544
S2
11,821 571
3,677 381
7,262 393
В
31
2,479 158
1,359 467
2,175 539
32
18,908 47
10,880 490
12,548 114
С
S1
2,479 158
1,359 467
2,175 539
S2
11,821 571
10,880 490
7,262 393
D
31
5,524 844
1,608 890
4,379 544
S2
18,908 47
5, 727 459
12,548 114
N^z) = 1 + 0,675718г"1 + z~2,
N2(z) = 1 + 1,649656г"1 + г"2,
D^ = 1 - 0,495935г"1 + 0,761864г"2,
Р2(г) = 1 - 0,829328г"1 + 0,307046г"2.
Каждая из четырех возможных конфигураций фильтра будет иметь различные масштабные множители, а также различное отношение сигнал-шум округления. Задача этого этапа — определить наилучший для фильтра выбор пар и сортировки с точки зрения отношения сигнал-шум. Ошибки переполнения и округления тесно связаны, так что влияние масштабирования и округления следует анализировать одновременно.
Используя программу анализа влияния конечной разрядности, получаем масштабные множители четырех возможных фильтров, которые сведены в табл. 8.1 (анализ основан на нормах Lb L2 и Loo, в данном примере в качестве критерия использовалась норма Li). Для фильтра четвертого порядка, реализованного в виде каскада двух канонических звеньев второго порядка, на выходе шум округления после масштабирования записывается как
Mh^h^ii2 + 5S2||^ ,
где q — шаг квантования, || • ||| обозначает квадрат нормы L2, Нх^ — передаточная функция первого звена фильтра, Н2^ — передаточная функция второго звена фильтра, Sj и з2 — масштабные множители соответственно первого и второго звеньев фильтра.
Шумовые характеристики всех четырех конфигураций при квантовании коэффициентов до 16 бит (после масштабирования) приведены в табл. 8.2. Очевидно, что фильтр В имеет наилучшие характеристики по фактору шума округления. Масштабированная передаточная функция этого фильтра записывается следующим образом:
H(z) = H'B(z^H(z) = H'B(z^sJWN^И^ DM®2sJWN^И^ DM®2
H(z) = H'B(z^
H(z) = H'B(z^
sJWN^
И^ DM®2
sJWN^
И^ DM®2
Таблица 8.2. Сравнение мощности шума округления четырех конфигураций фильтра
Фильтр
Мощность шума
А В С D
703g2
326,378?2
382,32g2
570,453
1 + 1,649656г"1 + г"2
’1-0,829328г"1 + 0,307046г"2
1 + 0,675718г"1 + г"2„ „_
х —10,880490.
1 - 0,495935г"1 + 0,761864г"2 ’
Проанализируем далее влияние ошибок квантования коэффициентов. В частности, проверим, достаточно ли заданной длины коэффициентов для обеспечения устойчивости и удовлетворения спецификациям частотной характеристики. Поскольку полюса не расположены слишком близко к единичной окружности, для обеспечения устойчивости 16битовых коэффициентов достаточно. Например, для первого звена фильтра программа анализа влияния конечной разрядности показывает, что устойчивость обеспечивают уже 3 бит, и что квантование коэффициентов до 16 бит приводит к изменению радиуса полюсов всего на 0,00048%. Данная программа также показывает, что для того, чтобы удержать частотную характеристику в пределах допусков, достаточно всего 12 бит. При 16-битовых коэффициентах характеристика фильтра, по сути, идентична характеристике неквантованного фильтра. Частотная характеристика и диаграмма нулей и полюсов неквантованного фильтра изображены на рис. 8.32.
а)6)
Рис. 8.32. Диаграмма нулей и полюсов (панель а) и частотная характеристика фильтра из раздела 8.16 (панель б)
Чтобы свести влияние шума округления к минимуму, накопление сумм произведений и квантование после накопления проводится в регистрах двойной длины.
Этап 5
Квантованные коэффициенты (получены умножением масштабированных коэффициентов на 215) вводятся в приведенную в приложении программу БИХ-фильтрации на основе TMS320C25. Более подробно программы БИХ-фильтрации и их разработка рассмотрены в главе 12.
Резюме
Разработку БИХ-фильтров можно разделить на пять независимых этапов (см. рис. 8.1). Спецификации фильтров часто зависят от приложения, но в любом случае должны включать детали, касающиеся граничных частот, допусков амплитудной характеристики, частоты дискретизации требований ко входу-выходу. Если разрабатываются фильтры со стандартными характеристиками, их коэффициенты можно получить с помощью билинейного ^-преобразования. Этот подход, а также другие полезные методы получения коэффициентов, описаны в данной главе и проиллюстрированы на многих примерах. Для реализации БИХ-фильтров больших порядков используются каскадные или параллельные комбинации звеньев второго или первого порядка, что позволяет минимизировать изменение положений полюсов и нулей, вызванное влиянием конечной разрядности. Если это нужно, для борьбы с переполнением во внутренних узлах фильтра вход каждого звена масштабируется.
Производительность цифрового БИХ-фильтра ограничена числом битов, использованных в его реализации. Существует четыре основных источника ошибок: 1) входное квантование; 2) квантование коэффициентов; 3) округление произведений и 4) переполнение при сложении. В данной главе представлены методы, с помощью которых можно анализировать влияние этих факторов на производительность фильтра, и средства, позволяющие при необходимости свести это влияние к минимуму или устранить совсем. При этом длины коэффициентов должно быть достаточно для минимизации влияния квантования коэффициентов на частотную характеристику и предотвращения неустойчивости. Кстати, вопрос устойчивости БИХ-фильтра следует рассматривать всегда. БИХ-фильтр, устойчивый при реализации с бесконечной точностью, может стать неустойчивым, если его реализовать с конечной точностью. Например, при обработке аудиосигналов низкой частоты необходимыми называют 24-битовые коэффициенты. В большинстве других случаев для минимизации влияния конечной разрядности достаточно представить коэффициенты 16 или более битами и выполнять арифметические операции в регистрах двойной длины.
Ошибки округления или усечения, вызванные арифметическими операциями конечной точности, создают в фильтре такие нелинейные эффекты, как предельные циклы, в силу чего выход фильтра осциллирует даже при отсутствии входа (или при постоянном входе). Влияние ошибок округления на производительность фильтра можно описать через отношение сигнал-шум и выход фильтра. Снижение отношения сигнал-шум вслед-
ствие ошибок округления можно нейтрализовать с помощью схемы формирования спектра шума (ESS, подробности см. в главе 13). Главная задача подобных схем — это свести на нуль “усиливающее” влияние полюсов фильтра на ошибки округления. Цена такой коррекции — увеличить число операций умножения и сложения, несмотря на то, что схемы ESS первого порядка с целыми коэффициентами вычислительно более эффективны.
Примеры использования БИХ-фильтров в цифровых аудиосистемах и измерительных приборах.
В данном разделе рассматриваются приложения, в которых БИХ-фильтры применяются или могли бы применяться.
5 8.18.1. Цифровые аудиосистемы
Цифровые фильтры нашли применение во многих областях цифрового аудио, особенно в системах с высококачественными цифровыми источниками, такими как проигрыватель компакт-дисков и цифровые аудиопленки. Цифровая обработка сигналов также позволяет имитировать акустические свойства различных мест, таких как концертные залы, джаз-клубы и дискотеки. БИХ-фильтры используются при графическом выравнивании, регулировке тембра, выравнивании каналов, формировании спектра шума в АЦП/ЦАП и расщеплении полос.
Например, в цифровых графических эквалайзерах БИХ-фильтры используются для расщепления всего диапазона аудиочастот на отдельные полосы, что позволяет полностью подстраивать тона воспроизводимого звука под персональные вкусы, а не только регулировать верхние и нижние звуковые частоты. Обычный пятиполосный графический эквалайзер разбивает диапазон аудиочастот на пять полос с центральными частотами 100 Гц, 330 Гц, 3,3 кГц, 10 кГц и 16 кГц и позволяет изменять уровень сигнала в каждой полосе в пределах ±10 дБ.
Простая графическая схема графического выравнивания показана на рис. 8.33.
,8.18.2. Цифровое управление
С осознанием выгод, которые несет цифровая обработка сигналов, и с понижением цен на процессоры происходит переход к цифровым контроллерам, которые обеспечивают и большую гибкость, и большую точность. На рис. 8.34 демонстрируются принципы цифрового управления аналоговой установкой Н(з), которой может быть, например, машина или мотор. В общем случае цифровой контроллер имеет бесконечную импульсную характеристику.
«о
Рис. 8.33. Упрощенная диаграмма полностью цифрового графического эквалайзера. Основной компонент — блок параллельных БИХ- фильтров с различными центральными частотами. Усиление каждого фильтра можно регулировать независимо, например, с помощью скользящего потенциометра, скажем, в диапазоне ±10 дБ
Сигнал
Рис. 8.34. Принципы цифрового управления аналоговым оборудованием
Рис. 8.35. Простой цифровой осциллятор (панель а); простой цифровой осциллятор со схемой формирования формы ошибки первого порядка (панель б)
Цифровые частотные осцилляторы
БИХ-фильтры используются также для генерации точных сигналов. В этом подходе использован тот факт, что БИХ-фильтры с полюсами на единичной окружности неустойчивы. Рассмотрим рис. 8.35, а, где изображен простой гармонический осциллятор. Полюса БИХ-фильтра расположены в точках е±г®, а частота осцилляции определяется соотношением
9' = w0Ts,
где Т — период дискретизации. Коэффициент фильтра 2 cos 9' может принимать только целые значения, для чего он считается как целая часть от 2В х 2 cos 9' ф — число битов).
Основной вопрос при генерации цифрового сигнала с помощью БИХ-фильтров связан с влиянием конечной разрядности. Например, из-за квантования коэффициентов частоты будут расположены неравномерно, а квантование произведения приводит к накоплению ошибок округления, которое вскоре делает генератор сигналов бесполезным. В то же время, использование схем ESS позволяет свести эти ошибки к минимуму. Пример осциллятора, в котором используется техника ESS, значительно снижающая влияние шума округления, приведен на рис. 8.35, б [1].
Примеры применения БИХ-фильтров в связи
Из-за своих характерных особенностей БИХ-фильтры широко используются к цифровой связи. В цифровой телефонии [8], например, с помощью импульсно-кодовой модуляции (pulse-code modulation — PCM) можно одновременно вести передачу по нескольким речевым каналам. Каждый канал после ограничения полосы выбирается
Дискретизация с частотой 32 кГцДискретизация с частотой 32 кГцЧастота обновления 8кШЧастота обновления 8кШЧастота обновления 32 кГцЧастота обновления 32 кГцРис. 8.36. Канал РСМ, демонстрирующий возможное использование БИХ-фильтров как фильтров защиты от наложения спектров (передатчик) и фильтров подавления зеркальных частот (приемник)Рис. 8.36. Канал РСМ, демонстрирующий возможное использование БИХ-фильтров как фильтров защиты от наложения спектров (передатчик) и фильтров подавления зеркальных частот (приемник)
Дискретизация с частотой 32 кГц
Дискретизация с частотой 32 кГц
Частота обновления 8кШ
Частота обновления 8кШ
Частота обновления 32 кГц
Частота обновления 32 кГц
Рис. 8.36. Канал РСМ, демонстрирующий возможное использование БИХ-фильтров как фильтров защиты от наложения спектров (передатчик) и фильтров подавления зеркальных частот (приемник)
Рис. 8.36. Канал РСМ, демонстрирующий возможное использование БИХ-фильтров как фильтров защиты от наложения спектров (передатчик) и фильтров подавления зеркальных частот (приемник)
с частотой 8 кГц и кодируется с использованием либо Л-, либо /(-характеристики. После приема PCM-данные восстанавливаются в аналоговой форме и проходят фильтрацию с целью подавления зеркальных частот. Для выполнения необходимой фильтрации при передаче и приеме могут использоваться цифровые БИХ-фильтры (см. рис. 8.36). В таком случае фильтрация выполняется с более высокой частотой дискретизации, например, 32 кГц, а затем полученный сигнал переводится в стандартную форму РСМ.
В следующих двух разделах более подробно рассмотрены два специфических приложения БИХ-фильтров в цифровой связи — в цифровых кнопочных телефонах и при восстановлении тактовой частоты при передаче данных.
Генерация и прием сигналов в цифровых кнопочных телефонах
Великолепным применением БИХ-фильтров является полностью цифровой двухтональный многочастотный кнопочный приемник [13, 17].
В современных телефонных системах информация, необходимая для установки связи и поддержания соединения, обычно поставляется с помощью многочастотного кода. Как правило, телефонный аппарат генерирует два тона — один тон низкой частоты и один тон высокой частоты (рис. 8.37).
Генератор тональной частоты можно реализовать с использованием пары программируемых БИХ-осцилляторов второго порядка (рис. 8.38). После нажатия кнопки на основе кода набранной цифры выбираются подходящие коэффициенты фильтра и инициируется (вызывается из ПЗУ) режим, при котором генерируется пара тонов (один высокой частоты и один низкой). Тоны складываются и получается двухтональный сигнал. Как для цифрового генератора гармонических сигналов, производительность кнопочного генератора можно улучшить, используя схемы обратной связи по ошибке.
При приеме информация оцифровывается с частотой 8 кГц, а затем разделяется на низкую и высокую полосы частот с помощью полосовых БИХ-фильтров. Чтобы обнаружить тон, следует проверить уровень сигнала, проведя комбинированную полосовую фильтрацию, полностью очистить сигнал и пропустить его через фильтр нижних частот. Чтобы идентифицировать тон низкой частоты, полоса низких частот расщепляется на четыре полосы (используется два из четырех полосовых фильтров). То же делается и с полосой высоких частот. Затем полученные восемь уровней передаются к логической схеме принятия решения, где и определяется полученный код.
Рис. 8.37. Упрощенная схема клавишного поля 4x4 кнопочного телефона. Кнопки, изображенные пунктиром, недоступны. При иажатии кнопки генерируется пара тоиов — один из низкочастотной группы, другой из высокочастотной. Например, при нажатии кнопки 9 генерируются тоны 825 и 1477 Гц (согласно [17])
Рис. 8.38. Кнопочный генератор (согласно [17]). Код набранной цифры используется для выбора коэффициентов фильтра и начальных условий, а следовательно, частоты осциллятора
Рис. 8.39. Припцины декодирования ДТМЧ с использованием фильтров Горцеля (согласно [17])Рис. 8.39. Припцины декодирования ДТМЧ с использованием фильтров Горцеля (согласно [17])
Рис. 8.39. Припцины декодирования ДТМЧ с использованием фильтров Горцеля (согласно [17])
Рис. 8.39. Припцины декодирования ДТМЧ с использованием фильтров Горцеля (согласно [17])
Цифровая телефония: детектирование двухтонального многочастотного сигнала с использованием алгоритма Горцеля
При детектировании двухтональных многочастотных (ДТМЧ) сигналов могут использоваться не только стандартные БИХ-фильтры, но и алгоритм Горцеля (Goertzel) (см. [3, 16, 17]). Алгоритм Горцеля — это специальная реализация дискретного преобразования Фурье (ДПФ) в форме БИХ-фильтра. Схема детектирования ДТМЧ-сигналов на основе алгоритма Горцеля изображена на рис. 8.39. Она включает параллельный блок из восьми пар фильтров Горцеля. Каждая пара фильтров детектирует тон ДГМЧ- сигнала и его вторую гармонику. Вторая гармоника нужна, чтобы различать тоны ДТЧМ и речь. Речевой сигнал, в отличие от сигнала ДТМЧ, включает значительные гармоники четного порядка. Затем каждый выход фильтра возводится в квадрат, и эта величина принимается в качестве меры интенсивности сигнала на каждой из восьми частот ДТМЧ и их вторых гармониках. Принятую цифру определяет наиболее мощная пара сигналов из группы низких и высоких частот.
Каждый фильтр Горцеля — это полосовой БИХ-фильтр второго порядка с высокой добротностью, который характеризуется следующей передаточной функций (рис. 8.40):
М) =М) =1 - W^z-1 - W^z-1 — 2cos (^) г-1 + г-2 ’1 — 2cos (^) г-1 + г-2 ’(8.53, а)(8.53, а)
М) =
М) =
1 - W^z-
1 - W^z-
1 — 2cos (^) г-1 + г-2 ’
1 — 2cos (^) г-1 + г-2 ’
(8.53, а)
(8.53, а)
гдегдеРис. 8.40. Структура фильтра Горцеля второго порядкаРис. 8.40. Структура фильтра Горцеля второго порядка
где
где
Рис. 8.40. Структура фильтра Горцеля второго порядка
Рис. 8.40. Структура фильтра Горцеля второго порядка
Фильтр описывается следующими разностными уравнениями:
^(п) = 2cos (1 г/^(п—1)—!/fc(n—2)+a;(n), n = 0,1,...^(8.53,6)
гдегдеУкМ = ^кМ - W^i/k(n - 1),(8.53, e)
где
где
wfc(-l) = wfc(-2) = 0.
При детектировании тонов ДТМЧ-сигнала требуется только амплитуда сигнала (информация о фазе игнорируется), так что алгоритм Горцеля модифицируется так, чтобы на выход подавался только квадрат амплитуды:
HW = №) + v^N - 1) - 2cos f—HW = №) + v^N - 1) - 2cos f—vk№k^-lYvk№k^-lY(8.53, г)(8.53, г)
HW = №) + v^N - 1) - 2cos f—
HW = №) + v^N - 1) - 2cos f—
vk№k^-lY
vk№k^-lY
(8.53, г)
(8.53, г)
Модифицированный алгоритм ДТМЧ-детектирования (уравнения (8.53, б и г)) требует для вычисления амплитуды каждого ДТМЧ-сигнала только один действительный коэффициента, те
и при этом не нужно использовать комплексную арифметику. Выход фильтра по формуле (8.53, г) вычисляется только раз для каждого тона ДТМЧ для п = N, те. в конце итераций в цепи обратной связи фильтра (уравнение (8.53, 6)).
В число достоинств алгоритма Горцеля входит то, что для определения амплитуды сигнала он требует только один действительный коэффициент на каждую частоту ДТМЧ, использует мало памяти и выполняется очень быстро. В отличие от схем с БПФ, для начала работы этого алгоритма не нужен полный набор данных, выборки обрабатываются по мере поступления. При использовании БПФ значение N обычно ограничивается
Таблица 8.3. Параметры схемы декодирования ДТМЧ (согласно [17]). Частота дискретизации — 8 кГц. Размер ДПФ — 250 (первая гармоника), 210 (вторая гармоника)
Частота ДТМЧ (Гц)
Разрешение по частоте (первая гармоника)
Разрешение по частоте (вторая гармоника)
697
18
35
770
20
39
852
22
43
941
24
47
1209
31
61
1336
34
67
1477
38
74
1633
42
82
(как правило, это степень двойки). В алгоритме Горцеля может использоваться любое целое значение N, хотя выбор N — это компромисс между разрешением по частоте и временем вычисления.
Значение коэффициента фильтра, а следовательно, обнаруженную частоту определяют размер ДПФ N и число элементов разрешения по частоте к.
Размер ДПФ N, дискретное разрешение по частоте к, интервал дискретизации Т и частота тона ДТМЧ fk связаны следующим соотношением:
f = —
NT.
Частота дискретизации и частоты тонов выбираются согласно международным стандартам. Размер ДПФ N может быть разным. Параметры некоторых возможных схем декодирования перечислены в табл. 8.3 (см. [17]).
Следует отметить, что полюса фильтра Горцеля расположены на единичной окружности, следовательно, фильтр чувствителен к влиянию конечной разрядности, и это нельзя игнорировать. Более того, если число частот, которые нужно определить, относительно велико, более подходящим может быть БПФ.
Пример 8.22
Дискретное преобразование Фурье (ДПФ) информационной последовательности х(п) (п = 0,1,..., N - 1) можно определить как
N—1
Х^^тп^, к = 0,1,... Л ~ 1, m=0
где W^m — настраиваемый параметр.
А. Начав с приведенного уравнения, покажите, что передаточную функцию на z- плоскости Нк^ фильтра Горцеля для детектирования тонов ДТМЧ можно выразить в следующей рекурсивной форме:
'1 — 2cos (^) z-1 + z-2
Б. Выведите выражения для квадрата амплитуды сигнала на выходе фильтра Горцеля |ук(гг)|2 в дискретные моменты времени п = N и покажите, что в модифицированном алгоритме Горцеля не требуется комплексная арифметика.
Схема детектирования тонов ДТМЧ для системы кнопочного телефона основана на спецификациях, приведенных в табл. 8.3, и в ней используется фильтр Горцеля второго порядка.
Вычислите коэффициенты фильтра Горцеля для декодирования цифр в приемнике, если набрано “99”.
Решение
L °- Итак,N_Y
х^^х^ХГm=0
Используя периодичность настраиваемого множителя, можно следующим образом записать уравнение ДПФ (поскольку W^kN = 1):
N-1
X(k) = WX 52 xHWS" =
= 52^и^/(^т)-m=0
Уравнение (8.54) имеет ту же форму, что и выражение для свертки. Следовательно, если определить информационную последовательность Ук(т1) следующим образом:N-1
yk(n) = ^x(m)W-k^-m\(8.55)
m=0
видно, что yk(ji) можно рассматривать как выход КИХ-фильтра, вход которого т(ш), a N коэффициентов характеристики hk(ri) записываются следующим образом:
h^n) = W^’V(8.56)
Сравнивая формулы (8.54) и (8.55), видим, что выход фильтра при п = N равен Фурье-образу X (к) на частоте к:
Х^ = yfc(n)|„=jV.
Передаточная функция фильтра на г-плоскости записывается так:
Нк(г) = ^^"г-" =
п=0(8.57)
1
Это фильтр первого порядка с единственным комплексным полюсом (поскольку настраиваемые параметры — это комплексные величины) на единичной окружности в точке х = ^vk- Чтобы избежать комплексной арифметики, отдельные полюса объединяются в пару комплексно-сопряженных полюсов и получается
величинувеличинув результате чего получаемв результате чего получаемзвено фильтра второго порядка. Для этого уравнение (8.57) можно умножить на
величину
величину
в результате чего получаем
в результате чего получаем
1 - WkNz"x
1 - ^г"1
1 - Wkz"x
1 - 2 cos (^) г-1 + г-2
6. На основе рис. 8.40 записываем следующее двухэтапное уравнение для фильтра
Горцеля:/2тгк\
vk(n) = 2cos ( — j vk(n - 1) - vk(n - 2) + x(n)
Ук^ = vk(n) - W^v^n - 1).
При n = N
yk(N) = vk(N) - ^(tf - 1) =
= vk(N) - vk(N - 1)= vk(N) - vk(N - 1)coscos= vk(N^ - vk(N - 1) cos= vk(N^ - vk(N - 1) cos+ ivk^N - 1) sin+ ivk^N - 1) sin
= vk(N) - vk(N - 1)
= vk(N) - vk(N - 1)
cos
cos
= vk(N^ - vk(N - 1) cos
= vk(N^ - vk(N - 1) cos
+ ivk^N - 1) sin
+ ivk^N - 1) sin
|yfc(-^)|2 = (действительная часть)2 + (мнимая часть)2 =
Vk(N) — vk(N — l)cosVk(N) — vk(N — l)cosvk(N — 1) sinvk(N — 1) sin22^NVMNWN-I^cos^NVMNWN-I^cos
Vk(N) — vk(N — l)cos
Vk(N) — vk(N — l)cos
vk(N — 1) sin
vk(N — 1) sin
2
2
^NVMNWN-I^cos
^NVMNWN-I^cos
+ ^-l)+ ^-l)cos2cos2+ sin2+ sin2=^W + ^-l)-2cos=^W + ^-l)-2cos^ykWvk(N-l\^ykWvk(N-l\(8.58)(8.58)
+ ^-l)
+ ^-l)
cos2
cos2
+ sin2
+ sin2
=^W + ^-l)-2cos
=^W + ^-l)-2cos
^ykWvk(N-l\
^ykWvk(N-l\
(8.58)
(8.58)
о z * t i о / 2тг к \9 / x т x \ • 9 । 2тг к \
+ ^UN - 1) cos2 ( — J + vk(N - 1) sin2 (J =
=v2k(N) - 2uk(N>k(N>k(N - 1) cos
Тоны ДТМЧ для цифры “9” — 1477 и 852 Гц. Детектирование каждого тона требует пары БИХ-фильтров Горцеля. Для тона 1477 Гц используются частоты № 38 и 74:
а^ = — 1а^ = — 1л / 2тг х 38 \„ „
а^ = — 1
а^ = — 1
ar = 2cos= 0,79;
\ 2ио )
а2 = — 1.а2 = — 1.а'х = 2 cos f~2^~ ) = ~^’ 1996;
а2 = — 1.
а2 = — 1.
Для тона 852 Гц коэффициенты равны
aj = 1,5623, a2 = —1; 01=0,5,02 = —!.
Восстановление тактовой частоты в сфере передачи данных
Во множестве систем цифровой передачи данных на большие расстояния критичным моментом является генерация в приемнике тактовых импульсов с нужной частотой и фазой, чтобы переданные данные можно было верно декодировать. Как правило, для извлечения таких тактовых импульсов используются принятые данные.
Для восстановления тактовых импульсов традиционно применяются аналоговые цепи, например, использующие контуры фазовой автоподстройки частоты (ФАПЧ), но для таких систем характерен дрейф тактовой частоты с возрастом и температурой. Более того, некоторые цепи не подходят для задач, включающих пакетную передачу, из-за их медленного отклика, также их нельзя использовать в системах с несколькими скоростями передачи [21].
Поток входных данных обычно скремблируется передатчиком (чтобы он мог предоставлять информацию о тактовых импульсах в периоды холостой передачи) и кодируются, причем каждый код представляет символ. Затем коды передаются на так называемой скорости передачи символов.
Принципы восстановления тактовой частоты на скорости передачи символов с использованием методов цифровой обработки сигналов показаны на рис. 8.41. Поток данных проходит суммирование по модулю 2 (схема исключающего ИЛИ) с собственной версией, задержанной на половину тактового периода, в результате (точка С) получается выход, который содержит информацию об изменении уровня на скорости передачи символов. Затем данные передаются минимально устойчивому полосовому БИХ-фильтру. Импульсная характеристика такого фильтра спадает очень медленно со временем, давая “затухающие колебания" на частоте и0, центральной частоте фильтра. Использование минимально устойчивого фильтра гарантирует наличие выхода даже при отсутствии переходов в потоке входных данных в течение разумно длительных периодов времени. Частота дискретизации фильтра выбирается кратной скорости передачи символов. Желаемая символьная тактовая частота выводится из выхода фильтра путем детектирования переходов через нуль (точка Е на рис. 8.41). Для представления в форме дополнения до двух это реализуется тривиально — исследуются знаки информационных выборок на выходе цифрового фильтра.
Для восстановления символьной тактовой частоты можно использовать простой БИХ-фильтр с одними полюсами, реализованный в форме, представленной на рис. 8.42. Фильтр характеризуется следующей передаточной функцией:
[z - г ехр(-гшоТ')] [z - г ехр^оТ)]
1
z2 — 2г cos^oT).? — г2 ’
частотачастотаВВб)б)Рис. 8.41. Иллюстрация принципов восстановления символьной тактовой частоты в сфере передачи данныхРис. 8.41. Иллюстрация принципов восстановления символьной тактовой частоты в сфере передачи данных
частота
частота
В
В
б)
б)
Рис. 8.41. Иллюстрация принципов восстановления символьной тактовой частоты в сфере передачи данных
Рис. 8.41. Иллюстрация принципов восстановления символьной тактовой частоты в сфере передачи данных
где и>0 — центральная частота полосового фильтра, г — радиус полюса, а Т — величина, обратная к частоте дискретизации. Величина и0 обычно выбирается равной или очень близкой к символьной тактовой частоте, которую нужно восстановить, а частота дискретизации кратна центральной частоте. Ширина полосы фильтра определяется радиусом полюса (см. уравнение (8.4)). Чтобы гарантировать медленный спад импульсной характеристики, полюс обычно располагается очень близко к единичной окружности, как правило, в диапазоне 0,99 < г < 1. Как обсуждалось в разделе 8.5.1 (уравнение (8.5)), радиус полюса г и ширина полосы фильтра Ьги связаны соотношением
г и 1 — (bw/F^Tr,
где F, = l/T — частота дискретизации.
Например, для восстановления символьной тактовой частоты гипотетического модема на 4 800 бод можно использовать фильтр со следующими параметрами:
скорость передачи данных 4,8 Кбод,
центральная частота фильтра, /0 4,8 кГц,
частота дискретизации15 3,6 кГц,
ширина полосы, bw100 Гц.
-»2-»2Рис. 8.42. Структура БИХ-фильтра для восстановления символьной тактовой частоты (панель а); диаграмма полюсов (панель б); спектр фильтра (панель в)Рис. 8.42. Структура БИХ-фильтра для восстановления символьной тактовой частоты (панель а); диаграмма полюсов (панель б); спектр фильтра (панель в)
-»2
-»2
Рис. 8.42. Структура БИХ-фильтра для восстановления символьной тактовой частоты (панель а); диаграмма полюсов (панель б); спектр фильтра (панель в)
Рис. 8.42. Структура БИХ-фильтра для восстановления символьной тактовой частоты (панель а); диаграмма полюсов (панель б); спектр фильтра (панель в)
В этом случае радиус полюса (из приведенного выше уравнения) г = О,9795469 и угол полюсаш0Т = 2тг/0Т = (2тгх4,8х103/153,6х103) = 0,19635 радиан « 11,25°. Итак, получаем следующую передаточную функцию:
Н^ х1 - 1,957558г + 0,995913'
Как обсуждалось ранее в этой главе, для того, чтобы правильно настроить фильтр, следует рассмотреть влияние конечной разрядности. В частности вход фильтра нужно масштабировать, чтобы избежать автоколебаний на выходе вследствие переполнения. Кроме того, получению “чистого” тактового генератора может способствовать простая схема формирования шума округления. Чтобы улучшить производительность практической системы восстановления тактовой частоты, входными данными которой являются нули и единицы, следует использовать второй каскад фильтра (см. [21]).
Задачи
Полюса и нуль фильтра нижних частот расположены в следующих точках:
нуль : —0,5; полюса : 0,370; 0,6 ± 0,5г.
Изобразите диаграмму нулей и полюсов.
Получите передаточную функцию H(z).
Оцифруйте с использованием метода инвариантного преобразования импульсной характеристики аналоговый фильтр с передаточной функцией
а -0,5.
v ' s(s + a)
Частоту дискретизации предполагайте равной 1 (все величины нормированны).
На цифровом компьютере нужно смоделировать аналоговую систему со следующей нормированной характеристикой:
Н^ =Н^ =1з2 + V2s + 1'1з2 + V2s + 1'
Н^ =
Н^ =
1
з2 + V2s + 1'
1
з2 + V2s + 1'
Получите передаточную функцию, используя
метод инвариантного преобразования импульсной характеристики;
метод билинейного преобразования.
Частоту дискретизации предполагайте равной 5 кГц, частота среза по уровню 3 дБ равна 1 кГц.
С помощью метода билинейного преобразования определите передаточную функцию и разностное уравнение цифрового эквивалента RC-фильтра, показанного на рис. 8.43. Пусть частота дискретизации равна 150 Гц, а частота среза — 30 Гц.
Требуется цифровой полосовой БИХ-фильтр согласно спецификации, приведенной ниже. Начав с подходящего нормированного аналогового фильтра нижних частот: 1) получите коэффициенты Н^ в факторизованной форме, используя подходящее преобразование полосы и билинейное z-преобразование; 2) изобразите диаграммы нулей и полюсов аналогового фильтра и окончательного циф-
рового полосового фильтра.
8-10 кГц,32 кГц,4, Баттерворта.8-10 кГц,32 кГц,4, Баттерворта.полоса пропускания
8-10 кГц,
32 кГц,
4, Баттерворта.
8-10 кГц,
32 кГц,
4, Баттерворта.
частота дискретизации порядок полосового фильтра тип характеристики фильтра
*(0О-*(0О-у(0-Оу(0-О
*(0
О-
*(0
О-
у(0
-О
у(0
-О
Рис. 8.43
1. Прокомментируйте практическую реализацию “эффекта деформации”, связанного с разработкой методом билинейного ^-преобразования, когда характеристика оцифровываемого аналогового фильтра близка к частоте Найквиста. Приведите пример специфического приложения, где данный эффект имеет существенное значение.
Требуется разработать БИХ-фильтр верхних частот с характеристикой Баттерворта, удовлетворяющий следующим спецификациям:
полоса пропускания2-4 кГц,
полоса подавления0-500 Гц,
неравномерность в полосе пропускания 3 дБ, затухание в полосе подавления20 дБ,
частота дискретизации8 кГц.
Определите
граничные частоты полосы пропускания и полосы подавления подходящего аналогового фильтра-прототипа нижних частот. Ответ должен включать подробности относительно основных концепций того, как из спецификаций получен фильтр-прототип;
порядок N фильтра-прототипа нижних частот;
передаточную функцию, а следовательно, коэффициенты БИХ-фильтра, используя метод билинейного 2-преобразования.
Требуется, чтобы цифровой полосовой фильтр с характеристикой Баттерворта удовлетворял следующим спецификациям:
полоса пропускания 200-300 Гц,
частота дискретизации 2000 Гц, порядок фильтра 2.
а. Начав с подходящего аналогового фильтра-прототипа нижних частот, определите передаточную функцию цифрового фильтра с использованием билинейного 2-преобразования.
б. Объясните с помощью диаграммы нулей и полюсов, как полюса и нули фильтра-прототипа последовательно отображаются с в- на 2-плоскость.
Предположим, что фильтр из п. 1 нужно реализовать на устройстве с арифметикой с фиксированной запятой. Оцените последствия квантования коэффициентов до 8 бит на положение полюсов, а следовательно, центральную частоту.
Примечание; преобразование фильтра нижних частот в полосовой фильтр происходит по следующему закону:
S2 +^о
Bs
гдегде^0 — ^l^’^0 — ^l^’В = ш2 — ш'у.В = ш2 — ш'у.
где
где
^0 — ^l^’
^0 — ^l^’
В = ш2 — ш'у.
В = ш2 — ш'у.
Здесь ш'у, ш2 и ш0 — верхняя и нижняя граничные частоты и центральная частота соответственно.
Используя метод билинейного преобразования и эллиптическую характеристику, получите подходящие коэффициенты цифрового БИХ-фильтра, удовлетворяющего следующим спецификациям:
полоса пропускания4-12 кГц,
полосы подавления0-3,4 кГц,
12,6-16 кГц, неравномерность в полосе пропускания <0,1 дБ,
>30 дБ, 32 кГц.>30 дБ, 32 кГц.затухание в полосе подавления частота дискретизации
>30 дБ, 32 кГц.
>30 дБ, 32 кГц.
Определите подходящую длину коэффициентов, гарантирующую устойчивость фильтра и наличие частотной характеристики в данных пределах.
Разработайте и реализуйте в программном виде цифровой фильтр нижних частот согласно следующей спецификации:
2,5 кГц,3 кГц,2,5 кГц,3 кГц,граница полосы пропускания граница полосы подавления
2,5 кГц,
3 кГц,
2,5 кГц,
3 кГц,
отклонение в полосе пропускания <0,1 дБ,
>60 дБ, 15 кГц.>60 дБ, 15 кГц.затухание в полосе подавления частота дискретизации
>60 дБ, 15 кГц.
>60 дБ, 15 кГц.
С помощью билинейного преобразования получите коэффициенты цифрового фильтра, с максимально плоской характеристикой в полосе пропускания, от 0 до 4 кГц, и имеющего затухание не меньше 25 дБ на частотах свыше 10 кГц. Пусть частота дискретизации равна 32 кГц.
Ниже приводятся требования к определенному фильтру нижних частот:
полоса пропускания0-30 Гц,
граница полосы подавления50 Гц,
затухание в полосе подавления >40 дБ на / > 50 Гц,
частота дискретизации256 Гц.
Предполагая, что фильтр имеет характеристику Баттерворта, определите с помощью билинейного преобразования передаточную функцию фильтра H^z\ Получите диаграмму реализации фильтра в каскадной форме, используя звенья второго и/или первого порядка.
В определенной цифровой системе обработки сигналов реального времени требуется полосовой цифровой фильтр с характеристикой Баттерворта. Фильтр должен удовлетворять следующим требованиям:
полоса пропускания0,3-3,4 кГц,
полосы подавления0-0,2 и
4-8 кГц,
затухание в полосе подавления 25 дБ,
частота дискретизации32 кГц.
Получите подходящую передаточную функцию фильтра, используя метод билинейного преобразования.
Требуется, чтобы цифровой фильтр устранял дрейф базовой линии и артефакты, вызванные движением тела в определенном биомедицинском приложении. Фильтр должен удовлетворять следующим требованиям:
полоса пропускания1-30 Гц,
полосы подавления0-0,5 и
40-128 Гц, неравномерность в полосе пропускания <0,1 дБ, затухание в полосе подавления>30 дБ,
частота дискретизации256 Гц.
Определите порядок подходящего БИХ-фильтра и его передаточную функцию H(z\
Для устранения сигнала-помехи требуется узкополосный режекгорный фильтр. Фильтр должен удовлетворять следующим спецификациям:
граница полосы пропускания45 и 55 Гц,
неравномерность в полосе пропускания <0,1 дБ,
затухание в полосе подавления>50 дБ,
частота дискретизации500 Гц.
Вычислите коэффициенты фильтра.
Определите, используя метод инвариантного преобразования импульсной характеристики, передаточную функцию и разностное уравнение цифрового эквивалента однополюсного RC-фильтра нижних частот. Частота дискретизации равна 150 Гц, частота среза по уровню 3 дБ — 30 Гц.
Стандартное аналоговое звено фильтра второго порядка с простыми полюсами можно выразить как
До + Ais Ci । С2
Во + Bys + B2s2 s+p! s + p2’
где Ci и С2 — коэффициенты элементарных дробей, а рх и р2 ~ полюса на s-плоскости. Предполагается, что инвариантное преобразование импульсной характеристики звена фильтра второго порядка записывается так:
Лр +ci + с2 - (cie~P2T + c2p~plT)z~1 _
Во + Bxs + B2s2 1 — (e-PiT + e~p2T)z-1 + e'tPi+P2)^ z-2
a0 — aiz-1
1 + bxz-x + b2z~2’
где T — интервал дискретизации.
Найдите выражения для рх, р2, Сх и С2 через Ло, Ль Во, Вх и В2.
Получите выражения для коэффициентов а0, ах, Ьх и Ь2, если полюса комплексно-сопряженные.
Повторите п. 2 при действительных неравных полюсах.
Для данной ниже нормированной аналоговой передаточной функции используйте полученные выше результаты и найдите коэффициенты эквивалентного фильтра дискретного времени. Частоту дискретизации предполагайте равной 10 кГц, частоту среза — 2 кГц. 1
B(s) ==.
s2 + V2s + 1
Начав с подходящего аналогового фильтра нижних частот с характеристикой Чебышева, получите передаточную функцию цифрового режекторного фильтра, удовлетворяющего следующим спецификациям:
полоса подавления10-15 кГц,
частота дискретизации50 кГц,
неравномерность в полосе пропускания 0,5 дБ, порядок фильтра6.
Начав с подходящего аналогового фильтра нижних частот с характеристикой Чебышева и приведенного ниже биквадратного преобразования, определите с помощью метода отображения нулей и полюсов с s-плоскости на z-плоскость передаточную функцию цифрового полосового фильтра, удовлетворяющего следующим требованиям:
полоса подавления10-15 кГц,
частота дискретизации50 кГц,
неравномерность в полосе пропускания 0,5 дБ,
порядок фильтра6.
Альтернативами билинейному г-преобразованию при разработке полосовых и режекгорных фильтров являются следующие биквадратные преобразования [9, 10]:
нижних частот в полосовой
8 = tg8 = tg(ш2 ~ W1)T(ш2 ~ W1)T22z2 - 1z2 - 1z2 — 2z cos 7 + 1z2 — 2z cos 7 + 1нижних частот в режекторный,нижних частот в режекторный,
8 = tg
8 = tg
(ш2 ~ W1)T
(ш2 ~ W1)T
2
2
z2 - 1
z2 - 1
z2 — 2z cos 7 + 1
z2 — 2z cos 7 + 1
нижних частот в режекторный,
нижних частот в режекторный,
гдегдеcos 7 = coscos 7 = cos(<^2 + и)^Т2(<^2 + и)^Т2jcosjcos(^2 ~ wl)^2(^2 ~ wl)^2
где
где
cos 7 = cos
cos 7 = cos
(<^2 + и)^Т
2
(<^2 + и)^Т
2
jcos
jcos
(^2 ~ wl)^
2
(^2 ~ wl)^
2
^ и u>2 — нижняя и верхняя граничные частоты (полосы пропускания для полосовых фильтров, полосы подавления для режекторных фильтров), а 7 — центральная частота.
Аналоговый фильтр нижних частот характеризуется парой полюсов на s-плоскости в точках
р12 = -1,4 ± 1,2936г.
Данный фильтр желательно преобразовать в цифровой полосовой фильтр с граничными частотами 3 и 5 кГц и частотой дискретизации 15 кГц. Зная, как цифровой фильтр нижних частот преобразовывается в полосовой фильтр, и используя билинейное z-преобразование в форме (8.40), определите
полюса и нули цифрового полосового фильтра;
передаточную функцию фильтра в факторизованной форме.
Схема детектирования двухтонального многочастотного (ДТМЧ) сигнала в цифровом телефоне использует ряд фильтров Горцеля второго порядка для извлечения тонов ДТМЧ и их вторых гармоник. Если тоны для цифры “0” — 941 и 1336 Гц, определите значения коэффициентов в цепи обратной связи фильтров Горцеля для нижнего тона, 941 Гц, если для основной и второй гармоники используются соответственно значения N = 205 и N = 210, а номера соответствующих дискретных частот — 24 и 47.
1. Объясните с помощью диаграммы принципы схемы детектирования двухтонального многочастотного (ДТМЧ) сигнала в кнопочных телефонах с использованием алгоритма Горцеля.
Дискретное преобразование Фурье (ДПФ) последовательности данных z(n), п = 0,1,..., N — 1 можно определить следующим образом:
N—1
Х(к) = ^х(т^т, k = 0,l,...,N -1, m=0
где W^m — настраиваемый параметр.
Б.Б.форме:форме:Начав с приведенного выше уравнения, покажите, что передаточную функцию на z-плоскости Hk(z) фильтра Горцеля, который используется для детектирования тонов ДТМЧ, можно записать в следующей рекурсивной
Б.
Б.
форме:
форме:
1 - W^z"1
l-2cos(^) z^ + z"2
Выведите выражение для квадрата амплитуды выхода фильтра Горцеля |уДп)|2 в дискретное время п = N, а следовательно, покажите, что в модифицированном алгоритме Горцеля не требуется комплексная арифметика.
Схема детектирования тонов ДТМЧ для системы кнопочного телефона основана на спецификациях, приведенных в табл. 8.3, и использует фильтр Горцеля второго порядка.
Вычислите коэффициенты фильтра Горцеля для декодирования цифр в приемнике, если набран номер “00”.
Сравните вычислительную сложность алгоритма Горцеля с двоичным алгоритмом БПФ при использовании их для детектирования тонов ДТМЧ. Из результатов должно следовать, что в данном приложении нужно использовать алгоритм Горцеля. Укажите предположения, сделанные при решении задачи.
Задачи для решения с помощью MATLAB
Требуется, чтобы цифровой полосовой фильтр с характеристикой Чебышева удовлетворял следующим спецификациям:
полоса пропускания1200-1800 Гц,
затухание в полосе подавления>30 дБ,
неравномерность в полосе пропускания <0,5 дБ,
ширина полосы перехода400 Гц,
частота дискретизации7,5 кГц.
Используя подходящую программу, получите коэффициенты фильтра.
Аналоговый фильтр нужно преобразовать в эквивалентный цифровой, который будет работать с частотой дискретизации 256 Гц. Аналоговый фильтр имеет следующую передаточную функцию:
Щ^ =Щ^ =1s3 + 2s2 + 2s + 11s3 + 2s2 + 2s + 1
Щ^ =
Щ^ =
1
s3 + 2s2 + 2s + 1
1
s3 + 2s2 + 2s + 1
Получите подходящие коэффициенты для цифрового фильтра.
Предполагая, что цифровой фильтр нужно реализовать с использованием каскадной структуры, изобразите подходящую блок-схему реализации и выведите разностное уравнение.
Повторите п. 2 для параллельной структуры.
БИХ-фильтр имеет следующую передаточную функцию:
0,1436 + 0,2871г" + 0,1436z-2
~1 - 1,8353г-1 + 0,9748г"2 ’
8.25.
Сравните согласованное z-преобразование, инвариантное преобразование импульсной характеристики и билинейное z-преобразование с точки зрения
влияния эффекта Найквиста на амплитудную характеристику, фазовую и групповую задержки;
распределения диаграмм нулей и полюсов.
В качестве инструментов при исследовании используйте MATLAB и следующие фильтры.
Фильтр нижних частот.
Эллиптический цифровой фильтр нижних частот со следующими спецификациями:
полоса пропускания0-1 кГц,
полоса подавления3-5 кГц,
неравномерность в полосе пропускания 1 дБ,
затухание в полосе подавления60 дБ,
частота дискретизации10 кГц.
Фильтр верхних частот.
Эллиптический цифровой фильтр верхних частот со следующими спецификациями:
полоса подавления0-1 кГц,
полоса пропускания3-5 кГц,
неравномерность в полосе пропускания 1 дБ,
затухание в полосе подавления60 дБ,
частота дискретизации10 кГц.
Полосовой фильтр.
А. Цифровой полосовой фильтр Баттерворта со следующими спецификациями:
полоса пропускания 200-300 Гц,
частота дискретизации 2000 Гц,
порядок фильтра8.
Б. Цифровой полосовой фильтр Баттерворта со следующими спецификациями:
полоса пропускания 800-900 Гц,
частота дискретизации 2000 Гц,
порядок фильтра8.
Заграждающий фильтр.
Эллиптический цифровой режекторный фильтр со следующими спецификациями:
полосы пропускания0-15 и
30-50 кГц,
полоса подавления20-25 кГц,
неравномерность в полосе пропускания 0,2 дБ,
затухание в полосе подавления40 дБ,
частота дискретизации100 кГц.
Сравните особенности цифровых фильтров Баттерворта, Чебышева типа I, Чебышева типа II и эллиптического фильтра с точки зрения
распределения их полюсов и нулей;
порядка фильтра;
ширины полосы перехода, неравномерности в полосе пропускания и полосе подавления амплитудно-частотной характеристики;
характеристик фазовой и групповой задержки.
При исследовании используйте следующие фильтры.
1. Фильтр нижних частот:
полоса пропускания0-500 Гц,
полоса подавления2-4 кГц,
неравномерность в полосе пропускания 3 дБ, затухание в полосе подавления20 дБ,
частота дискретизации8 кГц.
Фильтр верхних частот:
полоса подавления0-500 Гц,
полоса пропускания2-4 кГц,
неравномерность в полосе пропускания 3 дБ, затухание в полосе подавления20 дБ,
частота дискретизации8 кГц.
Полосовые фильтры: нижняя граничная частота полосы пропускания
250 Гц,
верхняя граничная частота полосы пропускания
300 Гц,
нижняя граничная частота полосы подавления
50 Гц,
а) верхняя граничная частота полосы подавления
450 Гц,
неравномерность в полосе пропускания
3 дБ,
затухание в полосе подавления
20 дБ,
частота дискретизации
1 кГц.
полосы подавления0-15 и
30-50 кГц,
полоса пропускания20-25 кГц,
неравномерность в полосе пропускания 0,2 дБ, затухание в полосе подавления40 дБ,
частота дискретизации100 кГц.
Режекторные фильтры:
полосы пропускания
0-50 и
450-500 кГц,
. полоса подавления
а)
неравномерность в полосе пропускания затухание в полосе подавления
частота дискретизации
250-300 кГц, ЗдБ, 20 дБ, 1 кГц.
полосы пропускания
0-15 и
30-50 кГц,
полоса подавления неравномерность в полосе пропускания затухание в полосе подавления частота дискретизации
20-25 кГц,
0,2 дБ,
40 дБ, 100 кГц.
а. С помощью билинейного z-преобразования и MATLAB определите передаточную функцию фильтра, предназначенного для аудиообработки сигнала в цифровом микшере, если при добротности 2 усиление (максимальное) на частоте 48 кГц равно 6,02 дБ. Частота дискретизации равна 48 кГц, а передаточная функция эквивалентного аналогового фильтра для s-плоскости приведена ниже. Изобразите амплитудную характеристику, характеристики фазовой и групповой задержки и диаграмму нулей и полюсов дискретного фильтра.
б. Повторите задачу для частоты дискретизации 96 кГц.
Повторите задачи 1, а и б, используя метод согласованного z- преобразования.
Повторите задачи 1, а и б, используя метод инвариантного преобразования импульсной характеристики.
Сравните результаты, полученные в задачах 1 и 3.
s2 +(З^)^5"1-^- s2 + (3 —/c)^s+ ^q’
где
к = 2 I — I ; wo = частота усиления
\ v + 1 /
G = коэффициент усиления; Q = добротность.
1. Напишите на языке С псевдокод для детектирования тонов ДТМЧ и их вторых гармоник. Укажите использованные предположения.
Повторите п. 1, используя MATLAB.
С помощью MATLAB сгенерируйте подходящие частотные тоны и используйте их для проверки программы MATLAB, написанной для детектирования тонов ДТМЧ.
Литература
Abu-el-Haija A. and AI-Ibrahim М. М. (1986) Improving performance of digital sinusoidal oscillators by means of error feedback circuits. IEEE Trans. Circuits and Systems, 33(4), 373-380.
Antoniou A. (1979) Digital Filters Analysis and Design. New York: McGraw-Hill.
Chen C. J. (1996) Modified Goertzel Algorithm in DTMF Detection using the TMS320C80, Texas Instruments, Application Report SPRA066, June.
Clark R. J., Ifeachor E. C. and Rogers G. M. (1996) Real-time equaliser coefficient realisation with minimised computational load and distortion. Preprint 4360, 101st Audio Engineering Society Convention.
Clark R. J., Ifeachor E. C., Rogers G. M. and Van Eetvelt P. W. J. (2000) Techniques for generating digital equaliser coefficients. J. Audio Engineering Society, 48(4), 281-298.
Dattorro J. (1988) The implementation of recursive digital filters for high-fidelity audio. J. Audio Engineering Society, 36(11), 851-878.
DeFatta D. J., Lucas J. G. and Hodgkiss W. S. (1988) Digital Signal Processing. New York: Wiley.
Feeney S. L., Kieburtz R. B., Mina К. V. and Tewksbury S. K. (1971) Design of digital filters for an all digital frequency division multiplex-time division multiplex translator. IEEE Trans. Circuit Theory, 18, 702-711.\
Gold B. and Rader С. M. (1969) Digital Processing of Signals. New York: McGraw-Hill.
Gray A. H. and Markel J. D. (1976) A computer program for designing elliptic filters. IEEE Trans. Acoustics, Speech and Signal Processing, 24(6), 529-538.
IEEE (1979) Programs for Digital Signal Processing. New York: IEEE Press.
Jackson L. B. (1986) Digital Filters and Signal Processing. Boston MA: Kluwer.
Jackson L. B., Kaiser J. F. and McDonald H. S. (1968) An approach to the implementation of digital filters. IEEE Trans. Audio and Electroacoustics, 16(3), 413-421.
Jong M. T. (1982) Methods of Discrete Signal System Analysis. New York: McGraw-Hill.
Lynn P. A. and Fuerst W. (1989) Introductory Digital Signal Processing with Computer Applications. Chichester: Wiley.
Marven C. (1990) General-purpose tone decoding and DTMF detection, in Theory, Algorithms, and Implementations, Digital Signal Processing Applications with the TMS320 Family, Vol. 2, literature number SPRA016, Texas Instruments.
Mock P. (1985) Add DTMF generation and decoding to DSP-/rp designs. EDN, 30.
Parks T. W. and Burrus C. S. (1987) Digital Filter Design. New York: Wiley.
Rabiner L. R. and Gold B. (1975) Theory and Applications of Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Rader С. M. and Gold B. (1967) Effects of parameter quantization on the poles of a digital filter. Proc. IEEE, 55, 688, 689.
Smithson P. (1992) Clock recovery for a satellite data modem. University of Plymouth (personal communication).
Stanley W. D., Dougherty G. R. and Dougherty R. (1984) Digital Signal Processing, 2nd edn. Reston VA: Reston Publishing, Inc.
Stearns S. D. and Hush D. R. (1990) Digital Signal Analysis, 2nd edn. Englewood Cliffs NJ: Prentice-Hall.
Дополнительная литература
Abu-el-Haija A. I. and Peterson A. M. (1979) An approach to eliminate roundoff errors in digital filters. IEEE Trans. Acoustics, Speech and Signal Processing, 27, 195-198.
Ahmed N. and Natarajan T. (1983) Discrete-time Signals and Systems. Reston VA: Reston Publishing, Inc.
Allen J. (1975) Computer architecture for signal processing. Proc. IEEE, 63(4), 624-648.
Atjmand М. and Roberts R. А. (1981) On comparing hardware implementations of fixed point digital filters. IEEE Circuits Systems Mag., 3(2), 2-8.
Avenhaus E. (1972) Filters with coefficients of limited wordlength. IEEE Trans. Audio Electroacoustics, 20, 206-212.
Barnes C. W, Tran B. N. and Leung S. H. (1985) On the statistics of fixed-point roundoff error. IEEE Trans. Acoustics, Speech and Signal Processing, 33, 595-606.
Bellanger M. (1984) Digital Processing of Signals. Theory and Practice. New York: Wiley.
Chang T. L. (1978) A low roundoff noise digital filter structure. In Proc. IEEE Int. Symp. qn Circuits and Systems, May 1978, pp. 1004-1008.
Chang T. L. (1979) Error-feedback digital filters. Electronics Lett., 15, 348-349.
Chang T. L. (1980) Comments on “An approach to eliminate roundoff errors in digital filters". IEEE Trans. Acoustics, Speech and Signal Processing, 28(2), 244, 245.
Chang T. L. (1981) Suppression of limit cycles in digital filters designed with one magnitude-truncation quantizer. IEEE Trans. Circuits and Systems, 28(2), 107-111.
Chang T. L. (1981) On low-roundoff noise and low-sensitivity digital filter structures. IEEE Trans. Acoustics, Speech and Signal Processing, 29(5), 1077-1080.
Chang T. L. and White S. A. (1981) An error cancellation digital-filter structure and its distributed-arithmetic implementation. IEEE Trans. Circuits and Systems, 28(4), 339-342.
Charalambous C. and Best M. J. (1974) Optimization of recursive digital filters with finite wordlengths. IEEE Trans. Acoustics, Speech and Signal Processing, 22(6), 424-431.
Chassaing R. and Horning D. W. (1990) Digital Signal Processing with the TMS320C25. New York: Wiley.
Claasen T. A. С. M. and Kristiansson L. O. G. (1975) Necessary and sufficient conditions for the absence of overflow phenomena in a second order recursive digital filter. IEEE Trans. Acoustics, Speech and Signal Processing, 23(6), 509-515.
Claasen T. A. С. M., Mecklenbrauker W. F. G. and Peek J. В. H. (1973) Second-order digital filter with only one magnitude-truncation quantiser and having practically no limit cycles. Electronics Lett., 9, 531, 532.
Claasen T. A. С. M., Mecklenbrauker W. F. G. and Peek J. В. H. (1973) Some remarks on the classification of limit cycles in digital filters. Philips Research Rep., 28, 297-305.
Claasen T., Mecklenbrauker W. F. G. and Peek J. В. H. (1976) Effects of quantization and overflow in recursive digital filters. Philips Research Rep., 28, 297-305.
Clark R. J., Ifeachor E. C., Rogers G. M. and Van Eetvelt P. W. J. (2000) Techniques for generating digital equaliser coefficients. Journal of Audio Engineering Society, 48(4), 281-298.
Crochiere R. E. (1975) A new statistical approach to the coefficient wordlength problem for digital filters. IEEE Trans. Circuits and Systems, 22, 190-196.
Crochiere R. E. and Oppenheim A. V. (1975) Analysis of linear digital networks. Proc. IEEE, 63(4), 581-594.
Diniz P. S. R. and Antoniou A. (1985) Low-sensitivity digital filter structures which are amenable to error-spectrum shaping. IEEE Trans. Circuits and Systems, 32(10), 1000-1007.
Elliot D. F. (ed.) (1987) Handbook of Digital Signal Processing. London: Academic Press.
IEEE (1978) Digital Signal Processing II. Institute of Electrical and Electronics Engineers.
Jackson L. B. (1970) On the interaction of roundoff noise and dynamic range in digital filters. BSTJ, 49(2), 159-184.
Jackson L. B. (1976) Roundoff noise bounds derived from coefficient sensitivities for digital filters. IEEE Trans. Circuits and Systems, 23(8), 481-485.
Knowles J. B. and Olcayto E. M. (1968) Coefficient accuracy and digital filter response. IEEE Trans. Circuit Theory, 15, 31-41.
Liu B. (1971) Effect of finite wordlength on the accuracy of digital filters — a review. IEEE Trans. Circuit Theory, 18, 670-677.
Liu B. and Kaneko T. (1969) Error analysis of digital filters realized with floating-point arithmetic. Proc. IEEE, 57(10), 1735-1747. ■
Markel J. D. and Gray A. H. (1975) Fixed-point implementation algorithms for a class of orthogonal polynomial filter structures. IEEE Trans. Acoustics, Speech and Signal Processing, 23(5), 486-494.
Markel J. D. and Gray A. H. (1975) Roundoff noise characteristics of a class of orthogonal polynomial structures.
IEEE Trans. Acoustics, Speech and Signal Processing, 23(5), 473-486.
Motorola (1988) Digital Stereo 10-band Graphic Equalizer Using the DSP56001. Motorola Application Note.
Mullis С. Т. and Roberts R. A. (1976) Round-off noise in digital filters: frequency transformations and invariants. IEEE Trans. Acoustics, Speech and Signal Processing, 24(6), 538-550.
Munson D. C. and Liu B. (1980) Low-noise realization for narrow-band recursive digital filters. IEEE Trans.
Acoustics, Speech and Signal Processing, 28, 41-54.
Nagle H. T. and Nelson V. P. (1981) Digital filter implementation on 16 bit microcomputers. IEEE Micro, 1, 23-41.
Oppenheim A. V. and Schafer R. W. (1975) Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Oppenheim A. V. and Weinstein, C. J. (1972) Effects of finite register length in digital filtering and the fast Fourier transform. Proc. IEEE, 60, 957-976.
Peled A., Liu B. and Steiglitz K. (1974) A new hardware realization of digital filters. IEEE Trans. Acoustics, Speech and Signal Processing, 22, 456-462.
Peled A., Liu B. and Steiglitz K. (1975) A note on implementation of digital filters. IEEE Trans. Acoustics, Speech and Signal Processing, 23, 387-389.
Rabiner L. R., Cooley J. W., Helms H. D., Jackson L. B., Kaiser J. F., Rader С. M., Schafer R. W., Steiglitz K. and Weinstein C. J. (1972) Terminology in digital signal processing. IEEE Trans. Audio and Electroacoustics, 20, 322-337.
Sandberg I. W. and Kaiser J. F. (1972) A bound on limit cycles in fixed-point implementations of digital filters. IEEE Trans. Audio and Electroacoustics, 20, 110-112.
Schmalze! J. L, Heine D. N. and Ahmed N. (1980) Some pedagogical considerations of digital filter hardware implementation. IEEE Circuits and Systems Mag., 2(1), 4-13.
Sim P. K. and Pang К. K. (1985) Effects of input-scaling on the asymptotic overflow-stability properties of second recursive digital filters. IEEE Trans. Circuits and Systems, 32(10), 1008-1015.
Steiglitz K. (1971) Designing short-word recursive digital. Proc. 9th Ann. Allerton Conf, on Circuit and System Theory, 6-8 October, 1971, pp. 778-788.
Steiglitz K., Bede L. and Liu B. (1976) An improved algorithm for ordering poles and zeros of fixed-point recursive digital filters. IEEE Trans. Acoustics, Speech and Signal Processing, 24, 341-343.
Taylor F. J. (1983) Digital Filter Design Handbook. New York: Marcel Dekker.
Thong T. (1976) Finite wordlength effects in the ROM digital filter. IEEE Trans. Acoustics, Speech and Signal Processing, 24, 436, 437.
Thong T. and Liu B. (1977) Error spectrum shaping in narrowband recursive digital filters. IEEE Trans. Acoustics, Speech and Signal Processing, 25, 200-203.
Williamson D. and Sridharan S. (1985) An approach to coefficient wordlength reduction in digital filters. IEEE Trans. Circuits and Systems, 32(9), 893-903.
Приложения
.A. Программы на С для разработки БИХ-фильтров
При работе над этим изданием было написано несколько программ разработки цифровых БИХ-фильтров на языке С, но из-за недостатка места в окончательный вариант книги вошла только программа вычисления коэффициентов методом инвариантного преобразования импульсной характеристики. Остальные программы (для билинейного преобразования; вычисления коэффициентов для классических фильтров (Баттерворта, Чебышева и эллиптических) с помощью билинейного преобразования; анализа влияния конечной разрядности для БИХ-фильтров) можно найти на компакт-диске к книге [Ifea- chor, 2001]. Кроме того в Web (подробности см. в предисловии) можно найти ш-файлы MATLAB и использовать их для выполнения аналогичных заданий.
.А.1. Реализации на С инвариантного преобразования импульсной характеристики
Обратите внимание на то, что в программах на С коэффициенты Ак и Вк аналоговой передаточной функции и коэффициенты ак и Ьк дискретных фильтров — это векторы коэффициентов числителя и знаменателя соответственно. В отличие от обозначений в программах, в уравнениях (8А.1)-(8А.8) эти коэффициенты обозначены так, чтобы согласовываться с коэффициентами, использованными в m-файлах MATLAB.
Реализация инвариантного преобразования импульсной характеристики на С приведена в программе 8А. 1. Подытожим вначале концепции, на которых основана программа, а затем проиллюстрируем ее использование на примере. Ниже будет рассматриваться звено фильтра второго порядка, поскольку оно является основным стандартным блоком цифровых БИХ-фильтров.
Рассмотрим общую передаточную функцию второго порядка на s-плоскости, которую нужно преобразовать в дискретную передаточную функцию:
H(s) =2-(8АЛ)
Ао + Ais + A2S2
Эквивалентная передаточная функция на z-плоскости — это также звено второго порядка, имеющее вид
(8А.2)(8А.2)= 6o + biz 1
(8А.2)
(8А.2)
1-Ьа^"1+a2z~2'
Программа 8А.1. Метод инвариантного преобразования импульсной характеристики (Примечание: по сравнению с уравнениями, приведенными выше, коэффициенты А и В, а также а и b имеют обратное значение)
/**
*Метод инвариантного преобразования импульсной характеристики*
**
*Перед использованиемпрограммы аналоговую передаточную функцию*
*следует нормировать*
*30.10.92*
**
**
*/
♦include<stdio.h>
♦include<math.h>
♦include <dos.h>
void dfilter();
double T;
double aO, al, a2, bO, bl, b2;
double pl, p2, pr, pi;
double cl, c2, cr, ci;
float AO, Al, BO, Bl, B2, temp;
main()
{
/* инициализация коэффициентов */ А0=0;А1=0;В0=1;В1=0;В2=0;
а0=0;а1=0;Ь0=1;Ы=0;Ь2=0;
cl=0;с2=0;р1=0;р2=0;а2=0;
/* считываются коэффициенты s-плоскости */ printf("impulse invariant discrete filters \n"); printf("\n");
printf("enter s-plane coefficients \n");
printf("enter denominator coeffs: BO, Bl, B2 \n"); scanf("%f %f %f", &B0, &B1, &B2);
printf("enter numerator coeffs: AO, Al \n"); scanf("%f %f", &A0, 6A1);
T=l; dfliter(); printf("\n"); printf("press enter to continue\n"); getch(); exit(0);
}
/**/
void dfilter() { /* находятся полюса на s-плоскости */
temp = B1*B1 - 4*B0*B2; if(B2==0){ /* один полюс */ р1=-В0/В1;
а0=А0/В1;
Ы=-ехр(р1*Т); } if(temp.0){ /* действительные неравные полюса */ рг=-В1/(2*В2);
pi=(pr*pr)-B0/B2;
pi=sqrt(pi);
pl=pr+pi;
p2=pr-pi;
cl=(A0+Al*pl)/((pl-p2)*B2);
c2=Al/B2-cl; a0=cl+c2;
al=-(cl*exp(p2*T) + c2*exp(pl*T)); bl=-exp(pl*T)-exp(p2*T);
b2=exp((pl+p2)*T); } if(temp,0){ /* комплексно-сопряженные полюса */ pr=-Bl/(2*B2);
pi=(pr*pr)-B0/B2;
pi=sqrt(-pi); cr=Al/(B2*2); ci=-(A0+Al*pr)/(2*pi*B2); a0=2*cr;
al=-(cr*cos(pi*T)+ci*sin(pi*T))*2*exp(pr*T); bl=-2*exp(pr*T)*cos(pi*T);
Ь2=ехр(2*рг*Т) ;
}
printf("discrete filter coeffs: \n");
printf("aO al a2: \t%f %f %f \n", aO, al, a2);
printf("ЬО Ы b2: \t%f %f %f \n", ЬО, bl, b2);
j
Для данных коэффициентов аналоговой передаточной функции Н(з) программа на языке С (программа (8А.1)) вычисляет коэффициенты эквивалентной передаточной функции в г-области H(z\ Чтобы понять, как работает программа, установим связь между коэффициентами H(s) и H(z\
Используя разложение на элементарные дроби, передаточную функцию на s-плоскости в формуле (8А.1) можно выразить следующим образом:
Во!А2 + фх(А^8_ ci с2
AoM2 + (AM2)s + s2s-pis-P2’
где pi и р2 — полюса Н^ на s-плоскости, которые определяются выражением
г2 -I 1/2
— ^1 ।( ^1 I ^°ТС А
■(8А4)
Умножая обе части уравнения (8А.З) на (s — p^(s — р2) и приравнивая коэффициенты при s и свободных членах, получим
Во ,.
(8А.5, а)(8А.5, а)BiBi— = Ci + С2. А2— = Ci + С2. А2(8А.5, б)(8А.5, б)— = -(cip2 + c2pi),
(8А.5, а)
(8А.5, а)
Bi
Bi
— = Ci + С2. А2
— = Ci + С2. А2
(8А.5, б)
(8А.5, б)
(8А.6, а)(8А.6, а)(8А.7)(8А.7)
(8А.6, а)
(8А.6, а)
(8А.7)
(8А.7)
Из этой системы находим сх и с2:
_ Во + SiPi
С1 (Р1 - Рг)Л ’
(8А.6, б)
Применяя к выражению для H(s) в форме (8А.З) инвариантное преобразование импульсной характеристики, получаем дискретную передаточную функцию Жг);
Cl + с2 - (схеР2Т + c2eplT)z 1
1 — (e₽iT + eP2T)z-1 + e(pi+P2)Tz-2
bo + biz 1
1 + a^z-1 + a2z-2 ’
где
6o = C!+c2, &! =-(cieP2T + c2eplT)ax = -(eplT + eP2T), a2 = e(pi+P2)T,
Pi и р2 определены в уравнении (8А.4), a Ci и с2 — в уравнении (8А.6).
Итак, зная коэффициенты фильтра второго порядка на s-плоскости (те. Ао, Аг, А2, Во и Si), коэффициенты эквивалентного дискретного фильтра можно получить непосредственно с помощью приведенных выше соотношений. Вычисление коэффициентов H(z) в уравнении (8А.7) зависит от типа полюсов на s-плоскости pi и р2. На практике возможны три варианта: 1) действительные и неравные; 2) пара комплексносопряженных; 3) действительные равные (те. совпадающие полюса). Поскольку третий случай встречается редко и является более сложным, рассмотрим только первые два.
В первом случае уравнение (8А.7) можно использовать непосредственно для получения коэффициентов H^z\ Во втором случае можно применять упрощенную форму (8А.7) и избежать комплексной арифметики. Используя свойства полюсов, перепишем уравнение (8А.7) для второго варианта в виде
_ (ci + с*) - (С1е^т + с^еР^г"1
■^■\^) *~Т1*Т»
। _ ^epiT+epi )^-i -|- eCpi+Pi7’)^-2
1 — 2еРД=т cos(p/mT)z-1 + e2pR=Tz~2 ’
гае рке — действительная часть pi, pIm — мнимая часть рь cRe — действительная часть ci, а с/т — мнимая часть ср Из уравнения (8А.4) находим действительную и мнимую части pi:
PRe” 2А2’ PZm~|PRe” 2А2’ PZm~|Aqа2Aqа21/2 ►1/2 ►
PRe” 2А2’ PZm~|
PRe” 2А2’ PZm~|
Aq
а2
Aq
а2
1/2 ►
1/2 ►
Из уравнения (8А.6) находим коэффициент элементарной дроби сх:
Bi Во + B^pRe. i .
С1”2А2 2PlmA2 г-с^гс1
Следовательно, если полюса Н(s) являются комплексно-сопряженными, в стандартной форме коэффициенты передаточной функции второго порядка на z-плоскости записываются так:
Ьо = 2сДе, bi = - [cRe cos(p/mT) + cIm sin(p/mT)] 2ePRcT «1 = —2ePneTcos(p/mT), a2 = е2рд=т.
Пример 8A.1
Используем программу 8 А. 1 для расчета коэффициентов дискретного фильтра из примера 8.4.
Предполагается, что частоты нормированы. При частоте дискретизации 1280 Гц и частоте среза 150 Гц нормированная частота среза равна 150/1280. Передаточная
функция вначале масштабируется путем замены s на s/a, где а = 2тг х 150/1280 = 0,73631:
а2 + V2as + s2 1 + (V2/o;)s + (l/a2)s21 + 1,920675s + 1,84496s2
Ниже приводятся запросы и выход программы. Рассчитанные дискретные коэффициенты идентичны значениям, полученным в примере 8.4. impulse invariant discrete filters enter s-plane coefficients enter denominator coeffs: AO, Al, A2 1 1.920675 1.84496 enter numerator coeffs: B0, Bl 1 0 discrete filter coeffs: ЬО bl b2: 0.000000 0.307718 0.000000 aO al a2: 1.000000 -1.030953 0.353088
Приведенный листинг позволяет сразу записать передаточную функцию на г-плоскости _0,307718г-1
W ~ 1-1,030953г-1 + 0,353088г"2"
Коэффициенты идентичны значениям, полученным в примере 8.4.
8.Б. Разработка БИХ-фильтров с помощью MATLAB
Средство MATLAB Signal Processing Toolbox предлагает много полезных функций для разработки и анализа классических БИХ-фильтров (например, Баттерворта, Чебышева типа I и II, эллиптических фильтров) для данного набора спецификаций (например, граничные частоты полос пропускания и подавления, неравномерность в полосе пропускания и затухание в полосе подавления).
В частности, Toolbox предлагает функции преобразования классических аналоговых фильтров в эквивалентные фильтры дискретного времени.
Напомним, что критичным этапом разработки цифрового БИХ-фильтра является расчет коэффициентов. Для классических цифровых БИХ-фильтров можно следующим образом подытожить действия на этом этапе.
Задать дискретный фильтр.
Определить подходящий аналоговый фильтр нижних частот, например, с характеристикой Баттерворта, Чебышева типа I, Чебышева типа II или эллиптической характеристикой.
Преобразовать аналоговый фильтр-прототип в фильтр нижних частот, верхних частот, полосовой или режекгорный.
Перевести преобразованный фильтр в эквивалентный фильтр дискретного времени (например, используя метод инвариантного преобразования импульсной характеристики или билинейного г-преобразования).
Средство Signal Processing Toolbox предлагает несколько высокоуровневых функций для одновременного или поочередного выполнения этапов 2-4. Приведем, например, синтаксис команды MATLAB для создания фильтра нижних частот, верхних частот, полосового или режекторного фильтра с характеристикой Баттерворта (этапы 1 и 2):
[b,a]=butter(N, Wc, options)
[z,p,k]=butter(N, Wc, options)
Первая команда определяет коэффициенты числителя и знаменателя фильтра Баттерворта дискретного времени TV-го порядка с частотой среза по уровню 3 дБ (или граничной частотой) Wc, нормированной на частоту Найквиста. Коэффициенты числителя и знаменателя фильтра возвращаются в векторы b и а соответственно по возрастающим отрицательным степеням z.
Если опустить слово “options”, команда по умолчанию рассчитывает фильтр нижних частот (если Wc является вектором частот, по умолчанию рассчитывается полосовой фильтр). Для вычисления коэффициентов фильтра верхних частот и режекторного фильтра нужно соответственно использовать опции “high” и “stop”. Для полосовых и режекторных фильтров Wc — это двухкомпонентный вектор, задающий частоты среза (или граничные частоты):
Wc = [wci,wc2],
где шС1 <ш < шс2 — полоса пропускания (полосовые фильтры) или полоса подавления (режекторные фильтры).
Вторая команда возвращает положения нулей (z) и полюсов (р) в ПДСК и коэффициент усиления фильтра к.
Подобные команды существуют и для других классических фильтров. Например, для фильтров Чебышева типа I и типа II и эллиптических фильтров используются команды MATLAB со следующим синтаксисом:
[b,a]=chebyl(N, Ар, Wc, options)
[z,p.k]=chebyl(N,Ap,Wc, options)
[b,a]=cheby2(N, As, Wc, options)
[z,p.k]=cheby2(N,As,Wc, options)
[b,a]=ellip(N, Ap, As, Wc, options)
[z,p.k]=ellip(N,Ap,As,Wc, options)
Здесь Ap и As — неравномерность в полосе пропускания и затухание в полосе подавления в децибелах соответственно.
Существуют и другие полезные команды, которые можно использовать для выполнения промежуточных задач в процессе вычисления коэффициентов. Например, команды buttord, chebylorc и ellipord можно использовать для определения порядка подходящего фильтра. Параметры подходящих аналоговых фильтров-прототипов нижних частот можно определить с помощью команд butterp, chebylp, cheby2p и ellipp.
Пример 8Б.1
Разработка простого фильтра нижних частот с использованием инвариантного преобразования импульсной характеристики и MATLAB. Требуется БИХ-фильтр нижних частот с характеристикой Баттерворта, удовлетворяющий следующим спецификациям:
частота среза150 Гц,
частота дискретизации 1,28 кГц,
порядок фильтра, N 2.
Определите, используя инвариантное преобразование импульсной характеристики и MATLAB:
коэффициенты, полюса и нули частотно-масштабированного аналогового фильтра;
коэффициенты, полюса и нули дискретного БИХ-фильтра. Запишите его передаточную функцию.
Постройте амплитудно-частотную характеристику и диаграмму нулей и полюсов дискретного фильтра.
Решение
Реализация решения задачи в форме m-файла MATLAB приведена в программе 8Б. 1.
а. Используя m-файл, получаем такие коэффициенты, полюса и нули аналогового фильтра:
Коэффициенты: b = 1, Ое + 005 * [0; 0; 8,8826],
а = 1, Ое + 005 * [0,00001; 0,0133; 8,8826].
Полюса:1, Ое + 002 * (—6,6643± 6,6643г).
Нули:Нет.
Усиление:8,8826е + 005.
б. Используя m-файл, получаем такие коэффициенты, полюса и нули аналогового фильтра:
Коэффициенты: b = [0; 0,3078; 0],
а = [1,0000; -1,0308; 0,3530].
Полюса:0,5154 ± 0,2955г.
Нули:0.
На основании коэффициентов записываем передаточную функцию фильтра:
- ^ОЗОвг-^^ббЗг-2’
Результаты идентичны данным, полученным в примере 8.4.
Амплитудно-частотная характеристика и диаграмма нулей и полюсов фильтра изображены на рис. 8Б.1.
Действительная часть
Рис. 8Б.1
Программа 8Б.1. Реализация решения примера 8Б.1 в форме m-файла MATLAB
%
% Название программы: ЕХ8В1.т
% Простой фильтр нижних частот
N=2;%Порядокфильтра
Fs=1280;%Частотадискретизации
fc=150;%Частотасреза
WC=2*pi*fc; %Частотасреза врадианах
[b, a]=butter (N,WC,'s');% Создать аналоговый фильтр
[z, р, k]=butter (N, WC, 's') ;
[bz, az]=impinvar (b, a, Fs); % Преобразовать в дискретный фильтр subplot (2,1,1) % Вывести на экран амплитудно-частотную характеристику [Н, f]=freqz(bz, az, 512, Fs);
plot(f, 20*logl0(abs(H)))
xlabel('Frequency (Hz)1)
ylabel('Magnitude Response (dB)')
subplot(2,1,2)% Вывести на экран диаграмму нулей и полюсов
zplane(bz, az)
zz=roots(bz);% Определить полюса и нули
pz=roots(az);
Пример 8Б.2
Разработка простого фильтра нижних частот с использованием билинейного z- преобразования и MATLAB. Требуется цифровой БИХ-фильтр с характеристикой Баттерворта, удовлетворяющий следующим спецификациям:
частота среза15 0 Гц,
частота дискретизации 1,28 кГц,
порядок фильтра, N 2.
Определите, используя билинейное z-преобразование и MATLAB, коэффициенты, полюса и нули дискретного фильтра.
Изобразите амплитудно-частотную характеристику и диаграмму нулей и полюсов дискретного фильтра.
Решение
Соответствующий m-файл MATLAB приведен в программе 8Б.2.
С помощью т-файла получаем следующие векторы коэффициентов (Ь и а) нулей и полюсов (z и р) БИХ-фильтра:
Ь = [0.0878,0.1756,0.0878]
а = [1.0000,-1.0048,0.3561]
2= Н,-1]
р = [0.5024 ± 0.3220г]
к = 0.0878
Используя коэффициенты, записываем передаточную функцию:
0,0878(1 +2г"1+ z-2)~ 1 - 1,0308г-1 +0,3553z-2,
Амплитудно-частотная характеристика и диаграмма нулей и полюсов изображены на рис. 8Б.2.
Программа 8Б.2. Решение примера 8Б.2 в форме m-файла MATLAB
%
% Название программы: ЕХ8В2.Ш
% Простой фильтр нижних частот
%
N=2; % Порядок фильтра
Fs-1280; % Частота дискретизации
FN-Fs/2;
fc=150; % Частота среза.
Fc-fc/FN; % Нормированная частота среза
[b, a]=butter (N,Fc); % Создать и оцифровать аналоговый фильтр
[г, р, k]=butter (N, Fc);
subplot (2,1,1) % Вывести на экран амплитудно-частотную характеристику
[Н, f]=freqz(b, а, 512, Fs);
plot(f, abs(H))
xlabel ('Frequency (Hz)1)
ylabel ('Magnitude Response (dB)')
subplot(2,1,2)% Вывести на экран диаграмму нулей и полюсов
zplane(b, а)
Действительная часть
Рис. 8Б.2
Пример 8Б.З
Разработка простого полосового фильтра с использованием билинейного г-преобразования и MATLAB.
Вычислите коэффициенты дискретного полосового фильтра с характеристикой Баттерворта, который удовлетворяет следующим спецификациям:
полоса пропускания 200-300 Гц,
частота дискретизации 2000 Гц,
порядок фильтра 8.
Изобразите амплитудно-частотную характеристику и диаграмму нулей и полюсов.
Решение
Соответствующий m-файл MATLAB приведен в программе 8Б.З.
Коэффициенты b и а, полюса, нули и коэффициенты усиления г, р и к соответственно приведены ниже (отметим, что порядок фильтра, использованный в m-файле, равен половине заданного в задаче; для полосовых и режекторных фильтров порядок равен 2N):
b = [0,004; 0; -0,0017; 0; 0,0025; 0; -0,0017; 0; 0,0004],
а = [1,000; -5,1408; 13,1256; -20,9376; 22,6982; 17,0342; 8,6867; 2,7672; 0,4383],
z = [1; 1; 1; 1; —1; —1; —1; —1],
р = [0,5601 ± 0,7475г; 0,5800 ± 0,6286г; 0,6656 ± 0,5628г; 0,7647 ± 0,5648г], к = 4,1660е - 004.
Амплитудно-частотная характеристика и диаграмма нулей и полюсов фильтра изображены на рис. 8Б.З.
Программа 8Б.З. Реализация решения примера 8Б.З в форме m-файла MATLAB
%
% Название программы: ЕХ8ВЗ.Ш
% Простой полосовой фильтр %
N=2; % Порядок фильтра
Fs=2000; % Частота дискретизации
FN=Fs/2;
fcl=200/FN;
fc2=300/FN;
[b, a]=butter (4,[fcl, fc2]); % Создать и оцифровать аналоговый фильтр [z, р, k]=butter(4,[fcl, fc2]);
subplot (2,1,1) % Вывести на экран амплитудно-частотную характеристику [Н, f]=freqz(b, а, 512, Fs);
plot(f, abs(H))
xlabel('Frequency (Hz)1)
ylabel ('Magnitude Response (dB)')
subplot(2,1,2)% Вывести на экран диаграмму нулей и полюсов
zplane(b, а)
Пример 8Б.4
Разработка фильтра нижних частот с заданными краевыми частотами полосы пропускания и полосы подавления и неравномерностью/затуханием. Требуется цифровой фильтр нижних частот с характеристикой Баттерворта, удовлетворяющий следующим спецификациям:
полоса пропускания0-500 Гц,
полоса подавления2-4 Гц,
неравномерность в полосе пропускания 3 дБ, затухание в полосе подавления20 дБ,
частота дискретизации8 кГц.
Действительная часть
Рис. 8Б.З
Определите порядок N и коэффициенты фильтра дискретного времени, используя билинейное z-преобразование и MATLAB.
Изобразите амплитудно-частотную характеристику и диаграмму нулей и полюсов фильтра.
Решение
Первая часть задания подобна примеру 8.11, который был решен вручную. Теперь используем для решения MATLAB, поскольку это позволяет определить порядок аналогового фильтра (команда buttord), полюса и нули аналогового ФНЧ-прототипа (команда buttap), параметры преобразованного аналогового фильтра (команда butter) и коэффициенты фильтра дискретного времени (команда bilinear). Впрочем, мы используем вариант команды butter для цифровой области, поскольку так при вычислении коэффициентов фильтра все промежуточные этапы выполняются автоматически. 1. Реализация решения задачи в форме m-файла MATLAB приведена в программе 8Б.4.
Порядок N, нули и полюса (zz и pz\ коэффициент усиления (kz) и коэффициенты фильтра (Ь и а) равны
ZZ --- [—1, —1],
pz = [0,7271 ± 0,2130г],
kz = 0,0300,
Ь = [0,0300; 0,0599; 0,0300],
а = [1,0000; -1,4542; 0,5741].
Полученные коэффициенты идентичны коэффициентам, которые были вычислены вручную в примере 8.11, а передаточная функция записывается так:
„, , =0,030(1 + 2z-1 + z"2)
1 - 1,4542г"1 + 0,5741z-2"
Амплитудно-частотная характеристика и диаграмма нулей и полюсов изображены на рис. 8Б.4.
Программа 8Б.4. Реализация решения примера 8Б.4 в форме m-файла MATLAB
%
% Название программы: ЕХ8В4.Ш
% Фильтр нижних частот %
Fs=8000; % Частота дискретизации
Ар=3;
As=20;
wp-500/4000;
ws=2000/4000;
[N, wc]“butterord(wp, ws, Ap, As); % Определить порядок фильтра
[zz, pz, kz]-butter(N, 500/4000); % Оцифровать фильтр
[b, a]=butter(N, 500/4000);
subplot (2,1,1) % Вывести на экран амплитудно-частотную характеристику [Н, f]=freqz(b, а, 512, Fs);.
plot(f, abs(H))
xlabel('Frequency (Hz)')
ylabel('Magnitude Response (dB)')
subplot(2,1,2)% Вывести на экран диаграмму нулей и полюсов
zplane(b, а)
Пример 8Б.5
Разработка фильтра верхних частот с заданными краевыми частотами полосы пропускания и полосы подавления и неравнамерностью/затуханием. Цифровой фильтр верхних частот с характеристикой Баттерворта должен удовлетворять следующим спе
цификациям: полоса пропускания2-4 кГц,
полоса подавления0-500 Гц,
неравномерность в полосе пропускания 3 дБ, затухание в полосе подавления20 дБ,
частота дискретизации8 кГц.
Определите следующие величины:
Действительная часть
Рис. 8Б.4
граничные частоты полосы пропускания и полосы подавления подходящего аналогового фильтра-прототипа нижних частот;
порядок N фильтра-прототипа;
коэффициенты, а следовательно, передаточную функцию фильтра дискретного времени с использованием билинейного z-преобразования.
Решение
Реализация решения задачи в форме m-файла MATLAB приведена в программе 8Б.5.
Порядок N, нули и полюса (zz и pz), коэффициент усиления (kz) и коэффициенты фильтра (Ь и а) равны
ZZ = [1,1],
pz = ±0,4142г,
kz = 0,2929,
Ъ = [0,2929; -0,5858; 0,2929],
а = [1,0000; 0,0000; 0,1716].
Используя полученные коэффициенты, записываем передаточную функцию:
,0,2929(1 - 2г-+
нм = —ГЛЛйбТ^
Амплитудно-частотная характеристика и диаграмма нулей и полюсов изображена на рис. 8Б.5.
Программа 8Б.5. Реализация решения примера 8Б.5 в m-файле MATLAB
%
% Название программы: ЕХ8В5.Ш %
Fs=8000; % Частота дискретизации
Ар=3;
As=20;
wp=2000/4000;
ws=500/4000;
[N, wc]=buttord(wp, ws, Ap, As); % Определить порядок фильтра
[zz, pz, kz]=butter(N, 2000/4000, 'high'); % Оцифровать фильтр
[b, a]=butter(N, 2000/4000, 'high');
subplot (2,1,1) % Вывести на экран амплитудно-частотную характеристику [Н, f]=freqz(b, а, 512, Fs);
plot(f, abs(Н))
xlabel('Frequency (Hz)')
ylabel('Magnitude Response (dB)')
subplot(2,1,2)% Вывести на экран диаграмму нулей и полюсов
zplane(b, а)
Пример 8Б.6
Разработка полосового фильтра с заданными краевыми частотами полосы пропускания и полосы подавления и неравномерностью в полосе пропускания/подавления. Цифровой полосовой фильтр с характеристикой Баттерворта должен удовлетворять следующим спецификациям:
нижняя граничная частота полосы пропускания
200 Гц,
верхняя граничная частота полосы пропускания
300 Гц,
нижняя граничная частота полосы подавления
50 Гц,
верхняя граничная частота полосы подавления
450 Гц,
неравномерность в полосе пропускания
ЗдБ,
затухание в полосе подавления
20 дБ,
частота дискретизации
1 кГц.
Действительная часть
Рис. 8Б.5
Изобразите амплитудно-частотную характеристику и диаграмму нулей и полюсов фильтра.
Решение
Реализация решения примера в форме m-файла MATLAB приведена в программе 8Б.6. Используя этот m-файл, получаем следующие значения для нулей и полюсов (zz и kz), коэффициента усиления (kz) и коэффициентов (5 и а) дискретного фильтра:
N = 2 (порядок полосового фильтра равен 2 * N, т.е.4),
ZZ = [1,1,-1,-1],
pz = [-0,1884 ± 0,7791г; 0,1884 ± 0,7791г],
kz = 0,0675,
Ъ = [0,0675; 0; -0,1349; 0; 0,0675],
а = [1,0000; -0,0000; 1,1430; -0,0000; 0,4128].
Соответствующая передаточная функция Н^ равна
0,0675(1 - 2z"2 + z-4)
~ 1 + 1,143z-2 + 0,4128z-4 '
Если N = 1 (как в примере 8.11), нули (zz), полюса (pz), коэффициент усиления (кг) и коэффициенты фильтра (Ь и а) принимают такие значения:
zz = [-1,1],
pz = [0,0000 ±0,7138г],
кг = [0,2452],
Ь = [0,2452; 0; -0,2452],
а = [1,0000; -0,0000; 0,5095].
Соответствующая передаточная функция Н(г) равна _ 0,2452(1 -г"2) U 1 +0,5095г-2 '
Амплитудно-частотная характеристика и диаграмма нулей и полюсов фильтра приведены на рис. 8Б.6.
Программа 8Б.6. Реализация решения примера 8Б.6 в форме m-файла MATLAB
%
% Название программы: ЕХЗВб.т
% Полосовой фильтр %
Fs-1000; % Частота дискретизации
Ар«3 ;
As-20;
Wp=[200/500, 300/500]; % Граничные частоты
Ws-[50/500, 450/500];
[N, Wc]-buttord(Wp, Ws, Ар, As); % Определить порядок фильтра
[zz, pz, kz]=butter(N, Wp); % Оцифровать фильтр
[b, a]-butter(N, Wp);
subplot (2,1,1) % Вывести на экран амплитудно-частотную характеристику
[Н, f]-freqz(b, а, 512, Fs);
plot(f, abs(H))
xlabel('Frequency (Hz)')
у label ('Magnitude Response (dB)')
subplot(2,1,2)% Вывести на экран диаграмму нулей и полюсов
zplane(b, а)
Пример 8Б.7
Разработкарежекторного фильтра с заданными краевыми частотами полосы пропускания и полосы подавления и неравномерностью в полосе пропускания/подавления. Цифровой режекторный фильтр с характеристикой Баттерворта должен удовлетворять следующим спецификациям:
Действительная часть
Рис. 8Б.6
нижняя полоса пропускания0-50 Гц,
верхняя полоса пропускания450-500Гц,
полоса подавления200-300Гц,
неравномерность в полосе пропускания 3 дБ, затухание в полосе подавления20 дБ,
частота дискретизации1 кГц.
Определите
граничные частоты полос пропускания и подавления подходящего аналогового фильтра- прототипа нижних частот;
порядок фильтра-прототипа N;
коэффициенты, а следовательно, передаточную функцию фильтра дискретного времени, используя метод билинейного z-преобразования.
Решение
Реализация решения задачи в форме m-файла MATLAB приведена в программе 8Б.6. Используя этот m-файл, получаем следующие значения для нулей и полюсов (zz и kz), коэффициента усиления (kz) и коэффициентов (Ь и а) дискретного фильтра:
N = 2 (порядок полосового фильтра равен 2 * N, т.е.4),
zz = две пары нулей в г и -г,
pz = [-0,1884 ± 0,7791г; 0,1884 ± 0,7791г],
kz = 0,6389,
b = [0,6389; -0,0000; 1,2779; -0,0000; 0,6389], а = [1,0000; -0,0000; 1,1430; -0,0000; 0,4128].
Соответствующая передаточная функция фильтра H(z') равна
0,6389(1 +2г-2 + г-4)- 1 + 1,143г-2 + 0,4128г-4'
Если N = 1 (как в примере 8.12), передаточная функция становится равной
_ 0,7548(1 +г-2)
1 + 0,5095г-2 '
Амплитудно-частотная характеристика и диаграмма нулей и полюсов фильтра приведены на рис. 8Б.7.
Программа 8Б.7. Реализация решения примера 8Б.7 в форме m-файла MATLAB %
% Название программы: ЕХ8В7.Ш
% Заграждающий фильтр %
Fs=1000; % Частота дискретизации
Ар=3;
As=20;
Wp=[50/500, 450/500]; % Граничные частоты
Ws=[200/500, 300/500];
[N, Wc]=buttord(Wp, Ws, Ар, As); % Определить порядок фильтра
[zz, pz, kz]=butter(N, Wp, 'stop'); % Оцифровать фильтр
[b, a]=butter(N, Wp,'stop');
subplot (2,1,1) % Вывести на экран амплитудно-частотную характеристику [Н, f]=freqz(b, а, 512, Fs);
plot(f, abs(H))
xlabel('Frequency (Hz)1)
ylabel('Magnitude Response (dB)')
subplot(2,1,2)% Вывести на экран диаграмму нулей и полюсов
zplane(b, а)
Пример 8Б.8
Пример разработки эллиптического цифрового полосового фильтра. Требуется цифровой фильтр, удовлетворяющий следующим спецификациям частотной характеристики: полоса пропускания20,5-23,5 кГц,
полоса подавления0-19, 25-50кГц,
неравномерность в полосе пропускания < 0,25 дБ, затухание в полосе подавления>45 дБ,
частота дискретизации '100 кГц.
Действительная часть
Рис. 8Б.7
Определите, используя билинейное z-преобразование и MATLAB, подходящую передаточную функцию фильтра в форме звеньев второго порядка, пригодных для каскадной реализации.
Получите и изобразите амплитудно-частотную характеристику и диаграмму нулей и полюсов фильтра.
Предполагайте использование эллиптической характеристики.
Решение
Реализация решения задачи в форме m-файла MATLAB приведена в программе 8Б.8. Для определения порядка подходящего эллиптического фильтра-прототипа использована команда ellipord. Затем применяется команда ellip, определяющая коэффициенты, полюса и нули передаточной функции. Команда zp2sos переводит передаточную функцию в звенья второго порядка. Коэффициенты звеньев второго порядка возвращаются в виде матрицы sos.
Коэффициенты фильтра (6 и а), полюса и нули (р и z), коэффициент усиления (к) и матрица звеньев второго порядка sos приведены ниже:
Порядок фильтра, N = 4
b = [0,0061; -0,0083; 0,0236; -0,0221; 0,0351; -0,0221; 0,0236; -0,0083; 0,0061]
а = [1,0000; -1,4483; 4,4832; -4,2207; 6,6475; -3,9458; 3,9187; -1,1828; 0,7634]
г = [-0,0118 ± 0,9999г; 0,3737 ± 0,9275г; -0,2553 ± 0,9669г; 0,5663 ± 0,8242г]
р = [0,0872 ± 0,9793г; 0,1352 ± 0,9404г; 0,2795 ± 0,9432г; 0,2223 ± 0,9246г] к = 0,0061
80S =
0,1203
0,0614
0,1203
1,0000 -0,2705
0,9026
0,2051
-0,2323
0,2051
1,0000 -0,4446
0,9042
0,3740
0,0088
0,3740
1,0000 -0,1744
0,9665
0,6642
-0,4965
0,6642
1,0000 -0,5589
0,9678
Матрица sos — это матрица 4x6 звеньев второго порядка, которая имеет следующий формат.
6()1Ьи<>21°01«И°21
6q2<>12622Ofl2°12°22
боз61362зОозО1з°23
6о4614624О04О14О24
Очевидно, что коэффициенты звеньев второго порядка идут рядами, по одному ряду на звено.
Амплитудно-частотная характеристика и диаграмма нулей и полюсов фильтра приведены на рис. 8Б.8.
Программа 8Б.8. Реализация решения примера 8Б.8 в форме m-файла MATLAB
%
% Название программы: ЕХ8В8.Ш %
Ар«0.25;
As~45;
Fs-100000;
Wp=[20500/50000, 23500/50000]; % Граничные частоты
Ws-[19000/50000, 25000/50000];
(N, Wc]"ellipord(Wp, Ws, Ap, As); % Определить порядок фильтра [b, a]-ellip(N, Ap, As, Wc); % Определить коэффициенты фильтра [z, p, k]«ellip(N, Ap, As, Wc); % Определить полюса и нули sos"zp2sos(z,p,k); % Преобразовать в звенья второго порядка subplot (2,1,1) % Вывести иа экран амплитудно-частотную характеристику [Н, f]-freqz(b, а, 512, Fs);
plot(f, 20*logl0(abs(H)))
xlabel ('Frequency (Hz)')
ylabel (‘Magnitude Response (dB)')
subplot(2,1,2) % Вывести иа экран диаграмму нулей и полюсов zplane(b, а)
Действительная часть
Рис. 8Б.8
В.1. Вычисление квадратных корней из комплексных величин с использованием действительной арифметики
Пусть квадратный корень данного комплексного числа х + iy равен u + w:
и + iv = (а: + iyY'2.(8В.1)
Возводя выражение (8В.1) в квадрат, получаем
u2 — v2 + i2uv = х + гу.
Приравнивая действительную и мнимую части, получаем
и2 — у2 = х,(8В.2, а)
2uv = У-(8В.2, б)
Из уравнения (8В.2, б) следует, что
v = у/2и.
(8В.2, в)
Подстановка уравнения (8В.2, в) в (8В.2, а) дает
и2 — у2/4и2 = х(8В.З)
и, упростив последнее выражение, получаем
4и4 — 4хи2 — у2 = 0.
Данное уравнение квадратно по и2 и имеет следующие решения:
ы2 = | + |(16ж2 + 16у2)1/^
X + (х2 + у2)1/2
“2'
(Отметим, что отрицательное решение недопустимо, так как и2 > 0.) Вычисляя из по
следнего уравнения и и используя уравнение (8В.2, в), получаем
ГзН^^Г(8В.4, а)
2
или
v = у/2и
(8В.4, б)
(8В.5, а)
v = у/2и.
(8В.5, б)
Итак, получаем следующий алгоритм вычисления квадратного корня из х + гу.
Этап 1: пусть и + w = (х + гу)1/2.
Этап 2: и = ± [2±£jti^j1/2 = ± ^£±М) 1/2_
Этап 3: v = ±у/2и.
Например,
(-1 + г)1/2 = 0,44509 + 1,09868г и - 0,44509 - 1,09868г,
(-1 - г)1/2 = 0,44509 - 1,09868г и - 0,44509 + 1,09868г.
при Нискольких скоростяхпри Нискольких скоростях629 632 "640651655629 632 "640651655663 .668 683 684 691691 693663 .668 683 684 691691 693
при Нискольких скоростях
при Нискольких скоростях
629 632 "640
651
655
629 632 "640
651
655
663 .668 683 684 691
691 693
663 .668 683 684 691
691 693
■ Цифровая обработка . сигналов ■ ■ ■ ■.
Введение!, 1>
Концепции обработки при нескольких скоростях•
Разработка практических конвертеров частоты дискретизации * 1 -
Программная реализация дециматоров ----
Программная реализация интерполяторов .
Преобразование частоты дискретизации с использованием многофазного ■ , фильтра- -1■'9.7. Примеры применения,..
Резюме,,
. 3аДачи • , ... ..,.
Литература,' . ,
' Дополнительная литература Приложения.
В данной главе с практической точки зрения рассматривается важная тема обработки сигналов при нескольких скоростях. Основные концепции исследуются и иллюстрируются на конкретных примерах. Чтобы облегчить разработку и программную реализацию методов обработки при нескольких скоростях, предлагается набор программ на языке С.
Введение
Растущая потребность в современных цифровых системах обработки данных с более чем одной частотой дискретизации привела к развитию новой подобласти цифровой обработки сигналов, известной как обработка данных при нескольких скоростях (multirate processing) [4-9]. При такой обработке данных используются две основные операции: децимация и интерполяция, позволяющие эффективно чередовать скорости передачи данных. Децимация уменьшает частоту дискретизации, эффективно сжимая данные и оставляя только необходимую информацию. Интерполяция, наоборот, увеличивает частоту дискретизации. Часто преобразование данных под новую частоту передачи об-
шить частоту дискретизации сигнала со 100 до 10 кГц без потери желаемой информации, то затраты вычислительных ресурсов при последующей обработке сигнала разом уменьшатся в 10 раз. Другой пример: если требуется воспроизвести аудиокомпакт-диск, имеющий частоту дискретизации 44,1 кГц, в студии, поддерживающей частоту 48 кГц, информацию с данного компакт-диска нужно вначале перевыбрать с частотой 48 кГц, используя методы обработки при нескольких скоростях.
Цель данной главы и дополняющих ее задач — обеспечить прикладное понимание теории, практики и сфер применения обработки при нескольких скоростях. В частности, отмечены следующие моменты.
Теория. Читатель должен изучить теорию преобразования частоты дискретизации, в частности
принципы уменьшения частоты дискретизации (децимация (или прореживание)— выборка с понижением частоты и цифровая фильтрация с целью защиты от наложения спектров);
принципы увеличения частоты дискретизации (интерполяция — выборка с увеличением частоты и цифровая фильтрация с целью защиты от зеркальных частот);
теорию преобразования частоты в несколько этапов;
принципы многофазной фильтрации.
Практика. Читатель должен уметь разрабатывать (на уровне блок-схем) практические конвертеры скорости передачи при данном наборе спецификаций, например, знать, как
задать, разработать и проанализировать фильтры конвертеров;
определить параметры конвертеров;
оценить вычислительную эффективность системы обработки при нескольких скоростях;
реализовать конвертер частоты дискретизации.
Применение. В главе описаны принципы и области применения методов обработки при нескольких скоростях в сфере аудиотехнологий, цифровой связи и биомедицине, в частности:
обработка аудиосигналов — АЦП/ЦАП с выборкой с запасом (oversampling), воспроизведение компакт-дисков и сбор данных;
цифровая связь — трансмультиплексоры, приемники;
биомедицина — узкополосная фильтрация для обработки Электрокардиограмм и электроэнцефалограмм плода.
Данная глава построена иа многих источниках, особенно, работах Рабинера (Rabiner) и Крошера (Crochiere), которые внесли значительный вклад в сферу обработки данных при нескольких скоростях, за что мы им особо благодарны.
Некоторые области промышленного применения обработки " данных при нескольких скоростях
Достоинств обработки данных при нескольких скоростях множество, и они широко используются во многих современных системах, причем число этих систем постоянно
растет. Разработчики высококачественных систем сбора и хранения данных все чаще обращаются к методам обработки при нескольких скоростях, позволяющим избежать дорогих аналоговых фильтров защиты от наложения спектров и эффективно обрабатывать сигналы с различными ширинами полос и частотами дискретизации. Во всех этих приложениях используется следующий факт: если аналоговый сигнал выбирается (дискретизуется) с частотой, значительно превышающей частоту, определяемую теоремой о дискретном представлении (Котельникова), то для ограничения полосы частот после оцифровки сигнала потребуется значительно более простой аналоговый фильтр защиты от наложения спектров. После перевода сигнала в цифровую форму его можно быстро сжать до желаемой скорости передачи с использованием описанного ниже подхода. Хороший пример системы, построенной по такому принципу, — магнитофон EDR8000 (Earth Data, Великобритания).
В сфере обработки речи методы обработки при нескольких скоростях применяются для уменьшения требуемой памяти или скорости передачи речевых данных. Оценки параметров речи, которые будут храниться или передаваться, вычисляются при очень низкой частоте дискретизации. Когда требуется, с помощью представления с низкой частотой дискретизации исходную речь можно восстановить с значительно большей частотой.
Потребность сферы цифрового аудио в недорогих аналого-цифровых преобразователях (АЦП) с высокой разрешающей способностью привела к переходу от традиционных методов последовательного приближения к методам выборки с запасом (oversampling) [1-3, 12, 14]. Например, при выборке с запасом шум квантования, присущий АЦП, распространяется по более широкому диапазону частот, и внутриполосный шум значительно уменьшается, эффективно увеличивая число битов АЦП. Кроме того, в новых сериях АЦП улучшенной эффективности используется дельта-сигма-модуляция из-за ее простоты (например, она не требует усилителей выборки-хранения) и низкой стоимости. В большинстве подобных (если не во всех) недорогих АЦП с высоким разрешением (18, 20, 24 бит) применяется обработка при нескольких скоростях. В качестве примеров таких устройств можно привести CS532X (Crystal Semiconductor) и DSP56ADCx (Motorola).
Обработка при нескольких скоростях применяется и для эффективной реализации функций цифровой обработки сигналов. Например, реализация узкополосных цифровых КИХ-фильтров с использованием обычной ЦОС представляет серьезную проблему, поскольку такие фильтры требуют очень большого числа коэффициентов для удовлетворения строгих спецификаций их частотной характеристики. Использование методов обработки при нескольких скоростях позволяет получать очень эффективные реализации, разрешая выполнение фильтрации при значительно более низкой скорости, что намного понижает порядок фильтра. Методы обработки при нескольких скоростях также используются во многих других сферах, включая создание распространенных проигрывателей компакт-дисков. Подробности применения обработки при нескольких скоростях в проигрывателе компакт-дисков и многих других устройствах рассмотрены далее в этой главе.
^|9.2. Концепции обработки при нескольких скоростях ,
Простой, но слишком наивный подход к изменению частоты дискретизации цифрового сигнала — это вернуть его к аналоговому виду, а затем повторно оцифровать его с иной частотой. Процессу преобразования цифровой-аналоговый-цифровой присущи такие ошибки, как ошибки квантования и наложения, которые значительно искажают сигнал. Значит, поскольку сигнал уже дан в цифровой форме, обрабатывать его лучше цифровым образом, если, конечно, преобразование в аналоговую форму не обязательно, как, например, когда адресатом информации является громкоговоритель. Обработка сигналов при нескольких скоростях — это, по сути, эффективный метод цифрового изменения частоты дискретизации сигнала, позволяющий использовать сильные стороны традиционной цифровой обработки сигналов. Например, значительную фильтрацию для защиты от наложения спектров и подавления зеркальных частот в системе ЦОС реального времени можно провести в цифровой области, что позволит добиться и резкой амплитудной, и линейной фазовой характеристик.
Фундаментальными операциями обработки сигналов при нескольких скоростях являются процессы децимации и интерполяции, позволяющие уменьшать и увеличивать частоту дискретизации без существенного влияния искажающих факторов, таких как квантование и наложение. Подробности этих базовых операций приводятся ниже.
Уменьшение частоты дискретизации: децимация с целым шагом
На рис. 9.1, а представлена блок-схема процесса децимации сигнала х(п) с целым шагом М. На ней изображены цифровой фильтр защиты от наложения спектров /г(/с) и схема сжатия (компрессор) частоты дискретизации, обозначенная стрелкой, направленной вниз, и коэффициентом децимации М. Компрессор частоты дискретизации снижает частоту дискретизации с Fs до Fa/M. Для предотвращения наложения при более низкой частоте выборки используется цифровой фильтр, предварительно ограничивающий полосу входного сигнала до FS/2M. Таким образом, сигнал х(п) вначале ограничивается по полосе (требования к фильтру для децимации подробно рассмотрены в разделе 9.3.1). Снижение частоты дискретизации достигается за счет того, что из каждых М выборок фильтруемого сигнала w(n) отбрасывается М — 1 выборка. Вход и выход процесса децимации связаны следующим соотношением:
у(т) = w^mM) = ^ h(k)x(mM — /с), (9.1, а) где
w(n) = У^ Н(к)х^п — к\ (9-L Ф
На рис. 9.1, б описанный процесс иллюстрируется для простого случая М = 3, где из каждых трех выборок х(п) отбрасываются две. Отметим, что, по сути, децимация — это операция сжатия данных.
а)
Рис. 9.1. Блок-схема децимации с шагом М (панель а\ Иллюстрация децимации с шагом М = 3 (панель б). Обратите внимание на то, что на выход поступает только одна из каждых трех выборок w(n)
Спектральное представление процесса децимации приведено на рис. 9.2, где предполагается, что на вход подается широкополосный сигнал х(п). На рис. 9.2, б пунктиром изображены зеркальные компоненты сигнала, которые привели бы к наложению, если бы входной сигнал х(п) не был ограничен по полосе перед децимацией.
Увеличение частоты дискретизации: интерполяция с целым шагом
По многим пунктам интерполяция — это цифровой эквивалент процесса цифроаналогового преобразования, когда из цифровых выборок, поданных на цифроаналоговый преобразователь, с помощью интерполяции восстанавливается аналоговый сигнал. При цифровой интерполяции, впрочем, процесс порождает специфические значения.
Для данного сигнала х(п) с частотой дискретизации Fs процесс интерполяции увеличивает частоту дискретизации в L раз, т.е. до LFS. Схема интерполятора приведена на рис. 9.3, а. Он состоит из экспандера частоты дискретизации, обозначенного стрелкой, направленной вверх, и коэффициентом интерполяции L, который показывает, во сколько раз увеличивается частота дискретизации. Для каждой выборки сигнала х(п) экспандер вводит (£-1) нулевую выборку, в результате чего формируется новый сигнал w(m) с ча-
FJIMFJIMFJ1M FJM 1FJMFJ1M FJM 1FJMРис. 9.2. Спектральная интерпретация децимации сигнала с частоты 6 до частоты 2 кГц. Если бы не цифровой фильтр, на сигнал наложились бы зеркальные компонентыРис. 9.2. Спектральная интерпретация децимации сигнала с частоты 6 до частоты 2 кГц. Если бы не цифровой фильтр, на сигнал наложились бы зеркальные компоненты
FJIM
FJIM
FJ1M FJM 1FJM
FJ1M FJM 1FJM
Рис. 9.2. Спектральная интерпретация децимации сигнала с частоты 6 до частоты 2 кГц. Если бы не цифровой фильтр, на сигнал наложились бы зеркальные компоненты
Рис. 9.2. Спектральная интерпретация децимации сигнала с частоты 6 до частоты 2 кГц. Если бы не цифровой фильтр, на сигнал наложились бы зеркальные компоненты
стотой дискретизации LFS. Далее этот сигнал пропускается через фильтр нижних частот для удаления зеркальных частот, введенных при увеличении частоты, и получается сигнал у(т). Введение (L — 1) нулей приводит к распространению энергии каждой выборки сигнала по L выходным выборкам, т.е. каждая выборка ослабляется в L раз. Для компенсации этого эффекта можно, например, умножить каждую выборку у(п) на L.
Процесс интерполяции характеризуется следующей связью входа и выхода:
(9.2, а)(9.2, а)у(т) = ^2 /i(fc)w(m — fc),
(9.2, а)
(9.2, а)
гдегде, . Г xUnjLY т = О, ±L, ±2L,..., . Г xUnjLY т = О, ±L, ±2L,...(9.2, б)(9.2, б)
где
где
, . Г xUnjLY т = О, ±L, ±2L,...
, . Г xUnjLY т = О, ±L, ±2L,...
(9.2, б)
(9.2, б)
Процесс интерполяции во временной области иллюстрируется на рис. 9.3, б-г для простого случая L = 3. Обратите внимание на то, что каждая выборка х(п) порождает три выходные выборки (две нулевые выборки вводит экспандер).
а)а)6)6)*(")*(")Рис. 93. Иллюстрация интерполяции с шагом L = 3 во временной области. Обратите внимание на то, что для каждой выборки т(п) получаются три выходные выборки у(т)Рис. 93. Иллюстрация интерполяции с шагом L = 3 во временной области. Обратите внимание на то, что для каждой выборки т(п) получаются три выходные выборки у(т)
а)
а)
6)
6)
*(")
*(")
Рис. 93. Иллюстрация интерполяции с шагом L = 3 во временной области. Обратите внимание на то, что для каждой выборки т(п) получаются три выходные выборки у(т)
Рис. 93. Иллюстрация интерполяции с шагом L = 3 во временной области. Обратите внимание на то, что для каждой выборки т(п) получаются три выходные выборки у(т)
Интерпретация данного процесса в частотной области приведена на рнс. 9.4. Функции X(f\ W(f) и Y (/) представляют собой частотные характеристики сигналов х(п), w(m) и у(т) соответственно. Я(/) — это амплитудная характеристика фильтра подавления зеркальных частот. Данный фильтр необходим для удаления зеркальных компонентов, обозначенных в VV(/) пунктиром. На данном этапе стоит отметить (хотя внимательный читатель уже, возможно, сам это отметил), что процессы децимации и интерполяции дуальны, те. взаимно обратны. Данное свойство дуальности означает, что интерполятор можно легко получить из эквивалентного дециматора н наоборот.
Преобразование частоты дискретизации с нецелым шагом
В некоторых ситуациях часто бывает нужно изменить частоту дискретизации в нецелое число раз. Пример — цифровое аудио, где может требоваться передача данных с одного запоминающего устройства на другое, причем системы поддерживают разные частоты дискретизации (возможно, для предотвращения незаконного копирования материалов). В частности, это передача данных с системы воспроизведения компактдисков (44,1 кГц) на цифровую аудиопленку (digital audio tape — DAT) (48 кГц). Для выполнения требуемого преобразования частоту дискретизации компакт-диска следует увеличить в 48/44,1 раза.
На практике подобные нецелые множители представляются рациональным числом, т.е. отношением двух целых чисел, скажем L и М, таких что L/М максимально близ-
Рис. 9.4. Спектральная интерпретация интерполяции сигнала с 2 до 6 кГц
ко к желаемому множителю. Необходимое же преобразование частоты дискретизации производится в два этапа: 1) интерполяция данных с шагом L и 2) децимация с шагом М (рис. 9.5, а). Необходимо, чтобы процесс интерполяции предшествовал децимации, поскольку в противном случае при децимации исчезнут некоторые необходимые частотные компоненты. В приведенном выше примере “с компакт-диска на цифровую аудиопленку” преобразования частоты в 48/44,1 раза можно достичь следующим образом: интерполировать с шагом L = 160, а затем провести децимацию с шагом М = 147, те. вначале скорость данных компакт-диска увеличивается в L = 160 раз до 7056 кГц, а затем уменьшается в М = 147 раз до 48 кГц.
Поскольку два фильтра нижних частот на рис. 9.5, a hx(k) и h^k^ соединены кас- кадно и имеют общую частоту дискретизации, их можно объединить, и тогда получится один обобщенный конвертер частоты дискретизации, изображенный на рис. 9.5, б. Если М > L, операция, производимая конвертером, называется децимацией с нецелым шагом, а если М < L — интерполяцией. Если М = 1, действие обобщенной системы сводится к простой интерполяции с целым шагом, описанной ранее, а при L = 1 оно сводится к децимации с целым шагом.
На рис. 9.5, в иллюстрируется интерполяция с шагом 3/2. Частота дискретизации вначале увеличивается в 3 раза (к каждой выборке z(n) добавляются две нулевые выборки), а затем сигнал пропускается через фильтр нижних частот, результат — v(i).
ИнтерполяторДециматор
F,LF,LFJM
FsLF,LF.LFJM
Рис. 9.5. Иллюстрация интерполяции с рациональным шагом (L = 3, М = 2)
Далее фильтрованные данные сокращаются в два раза, т.е. из каждых двух выборок v(i) остается одна. Иллюстрацией данного процесса в частотной области служит рис. 9.6. Входной сигнал т(п) с частотой дискретизации 2 кГц вначале ускоряется в 3 раза до 6 кГц, фильтруется с целью устранения зеркальных частот, которые иначе вызвали бы наложение, а затем замедляется в 2 раза до частоты 3 кГц.
Пример 9.1
Сигнал т(п) с частотой дискретизации 2,048 кГц нужно подвергнуть децимации с шагом 32 и получить сигнал с частотой дискретизации 64 Гц. Существенными являются частоты сигнала в полосе 0-30 Гц. Цифровой фильтр защиты от наложения спектров должен удовлетворять следующим спецификациям:
отклонение в полосе пропускания 0,01 дБ,
отклонение в полосе подавления 80 дБ,
полоса пропускания0-30 Гц,
полоса подавления32-64 Гц.
Компоненты сигнала из диапазона 30-32 Гц должны быть защищены от наложения. Разработайте подходящий однокаскадный дециматор.
Рис. 9.6. Спектральная интерпретация увеличения частоты дискретизации с 2 кГц в 3/2 раза. Вначале скорость передачи сигнала увеличивается в 3 раза до 6 кГц (панель о); после ограничения по полосе для устранения наложения (панель в) скорость передачи сигнала уменьшается в 2 раза до 3 кГцРис. 9.6. Спектральная интерпретация увеличения частоты дискретизации с 2 кГц в 3/2 раза. Вначале скорость передачи сигнала увеличивается в 3 раза до 6 кГц (панель о); после ограничения по полосе для устранения наложения (панель в) скорость передачи сигнала уменьшается в 2 раза до 3 кГц
Рис. 9.6. Спектральная интерпретация увеличения частоты дискретизации с 2 кГц в 3/2 раза. Вначале скорость передачи сигнала увеличивается в 3 раза до 6 кГц (панель о); после ограничения по полосе для устранения наложения (панель в) скорость передачи сигнала уменьшается в 2 раза до 3 кГц
Рис. 9.6. Спектральная интерпретация увеличения частоты дискретизации с 2 кГц в 3/2 раза. Вначале скорость передачи сигнала увеличивается в 3 раза до 6 кГц (панель о); после ограничения по полосе для устранения наложения (панель в) скорость передачи сигнала уменьшается в 2 раза до 3 кГц
Решение
Блок-схема однокаскадного дециматора и спецификации фильтра защиты от наложения спектров приведены на рис. 9.7. По спецификациям и рисунку можно определить следующие параметры:
А/ = (32 - 30)/2048 = 9, 766 х НГ4,
5Р = 0,00115, так как 20 lg(l + 5Р) = 0,01 дБ,
6, = 0,0001, так как - 201g(5,) = 80 дБ.
Оценка числа коэффициентов фильтра для однокаскадного дециматора (см. главу 7):
N~^2^^-f(sPAW + i,N~^2^^-f(sPAW + i,(93)(93)
N~^2^^-f(sPAW + i,
N~^2^^-f(sPAW + i,
(93)
(93)
где Д/ — ширина полосы перехода, нормированная на частоту дискретизации, Д»(£РЛ) =(lg<5s)[ai(lg<5p)2 +a2(lg<5P) + аз]+
+ a4(lg 6РУ + a2(lg 6р^ + Об,f^pi 5,) =11,01217 + 0,51244(Ig 6Р - 1g 5,),aj = 5,309 х 10"3 a2 = 7,114 x 10"2,a3 = -4,761 x 10"1 a4 = -2,66 x IO"3,a5 = -5,941 x 10"1 a6 = -4,278 x 10"1,
Здесь 5P — неравномерность в полосе пропускания, 6S — неравномерность в полосе подавления. ,
Подставляя значения 6Р, 6, и Д/ в формулу (9.3), находим, что N = 3947. Очевидно, что N слишком велико. Фактически ни одни из существующих методов разработки фильтров не подходит для получения коэффициентов, поскольку ошибки аппроксимации будут слишком большими. Вообще, с практической точки зрения разработка фильтра нижних частот для однокаскадного дециматора невозможна. Из данного примера очевидно, что требуется альтернативный, более эффективный метод преобразования частоты дискретизации, особенно если шаг преобразования очень велик. Несколько таких альтернативных подходов рассмотрены в следующих разделах.
Многокаскадное преобразование частоты дискретизации
В предыдущем разделе изменение частоты дискретизации происходило сразу с использованием единственного коэффициента децимации или интерполяции. Если требуется значительное изменение частоты дискретизации, такой подход неэффективен, гораздо лучше преобразовать частоту в несколько этапов (используя несколько каскадов). Фактически многокаскадный подход принят в большинстве практических систем
Каскад!Каскад 2... Каскад/
FJM
Рис. 9.8. Процесс многокаскадной децимации
обработки при нескольких скоростях. Он постепенно снижает или увеличивает частоту дискретизации, что приводит к существенному снижению требований к фильтрам защиты от наложения спектров или подавления зеркальных частот каждого каскада.
Пример /-каскадного процесса децимации приведен на рис. 9.8. Общий шаг децимации М выражается как произведение меньших шагов:
М - МгМ2...Мь (9.4)
где целое число Mj — шаг децимации /-го каскада. Каждый каскад — это независимый дециматор, обозначенный пунктирным прямоугольником. Если М 5> 1, многокаскадный подход приводит к значительному снижению требований к вычислениям и памяти, ослаблению характеристик фильтров, используемых в дециматорах, а следовательно, к использованию фильтров, менее чувствительных к эффектам конечной разрядности.
Названные преимущества возможны за счет увеличения сложности разработки и реализации системы. Для иллюстрации многокаскадного подхода далее приводится множество примеров, но вначале мы разберем методологию разработки конвертера.
Разработка практических конвертеров частоты дискретизации
Разработку практического многокаскадного конвертера частоты дискретизации можно разбить на четыре этапа.
Задать общие требования к фильтрам защиты от наложения спектров и подавления зеркальных частот.
Определить оптимальное число каскадов децимации или интерполяции, дающих наиболее эффективную реализацию.
Определить для каждого каскада шаги децимации или интерполяции.
Разработать для каждого каскада подходящий фильтр.
Спецификация фильтра
Итак, необходимость в конвертере цифрового фильтра защиты от наложения спектров или подавления зеркальных частот становится очевидной. Фактически производительность системы обработки при нескольких скоростях критично зависит от типа
и качества используемого фильтра. Отметим, что при децимации и интерполяции могут использоваться КИХ- и БИХ-фильтры, хотя более популярны все же КИХ-фильтры.
В сфере обработки сигналов при нескольких скоростях в отличие от обычной цифровой обработки сигналов вычислительная эффективность КИХ-фильтров сравнима (а в некоторых случаях и превышает ее) с производительностью БИХ-фильтров [4, 5, 8]. Кроме того, КИХ-фильтры обладают таким полезными свойствами (подробности см. в главах 6 и 7), как возможность получения линейной фазовой характеристики и малая чувствительность к эффектам конечной разрядности, а также простота реализации. По этим причинам далее в этой главе будут рассматриваться только КИХ-фильтры. При разработке фильтров для систем обработки при нескольких скоростях можно использовать любые методы расчета коэффициентов, описанные в главе 7 для КИХ-фильтров. В частности, широко используются оптимальные и полуполосные фильтры.
Чтобы после уменьшения частоты дискретизации дециматор не приводил к наложению, должны выполняться следующие требования к фильтру:
полоса пропускания 0 < / < /р,
(9.5, а)
полоса подавления FS/2M < / < F>/2,
(9.5, б)
отклонение в полосе пропускания 5р,
(9.5, в)
отклонение в полосе подавления 5S,
(9.5, г)
где /р < FS/2M, a Fs — исходная частота дискретизации. Как правило, /р — это наивысшая значимая частота исходного сигнала.
При интерполяции возникает другая проблема — зеркальные частоты. Для ее решения используется фильтр, пропускающий только полезную информацию и ограничивающий полосу измененных данных до Fs/2 (возможно, даже сильнее). Хотя наивысшая рассматриваемая частота после увеличения частоты до LFS равна LFs/2, согласно теореме о дискретном представлении полосу сигнала необходимо ограничить до Fs/2, поскольку это — наибольшая существенная частота я(п). Запишем общие требования к фильтру, используемому при интерполяции: •
полоса пропускания 0 < / < /р,
(9.6, а)
полоса подавления Fs/2 < / < LFs/2,
(9.6, б)
отклонение в полосе пропускания 6р,
(9.6, в)
отклонение в полосе подавления 5S,
(9.6,г)
где /р < Fs/2. И еще одно замечание: чтобы компенсировать уменьшение амплитуды в ходе процесса интерполяции, энергию, которая распределяется в полосе пропускания, следует увеличить в L раз.
Каскад 1Каскад 2... Каскад /Каскад 1Каскад 2... Каскад /б)б)№Л\№Л\Рис. 9.9. Схема допусков фильтра нижних частот с равными колебаниями характеристики (панель а); многокаскадная структура (панель 6); спецификации фильтра t-ro каскада, i = 1,2,...,/ (панель в)Рис. 9.9. Схема допусков фильтра нижних частот с равными колебаниями характеристики (панель а); многокаскадная структура (панель 6); спецификации фильтра t-ro каскада, i = 1,2,...,/ (панель в)
Каскад 1Каскад 2... Каскад /
Каскад 1Каскад 2... Каскад /
б)
б)
№Л\
№Л\
Рис. 9.9. Схема допусков фильтра нижних частот с равными колебаниями характеристики (панель а); многокаскадная структура (панель 6); спецификации фильтра t-ro каскада, i = 1,2,...,/ (панель в)
Рис. 9.9. Схема допусков фильтра нижних частот с равными колебаниями характеристики (панель а); многокаскадная структура (панель 6); спецификации фильтра t-ro каскада, i = 1,2,...,/ (панель в)
Требования к фильтрам отдельных каскадов
Для преобразования частоты дискретизации часто используется фильтр с равными колебаниями характеристики в полосе пропускания и полосе подавления (оптимальный), хотя также можно использовать и фильтры, полученные методом взвешивания. Схема допусков для фильтра нижних частот с равными колебаниями характеристики приведена на рис. 9.9, а.
Многокаскадный дециматор (рис. 9.9, б) вводит такие требования к фильтрам каждого каскада (см. также рис. 9.9, в):
полоса пропускания 0 < / < /р,(9.7,а)
полоса подавления (F—FS/2M) < / < ^i-i/2 г = 1,2,..., I,(97, ^
отклонение в полосе пропускания <$р//,(97,е)
отклонение в полосе подавления 5а,(97,г)
(9.7, d)(9.7, d)длина фильтра N « ^«^Р’^8) _ j^ 6s)Afi + 1,
(9.7, d)
(9.7, d)
где Fi, Nt и Д/i — выходная частота дискретизации, длина фильтра и нормированная ширина полосы перехода для г-го каскада дециматора соответственно. Параметры ^оо(^р)^) и /(<?р, 5,) имеют то же значение, что и в уравнении (9.3). Частота дискретизации на выходе г-го каскада записывается следующим образом:
Ft = F-x/Mi, г = 1Д...Д,Ft = F-x/Mi, г = 1Д...Д,(9.8)(9.8)
Ft = F-x/Mi, г = 1Д...Д,
Ft = F-x/Mi, г = 1Д...Д,
(9.8)
(9.8)
где Mi — коэффициент децимации этого каскада. Исходная и конечная частоты дискретизации — Fo и Fj соответственно. Эти частоты следующим образом связаны с параметрами, использованными ранее: Fo = F, и Fi = РДМ.
Чтобы при многокаскадной децимации общее отклонение в полосе пропускания составило 6Р, отклонение в каждом каскаде должно быть меньшим. Отклонение в полосе подавления каждого каскада совпадает с отклонением всей системы, поскольку при переходе сигнала между каскадами компоненты полосы подавления затухают все сильнее и сильнее. Поэтому общее отклонение в полосе подавления будет гораздо меньшим, чем задано в общих требованиях (если вообще не нулевым). Если дециматор одиокас- кадный, требования к его фильтру записываются в форме (9.5).
Определение числа каскадов и шагов децимации
Многокаскадная разработка позволяет существенно сэкономить иа требованиях к вычислению и памяти по сравнению с однокаскадной структурой. Степень экономии зависит от числа используемых каскадов и выбора шагов децимации для отдельных каскадов. Основная проблема — определить оптимальное число каскадов I и шагов децимации для каждого каскада. Оптимальное число каскадов равно одному, поскольку при этом требуется минимальный объем вычислений, например, если измерять его в числе операций умножения в секунду (УВС) или общей требуемой памяти (ОТП) для хранения коэффициентов:
/
(9.9, а)(9.9, б)(9.9, а)(9.9, б)УВС = '£,№,
(9.9, а)
(9.9, б)
(9.9, а)
(9.9, б)
отп = 52^,
где Nt — число коэффициентов фильтра г-го каскада, причем симметрия коэффициентов фильтра не учитывается.
Выбор числа каскадов I и шагов децимации — это нетривиальная задача. Впрочем, на практике редко выбирается больше 3 или 4 каскадов I. Кроме того, для данного значения М существует только ограниченный набор возможных целых шагов-сомножителей. Следовательно, целесообразно определить все возможные множители М, т.е. весь набор
значений М, и соответствующие им параметры УВС или ОТП. Затем следует методом перебора выбрать наиболее эффективное или предпочтительное решение. В алгоритмическом виде данный подход представлен в табл. 9.1. Его реализацию в виде программы на языке С можно найти в книге [Ifeachor, 2001], а в виде электронной таблицы — в книге [10].
Таблица 9.1. Алгоритм определения оптимальных значений I и М,
Задать общие параметры фильтра (Fs, М, fp, fs< 6„, Sp1).
Для каждого значения I (I = 1,2,..., /Шах) получить все возможные наборы целых коэффициентов децимации М.
Для каждого набора коэффициентов децимации определить из уравнений (9.9) требования к фильтру, параметры УВС и ОТП.
Для каждого значения I выбрать шаги децимации, дающие наиболее эффективную структуру с точки зрения требований к памяти.
Выбрать наиболее эффективное решение.
Вообще, чтобы достичь оптимального значения параметра УВС или ОТП, шаги децимации должны удовлетворять следующему соотношению [4, 5]:
MY > М2 > ... > Мь(9.10)
где М{ (г = 1,..., /) постоянны. В то же время, если множители — это целые числа, при определенных значениях / уравнению (9.10) удовлетворить можно не всегда, например, если / = 3 и М = 32 (см. комментарии к примеру 9.3).
При I = 2 (те. для двухкаскадного дециматора) оптимальные значения шагов децимации, минимизирующие параметр ОТП, равны
Mloi,t = 2- Af+ (2MAf)V2 ’(9.11, а)
6)
Если I > 2, простого аналитического выражения не существует, поэтому для определения оптимальных шагов децимации М, приходится использовать компьютерные программы оптимизации или алгоритм, приведенный в табл. 9.1.
Примеры разработки
Пример 9.2
На рис. 9.10 приведена блок-схема трехкаскадного дециматора, который используется для уменьшения частоты дискретизации с 3072 до 48 кГц. Предполагая, что шаги дискретизации — 8, 4 и 2, укажите частоту дискретизации на выходе каждого каскада..
Рис. 9.10. Блок-схема дециматора из примера 9.2Рис. 9.10. Блок-схема дециматора из примера 9.2
Рис. 9.10. Блок-схема дециматора из примера 9.2
Рис. 9.10. Блок-схема дециматора из примера 9.2
Пусть дециматор из п. 1 удовлетворяет следующим спецификациям:
3072 кГц, 64, 0,01 дБ, 60 дБ, 0-20 кГц.3072 кГц, 64, 0,01 дБ, 60 дБ, 0-20 кГц.входная частота дискретизации, Fs шаг децимации, М
3072 кГц, 64, 0,01 дБ, 60 дБ, 0-20 кГц.
3072 кГц, 64, 0,01 дБ, 60 дБ, 0-20 кГц.
неравномерность в полосе пропускания неравномерность в полосе подавления важная полоса частот
В каждом каскаде определите граничные частоты фильтра для децимации.
Предполагая, что входная и выходная частоты дискретизации дециматора равны соответственно 3072 и 48 кГц,
запишите общий шаг децимации;
запишите все возможные наборы целых шагов децимации (только в убывающем порядке), если используется децимация в два этапа;
повторите п. б, если фильтр реализован как трехкаскадная структура;
повторите п. б, если фильтр реализован как четырехкаскадная структура.
Для дециматора из п. 1 выразите общее число операций умножения в секунду (УВС) и общую требуемую память (ОТП) через длины фильтров Nu N2 и N3.
Решение
В первом каскаде частота дискретизации уменьшается в 8 раз с 3072 до 384 кГц. Во втором каскаде частота дискретизации уменьшается еще в 4 раза с 384 до 96 кГц. Третий каскад уменьшает данную частоту вдвое с 96 до 48 кГц.
Граничные частоты полос пропускания всех трех фильтров для децимации фильтров защиты от наложения спектров равны 24 кГц, что позволяет сохранить полосу частот, представляющих практический интерес. Граничные частоты полос подавления позволяют использовать отличия частот дискретизации. Частота подавления определяется следующим соотношением (см. рис. 9.9, а и уравнение (9.7, б)):
F
гдегдеКг г 2М,
где
где
Fi — частота дискретизации на выходе каскада, Fs — базовая частота дискретизации системы, fsi ~ граничная частота полосы подавления каскада.
Для каскада 1 /,1 = 384 - 3072/(2 х 64) = 360 кГц. Следовательно, граничные частоты первого каскада равны 0, 20, 360 и 1536 кГц (частота Найквиста этого каскада, те. 3072 кГц/2).
Для каскада 2 fa2 = 96 - 3072/(2 х 64) = 72 кГц, набор граничных частот: 0, 20, 72 и 192 кГц.
Для каскада 3 /,3 = 48 — 3072/(2 х 64) = 24 кГц, набор граничных частот фильтра защиты от наложения спектров: 0, 20, 24 и 48 кГц.
а. Общий шаг децимации 3072/48=64.
б. Возможные наборы целых шагов для децимации в два этапа (в убывающем порядке):
32 х 2,
16 х 4,8x8.
в. Возможные наборы целых шагов для децимации в три этапа (в убывающем порядке):
16 х 2 х 2,
8x4x2.
г. Возможные наборы целых шагов для децимации в четыре этапа (в убывающем порядке):
4 х 4 х 2 х 2.
Если выбраны шаги дискретизации 8 х 4 х 2, и длины фильтров каскадов 1, 2 и 3 равны соответственно Nx, М2и N3, общее число операций умножения в секунду равно
М х Fv + N2 х F2 + N3 x F3 =NX x 384 x 103 + N2 x 96 x 103+
+ N3 x 48 x 103.
Общая требуемая память —
Nx + N2 + N3.
Пример 9.3
Частоту дискретизации сигнала х(п) нужно с помощью децимации уменьшить с 96 до 1 кГц. Наивысшая частота, представляющая практический интерес, после децимации равна 450 Гц. Допустим, что должен использоваться оптимальный КИХ-фильтр с общей неравномерностью в полосе пропускания 6Р = 0,01 и отклонением в полосе пропускания 6, = 0,001. Разработайте эффективный дециматор.
Решение
Начнем с того, что найдем наиболее эффективную структуру для каждого значения I (I = 1,2,3,4). Затем сравним эти структуры и выберем из них лучшую.
N =4881N =4881zy Ж (500 - 450)796000 Ж 5,208 х КГ*zy Ж (500 - 450)796000 Ж 5,208 х КГ*М«Ш;^1 =5р = 0,005АГ3ж167;^ж^,М«Ш;^1 =5р = 0,005АГ3ж167;^ж^,0450 115000450 J 5000450 500 10000450 115000450 J 5000450 500 1000zyж 0,1150zy=0,0875zy=0,025жо.ооззар2 =0,0033=о,оозз4|=0,00)8а= 0,0014з=0,001Nx=25Ni= 34N$=117в)zyж 0,1150zy=0,0875zy=0,025жо.ооззар2 =0,0033=о,оозз4|=0,00)8а= 0,0014з=0,001Nx=25Ni= 34N$=117в)96000 П124000 П16000 Гц2000 П11000 П196000 П124000 П16000 Гц2000 П11000 П1О 450045004500450 5001000О 450045004500450 5001000
N =4881
N =4881
zy Ж (500 - 450)796000 Ж 5,208 х КГ*
zy Ж (500 - 450)796000 Ж 5,208 х КГ*
М«Ш;^1 =5р = 0,005АГ3ж167;^ж^,
М«Ш;^1 =5р = 0,005АГ3ж167;^ж^,
0450 115000450 J 5000450 500 1000
0450 115000450 J 5000450 500 1000
zyж 0,1150zy=0,0875zy=0,025
жо.ооззар2 =0,0033=о,оозз
4|=0,00)8а= 0,0014з=0,001
Nx=25Ni= 34N$=117
в)
zyж 0,1150zy=0,0875zy=0,025
жо.ооззар2 =0,0033=о,оозз
4|=0,00)8а= 0,0014з=0,001
Nx=25Ni= 34N$=117
в)
96000 П124000 П16000 Гц2000 П11000 П1
96000 П124000 П16000 Гц2000 П11000 П1
О 450045004500450 5001000
О 450045004500450 5001000
zy«0,2401zy=0,21042zy=0,175zy=0,025
5pl=0,00255p2=0,00255pJ=0,00255p4=0.0025
£i=0,0015,2=0,0015,j=0,0015Й=0,001
Nt=11У2=13Уз=17N*«120
r)
Рис. 9.11. Однокаскадный дециматор (панель а); двухкаскадный дециматор (панель б); трех-каскадный дециматор (панель в); четырехкаскадный децнматор (панель г) (пример 9.3)
Рассмотрим вначале однокаскадную структуру (7 = 1). Блок-схема и спецификация полученного фильтра приведены на рис. 9.11, а.
Далее рассмотрим двухкаскадную структуру. Используя указанную в тексте программу разработки, находим, что оптимальными целыми шагами при 7 = 2 являются Л^ = 32 и Л72 = 3. Двухкаскадная система, включая ее спецификации, показана на рис. 9.11, б. В первом каскаде частота дискретизации уменьшается в 32 раза до 3 кГц, а во втором каскаде — еще в 3 раза до 1 кГц.
В трехкаскадной структуре (7 = 3) оптимальны (с точки зрения памяти) шаги децимации Mi = 8, М2 = 6 и М3 = 2. Соответствующая система изображена на рис. 9.11, в.
Оптимальные шаги для четырехкаскадной структуры: Мх = 4, М2 = 4, М3 = 3 и М4 = 2. Система и спецификация фильтров приведена на рис. 9.11, г.
Основные результаты представлены ниже.
I
Ni
n2
Na
n4
Ml
M2
M3
м4
УВС
ОТП
1
4881
—
—
—
96
—
—
—
48 881 000
4881
2
131
167
—
—
32
3
—
—
560 000
298
3
25
34
117
—
8
6
2
—
485 000
176
4
11
13
17
120
4
4
3
2
496 000
161
Очевидно, что в общем случае многокаскадные структуры значительно уменьшают вычислительную сложность и смягчают требования к памяти по сравнению с однокаскадными структурами. Это снижение связано с широкими полосами перехода фильтров, использованных в первых каскадах (несмотря на то, что частота дискретизации все еще велика), что дает малые значения N (число коэффициентов фильтра).
Сравнивая эффективность многокаскадных структур, находим, что снижение вычислительной сложности (УВС) и требований к памяти (ОТП) максимально проявятся при переходе от однокаскадной схемы к двухкаскадной. Снижение требований к памяти при переходе от двухкаскадной структуры к трехкаскадной и от трехкаскадной к четырехкаскадной также велико, но не настолько. Снижение вычислительной сложности также значительно при переходе от двухкаскадной структуры к трехкаскадной, но при переходе от трехкаскадной структуры к четырехкаскадной фактически происходит увеличение вычислительной сложности (УВС). В целом похоже, что наиболее эффективная структура — это 7 = 3, при этом стоит помнить, что с ростом 7 сложность реализации увеличивается, поэтому на практике перед окончательным решением следует учесть сложность программного и аппаратного обеспечения.
Замечания. Как обсуждается в работах [4, 5], если М^г = 1,2,..., 7) — непрерывные переменные, оптимальные значения Mi удовлетворяют условию Му > М2 > ... > Mj.
Кроме того, значения Mi, минимизирующие требования к памяти, также минимизируют и вычислительную сложность. В то же время, если Mi могут принимать только целые значения, данное условие удовлетворяется не всегда. Поэтому предложенная программа разработки, по сути, находит решения для всех возможных наборов целых шагов. Затем из них выбирается наилучшее решение.
Наиболее эффективное решение с точки зрения вычислений или памяти может соответствовать чрезмерно большому (непрактичному) значению N в одном из каскадов. Чтобы уменьшить значения N в этих каскадах, можно увеличить длину фильтров других каскадов, выбрать иной набор шагов децимации или увеличить число каскадов. Если найдены все возможные решения, на подобные компромиссы идти легко, просто изучая имеющиеся альтернативы.
Пример 9.4
Разработайте на уровне блок-схемы двухкаскадный дециматор, перевыбирающий аудиосигнал с шагом 30 и удовлетворяющий спецификациям, представленным в табл. 9.2.
В ответе следует указать подходящую пару шагов децимации, выбор аргументировать подробным анализом вычислительной сложности и требований к памяти. Для всех фильтров, задействованных в структуре, определите частоты дискретизации на входе и выходе каскадов, а также следующие параметры:
граничные частоты,
нормированная ширина полосы перехода,
неравномерность в полосе пропускания и подавления, длина фильтра.
Предполагается использовать КИХ-фильтры с длинами, определенными в табл. 9.2.
Таблица 9.2. Спецификации фильтров двухкаскадного дециматора
входная частота дискретизации, Fs240 кГц,
наивысшая важная частота3,4 кГц,
неравномерность в полосе пропускания0,05,
неравномерность в полосе подавления0,01,
,..— 101g(S,,S,) — 13
длина фильтра, N =; , гт ,И 1,
где
△/ — нормированная ширина полосы перехода.
Решение
Общий вид дециматора представлен на рис. 9.12.
Если использовать целые шаги, то возможны следующие пары (согласно требованиям вычислительной эффективности первый каскад всегда имеет наибольший шаг):
15 х 2,
10 х 3,
6x5.
Чтобы определить, какую пару использовать, проанализируем вычислительную сложность каждой реализации.
2402 X 302402 X 30При Mi = 15 и М2 = 2 частота дискретизации вначале уменьшается в 15 раз до 16 кГц, а затем еще в 2 раза до 8 кГц. Имеем два фильтра со следующими параметрами:
240
2 X 30
240
2 X 30
первый каскад: граничные частоты: 3,4 и 12 кГц
== 0,0358,
8Р = 2^ = о, 025; 5, = 0,01; Nx = 45,
второй каскад: граничные частоты: 3,4 и 4 кГц
Д/ = 0,0375,
8Р = 2^ = о, 025; 6а = 0,01; N2 = 43.
Используется две меры сложности схемы: число операций умножения в секунду (УВС) и общая требуемая память (ОТП). Для получения эффективной реализации структура дециматора выбирается так, чтобы в каждом каскаде операции фильтрации выполнялись с более низкой частотой дискретизации. В итоге получаем:
УВС = (45 х 16 + 43 х 8) х 103 = 1064 х 103; память = 88.
При Mi = 10, М2 = 3 частота дискретизации вначале уменьшается в 10 раз до 24 кГц, а затем еще в 3 раза до 8 кГц. Параметры фильтров:
/240\
первый каскад: граничные частоты: 3,4 и 20 кГц I 24 — -—— = 20 кГц I ,
Д/ =Д/ =20-3,424020-3,4240= 0,0691,= 0,0691,
Д/ =
Д/ =
20-3,4
240
20-3,4
240
= 0,0691,
= 0,0691,
Nx = 23,81 и 24.Nx = 23,81 и 24.8Р = ^ = 0,025; <5, = 0,01;
Nx = 23,81 и 24.
Nx = 23,81 и 24.
второй каскад: граничные частоты: 3,4 и 4 кГц (8 — 4 = 4 кГц),
Д/= 4 ^ 4 = 0,025; 5„ = 2^2 = 0,025; 8, = 0,01; N2 = 64.
Две меры сложности в данном случае имеют такие значения: УВС = (24 х 24 + 64 х 8) х 103 = 1088 х 103, ОТП = 88.
Наконец, рассмотрим третью возможную пару, Mi = 6 и М2 = 5. Проведя тот же анализ, что и выше, получаем такие значения:
первый каскад: граничные частоты: 3,4 и 36 кГц,
Д/= 0,1358; 5Р = ^ =0,025; 5, = 0,01; М = 13,
второй каскад: граничные частоты: 3,4 и 4 кГц
Д/= 0,015; 5Р = ^ = 0,025; 6, =0,01; N2 = 106,
УВС = 1369 х 102; ОПТ = 119.
Результаты, полученные для трех рассмотренных ситуаций, сведены в табл. 9.3. Сравнивая вычислительную сложность и требования к памяти, видим, что наиболее подходящая пара шагов децимации — Mi = 15, М2 = 2.
240 кГц (Г.)240 кГц (Г.)Рис. 9.12. Двухкаскадный децнматорРис. 9.12. Двухкаскадный децнматор8 кП18 кП1
240 кГц (Г.)
240 кГц (Г.)
Рис. 9.12. Двухкаскадный децнматор
Рис. 9.12. Двухкаскадный децнматор
8 кП1
8 кП1
Таблица 9.3. Вычислительная сложность (УВС) и общая требуемая память (ОПТ)
Шаги децимации
УВС
отп
Mi = 15; М2 = 2
1064 х 103
88
Mi = 10; М2 — 3
1088 х 103
88
Mi = 6; М2 = 5
1368 х 103
119
Программная реализация дециматоров
На рис. 9.13, а представлена блок-схема дециматора, где через /i(fc) обозначен цифровой фильтр защиты от наложения спектров. Если фильтр реализован в прямой форме (т.е. используются линии задержки с отводами), выход фильтра w(n) и его вход т(п) связаны следующим соотношением:
N-1
(9.12, а)(9.12, а)wW = 52 h(k)x(n — к\к=0
(9.12, а)
(9.12, а)
где N — число коэффициентов КИХ-фильтра. Поскольку выход дециматора у(т) = w(mM), уравнение дециматора можно записать следующим образом:
Рис. 9.13. Простая блок-схема дециматора (панель а); функциональная схема прохождения сигнала через дециматор (панель б)
N-1
у(т) = У^ 6(fc)a:(Mm — fe).(9.12,6)
к=0
Функциональная схема дециматора приведена на рис. 9.13, б. Вход т(п) подается на линию задержки по одной выборке за такт. Для каждых М выборок т(п), поданных на линию задержки, вычисляется одна выходная выборка у(т). При этом берется первая выборка w(n), отбрасываются следующие (М — 1) выборок, запоминается идущая далее выборка, затем снова отбрасываются (М - 1) выборок и т.д. Поскольку для каждой сохраненной выборки следующие (Af — 1) выборок w(n) отбрасываются, нет смысла вычислять их значение по формуле (9.12, а). Следовательно, операцию выборки с пониженной частотой (отбрасывание выборок) можно выполнить до умножения выходных выборок на коэффициенты (рис. 9.14, а). Теперь операции умножения и сложения с участием коэффициентов фильтра выполняются при более низкой частоте дискретизации Fa/M, поэтому вычислительные затраты уменьшены в М раз.
Общая схема работы однокаскадного дециматора приведена на рис. 9.14, б. Функциональная схема работы трехкаскадного дециматора показана на рис. 9.15 и является очевидным расширением соответствующей однокаскадной схемы.
Программа многокаскадной децимации
В приложении 9А приводится самодостаточная интерактивная программа на языке С, написанная на основе изложенных выше методов. Программа выполняет децимацию исходных данных с использованием до трех каскадов децимации; см. функциональную схему на рис. 9.15. На каждом этапе децимации требуется целый шаг децимации и набор коэффициентов TV-точечного фильтра, представляющих цифровой КИХ-фильтр с линейной фазовой характеристикой.
Входные данные считываются из файла данных на персональном компьютере, а данные после децимации заносятся в заданный пользователем файл выходных данных по
Начало
Рис. 9.14. Более эффективная диаграмма прохождения сигнала через дециматор (панель а); функциональная схема процесса децимации (панель б)Рис. 9.14. Более эффективная диаграмма прохождения сигнала через дециматор (панель а); функциональная схема процесса децимации (панель б)Считать новуювходную выборку,ХМ
Рис. 9.14. Более эффективная диаграмма прохождения сигнала через дециматор (панель а); функциональная схема процесса децимации (панель б)
Рис. 9.14. Более эффективная диаграмма прохождения сигнала через дециматор (панель а); функциональная схема процесса децимации (панель б)
ДаДаВычислить выходные выборки, у(т)Вычислить выходные выборки, у(т)Обновить линию задержки, введя новую входную выборкуОбновить линию задержки, введя новую входную выборкуПолученоПолученовыборок?выборок?одной выборке за такт. Предположим, что используется трехкаскадная децимация (см. рис. 9.15). Для каждых М\ входных выборок каскада 1 вычисляется одна выходная выборка. Для каждых М2 выходных выборок каскада 1 вычисляется одна входная выборка каскада 2. Наконец, для каждых М3 выходных выборок каскада 2 вычисляется одна выходная выборка каскада 3. Итак, в конце цикла децимации для каждых М входных выборок сигнала т(п), где М = МхМ2М3, вычисляется одна выходная выборка, которая и заносится в файл выходных данных. Процесс продолжается, пока не будут обработаны все входные выборки.
Да
Да
Вычислить выходные выборки, у(т)
Вычислить выходные выборки, у(т)
Обновить линию задержки, введя новую входную выборку
Обновить линию задержки, введя новую входную выборку
Получено
Получено
выборок?
выборок?
Названная программа является самодостаточной. Для ее применения пользователь должен задать число каскадов, общий шаг децимации, кроме того, для каждого каскада нужно задать шаг децимации и набор коэффициентов КИХ-фильтра с линейной фазовой характеристикой, реализованного в прямой форме. Пользователь задает имена файла с данными для децимации, файла с коэффициентами фильтров и файла, в котором будут записаны выходные данные после децимации.
Тестовый пример использования программы децимации
Для проверки процесса децимации используется следующая входная последовательность (широкополосный сигнал) (см. [6]):
(9.13)(9.13)т(п) = —а, п = О^(l-a2)^-1, п=1,2,...,
(9.13)
(9.13)
Считать новуювходную выборкух(п)Считать новуювходную выборкух(п)Обновить линиюзадержки каскада Iвведя новуювходную выборкуОбновить линиюзадержки каскада Iвведя новуювходную выборкуДаДаПолучено м ।Получено м ।выборок?выборок?Вычислитьвыходную выборкукаскада 1, у.Вычислитьвыходную выборкукаскада 1, у.Обновить ЛИНИЮзадержки каскада 2.введя новую вход-ную выборку у.Обновить ЛИНИЮзадержки каскада 2.введя новую вход-ную выборку у.ттНетНетДаДаслученслучен«1F1«1F1выборок?выборок?Вычислитьвыходную выборкукаскада 2, у^Вычислитьвыходную выборкукаскада 2, у^Обновить линиюзадержки каскада 2,введя новуювходную выборку J2Обновить линиюзадержки каскада 2,введя новуювходную выборку J2ттДаДаслученслученMtfiMtfiыборок;ыборок;
Считать новуювходную выборкух(п)
Считать новуювходную выборкух(п)
Обновить линиюзадержки каскада Iвведя новуювходную выборку
Обновить линиюзадержки каскада Iвведя новуювходную выборку
Да
Да
Получено м ।
Получено м ।
выборок?
выборок?
Вычислитьвыходную выборкукаскада 1, у.
Вычислитьвыходную выборкукаскада 1, у.
Обновить ЛИНИЮзадержки каскада 2.введя новую вход-ную выборку у.
Обновить ЛИНИЮзадержки каскада 2.введя новую вход-ную выборку у.
т
т
Нет
Нет
Да
Да
случен
случен
«1F1
«1F1
выборок?
выборок?
Вычислитьвыходную выборкукаскада 2, у^
Вычислитьвыходную выборкукаскада 2, у^
Обновить линиюзадержки каскада 2,введя новуювходную выборку J2
Обновить линиюзадержки каскада 2,введя новуювходную выборку J2
т
т
Да
Да
случен
случен
Mtfi
Mtfi
ыборок;
ыборок;
Вычислитьвыходную выборкудециматора у(/я)
Рис. 9.15. Функциональная схема трехкаскадного дециматора
где а = 0,9. Первые 29 выборок последовательности приведены в табл. 9.4.
В данном примере децимация выполняется в два этапа с шагами 5 и 2 (общий шаг децимации — 10). В табл. 9.4 перечислены коэффициенты КИХ-фильтров (длины фильтров — 25 и 28 соответственно) и представлен результат децимации.
Выходная задержка
Выход дециматора будет запаздывать относительно входа на определенное число выборок в зависимости от типов фильтров, используемых в каскадах дециматора. Предполагая, что дециматор содержит КИХ-фильтры с линейной фазовой характеристикой, можно получить следующие выражения для задержки одно-, двух- и трехкаскадного дециматора:
Т(1 каскад) = j^Pi _ (М — 1)] выборок,(9.14, а)
Т(2 каскада) = jj^yPi + ^1^2 - (М1М2 - 1)] выборок,(9.14, б)
Т(3 каскада) =* [T^+A^T^+MjA^Ts-tA^A^Ms-l)] выборок, (9.14, в)
где Т,, задержка фильтра г-го каскада, вычисляется как
Т, = (Nt + 1)/2 выборок,
a Nt — это число коэффициентов фильтра г-го каскада. В приведенном выше примере двухкаскадного дециматора задержки фильтров равны соответственно 14,5 и 13 выборок, а общая задержка составляет
Т(2 каскада) = [1/(5 х 2)] [14,5 + 5 х — (5 х 2 — 1)] = 7,05 выборок.
Если нужно, чтобы задержка выражалась целым числом выборок, значения N, нужно определять так, чтобы Т, вычисленное по приведенной выше формуле, было целым. Такое требование возникает, например, когда (нужно сравнивать входные и выходные выборки). Например, при передаче данных через фильтр верхних частот в системе обработки при нескольких скоростях в выходную выборку нужно ввести поправку на задержку при проходе через дециматор и интерполятор.
Программная реализация интерполяторов
На рис. 9.16, а приведена блок-схема интерполятора, а его функциональная схема изображена на рис. 9.16, б. Для каждой входной выборки х(п), поданной на интерполятор, экспандер (прямоугольник со стрелочкой, направленной вверх) вводит после входной выборки (L - 1) нулевую выборку. Затем все выборки фильтруются, и получается сигнал у(т). Итак, для каждой входной выборки сигнала х(п) имеем L выборок
656
Глава 9. Цифровая обработка сигналов при нескольких скоростя>
Таблица 9.4. Данные тестового примера децимации
п
т(п)y(m)Ai(fc)hito
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
-0,9000-0,000 174-0,000 303
0,1900-0,002 6820,001 807
0,1710-0,006 3460,003120
0,1539-0,011 033-0,001169
0,1385-0,014 156-0,009 267
0,1247-0,012 024-0,007 792
0,1122-0,000 7750,011124
0,10100,021 9040,027651
0,09090,055 1810,007 674
0,08180,000 0400,094 397-0,045 444
0,07360,131 836-0,064 816
0,06620,158 8660,022946
0,05960,168 7280,202 371
0,05370,158 8660,352 610
0,04830,131 8360,352610
0,04350,094 3970,202 371
0,03910,055 1810,022946
0,03520,021 904-0,064816
0,0317-0,000 775-0,045444
0,0285-0,000 286-0,012 0240,007 674
0,0257-0,014 1560,027651
0,0231-0,011 0330,011124
0,0208-0,006 346-0,007 792
0,0187-0,002 682-0,009 267
0,0168-0,000 174-0,001169
0,01520,003 120
0,0136■0,001 807
0,0123-0,000 303
0,0110
0,00990,001 116
0,0089
0,0081
0,0072
0,0065
0,0059
0,0053
0,0048
0,0043
0,0039
0,0035-0,001 659
0,0031
0,0028
0,0025
0,0023
0,0020
0,0018
0,0017
0,0015
0,0013
0,0012-0,000 402
0, ООН
Здесь т(п) и у(т) — выходные данные и данные после децимации; Ai (fc) и hitk) — коэффициенты
Рис. 9.16. Блок-схема интерполятора (панель а); функциональная схема интерполятора (панель б)Рис. 9.16. Блок-схема интерполятора (панель а); функциональная схема интерполятора (панель б)
Рис. 9.16. Блок-схема интерполятора (панель а); функциональная схема интерполятора (панель б)
Рис. 9.16. Блок-схема интерполятора (панель а); функциональная схема интерполятора (панель б)
сигнала у(т). Таким образом, интерполятор эффективно увеличивает входную частоту дискретизации с Fs до LFS. Отметим, что одним из последствий ввода (L — 1) нулей после каждой выборки является рассеивание энергии каждой входной выборки по L выходным выборкам. Следовательно, коэффициент усиления интерполятора равен 1/L. После интерполяции каждую выходную выборку следует умножить на L, чтобы восстановить ее до прежнего уровня.
Уравнения интерполяции имеют следующий вид:
N-1
(9.15, а)(9.15, а)■у^т) = У^ h^w^m — /с)k=0
(9.15, а)
(9.15, а)
w(m — /с)w(m — /с)x[(m — k^JL^ 0x[(m — k^JL^ 0m — к = 0, L, 2L,...m — к = 0, L, 2L,...(9.15,5)(9.15,5)
w(m — /с)
w(m — /с)
x[(m — k^JL^ 0
x[(m — k^JL^ 0
m — к = 0, L, 2L,...
m — к = 0, L, 2L,...
(9.15,5)
(9.15,5)
Описанный процесс иллюстрируется на рис. 9.17 для простого случая L = 3, длина фильтра = 10. На линию задержки подается входная выборка с последующими двумя нулями, за ней следует выборка и два нуля и т.д. Для каждой выборки линии задержки (данные или нули) вычисляется выходная выборка. На рисунке показано содержимое линии задержки после подачи в интерполятор двух выборок х(п). Видно, что для каждой поданной входной выборки вычисляются три выходные выборки. Между ненулевыми выборками линии задержки (т.е. выборками собственно х(п)) располагается (L — 1) нулей (в данном примере — два). Очевидно, что операции умножения на нулевые выборки выполнять не обязательно.
Содержимое линии задержки
3 s3 sзззззз88у(2) = *(0) х 0 + Л(1) х 0 + Л(2)х(0)ХЗ) = Л(0)Х 1) + Л( 1) х 0 + Л(2) х 0 + Л(3)х(0)у(2) = *(0) х 0 + Л(1) х 0 + Л(2)х(0)ХЗ) = Л(0)Х 1) + Л( 1) х 0 + Л(2) х 0 + Л(3)х(0)8 со8 со8 со8 соу(т") = th(k)w(m - к)Х0) = *(0)Х0)Х1) = А(0)х0 + А(|)Х0)у(т") = th(k)w(m - к)Х0) = *(0)Х0)Х1) = А(0)х0 + А(|)Х0)И со 2И со 2Рис. 9.17. Иллюстрация процесса интерполяции для простого случая L = 3Рис. 9.17. Иллюстрация процесса интерполяции для простого случая L = 3
3 s
3 s
з
з
з
з
з
з
8
8
у(2) = *(0) х 0 + Л(1) х 0 + Л(2)х(0)
ХЗ) = Л(0)Х 1) + Л( 1) х 0 + Л(2) х 0 + Л(3)х(0)
у(2) = *(0) х 0 + Л(1) х 0 + Л(2)х(0)
ХЗ) = Л(0)Х 1) + Л( 1) х 0 + Л(2) х 0 + Л(3)х(0)
8 со
8 со
8 со
8 со
у(т") = th(k)w(m - к)
Х0) = *(0)Х0)
Х1) = А(0)х0 + А(|)Х0)
у(т") = th(k)w(m - к)
Х0) = *(0)Х0)
Х1) = А(0)х0 + А(|)Х0)
И со 2
И со 2
Рис. 9.17. Иллюстрация процесса интерполяции для простого случая L = 3
Рис. 9.17. Иллюстрация процесса интерполяции для простого случая L = 3
На рис. 9.18 представлена функциональная схема однокаскадного интерполятора. В данной реализации при вычислении выходных выборок используются только ненулевые выборки. Другая функциональная схема, на этот раз интерполятора, который может иметь до трех каскадов, приведена на рис. 9.19.
В другой эффективной реализации, известной как многофазная, или мулыпифазная, фильтрация [8], используется тот факт, что некоторые выборки линии задержки равны нулю. В этом случае экспандер удаляется полностью, чтобы не нужно было хранить нулевые выборки. Далее линия задержки сокращается до N/L позиций (где N — длина фильтра защиты от наложения спектров, a L — шаг интерполяции). При таком подходе для каждой входной выборки, поданной на линию задержки, на основе N/L выборок линии задержки рассчитываются L выходных выборок, причем каждая выходная выборка вычисляется с иным набором коэффициентов фильтра (т.е. коэффициенты фильтра, соответствующие нулевым выборкам, опускаются). Многофазный фильтр имеет такое
Рис. 9.18. Функциональная схема процесса интерполяции
ограничение: отношение N к L должно быть целым. В следующем разделе рассмотрена программа разработки трехкаскадного интерполятора на языке С.
Программа многокаскадной интерполяции
Программа основана на методе, описаииом в предыдущем разделе, и интерполирует входные данные с использованием до трех каскадов; см. функциональную схему на рис. 9.19. Отметим, что вследствие дуальности децимации и интерполяции (дециматор и интерполятор образуют общий конвертер частоты дискретизации) каскады интерполяции нумеруются в обратом порядке. На каждом этапе интерполяции требуется целый шаг интерполяции и набор коэффициентов 7V-точечного фильтра, представляющих цифровой КИХ-фильтр с линейной фазовой характеристикой. Программа используется на персональном компьютере, хотя ее легко переделать под выполнение на любом другом оборудовании.
Входные данные считываются из файла данных на компьютере, а данные интерполяции заносятся в выходной файл по выборке за раз. Предположим, что используется трехкаскадная интерполяция (см. рис. 9.19). В каскаде 3 вычисляется L3 выборок. Для
Рис. 9.19. Интерполяция с использованием до трех каскадов. Если, например, Z = 1,
то выполняются только
блоки с меткой “каскад 3”
каждой из этих выборок в каскаде 2 вычисляется L2 выборок. Для каждой выборки, поступившей с каскада 2, в каскаде 1 вычисляется L^ выборок. В конце цикла для каждой выборки выходного сигнала х(п) вычисляется L выходных выборок (где L = Д^гДз), которые заносятся в файл выходных данных. Процесс продолжается, пока не будут обработаны все входные выборки. Названную программу интерполяции можно найти на компакт-диске, который прилагается к книге [Ifeachor, 2001] (подробности см. в предисловии).
Указанная программа является самодостаточной. Для ее применения пользователь должен задать число каскадов, общий шаг интерполяции, кроме того, для каждого каскада нужно задать шаг интерполяции и набор коэффициентов КИХ-фильтра. Пользователь задает имена файла с данными для интерполяции, с коэффициентами фильтров и файла, в котором будут записаны выходные данные после интерполяции.
Тестовый пример
Входная последовательность определяется так же, как для дециматора. Пять первых выборок последовательности приведены в табл. 9.5.
В данном примере выполняется двухкаскадная интерполяция. Шаги интерполяции в третьем и втором каскадах равны соответственно 2 и 5, так что общий шаг интерполяции — 10. Результат интерполяции представлен в табл. 9.5. Использованные коэффициенты КИХ-фильтров также приведены в табл. 9.5; длины фильтров — 25 и 28 соответственно.
Выходная задержка
Выход интерполятора будет запаздывать относительно входа на определенное число выборок. Ниже приводятся выражения для групповых задержек одно-, двух- и трехкаскадных интерполяторов.
(9.16, а)(9.16, а)(9.16,5)(9.16,5)(9.16, в)(9.16, в)Т(1 каскад) = Ту выборок,
(9.16, а)
(9.16, а)
(9.16,5)
(9.16,5)
(9.16, в)
(9.16, в)
Т(2 каскада) = (Ti + М^) выборок,
Т(3 каскада) = (Т) + М^Т^ + МуМгТ^ выборок,
где 7] — задержка фильтра г-го каскада: Г, = (^ + 1)/2 выборок (^ — число коэффициентов фильтра данного каскада). В приведенном выше примере фильтры имеют задержки соответственно 13 и 14,5, так что суммарная задержка равна 13 + 2 х 14,5 = 42 выборки.
Если нужно, чтобы задержка выражалась целым числом выборок, значения Nt следует выбирать так, чтобы Г, вычисленное по приведенной выше формуле, было целым. Следовательно, если требуется сравнить входные и выходные выборки (например, в узкополосном фильтре верхних частот, где выполняется операция, обратная к НЧ-фильтрации), в выходную выборку нужно ввести поправку на задержку.
пх(п)
y(m)ha(fc)hi(fc)
0-0,9000
4,744 98 х 10"7-0,000 303-0,000 174
7,313 815 х 10-60,001 807-0,002 682
1,730 554 x 10"50,003 120-0,006 346
3,008 7 x 10"5-0,001 169-0,011 033
-3,860 341 x 10"5-0,009 267-0,014 156
-2,995 969 x IO"5-0,007 792-0,012 024
4,150 394 x 10-50,011 124-0,000775
1,629 372 x 10"40,027 6510,021 904
3,299 083 x 10~40,007 6740,055 181
4,876 397 x 10"4-0,045 4440,094 397
10,1900
5,600 492 x 10"4-0,064 8160,131 836
5,226 861 x IO"40,022 9460,158 866
2,857 456 x 10"40, 202 3710,168 728
1,480 226 x IO-40,352 6100,158 866
7,700 115 x 10"40,352 6100,131 836
0,001 544 50,202 3710,094 397
2,448 377 x 10"30,022 9460,055 181
3,400 52 x IO"3-0,064 8160,021 904
-4,320 959 x IO-3-0,045 444-0,000 775
-5,079 387 x 10"30,007 674-0,012 024
20,1710
5,534 875 x IO"30,027 651-0,014 156
5,728 923 x IO"30,011 124-0,011033
5,466 501 x 10-3-0,007 792-0,006 346
4, 756 987 x IO"3-0,009 267-0,002 682
3,522 772 x 10"3-0,001 169-0,000 174
1,715 353 x 10"30,003120
5,557 998 x IO"40,001 807
3,324 822 x IO"3-0,000 303
6,400 164 x IO"3
9,565 701 x 10"3
30,1539
0,012 597 6 1,544 317 x IO"2 1,774 401 x IO"2 1,933 819 x IO"2 1,984 539 x IO"2 1,894 878 x IO"2 1,681 832 x IO"2 1,303 225 x IO"2 7,845 689 x IO"3 1,357 867 x 10"3
40,1385
-6,262 392 x 10"3 -1,462 789 x 10"2 -2,343 143 x IO"2 -3,207 272 x 10"2 -3,972 186 x IO"2 -4,567 938 x 10"2 -4,993 166 x IO"2 -5,142 782 x IO-2 -5,009 625 x IO"2 -4,527 419 x 10"2
Здесь $(п) и у(т) — входные и интерполированные данные, /гг(к) и /и (/с) — интерполирующие фильтры
Рис. 9.20. Интерполятор 1:3 с 9-точечиым КИХ-фильтром, реализованным в прямой форме
Преобразование частоты дискретизации с использованием многофазного фильтра
Существует альтернативная эффективная структура, которую можно использовать при реализации дециматоров и интерполяторов, — так называемая многофазная структура. Поскольку многофазная фильтрация при интерполяции проще, чем при децимации, рассмотрим вначале ее.
Многофазная реализация интерполяторов
Многофазная реализация интерполяторов построена на основе того факта, что некоторые выборки линии задержки интерполятора равны нулю. В этом случае экспандер удаляется полностью, чтобы не нужно было хранить нулевые выборки. Далее линия задержки сокращается до N/L позиций (где N — длина фильтра защиты от наложения спектров, a L — шаг интерполяции). При таком подходе для каждой входной выборки, поданной на линию задержки, иа основе N/L выборок линии задержки рассчитываются L выходных выборок, причем каждая выходная выборка вычисляется с иным набором коэффициентов фильтра (те. коэффициенты фильтра, соответствующие нулевым выборкам, опускаются).
Чтобы лучше понять многофазную реализацию интерполяторов, рассмотрим простой интерполятор 1:3, изображенный на рис. 9.20. В этом случае L = 3, а число коэффициентов фильтра ^ = 8.
Согласно схеме на рис. 9.20 на линию задержки подается входная выборка, за которой следует два нуля (L — 1), затем идет следующая входная выборка, снова два нуля и т.д.
Содержимое линии задержки после подачи первых четырех входных выборок (х(0), т(1), х(2) и х(3)), за каждой из которых было подано две нулевые выборки, показано на рис. 9.21, где также указаны моменты взятия выборок при двух частотах дискретизации.
Для каждой выборки, поданной на линию задержки (данные или нули), вычисляется выходная выборка. Следовательно, для каждой реальной выборки (выборки х(п))
вычисляется три выходные выборки. Между каждой парой таких ненулевых выборок располагается (L — 1) нулей (в данном примере — два). Очевидно, что выполнять умножение на нулевые выборки не обязательно.
На рис. 9.21 показаны последовательные выходные выборки интерполятора. В использованной реализации при вычислении выходных выборок применяются только ненулевые входные выборки. Здесь необходимо сделать некоторые замечания.
Каждая входная выборка порождает три выходные выборки, причем в расчете каждой выходной выборки фигурируют три подфильтра, каждый из которых имеет три коэффициента:
■ {/i(0), /i(3), /1(6)}, {/i(l),/i(4), 6(7)}, (6(2), 6(5), 6(8)};
для каждой новой входной выборки процесс повторяется;
подфильтры работают с более низкой частотой дискретизации.
Общий фильтр представляет собой параллельное соединение подфильтров; (рис. 9.22, а). Подфильтры, называемые также многофазными фильтрами, имеют общую линию задержки, что снижает общие требования к памяти в 3 раза. Для каждой новой входной выборки каждый многофазный фильтр выдает выходную выборку с более низкой частотой дискретизации; (рис. 9.22, б).
Общая структура реализации интерполяции на основе многофазных фильтров показана на рис. 9.23. В данном случае для каждой новой входной выборки сигнала z(n) существует L выходных выборок сигнала у(т), по одной на каждый многофазный фильтр. Верхний многофазный фильтр, т.е. Ро(п), дает выходные выборки уо(п), следующий многофазный фильтра, Ф1(п), дает выход r/i(n), и т.д. На практике многофазные фильтры часто реализуются с использованием коммутативной модели, изображенной на рис. 9.23, б. Коммутатор вращается в направлении против часовой стрелки, начиная с верхнего положения.
Анализ многофазных фильтров показывает, что это — широкополосные фильтры, имеющие разные сдвиги фаз (поэтому фильтры называются многофазными). Вычислительная эффективность структуры на основе многофазных фильтров объясняется тем, что единый А-точечный КИХ-фильтр разбивается на набор небольших подфильтров длины N]L, где N выбирается целым и кратным L, причем каждый фильтр работает с более низкой частотой дискретизации.
Коэффициенты многофазных фильтров, используемых при интерполяции, выражаются следующим образом:"
N рк(п) = h(k + nL), к = 0,1,..., L — 1; 0,1,..., — — 1.
Интерполятор, изображенный на рис. 9.23, можно преобразовать в дециматор, приведенный на рис. 9.24. Обратите внимание на то, что в этом случае коммутатор вращается по часовой стрелке, начиная с верхнего положения в момент т = 0. Коэффициенты многофазных фильтров дециматора следующим образом связаны с коэффициентами фильтров исходного интерполятора:
N
Pk(n) - h(k + nM), к = 0,1,..., М — 1; 0,1,..., —— 1.
0
1
2
3
4
5
6
7
8
х(0)
0
0
х(1)
0
0
0
ХО)
0
0
х(1)
0
0
0
Х0)
0
0
х(1)
0
0
0
х(0)
0
0
0
0
0
0
Х0)
0
0
0
0
0
0
х(0)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
012345
х(2)
0
0
х(3)
0
0
0
х(2)
0
0
х(3)
0
0
0
х(2)
0
0
х(3)
х(1)
0
0
Х2)
0
0
0
х(1)
0
0
х(2)
0
0
0
ХО
0
0
х(2)
Х0)
0
0
х(1)
0
0
0
х(0)
0
0
«О
0
0
0
х(0)
0
0
х(1)
2
—1—
6
1—
—1—
7
1—
1
8
1—
—
3
—1—
9
1—
—1—
10
1—
1—
11
1—
1 п
у(0) = х(0)й(0) у(1)=х(0)й(1) y(2)=xfOW2)
ХЗ) = Х1)Л(0)+ж(0>Л(3) Х4)=л<1)Л(1)+х(0)Л(4)
т(5)=х(1)ед+х(0)ед
у(6) = х^МО) + х( 1W3) + х(0)Л(6> у(7) = Х2)Л( I) + х( 1 )Л(4) + х(0)Л(7) у(8) = х(2)й(2) + л< 1)Л(5) + Х0)Л(8)
у(9) = ХЗ)Л(О) + Х2) А(3) + х( 1 )Л(6)
ХЮ) = х(3)Л(1) + х(2)Л(4) + х( I И7) у( 11) = хО)/^) + х(2)й(5) + А1 )Л(8)
Рис. 9.21. Интерполяция 1:3 с использованием многофазных фильтров: а) содержимое линии задерж-ки в два различных момента взятия выборки п и т; б) выходные выборки многофазных фильтров
Рис. 9.22. Реализация интерполяции 1:3 иа базе многофазных фильтров
Рис. 9.23. Общая модель интерполяции на базе многофазных фильтров (панель а). Коммутативная модель реализации (панель 6)
Рис. 9.24. Общая модель децимации на базе многофазных фильтров (панель а). Коммутативная модель реализации (панель б)
Примеры применения
Методы работы при нескольких скоростях ускорили развитие цифрового аудио. Например, в проигрывателях компакт-дисков они упрощают процесс цифроаналогового преобразования с поддержанием качества воспроизводимого звука. На передовом крае области цифровых аудиосистем была проделана значительная работа, чтобы объединить методы дельта-модуляции с обработкой при нескольких скоростях, что позволит получать высококачественные цифровые данные из аналоговых аудиосигналов.
В число других областей, в которых используются методы обработки при нескольких скоростях, входит сбор высококачественных цифровых данных, спектральный анализ с высоким разрешением, а также разработка и реализация узкополосной цифровой фильтрации.
Некоторые из подобных сфер применения обработки при нескольких скоростях описаны в следующих разделах.
Высококачественное аналого-цифровое преобразование в цифровом аудио
В сфере цифрового аудио постоянно требуется повышать качество, разрешение и скорость АЦП. Это привело к разработке однобитовых АЦП с использованием методов дельта-сигма-модуляции. В результате появилась возможность полностью отказаться от процесса преобразования на входе цифровых аудиосистем большинства аналоговых схем, в том числе аналоговых фильтров защиты от наложения спектров и схем выборки-хранения.
Упрощенная блок-схема быстрого однобитового процесса аналого-цифрового преобразования показана на рис. 9.25 [1, 12, 14]. Аналоговый аудиосигнал сперва преобразуется в однобитовый поток с помощью дельта-сигма-модуляции с частотой 3,072 МГц. Затем однобитовый поток выбирается с понижением частоты до 48 кГц с помощью многокаскадного дециматора и формируются 16-битовые слова РСМ. В настоящее время можно легко приобрести АЦП, в которых используются методы с обработкой при нескольких скоростях, например, 16- и 18-битовые стерео АЦП от Crystal Semiconductor (CS5326, CS5327, CS5328, CS5329) и Motorola Semiconductor (DSP56ADC16).
*(0.
Дельтасигма- модулятор
Одноби-
Деци матор
Код РСМ
0-20 кГц
поток
3,072 МГц
48 кГц
Рис. 9.25. Упрощенная блок-схема однобитового АЦП
Громкоговоритель
Рис. 9.26. Воспроизведение аудиосигнала в проигрывателе компакт-дисков
Эффективное аналого-цифровое преобразование в высококачественных системах воспроизведения компакт-дисков
Одним из первых серьезных приложений методов с обработкой при нескольких скоростях стало воспроизведение звука и музыки в проигрывателях компакт-дисков.
Рассмотрим рис. 9.26, на котором изображена схема восстановления аналогового аудиосигнала из цифрового сигнала, считываемого с компакт-диска. После декодирования и исправления ошибок цифровой сигнал имеет форму 16-битовых слов, представляющих акустическую информацию с частотой дискретизации 44,1 кГц.
Если эти цифровые коды непосредственно преобразовать в аналоговые, будут получены зеркальные полосы частот, центрированные на частотах, кратных частоте дискретизации 44,1 кГц. Хотя зеркальные частоты будут неслышны (они расположены вне полосы 0-20 кГц), при передаче их на усилитель и громкоговоритель проигрывателя может произойти переполнение или же они могут стать причиной перекрестных помех. Следовательно, частотные составляющие вне полосы частот исходного сигнала следует подавить не менее чем на 50 дБ. Если для такого подавления использовать аналоговые фильтры, придется следовать очень строгим спецификациям, кроме того нужна будет точная настройка, обеспечивающая согласованность двух стереоканалов.
Чтобы избежать указанных проблем, в проигрывателях компакт-дисков используется фильтрация с обработкой при нескольких скоростях. Конкретнее, частота дискретизации данных с помощью интерполяции увеличивается в 4 раза до 176 кГц (4 х 44,1 кГц= 176,4 кГц) перед подачей данных на ЦАП. Во временной области это выглядит как сигнал с более мелким масштабом. В частотной области зеркальные частоты теперь перенесены в диапазон более высоких частот, так что отфильтровать их стало легче. Следовательно, после цифроаналогового преобразования необходим только относительно простой фильтр нижних частот. При практической реализации цифровой фильтр вводит изменение характеристики по закону sin(z)/z (см. главу 2) для компенсации влияния схемы хранения, следующей за ЦАП. Коррекция характеристики по закону sin(x)/2; имеет положительный эффект подавления сигналов с обеих сторон частоты 174 кГц более чем на 18 дБ, что еще больше упрощает требования к филь-
трации аналоговых зеркальных компонентов. Для дополнительного подавления после интерполяции вводится простой фильтр Бесселя третьего порядка, имеющий частоту среза по уровню 3 дБ, равную 30 кГц, и линейную (в разумном приближении) фазовую характеристику в полосе пропускания.
Перевыборка данных с повышенной частотой также оказывает свое положительное влияние. Она снижает уровень шума, поскольку шум квантования теперь распределен по более широкой полосе, что позволяет использовать ЦАП с меньшим числом битов и тем же отношением сигнал-шум, что и в 16-битовом ЦАП. Следовательно, на рис. 9.26 интерполированные данные в форме 16-битовых слов после перевыборки и формирования спектра шума перед подачей на 14-битовый ЦАП округляются до 14 бит.
На рынке существуют и другие цифроаналоговые преобразователи, в которых использована представленная выше концепция выборки с повышенной частотой. Примеры: цифроаналоговые преобразователи потока битов от Philips Components (SAA7322, SAA7323, SAA7350).
Пример 9.5
Для ослабления требований к аналоговому фильтру подавления зеркальных частот в цифровой аудиосистеме используется дискретизация с повышенной частотой. Ниже приведена общая спецификация фильтра, используемого в системе:
полоса частот исходного сигнала
0-20 кГц,
входная частота дискретизации F,
44,1 кГц,
выходная частота дискретизации
176,4 кГц,
затухание в полосе подавления
50 дБ,
неравномерность в полосе пропускания
0,5 дБ,
ширина полосы перехода
2 кГц,
граничная частота полосы подавления
22,05 кГц.
Разработайте подходящий интерполятор.
Решение
Используя программу разработки системы с несколькими скоростями обработки (на компакт-диске к книге [Ifeachor, 2001], подробности см. в предисловии), получаем приведенные ниже шаги интерполяции и характеристики фильтров для возможных интерполяторов с целыми шагами.
Число Шаг каска- интер-
ДОВ ПОЛЯЦИИ, Li
Длина Нормированная Неравномерность Неравномерность фильтра, ширина полосыв полосев полосе
Ni перехода, △/< пропускания, 8Р подавления, 8,
14
22
2
1460,045350,059250,00316
60,261620,02960,00316
830,273240,02960,00316
Вид системы с двухкаскадным интерполятором представлен на рис. 9.27.
176,4 кШ176,4 кШ44,1 кГц44,1 кГц88,2 кШ88,2 кШ5Р| = 0.0296; 5S, =0,00316Д', =835Р| = 0.0296; 5S, =0,00316Д', =835р2 = 0,0296; 42 = 0,00316N2 =65р2 = 0,0296; 42 = 0,00316N2 =6Рис. 9.27. Двухкаскадный интерполятор из примера 9.5Рис. 9.27. Двухкаскадный интерполятор из примера 9.5Рис. 9.28. Простая система сбора данных с несколькими скоростями обработкиРис. 9.28. Простая система сбора данных с несколькими скоростями обработки
176,4 кШ
176,4 кШ
44,1 кГц
44,1 кГц
88,2 кШ
88,2 кШ
5Р| = 0.0296; 5S, =0,00316
Д', =83
5Р| = 0.0296; 5S, =0,00316
Д', =83
5р2 = 0,0296; 42 = 0,00316
N2 =6
5р2 = 0,0296; 42 = 0,00316
N2 =6
Рис. 9.27. Двухкаскадный интерполятор из примера 9.5
Рис. 9.27. Двухкаскадный интерполятор из примера 9.5
Рис. 9.28. Простая система сбора данных с несколькими скоростями обработки
Рис. 9.28. Простая система сбора данных с несколькими скоростями обработки
Сбор высококачественных данных
При сборе почти всех реальных данных требование незначительного наложения часто предписывает использовать относительно сложные аналоговые фильтры защиты от наложения спектров. В многоканальной системе каждый аналоговый канал должен соединяться с отдельным фильтром защиты от наложения спектров, поскольку уплотнить подобные фильтры довольно сложно. В системе с большим; числом аналоговых каналов (например, в биомедицине может требоваться до 32 каналов) использование аналоговых фильтров защиты от наложения спектров может быть очень дорогим. Применение более простых цифровых фильтров позволяет существенно снизить стоимость системы. Более того, можно не рассматривать проблему согласования по фазе строго заданных аналоговых фильтров. Также снимается проблема поддержки нескольких частот дискретизации (а каждая частота дискретизации требует иной частоты среза) при использовании аналоговых фильтров защиты от наложения спектров.
На рис. 9.28 приведена блок-схема системы сбора данных с несколькими скоростями обработки (согласно [13]). Желаемый уровень наложения достигается за счет RC-фильтров переднего края, выбирающих входной сигнал с повышенной частотой, а затем понижающих частоту до нужного уровня с помощью обработки при нескольких скоростях. Основная цена такого решения — АЦП должен работать быстрее.
8192 Гц512 Гц256 Гц8192 Гц512 Гц256 ГцО7090О7090
8192 Гц512 Гц256 Гц
8192 Гц512 Гц256 Гц
О7090
О7090
Рис. 9.29. Характеристика фильтра Баттерворта второго порядка (панель а). Спектр широкополосного сигналапосле ограничения полосы и дискретизации (панель б). Двухкаскадный дециматор из примера 9.6 (панель в)
Чтобы закрепить материал, представленный в данном разделе, и лучше понять выгоды цифровой реализации фильтра защиты от наложения спектров, рассмотрим на примере реальное приложение описанных концепций.
Пример 9.6
Требуется универсальная многоканальная (до 32 каналов) система сбора физиологических данных. Каждый аналоговый канал пользователь может настраивать отдельно, варьируя частоту среза от 0,5 до 200 Гц, а частоту дискретизации — от 1 до 1000 Гц. Общие требования ко всем каналам:
< 0,5 дБ,< 0,5 дБ,> 45 дБ (в полосе пропускания), 0,5 < /р < 200 Гц, <3/р.> 45 дБ (в полосе пропускания), 0,5 < /р < 200 Гц, <3/р.неравномерность в полосе пропускания отношение полезного сигнала к сигналу, который возник из-за наложения граничная частота полосы пропускания граничная частота полосы подавления
< 0,5 дБ,
< 0,5 дБ,
> 45 дБ (в полосе пропускания), 0,5 < /р < 200 Гц, <3/р.
> 45 дБ (в полосе пропускания), 0,5 < /р < 200 Гц, <3/р.
Амплитудное и фазовое искажение должно быть минимальным. Для снижения числа и стоимости компонентов, а также размера печатной платы на входе системы должны использоваться только простые аналоговые фильтры.
Решение
Для того чтобы выполнить фильтрацию и защитить от наложения спектры с использованием только аналоговых фильтров, необходимы фильтры очень больших порядков. Альтернативный подход — оснастить все каналы простыми идентичными фильтрами, которые будут выполнять выборку с общей частотой, а затем провести децимацию до желаемой частоты (частот), причем в каждом каскаде разрабатываемого фильтра следует удовлетворять заданным спецификациям.
Во всех каналах можно использовать простой однополюсный RC-фильтр, но, чтобы удовлетворять при этом спецификациям, потребуется очень большая частота дискретизации. Используем при разработке фильтр Баттерворта второго порядка, поскольку он хорошо себя зарекомендовал в реальной биомедицинской установке.
Амплитудная характеристика фильтра Баттерворта второго порядка записывается следующим образом:
А(п = [Г+Шгг ■
Сказанное иллюстрируется на рис. 9.29, а. Очевидно, что в полосе частот от 0 до /с существует значительная ошибка по амплитуде. Чтобы довести это значение до определенного спецификациями уровня, наивысшая частота, представляющая практический интерес (в нашем случае — 200 Гц), должна быть гораздо ниже /с. Чтобы вычислить значение /с, можно использовать уравнение
201g[l + (200//c)4]1/2 <0,5 дБ.
Решая уравнение относительно /с, находим, что /с > 338,39 Гц. Для удобства, а также, чтобы учесть дополнительные ошибки, которые могут вводиться на последующих этапах обработки, используем значение /с = 500 Гц. При таком /с характеристика на частоте 200 Гц снижается на 0,11 дБ.
Определим теперь общую частоту дискретизации для всех каналов. Ограничив полосу каждого канала с помощью фильтра Баттерворта второго порядка и дискретизации, получаем сигнал, спектр которого изображен на рис. 9.29, б (при широкополосном входном сигнале). Обращаясь к рисунку, видим, что требуется частота дискретизации F, такая, что на частоте fp (где /р = 200 Гц) уровень накладывающегося сигнала по крайней мере на 45 дБ ниже уровня сигнала:
201g {1 + [(Fs - 200/500)4]}1/2 > 45 дБ.
Из данного уравнения находим Fs и 6,67 кГц. Для удобства в процессе децимации выберем Fa = 8192 Гц. Общая спецификация подходящего универсального дециматора должна выглядеть приблизительно так:
8,192 кГц,1 Гц < Fs < 1000 Гц,50 дБ,0,01 дБ,0,5 Гц < /р < 200 Гц, 8,192 < М < 8192, <2/р.8,192 кГц,1 Гц < Fs < 1000 Гц,50 дБ,0,01 дБ,0,5 Гц < /р < 200 Гц, 8,192 < М < 8192, <2/р.входная частота дискретизации выходная частота дискретизации затухание в полосе подавления неравномерность в полосе пропускания граничная частота полосы пропускания шаг децимации
8,192 кГц,
1 Гц < Fs < 1000 Гц,
50 дБ,
0,01 дБ,
0,5 Гц < /р < 200 Гц, 8,192 < М < 8192, <2/р.
8,192 кГц,
1 Гц < Fs < 1000 Гц,
50 дБ,
0,01 дБ,
0,5 Гц < /р < 200 Гц, 8,192 < М < 8192, <2/р.
граничная частота полосы подавления
Для удобства наложим условие на частоту дискретизации Fs, которую может задавать пользователь. Это позволит проводить децимацию только с целыми шагами. Если обрабатывающей способности достаточно для реализации децимации с нецелым шагом, данное ограничение не нужно. Итак, предлагаются следующие возможные частоты дискретизации и соответствующие им шаги децимации:
М81632641282565121024204840968192
Fs (Гц)10245122561286432168421
При решении задачи можно считать, что система состоит из 11 многокаскадных дециматоров, а при заданной спецификации выбирается один из них.
В качестве иллюстрации рассмотрим систему сбора сигналов ЭЭГ. Каждый канал может иметь следующую пользовательскую спецификацию:
частота дискретизации256 Гц,
затухание в полосе подавления45 дБ,
неравномерность в полосе пропускания 0,5 дБ, полоса пропускания0-70 Гц.
На основе данной спецификации находим спецификацию преобразователя частоты, который согласуется со спецификацией описанного выше универсального дециматора:
8,192 кГц, 256 Гц, 32, 50 дБ, 0,01 дБ, 0-70 Гц, 90-128 Гц.8,192 кГц, 256 Гц, 32, 50 дБ, 0,01 дБ, 0-70 Гц, 90-128 Гц.входная частота дискретизации выходная частота дискретизации шаг децимации
8,192 кГц, 256 Гц, 32, 50 дБ, 0,01 дБ, 0-70 Гц, 90-128 Гц.
8,192 кГц, 256 Гц, 32, 50 дБ, 0,01 дБ, 0-70 Гц, 90-128 Гц.
затухание в полосе подавления неравномерность в полосе пропускания полоса пропускания полоса подавления
Используя программу разработки (компакт-диск к книге [Ifeachor, 2001]), получаем, что эффективным (с точки зрения вычислительной сложности и сложности системы) дециматором является двухкаскадная система, изображенная на рис. 9.29, в.
Пример 9.7
В системе цифровой обработки сигналов для преобразования входного аналогового аудиосигнала с диапазоном 0-20 кГц в цифровой поток битов с частотой 3,072 МГц используется метод выборки с повышенной частотой и дельта-сигма-модулятор первого порядка. Представление дельта-сигма-модулятора на z-плоскости показано на
Интеграторl£(z)
Примечание. Выходное преобразование, Y(z), дельта-сигма-модулятора первого порядка записывается следующим образом: У(г) = X(z) + 5(z)(l — z-1). Переменные имеют обычное значение.
Рис. 9.30
рис. 9.30. Определите общее улучшение отношения сигнал-шум квантования, которого можно добиться при выборке с повышенной частотой и формировании спектра шумов, оценив таким образом эффективное разрешение конвертера в битах.
Разработайте на уровне блок-схемы двухкаскадный дециматор, преобразующий выход дельта-сигма-модулятора, изображенного на рис. 9.30, из формы однобитового потока с частотой 3,072 МГц в многобитовый поток с частотой 48 кГц. Неравномерности в полосе пропускания и полосе подавления равны соответственно 0,001 и 0,0001.
Ответ должен включать следующие элементы:
значения общих шагов децимации и интерполяции плюс (кратко) ход их вычисления;
значения пар шагов децимации и интерполяции для двухкаскадных преобразователей частоты дискретизации плюс подробный анализ вычислительной сложности и требований к памяти, оправдывающий сделанный выбор;
спецификацию граничных частот, длин, неравномерности в полосе пропускания и полосе подавления фильтров защиты от наложения спектров и подавления зеркальных частот.
Примечание; можно считать, что используются КИХ-фильтры, реализованные в прямой форме, длина которых определяется следующим образом:
длина фильтра, N = '
14,
где
Д/ — нормированная ширина полосы перехода.
Решение
Передаточная функция шума равна
Амплитудная характеристика равна
И;)|= |(1-е-^)| =
I lz=e,wT
= [(1 — совшТ)2 + sin2 сиТ*] ^ .
При / = 20 кГц Fs = 3,072 МГц, шТ = 2,3438° и ^(eIU'T)| = 0,0409. Это эквивалентно уменьшению уровня шума квантования на 27,76 дБ.
Общий шаг децимации равен 64 (находится как отношение входной частоты дискретизации к выходной). При таком общем шаге и двухкаскадной реализации есть три возможные комбинации шагов: 8 х 8,16 х 4 и 32 х 2. Мерой вычислительной сложности являются общая требуемая память (ОТП) и число умножений в секунду (УВС). Для дециматора 8x8 частоты дискретизации на выходе поддециматоров равны 384 и 48 кГц. Граничные частоты первого фильтра защиты от наложения спектров: 0, 20 и 360 кГц, откуда находим нормированную ширину перехода — 0,1106. Неравномерность в полое пропускания и заграждения равна 0,001/2=0,0005 и 0,0001 соответственно. Используя эти значения, получаем Nx = 38. Для второго каскада граничные частоты равны 0, 20 и 24 кГц, а нормированная ширина полосы перехода равна 0,0104 и ^2 = 396.
Подобным образом для структуры 16 х 4 получаем частоты 192 и 48 кГц. Первый фильтр защиты от наложения спектров характеризуется граничными частотами 0, 20 и 168 кГц, шириной перехода 0,048 и ^2 = 198. Частоты дискретизации структуры 32 х 2 равны 96 и 48 кГц. Граничные частоты соответствующего фильтра защиты от наложения спектров — 0, 20 и 72 кГц. Ширина перехода 0,0169, Nx = 244; второй фильтр характеризуется граничными частотами 0, 20 и 24 кГц, шириной перехода 0,04166 и ^2 = 100.
В следующей таблице представлена вычислительная сложность названных структур: Мх х М2 Память УВС
8x143433,6 х 106
16 x 428426,01 х106
32 x 23 8428,82 х 106
Из приведенного анализа видно, что наиболее эффективной является структура 16 х 4. Блок-схема этой структуры представлена на рис. 9.31.
Рис. 9.31
Рис. 9.32. Узкополосная фильтрация с обработкой при нескольких скоростях
Узкополосная цифровая фильтрация с обработкой при нескольких скоростях
Узкополосные цифровые фильтры характеризуются полосами пропускания, очень малыми по сравнению с частотой дискретизации, и резкими переходами между полосами пропускания и подавления. В результате узкополосные КИХ-фильтры описываются очень большим числом коэффициентов, а так как подобные структуры весьма чувствительны к эффектам конечной разрядности (например, шуму округления и ошибкам квантования коэффициентов), возникают проблемы при их разработке и реализации. Более того, требуется больше памяти и вычислительных ресурсов. Названные проблемы можно решить с помощью обработки при нескольких скоростях, в результате будут получены КИХ-фильтры, вычислительная эффективность которых сравнима с эффективностью эллиптических БИХ-фильтров.
На рис. 9.32 приведена простая схема фильтрации с обработкой при нескольких скоростях. Частота дискретизации входной последовательности вначале с помощью децимации предельно уменьшается, затем на низкой частоте выполняется необходимая фильтрация, наконец с помощью интерполяции фильтрованные данные приводятся к исходной частоте дискретизации. Использование одинаковых шагов при децимации и интерполяции гарантирует, что входной сигнал х(п) и выходной сигнал у (ri') будут иметь равные частоты дискретизации.
Узкополосные полосовые фильтры и фильтры нижних частот
Если требуется реализовать фильтр нижних частот с использованием обработки при нескольких скоростях, то в схеме на рис. 9.32 фильтры /ii(fc) и h2(к) можно сделать фильтрами нижних частот, при этом фильтр h3(k') становится лишним. Если принять такой подход, то дальнейшая разработка должна быть нацелена на то, чтобы общие характеристики входа-выхода структуры на рис. 9.32 были эквивалентны характеристикам нужного обычного фильтра нижних частот. Практически же полученные характеристики будет отличаться от характеристик обычного фильтра нижних частот вследствие эффектов наложения и появления зеркальных частот. Чтобы общая система удовлетворяла искомым спецификациям, фильтры hjk) и h2(k') берутся идентичными, неравномерность в полосе пропускания каждого равна 5р/2, неравномерность в полосе подавления — 5S, причем 5Р и 5S — неравномерность в полосе пропускания и полосе подавления эквивалентного фильтра нижних частот соответственно.
Рис. 9.33. Узкополосная полосовая фильтрация с обработкой при нескольких скоростяхРис. 9.33. Узкополосная полосовая фильтрация с обработкой при нескольких скоростях
Рис. 9.33. Узкополосная полосовая фильтрация с обработкой при нескольких скоростях
Рис. 9.33. Узкополосная полосовая фильтрация с обработкой при нескольких скоростях
Создать полосовой фильтр с обработкой при нескольких скоростях немного сложнее, особенно если требуется разработать так называемый полосовой фильтр с целой полосой (или целополосной фильтр) (integer-band bandpass filter), где граничные частоты кратны наименьшей частоте дискретизации системы, т.е. FS/2M. В таких случаях шаг децимации/интерполяции М и граничные частоты фильтра удовлетворяют следующим условиям [8]:
М = FS/2(LU - fsl),М = FS/2(LU - fsl),fsi = kFs /М, к — целое,fsi = kFs /М, к — целое,А» = (к + l)fs/M,А» = (к + l)fs/M,(9.17, а)(9.17,6)(9.17, в)(9.17, а)(9.17,6)(9.17, в)
М = FS/2(LU - fsl),
М = FS/2(LU - fsl),
fsi = kFs /М, к — целое,
fsi = kFs /М, к — целое,
А» = (к + l)fs/M,
А» = (к + l)fs/M,
(9.17, а)
(9.17,6)
(9.17, в)
(9.17, а)
(9.17,6)
(9.17, в)
где fst и Аи — нижняя и верхняя граничные частоты полосы подавления соответственно. В уравнении (9.17, а) выражен максимально возможный шаг децимации, а в уравнениях (9.17, б и в) задаются верхний и нижний края полосы подавления и число полосы к.
Простой, но менее эффективной альтернативой полосовой фильтрации с обработкой при нескольких скоростях является схема, в которой данные вначале проходят децимацию с максимально большим шагом с использованием подходящих фильтров нижних частот (как и выше), затем подаются на полосовой фильтр для понижения частоты сигнала, а после этого восстанавливаются с помощью интерполяции до нужной частоты. Данный подход иллюстрируется на рис. 9.33. Очевидно, что требуется следить, чтобы в процессе децимации и интерполяции желаемая полоса пропускания не подвергалась эффектам наложения и появления зеркальных частот.
Узкополосные фильтры верхних частот и режекторные фильтры
Узкополосные фильтры верхних частот и режекторные фильтры можно реализовать как дуальные к фильтрам нижних частот и полосовым соответственно:
Hhp(w) = 1 - Яфнч(ш),(9.18, а)
Рис. 9.34. Реализация с обработкой при нескольких скоростях фильтра нижних частот и ре- жекторного фильтра как дуальных к фильтру нижних частот и полосовому фильтру: а) фильтр верхних частот; б) режекторный фильтрРис. 9.34. Реализация с обработкой при нескольких скоростях фильтра нижних частот и ре- жекторного фильтра как дуальных к фильтру нижних частот и полосовому фильтру: а) фильтр верхних частот; б) режекторный фильтр
Рис. 9.34. Реализация с обработкой при нескольких скоростях фильтра нижних частот и ре- жекторного фильтра как дуальных к фильтру нижних частот и полосовому фильтру: а) фильтр верхних частот; б) режекторный фильтр
Рис. 9.34. Реализация с обработкой при нескольких скоростях фильтра нижних частот и ре- жекторного фильтра как дуальных к фильтру нижних частот и полосовому фильтру: а) фильтр верхних частот; б) режекторный фильтр
Структура реализации ВЧ- и режекторных фильтров изображена на рис. 9.34. Для фильтра верхних частот, например, сигнал т(п) вначале проходит через фильтр нижних частот. Затем отфильтрованный сигнал вычитается из нефильтрованного сигнала, в результате получается нужный сигнал. Отметим, что перед вычитанием сигнал z(n) нужно задержать на время, равное задержке фильтра нижних частот. Очевидно, что для этого задержка при прохождении фильтра нижних частот должна выражаться целым числом выборок. Еще одно замечание: чтобы получить необходимый фильтр верхних частот, при разработке фильтра нижних частот следует использовать скорректированные спецификации полосы пропускания и полосы подавления.
Пример 9.8
В связи с исследовательским проектом в сфере наблюдения за плодом возникла необходимость оценить влияние системы измерения (электрокардиограмма — ЭКГ) на электрическую активность сердца плода [15]. Для этого требуется количественно оценить некоторые элементы ЭКГ, включая основной частотный спектр сигнала. Поскольку сигнал имеет составляющие в окрестности промышленной частоты (50 Гц), нужно использовать фильтр с очень узкой полосой, который подчиняется следующим требованиям:
49-51 Гц,47 и 53 Гц,30 дб (5Р = 0,03162), 0,1 дБ (8, = 0,011579), 500 Гц.49-51 Гц,47 и 53 Гц,30 дб (5Р = 0,03162), 0,1 дБ (8, = 0,011579), 500 Гц.полоса пропускания
49-51 Гц,
47 и 53 Гц,
30 дб (5Р = 0,03162), 0,1 дБ (8, = 0,011579), 500 Гц.
49-51 Гц,
47 и 53 Гц,
30 дб (5Р = 0,03162), 0,1 дБ (8, = 0,011579), 500 Гц.
граничные частоты полосы подавления затухание в полосе подавления неравномерность в полосе пропускания частота дискретизации
Решение
Если использовать прямую реализацию требуемой системы, то из уравнения (9.3) следует, что нам понадобится 4018 коэффициентов, что слишком много.
При использовании обработки при нескольких скоростях есть несколько альтернатив. Одна из них — это провести децимацию данных до максимально возможной низкой частоты дискретизации (согласующейся с приведенной выше спецификацией) (см. также задачу 9.6). В данном случае самая низкая частота — 125 Гц, поскольку это еще позволяет использовать полосу от 0 до 62,5 Гц. Приведем общую спецификацию дециматора:
Рис. 9.35. Дециматор для уменьшения частоты ЭКГ-данныхРис. 9.35. Дециматор для уменьшения частоты ЭКГ-данных
Рис. 9.35. Дециматор для уменьшения частоты ЭКГ-данных
Рис. 9.35. Дециматор для уменьшения частоты ЭКГ-данных
0,05 дБ (6Р = 0,0057895), 30 дБ (<$, = 0,03162), 0-53 Гц, 500 Гц, 125 Гц.0,05 дБ (6Р = 0,0057895), 30 дБ (<$, = 0,03162), 0-53 Гц, 500 Гц, 125 Гц.неравномерность в полосе пропускания затухание в полосе подавления
0,05 дБ (6Р = 0,0057895), 30 дБ (<$, = 0,03162), 0-53 Гц, 500 Гц, 125 Гц.
0,05 дБ (6Р = 0,0057895), 30 дБ (<$, = 0,03162), 0-53 Гц, 500 Гц, 125 Гц.
полоса пропускания
входная частота дискретизации
выходная частота дискретизации
Шаг децимации равен 4. С помощью программы разработки, представленной на компакт-диске к книге [Ifeachor, 2001] (подробности см. в предисловии), был построен двухкаскадный дециматор (см. рис. 9.35). Для получения коэффициентов фильтров использовался оптимальный метод (см. главу 7). ЭКГ-данные проходят децимацию с помощью фильтров и программы, представленной в разделе 9.4. Примеры данных до и после децимации изображены на рис. 9.36.
Отметим, что существует реальный промышленный фильтр, удовлетворяющий спецификациям, представленным в задаче (но при иной, пониженной частоте дискретизации). В нашем случае число коэффициентов фильтра равно 113,4 (<5Р = 0,0057895, 5S = 0,03162). Для восстановления данных после фильтрации до исходной частоты дискретизации можно использовать интерполяцию.
Пример 9.9
Разработайте подходящий фильтр нижних частот с обработкой при нескольких скоростях, предназначенный для удаления смещения базовой линии в ЭКГ плода. Фильтр должен удовлетворять следующим спецификациям:
полоса пропускания0-0,4 Гц,
полоса подавления0,5-250 Гц,
неравномерность в полосе пропускания0,01,
неравномерность в полосе подавления0,001,
частота дискретизации500 Гц.
Решение
Проведем вначале децимацию до частоты 1 Гц, а затем интерполируем сигнал до требуемых 500 Гц. При таком подходе общая спецификация фильтра в дециматоре запишется так:
33-200"-400-600-800--J000--1200-1400-1600-200"-400-600-800--J000--1200-1400-1600Время (с) а)Время (с) а)
3
3
-200"
-400
-600
-800-
-J000-
-1200
-1400
-1600
-200"
-400
-600
-800-
-J000-
-1200
-1400
-1600
Время (с) а)
Время (с) а)
-1600i ГД Д ГтГГ^Г
О О — — ГЧ ri —1
Время (с)
6)
Рис. 9.36. Необработанные ЭКГ-данные (па-нель а); ЭКГ-данные после децимации (выров-нены с учетом задержки) (панель б)
0,01, 0,001, 0,5 Гц, 0-0,4 Гц, 500 Гц, 500.0,01, 0,001, 0,5 Гц, 0-0,4 Гц, 500 Гц, 500.неравномерность в полосе пропускания неравномерность в полосе подавления граничная частота полосы подавления полоса пропускания
0,01, 0,001, 0,5 Гц, 0-0,4 Гц, 500 Гц, 500.
0,01, 0,001, 0,5 Гц, 0-0,4 Гц, 500 Гц, 500.
частота дискретизации
шаг децимации
С помощью программы разработки (книга [Ifeachor, 2001], подробности см. в предисловии) были рассчитаны различные практические дециматоры, включающие до четырех каскадов. Характеристики наиболее интересных из них сведены в табл. 9.6. С учетом вычислительной сложности в качестве лучшего решения был выбран трехкаскадный дециматор, изображенный на рис. 9.37. Как и ранее, при вычислении коэффициентов фильтров использовалась программа оптимальной разработки (см. главу 7).
Таблица 9.6. Резюме по эффективным дециматорам
Число каскадов
УВС
ОТП
Mi
Длина фильтра Ni
Граница полосы пропускания /р, Гц
Граница полосы подавления, Гц
Нормированная ширина полосы перехода
Неравномерность в полосе пропускания
Неравномерность в полосе подавления
1
500
12 707
0,4
0,5
0,002 2
0,01
0,001
2
1807
430
50
153
0,4
9,5
0,018 20
0,005
0,001
10
277
0,4
0,5
0,01
0,005
0,001
3
1705
189
25
77
0,4
19,5
0,038 20
0,0033
0,001
10
53
0,4
1,5
0,055
0,0033
0,001
2
59
0,4
0,5
0,05
0,0033
0,001
4
1444
172
2
2
0,4
249,5
0,498 2
0,0025
0,001
25
83
0,4
9,5
0,036 40
0,0025
0,001
5
27
0,4
1,5
0,110 00
0,0025
0,001
2
60
0,4
0,5
0,050 0
0,0025
0,001
4
1724
169
25
79
0,4
19,5
0,038 20
0,0025
0,001
2
3
0,4
9,5
0,455 00
0,0025
0,001
5
27
0,4
1,5
0,110 0
0,0025
0,001
2
60
0,4
0,5
0,050 0
0,0025
0,001
500 Гц500 Гц20 ГЦ20 ГЦ2 Гц2 Гц
500 Гц
500 Гц
20 ГЦ
20 ГЦ
2 Гц
2 Гц
Рис. 9.37. Трехкаскадный дециматор из примера 9.9
Узкополосный спектральный анализ с высоким разрешением
Как говорится в главе 11, важной сферой применения БПФ является оценка спектра сигналов. БПФ выдает спектральные составляющие сигнала, расположенные через равные промежутки в диапазоне от 0 до половины частоты дискретизации. Во многих приложениях, таких как гидролокация, сейсмология, радиолокация, биомедицина и анализ механических колебаний (виброанализ), нужный сигнал может занимать только узкую полосу в спектре полученных данных. В таких случаях прямое использование БПФ потребует значительных и ненужных вычислений. Для выделения и трансляции нужной полосы частот на более низкую частоту перед применением БПФ можно использовать обработку при нескольких скоростях, что позволит значительно снизить объем вычислений, а также использовать компромиссы между разрешением и вычислительной сложностью.
Применение БПФ к данным, выбранным с пониженной частотой, дает эквивалентное разрешение при значительно сокращенных вычислениях или большее разрешение
при примерно таком же объеме вычислений, если сравнивать с прямым применением БПФ к исходной последовательности. Итак, выборка с пониженной частотой позволяет эффективно получать спектр узкополосного сигнала в увеличенном масштабе.
Узкополосный спектральный анализ с использованием обработки при нескольких скоростях — это, по сути, расширение описанной ранее узкополосной полосовой фильтрации, так что он имеет те же ограничения. Сигнал вначале проходит полосовую фильтрацию для выделения нужной полосы частот. Затем частота дискретизации отфильтрованного сигнала уменьшается с помощью децимации до Fs/M, где Fs — частота дискретизации сигнала х(п\ После этого с помощью БПФ вычисляется спектр значительно сокращенной последовательности у(пу Для компенсации ошибок, внесенных в спектр вследствие неравномерности полосы сигнала /г(п), используется поправочный коэффициент. Если нужная полоса частот не удовлетворяет условиям, то можно использовать несколько более широкую полосу частот, содержащую необходимую полосу. Альтернативный подход — использовать метод, описанный в [11 ], который включает компьютерный поиск допустимых шагов децимации.
9.8. Резюме
Цифровые системы, поддерживающие несколько частот дискретизации, называются системами с обработкой при нескольких скоростях. Двумя ключевыми элементами таких систем являются дециматор и интерполятор. Дециматор позволяет эффективно уменьшать частоту сигнала в целое число М раз или в рациональное число раз L/M (L < М). Интерполятор, наоборот, позволяет увеличивать частоту дискретизации в целое число L раз или в рациональное число раз L/M (L > М\
На практике изменения частоты дискретизации реализуются в двух или более каскадах для достижения максимальной вычислительной эффективности или минимальных требований к памяти. Цифровые фильтры, используемые в системах с обработкой при нескольких скоростях, имеют не такие строгие спецификации, что выражается в меньшем числе коэффициентов, а следовательно, меньшей чувствительности к эффектам конечной разрядности. Практический метод разработки простых преобразователей частоты подробно описан в данной главе.
Основное достоинство систем с обработкой при нескольких скоростях — это возможность использования преимуществ цифровой обработки сигналов, в частности, использования ЦОС для ограничения полосы сигнала почти до частоты Найквиста со значительным затуханием и без нарушения условий теоремы о частотном представлении. Преимущества такого подхода проявились во многих областях, включая воспроизведение компакт-дисков, цифровую фильтрацию, сбор данных и сбор данных с высоким разрешением. Многие из таких систем подробно описаны в главе, особое внимание уделено элементам с обработкой при нескольких скоростях.
Компакт-диск к книге [Ifeachor, 2001] (подробности см. в предисловии) содержит набор программ на языке С, позволяющий создавать и воплощать в программной форме системы с обработкой при нескольких скоростях. Использование MATLAB для систем цифровой обработки при нескольких скоростях описано в приложении 9Б.
1В1И|||И^
Однокаскадный дециматор характеризуется следующими параметрами:
шаг децимации 3
коэффициенты фильтра защиты от наложения спектров:
/i(0) = -0,06 =/i(4),
/i(l) = 0,30 = /i(3), /i(2) = 0,62.
Существует ряд данных х(п): {6, —2, -2,8,6,4, —2}. Определите выход фильтра w(n) и выход дециматора у(т).
1. На рис. 9.38 приведена блок-схема трехкаскадного дециматора, предназначенного для уменьшения частоты дискретизации с до 1 кГц. Предполагая, что шаги децимации равны 8, 4 и 2, укажите частоту дискретизации на выходе каждого каскада.
Пусть дециматор из п. 1 удовлетворяет следующим спецификациям:
входная частота дискретизации, Fs96 кГц,
шаг децимации, М96,
неравномерность в полосе пропускания0,01 дБ,
неравномерность в полосе подавления60 дБ,
существенная полоса частот0-450 Гц.
Определите граничные частоты фильтров каждого каскада.
Пусть входная и выходная частоты дискретизации дециматора равны 96 и 1 кГц соответственно.
А. Запишите общий шаг децимации.
Б. Запишите все возможные наборы целых шагов децимации (в убывающем порядке), предполагая двухкаскадную реализацию.
В. Повторите п. Б., предполагая трехкаскадную реализацию.
Г. Повторите п. Б., предполагая четырехкаскадную реализацию.
Для дециматора из п. 1 вычислите общее число операций умножения в секунду (УВС) и общую требуемую память (ОТП).
Рис. 9.38Рис. 9.38
Рис. 9.38
Рис. 9.38
1. Разработайте на уровне блок-схемы двухкаскадный дециматор, перевыбирающий аудиосигнал с понижением частоты в 32 раза и удовлетворяющий приведенным ниже спецификациям. В ответе следует указать подходящую пару шагов децимации плюс подробный (в разумных пределах) анализ вычислительной сложности и требований к памяти, аргументирующий сделанный выбор. Для каждого фильтра задайте частоты дискретизации на входе и выходе каждого каскада, а также следующие параметры: граничные частоты, нормированная ширина полосы перехода,
неравномерность в полосе пропускания и полосе подавления, длина фильтра.
При решении предполагается использовать реализованные в прямой форме КИХ-фильтры с длиной
длина фильтра, М =146Д/
где
А/ - нормированная ширина полосы перехода.
С помощью схем покажите, что дециматор с приведенными ниже спецификациями защищает от наложения существенную полосу частот (0-3,4 кГц).
Входная частота дискретизации, Fs256 кГц.
Наивысшая существенная частота данных 3,4 кГц.
Неравномерность в полосе пропускания, 5Р 0,05.
Неравномерность в полосе подавления, 5S 0,01.
Разработайте дециматор для высококачественной системы сбора данных со следующими общими спецификациями фильтра:
аудиополоса0-20 кГц,
входная частота дискретизации3,072 МГц,
выходная частота дискретизации48 кГц,
неравномерность в полосе пропускания <0,001 дБ, затухание в полосе подавления>86 дБ.
Требуется вычислить спектр узкополосного сигнала, вложенного в широкополосный. Важна полоса частот 49-51 Гц, но составной сигнал занимает полосу 0-100 Гц. При выборке составного сигнала с частотой 1 кГц получена N- точечная последовательность х(п\
Проиллюстрируйте получение спектра желаемого сигнала с использованием обработки при нескольких скоростях.
Оцените вычислительные преимущества обработки при нескольких скоростях перед обычным БПФ. Сравните разрешение спектров, полученных обоими методами.
Для извлечения и оценки компонентов сигнала, внесенных питающей сетью, требуется высококачественный эффективный узкополосный фильтр. Фильтр должен удовлетворять следующим спецификациям:
полоса пропускания49-51 Гц,
граничные частоты полосы подавления 48 и 52 Гц, затухание в полосе подавления60 дБ,
неравномерность в полосе пропускания 0,01 дБ, частота дискретизации1 000 Гц.
Разработайте подходящий фильтр, используя обработку при нескольких скоростях.
Требуется интерпретировать активность в определенном физиологическом сигнале, выбираемом с частотой 256 Гц. Для этого во временной и частотной областях требуется извлечь и проанализировать характерные элементы каждой полосы. На первом этапе, расщеплении сигнала на указанные ниже полосы, разработайте подходящую систему с обработкой при нескольких скоростях.
.0,5-4 Гц
4-8 Гц
8-13 Гц
13-16 Гц
Система с обработкой при нескольких старостях должна вводить в полосы неравномерность не более 0,01 дБ, а внеполосные сигналы должны подавляться минимум на 50 дБ.
В системе цифровой обработки сигналов для преобразования входного аналогового аудиосигнала с диапазоном 0-20 кГц в цифровой поток битов с частотой 3,072 МГц используется метод перевыборки с повышением частоты и дельтасигма-модулятор первого порядка. Модель дельта-сигма-модулятора в z-области изображена на рис. 9.39.
Определите общее улучшение отношения сигнал-шум квантования при пере- выборке и формировании спектра шума, оценив таким образом эффективное разрешение конвертера в битах.
Разработайте на уровне блок-схемы двухкаскадный дециматор для преобразования выхода дельта-сигма-модулятора, изображенного на рис. 9.39, из формы однобитового потока с частотой дискретизации 3,072 МГц в многобитовый поток с частотой 48 кГц. Неравномерности в полосе пропускания и полосе подавления равны 0,001 и 0,0001 соответственно.
Ответ должен включать следующие составляющие:
значения общих шагов децимации и интерполяции с указанием того, как они были получены;
значения пар шагов децимации и интерполяции для двухкаскадных преобразователей частоты с подробным анализом вычислительной сложности и требований к памяти, оправдывающих сделанный выбор;
спецификацию граничных частот, длин, неравномерности в полосе пропускания и подавления для фильтров защиты от наложения спектров и подавления зеркальных частот.
При ответе можно предполагать, что используются КИХ-фильтры, реализованные в прямой форме, а их длина определяется соотношением
длина фильтра, ^ =длина фильтра, ^ =-ioig(W-i3 г14, еду-ioig(W-i3 г14, еду
длина фильтра, ^ =
длина фильтра, ^ =
-ioig(W-i3 г
14, еду
-ioig(W-i3 г
14, еду
где
ДУ - нормированная ширина полосы перехода.
а. Объясните с помощью надлежащей блок-схемы принципы цифровой НЧ- фильтрации с обработкой при нескольких скоростях с использованием структуры дециматор/интерполятор. Назовите основные недостатки цифровой фильтрации с обработкой при нескольких скоростях.
б. Проанализировав однокаскадный фильтр нижних частот с обработкой при нескольких скоростях, покажите, что, если шаг децимации больше 2, использование обработки при нескольких скоростях вычислительно выгоднее по сравнению с реализациями, которые дают обычные фильтры с фиксированной скоростью обработки.
Продолжите анализ и покажите, что при уменьшении ширины полосы фильтра нижних частот вычислительное преимущество фильтров с обработкой при нескольких скоростях растет. Прокомментируйте практические следствия этого факта.
Требуется фильтр нижних частот, удовлетворяющий следующим специфика
циям:
4 Гц, 6,25 Гц, 0,001, 0,0001, 500 Гц.4 Гц, 6,25 Гц, 0,001, 0,0001, 500 Гц.граничная частота полосы пропускания граничная частота полосы подавления неравномерность в полосе пропускания неравномерность в полосе подавления частота дискретизации
4 Гц, 6,25 Гц, 0,001, 0,0001, 500 Гц.
4 Гц, 6,25 Гц, 0,001, 0,0001, 500 Гц.
Разработайте на уровне блок-схемы эффективный фильтр с обработкой при нескольких скоростях согласно приведенным выше спецификациям. При разработке используйте двухкаскадный дециматор и двухкаскадный интерполятор. Ответ должен включать следующие элементы:
значения общих шагов децимации и интерполяции плюс указания по их получению;
значения пар шагов децимации и интерполяции для двухкаскадных преобразователей частоты с подробным анализом вычислительной сложности и требований к памяти, оправдывающих сделанный выбор;
блок-схемы фильтра нижних частот с обработкой при нескольких скоростях с соответствующими пометками;
спецификацию граничных частот, длин, неравномерности в полосе пропускания и подавления для фильтров защиты от наложения спектров и подавления зеркальных частот.
Сравните вычислительную сложность фильтра из п. 2 с обычным КИХ- фильтром, реализованным в прямой форме. Ответ прокомментируйте.
При ответе можно предполагать, что в разработке используются КИХ-филь- тры, реализованные в прямой форме и имеющие длину
,-юшл) -13 ,
длина фильтра, =■ -. ,h 1,
14,6Д/
где
А/ — нормированная ширина полосы перехода.
1. Объясните роль следующих компонентов системы обработки при нескольких скоростях:
фильтр для децимации;
компрессор частоты дискретизации.
Требуется разработать двухкаскадный дециматор для системы обработки аудиосигналов при нескольких скоростях, удовлетворяющий следующим спе
цификациям:
входная частота дискретизации, Fa96 кГц,
шаг децимации, М96,
наивысшая существенная частота, fp450 Гц,
неравномерность в полосе пропускания, 5Р 0,05, неравномерность в полосе подавления, 5а 0,01.
В ходе предварительного изучения задачи с помощью программных средств была получена информация, представленная в табл. 9.7. Используя данную информацию и спецификации:
разработайте на уровне блок-схемы двухкаскадный дециматор; в ответе нужно указать подходящую пару шагов децимации (с аргументацией выбора) и частоту дискретизации на входе и выходе каждого каскада;
Таблица 9.7. Данные для разработки двухкаскадного дециматора
#
Mi
М2
Ni
n2
УВС
ОТП
0
2
48
2
2651
2 747 000
2653
1
3
32
6
1768
1 960 000
1774
2
4
24
10
1326
1 566 000
1336
3
6
16
17
885
1 157 000
902
4
8
12
24
664
952 000
688
5
12
8
38
443
747 000
481
6
16
6
53
333
651 000
386
7
24
4
88
222
574 000
310
8
32
3
131
167
560 000
298
9
48
2
254
112
620 000
366
Примечания: #номер варианта структуры,
Mi, М2пара шагов децимации для каскадов 1 и 2,
Ni, Niчисло коэффициентов фильтра для каскадов 1 и 2,
УВСчисло умножений в секунду,
ОТПобщая требуемая память.
определите для каждого каскада дециматора следующие параметры фильтров:
граничные частоты,
нормированная ширина полосы перехода,
неравномерность в полосе пропускания и подавления, число коэффициентов фильтра;
покажите с помощью соответствующих схем, что важная полоса частот (0-450 Гц) защищена дециматором от наложения.
Следует разработать двухкаскадный дециматор для системы обработки аудиосигналов при нескольких скоростях согласно следующим спецификациям:
входная частота дискретизации, Fs96 кГц,
шаг децимации, М96,
наивысшая существенная частота, /р450 Гц,
неравномерность в полосе пропускания, 5Р 0,05, неравномерность в полосе подавления, 6S 0,01.
В ходе предварительного изучения задачи с помощью программных средств была получена информация, представленная в табл. 9.7. Используя данную информацию и спецификации,
определите оптимальные шаги децимации каскадов, используя уравнение (9.11);
округлите шаги децимации до ближайших целых и получите правильный общий шаг децимации;
сравните результат с результатом, полученным в задаче 9.10.2.
Задачи для решения с помощью MATLAB
Непрерывный сигнал характеризуется следующим уравнением:
x(t) = .Acos^TrfH) + В cos(27rf2£).
Эквивалентный сигнал дискретного времени х^пТ) получается дискретизацией непрерывного сигнала с частотой
С помощью MATLAB получите 1000 выборок непрерывного сигнала. Предполагайте, что F, = 5000 Гц, fi = 50 Гц, f2 = 100 Гц, А = 2 и В = 1.
Используйте функцию decimate для снижения частоты дискретизации в 10 раз.
Используйте функцию interp для увеличения частоты дискретизации данных после децимации в 4 раза.
Укажите подходящее число выборок всех дискретных сигналов, полученных в п. 1-3, используя функцию stem. Прокомментируйте результаты.
Повторно решите задачу 9.12, используя функцию resample. Изобразите амплитудно-частотную характеристику внутреннего фильтра, применяемого при повторной выборке.
Повторно решите задачу 9.12, используя функцию upfirdn и подходящий КИХ-фильтр нижних частот, разработанный с помощью оптимального метода. Перечислите коэффициенты фильтра и изобразите его амплитудно-частотную характеристику. Укажите сделанные предположения.
Повторно решите задачу 9.14, используя функцию resample.
1. Разработайте на уровне блок-схемы двухкаскадный дециматор, перевыбирающий аудиосигнал с понижением частоты в 30 раз, согласно следующим
спецификациям:
входная частота дискретизации, Fs240 кГц,
наивысшая важная частота в данных 3,4 кГц, неравномерность в полосе пропускания, 6Р 0,05, неравномерность в полосе подавления, 6S 0,01,
длина фильтра, N =длина фильтра, N =^wigM)14,6Д/^wigM)14,6Д/
длина фильтра, N =
длина фильтра, N =
^wigM)
14,6Д/
^wigM)
14,6Д/
где
Д/ — нормированная ширина полосы перехода
Шаги децимации в каскадах 1 и 2 считайте равными 15 и 2 соответственно.
Используя оптимальный метод, вычислите коэффициенты и изобразите амплитудно-частотную характеристику фильтров защиты от наложения секторов в каскадах 1 и 2.
Проверьте дециматор, используя подходящие функции MATLAB и дискретный сигнал, полученный из следующего непрерывного сигнала:
х(£} = 2 sin(27rl00t) + 2 sin(27rl000t) + 2sin(2Tr3400t).
Литература ..'. д
Adams R. W. (1986) Design and implementation of an audio 18 bit analog-to-digital converter using oversampling techniques. J. Audio Engineering Society, 34(3), 153-166.
Agrawal В. P. and Shenoi K. (1983) Digital methodology for SAM. IEEE Trans. Communications, 31(3), 360-370.
Claasen T. A. С. M., Mecklenbrauker W. F. G., Peek J. В. H. and Van Hurck N. (1980) Signal processing method for improving the dynamic range of A/D and D/А converters. IEEE Trans. Acoustics, Speech and Signal Processing, 28(5), 529-538.
Crochiere R. E. and Rabiner L. R. (1975) Optimum FIR digital filter implementations for decimation, interpolation, and narrow-band filtering. IEEE Trans. Acoustics, Speech and Signal Processing, 23(5), 444-456.
Crochiere R. E. and Rabiner L. R. (1976) Further considerations in the design of decimators and interpolators. IEEE Trans. Acoustics, Speech and Signal Processing, 24, 296-311.
Crochiere R. E. and Rabiner L. R. (1979) A program for multistage decimation, interpolation, and narrow band filtering. In IEEE Programs for DSP. Institute of Electrical and Electronics Engineers.
Crochiere R. E. and Rabiner L. R. (1981) Interpolation and decimation of digital signals — a tutorial review. Proc. IEEE, 69(3), 300-331.
Crochiere R. E. and Rabiner L. R. (1983) Multirate Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Crochiere R. E. and Rabiner L. R. (1988) Multirate processing of digital signals. In Advanced Topics in Signal Processing (Lim J. S. and Oppenheim A. V. (eds)). Englewood Cliffs NJ: Prentice-Hall.
DeFatta D. J., Lucas J. G. and Hodgkiss W. S. (1988) Digital Signal Processing: A System Design Approach. New York: Wiley.
Liu B. and Mintzer F. (1978) Calculation of narrow-band spectra by direct decimation. IEEE Trans. Acoustics, Speech and Signal Processing, 26(6), 529-534.
Matsuya Y, Uchimura K., Iwata A., Kobayashi T., Ishikawa M. and Yoshitome T. (1987) A 16-bit oversampling A-to-D conversion technology using triple integration noise shaping. IEEE J. Solid State Circuits, 22(6), 921-928.
Quarmby D. (ed.) (1984) Signal Processor Chips, Chapter 5. London: Granada.
Welland D. R., Del Signore В. P., Swanson E. J., Tanaka T, Hamashita, K., Hara S. and Takasuka K. (1989) A stereo 16-bit delta-sigma A/D converter for digital audio. J. Audio Engineering Society, 37(6), 476-486.
Westgate J. A., Keith R. D. F., Gurnow J. S. K., Ifeachor E. C. and Greene K. R. G. (1990) Suitability of fetal scalp electrodes for fetal electrocardiogram during labour. J. Clin. Physics & Physiological Measurement, 11(4), 297-306.
Дополнительная литература
Analog Devices (1988) ADSP-2100 Family Applications Handbook, Volume 2, Chapter 3. Analog Devices, Inc. Bellanger M. G. (1977) Computation rate and storage estimation in multirate digital filtering with halfband filters. IEEE Trans. Acoustics, Speech and Signal Processing, 25, 344-346.
Bellanger М. G., Daquet J. L. and Lepagnol G. P. (1974) Interpolation, extrapolation and reduction of computation speed in digital filters. IEEE Trans. Acoustics, Speech and Signal Processing, 22, 231-235.
Brown Jr J. L. (1981) Multichannel sampling of lowpass signals. IEEE Trans. Circuits Systems, 28, 101-106.
Cox R. V., Bock D. E., Bauer К. B., Johnston J. D. and Snyder J. H. (1987) The analogue voice privacy system.
AT&T Technical J., 66, 119-131.
Elliot D. F. (ed.) (1987) Handbook of Digital Signal Processing. New York: Academic Press.
Goedhart D., van der Plassche R. J. and Stikvoort E. F. (1982) Digital-to-analog conversion in playing a compact disc. Philips Technical Rev., 40(6), 174-179.
Goodman D. J. and Carey M. J. (1977) Nine digital filters for decimation and interpolation. IEEE Trans. Acoustics, Speech and Signal Processing, 25(2), 121-126.
Goodman D. J. and Flanagan J. L. (1971) Direct digital conversion between linear and adaptive delta modulation formats. In Proc. IEEE Int. Communications Conf, Montreal, Canada, June 1971.
Huber A., De Man E., Schiller E. and Ulbrich W. (1986) FIR lowpass filter for signal decimation with 15 MHz clock frequency. In IEEE Int. Conf. Acoustics, Speech and Signal Processing, Tokyo, 7-11 April, pp. 1533-1536. Jerri A. J. (1977) The Shannon sampling theorem — its various extensions and applications: a tutorial review. Proc. IEEE, 65(11), 1565-1596.
Linden D. A. (1959) A discussion of sampling theorems. Proc. IRE., 47, 1219-1226.
Mintzer F. (1982) On half-band, third-band and Nth-band FIR filters and their design. IEEE Trans. Acoustics, Speech and Signal Processing, 30, 734-738.
Mintzer F. and Liu B. (1978) The design of optimal multirate bandpass and bandstop filters. IEEE Trans. Acoustics, Speech and Signal Processing, 26(6), 534-543.
Mintzer F. and Liu B. (1978) Aliasing error in the design of multirate filters. IEEE Trans. Acoustics, Speech and Signal Processing, 26, 76-88.
Montijo B. A. (1988) Digital filtering in a high-speed digitizing oscilloscope. Hewlett Packard J., June, 70-76.
Mou Z. J. and Duhamel P. (1987) Fast FIR filtering: algorithms and implementations. Signal Processing, 13, 377-384.
Princen J. P. and Bradley A. B. (1986) Analysis/synthesis filter banks design based on time domain aliasing cancellation. IEEE Trans. Acoustics, Speech and Signal Processing, 23, 1153-1161.
Rabiner L. R. and Crochiere R. E. (1975) A novel implementation for narrow-band FIR digital filters. IEEE Trans. Acoustics, Speech and Signal Processing, 23(5), 457-464.
Regalia P. A., Fujii N., Mitra S. K. and Neuvo Y. (1987) Active RC crossover networks with adjustable characteristics. J. Audio Engineering Society, January-February, 35(1/2), 24-30.
Rorabacher D. W. (1975) Efficient FIR filter design for sample rate reduction and interpolation. In Proc. IEEE International Symposium on Circuits and Systems, 21-23 April, pp. 396-399.
Schafer R. W. and Rabiner R. L. (1973) A digital signal processing approach to interpolation. Proc. IEEE, 61, 692-702.
Scheuermann H. and Gockler H. (1981) A comprehensive survey of digital transmultiplexing methods. Proc. IEEE, 69, 1419-1450.
Shannon С. E. (1949) Communications in the presence of noise. Proc. IRE, 37, 10-21.
Thong T. (1989) Practical consideration for a continuous time digital spectrum analyzer. In Proc. IEEE International Symposium on Circuits and Systems, Portland OR, May 1989, 1047-1050.
Tuffs D. W., Rorabacher D. W. and Mosier W. E. (1970) Designing simple, effective digital filters. IEEE Trans. Audio Electro-Acoustics, 18, 142-158.
Vaidyanathan P. P. (1990) Multirate digital filters, filter banks, polyphase networks, and applications: a tutorial. Proc. IEEE, 78(1), 56-93.
Vaidyanathan P. P. (1993) Multirate Systems and Filter Banks. Englewood Cliffs NJ: Prentice-Hall.
Vaidyanathan P. P. and Nguyen T. Q. (1987) A trick for the design of FIR half-band filters. IEEE Trans. Circuits and Systems, 34, 297-300.
Van De Plassche R. J. and Dijkmans E. C. (1983) A monolithic 16-bit D/А conversion system for digital audio.
In Digital Audio (Blesser B. (ed.)), pp. 54-60. Audio Engineering, Inc.
Zobel R. N. and Tang P. S. (1985) A high performance multichannel decimating FIR digital filter system for microprocessor based data acquisition. Proc. ISCAS, 1149-1152.
В
А ' 'Программы на С для разработки и реализации , -, систем обработки при нескольких скоростях
На компакт-диске к книге [Ifeachor, 2001] содержатся следующие программы на языке С с примерами их использования (подробности см. в предисловии):
decimate. с, которая производит децимацию данных с использованием до трех каскадов децимации;
interpol. с, которая интерполирует данные с использованием до трех каскадов интерполяции;
moptimum. с, определяющая характеристики /-каскадного дециматора (или интерполятора) при I = 1,2,3,4. Вычисляются такие параметры: шаги децимации и характеристики фильтров каждого каскада, а также меры эффективности (такие как число умножений в секунду) при различных конфигурациях.
■' 9.Б.1' Цифровая обработка сигналов с помощью MATLAB
Для выполнения множества операций, связанных с преобразованием частоты дискретизации и обработкой при нескольких скоростях, можно использовать средство MATLAB Signal Processing Toolbox. В данном разделе рассмотрены ключевые функции MATLAB, предназначенные для обработки при нескольких скоростях, и иллюстрируется их использование.
Как обсуждалось в данной главе, создание систем обработки при нескольких скоростях включает следующие этапы:
спецификация требований к преобразователям частоты дискретизации;
определение параметров преобразователя (т.е. числа каскадов, шагов изменения частоты дискретизации и характеристики фильтров каскадов);
разработка цифровых фильтров защиты от наложения спектров и/или подавления зеркальных частот;
фильтрация с обработкой при нескольких скоростях, выборка с повышением и/или понижением частоты.
Значительно облегчить выполнение этапов 3 и 4 позволяет средство Signal Processing Toolbox. Существует четыре ключевые функции MATLAB для обработки при нескольких скоростях: decimate, interp, resample и upf irdn. В дополнение к функциям цифровой обработки при нескольких скоростях имеется много других функций, в частности, связанных с КИХ-фильтрацией.
Функция decimate используется для снижения частоты дискретизации последовательности данных в М раз, где М — положительное целое число. Функция выполняет
фильтрацию с целью подавления зеркальных изображений на основе фильтра нижних частот, а затем перевыбирает сигнал с более низкой частотой, т.е. оставляет одну точку из каждых М точек данных. Команда decimate используется со следующим синтаксисом:
y=decimate(x,M)
y=decimate(х,М,N)
y=decimate(х,М, 'fir')
y=decimate(х,М,N,'fir')
Команда y=decimate (х, М, N, 'fir' ) фильтрует последовательность данных, собранных в векторе ж, с помощью N-точечного КИХ-фильтра нижних частот с нормированной частотой среза 1/М, а затем уменьшает частоту дискретизации в М раз. Нужный фильтр автоматически генерируется средством. Toolbox.
Если параметр 'fir' опущен (как в первой приведенной выше команде), при децимации используется фильтр Чебышева первого рода n-го порядка с нормированной частотой среза 0,8/М и неравномерностью в полосе пропускания 0,05 дБ (по умолчанию значение N — 8). Если используется БИХ-фильтр, то автоматически вводится фильтр для компенсации фазового искажения в прямом и обратном по времени направлениях.
Функция interp используется для увеличения частоты дискретизации последовательности данных в целое число раз L. Функция вначале расширяет последовательность данных путем введения нулей между выборками, автоматически разрабатывает КИХ- фильтр нижних частот, а затем выполняет фильтрацию с целью подавления зеркальных частот с помощью КИХ-фильтра. Синтаксис команды: y=interp(x,L) y=interp(x,L,N,alpha) [у, b]=interp(x,L,N,alpha)
Параметр N задает длину фильтра (длина фильтра = *2NL+1, значение длины по умолчанию — 4), alpha — это нормированная частота среза (значение по умолчанию 0,5, т.е. alpha = fс/fNyquist)- Последняя команда позволяет выделить коэффициенты фильтра подавления зеркальных частот в векторе Ь.
Пример 9Б.1
Непрерывный сигнал характеризуется следующим уравнением:
i(t) = Лсо8(2тг/1#) + В cos(27rf2t).
Сгенерируйте с помощью MATLAB дискретный эквивалент сигнала. Частота дискретизации равна 1 кГц, /1 = 50 Гц, /2 = 100 Гц, отношение амплитуд частотных компонентов А/В = 1,5.
Интерполируйте дискретный сигнал с повышением частоты в 4 раза, используя функцию decimate.
К полученному в п. 2 результату примените операцию децимации с шагом 4, используя операцию decimate.
Изобразите исходный сигнал, сигналы после интерполяции и децимации.
Программа 9Б.1. Иллюстрация простых операций интерполяции и децимации в форме ш- файла MATLAB % % Имя файла: Program ЕХ9В1.т % Иллюстрация интерполяции с шагом 4 % Fs=100; % частота дискретизации А=1. 5;% относительные амплитуды
В=1; fl=50; % частоты сигнала f2=100; t=0:l/Fs:l; % вектор времени x=A*cos(2*pi*fl*t)+B*cos(2*pi*f2*t); % генерируемый сигнал y=interp(x, 4);% сигнал, интерполированный с шагом 4
stem(x(l:25)) % вывод на экран исходного сигнала xlabel('Discrete time, nT') ylabel('Input signal level') figure stem(y(l:100)) % вывод на экран интерполированного сигнала xlabel('Discrete time, 4 x nT') ylabel('Interpolated output signal level') yl=decimate(у, 4) ; stem(yl(l:25))% вывод на экран сигнала после децимации
xlabel('Discrete time, nT') ylabel('Decimated output signal level')
Решение
Реализация решения задачи в форме m-файла MATLAB приведена в программе 9Б.1.
Исходный сигнал и два искомых сигнала приведены на рис. 9Б. 1, а, б, в. Читатель должен отметить разницу сигналов на рис. 9Б.1, айв, которая объясняется несовершенством операций преобразования частоты.
Функции decimate и interp весьма полезны при быстрой реализации изменений частоты дискретизации. Впрочем, они несколько ограничены (например, фильтры защиты от наложения спектров и подавления зеркальных частот вводятся в структуру автоматически). Более гибкими являются функции upfirdn и resample, которые допускают выбор из большего числа альтернатив.
Для увеличения и/или уменьшения частоты дискретизации последовательности данных в ЦМ раз (L и М — положительные целые числа) можно использовать функции upfirdn и resample. Обе команды выполняют аналогичные операции. Синтаксис команды upfirdn:
y=upfirdn(x,h)
y=upfirdn(x,h,L)
y=upfirdn(x,h,L,M)
Команда y=upfirdn(x, h, L, M), например, вначале увеличивает частоту дискретизации в L раз, выполняет КИХ-фильтрацию с использованием коэффициентов, вне-
в) дискретное время. яГ
Рис. 9Б.1. Входной сигнал (панель а). Иллюстрация интерполяции с шагом 4 (панель б). Иллюстрация децимации с шагом 4 (панель в)
сенных в вектор h, а затем перевыбирает данные с понижением частоты в М раз. Для получения КИХ-фильтра можно использовать оптимальный метод, метод вырезания или частотной выборки. Выходной сигнал команда возвращает в вектор у. Если L и М равны 1, производится операция КИХ-фильтрации. Если L = 1, данные проходят децимацию (те. их частота дискретизации уменьшается) с шагом М, а если М = 1, они проходят интерполяцию (те. частота дискретизации увеличивается) с шагом L.
Синтаксис команды resample:
y=resample(х,L, М)
[y,b]=resample(x,L,M)
y=resample(х,L, М, b)
Команда y=resample ограничивает полосу последовательности данных, внесенных в вектор х, используя КИХ-фильтр, разработанный на основе функции Кайзера с помощью команды f irl. Коэффициенты КИХ-фильтра можно получить, используя вторую команду, те. [y,b]=resample(x,L,M). Команда y=resample(x,L,M,b) предназначена для использования в разработке пользовательского фильтра.
В качестве иллюстрации для решения последней задачи (пример 9Б.1) мы использовали команду resample, те. с ее помощью частота дискретизации была увеличена, а затем уменьшена в 4 раза. Реализация решения задачи в форме m-файла MATLAB приведена в программе 9Б.2. Результаты сходны, но не идентичны из-за различий в реализации.
Программа 9Б.2. Иллюстрация простых операций интерполяции и децимации в форме ш- файла MATLAB
%
% Имя файла: Program EX9B2.m
% Иллюстрация децимации и интерполяции с шагом 4
%
Fs=100; % частота дискретизации
А=1.5; % относительные амплитуды
В=1;
fl=50;% частоты сигнала
f2=100;
t=0:l/Fs:l; % вектор времени
x=A*cos(2*pi*fl*t)+B*cos(2*pi*f2*t); % генерируемый сигнал y=resample(x,4,1);% сигнал, интерполированный с шагом 4
stem(x(l:25)) % вывод на экран исходного сигнала xlabel('Discrete time, nT)
ylabel('Input signal level')
figure
stem(y(l:100)) % вывод на экран интерполированного сигнала
xlabel('Discrete time, 4 x nT')
ylabel('Interpolated output signal level')
yl=resample(у,1,4);
stem(yl(l:25))% вывод на экран сигнала после децимации
xlabel('Discrete time, nT)
ylabel('Decimated output signal level')
Адаптивные цифровые фильтры*
1010Когда и где стоит использовать адаптивные фильтры699 7
10
10
Концепции адаптивной фильтрации701
Основы теории фильтров Винера705
Стандартный адаптивный алгоритм наименьших квадратов■708
Рекурсивный алгоритм наименьших квадратов . :1717
: 10.6. Сфера приложения 1 — адаптивная фильтрация окулярных артефактов наЭЭГчеловека■■ -.-.'й Л:"У.
Сфера приложения 2— адаптивное телефонное эхоподавление- 723
Другие приложения 725
■ Дузадачи 7У &■ v . :7уу729:
Литература -.:;.;..730 '
Дополнительная литература; у :730
Приложения.731
У ‘Здесь говорится только о-линейных адаптивных фильтрах. Современная адаптивная обработка цифровых сигналов этим не ограничена, г-Прим. ред. ■ УД.:••.■
По сути, адаптивный фильтр — это цифровой фильтр с самонастраивающимися характеристиками. Такой фильтр автоматически адаптируется к изменениям выходных сигналов и является предметом изучения подобласти ЦОС, известной как адаптивная обработка сигналов. Ниже описаны ключевые аспекты этой важной темы на основе схемы наименьших квадратов (СНК) и рекурсивной схемы наименьших квадратов (РСНК) — двух аппаратов, наиболее используемых при адаптивной обработке сигналов. Данная глава предназначена для практического применения, теория приводится только в минимально необходимом объеме. Реализацию фильтров, основанных на СНК и РСНК, на языке С можно найти на компакт-диске к книге [Ifeachor, 2001] (подробности см. в предисловии). В главе также рассмотрено несколько реальных областей применения адаптивных фильтров.
. 10.1. Когда и где стоит использовать адаптивные фильтры
Во многих приложениях часто возникает такая проблема, как загрязнение полезного сигнала нежелательными, часто мощными, сигналами или шумом. Если полезный сигнал и шум занимают строго определенные и разнесенные полосы частот, для извлечения полезного сигнала используются обычные линейные фильтры. Однако существу-
Спектр помехи
Спектр полезного сигнала
Рис. 10.1. Иллюстрация наложения спектров сигнала и мощной помехи
туально. В подобных случаях, например, когда спектры сигнала и шума перекрываются (рис. 10.1), или когда полоса шумовых частот неизвестна или переменна, коэффициенты фильтра должны меняться, и их нельзя задать заранее. Перечислим типичные приложения, в которых неуместны фильтры с фиксированными коэффициентами.
Электроэнцефалография (ЭЭГ), где артефакты, или загрязнение сигнала, порожденное движением или морганием глаза, значительно больше подлинной электрической деятельности мозга и занимают ту же полосу частот, что и сигнал, представляющий медицинский интерес. Чтобы удалить артефакты, сохранив при этом нужные сигналы, обычные линейные фильтры не подходят.
В цифровой связи присутствует метод расширения спектра, который используется в условиях, когда сильная активная помеха может интерферировать с полезным сигналом. Интерференция часто происходит в узкой, но неизвестной полосе частот в широкополосном спектре, и единственное эффективное решение этой проблемы предлагают адаптивные фильтры.
Цифровая передача данных по телефонным каналам на высокой скорости. Искажение сигнала, вызванное плохими амплитудной и фазовой характеристиками канала, приводит к тому, что импульсы, представляющие различные цифровые коды, интерферируют между собой (межсимвольная интерференция), что затрудняет надежное детектирование кодов в приемнике. Для компенсации внесенного каналом искажения, которое может быть переменным или неизвестным, используется адаптивное выравнивание.
Адаптивный фильтр отличается следующим свойством: его частотная характеристика автоматически регулируется или модифицируется для улучшения производительности фильтра в соответствии с некоторым критерием, что позволяет фильтру адаптироваться к изменениям характеристик входного сигнала. Вследствие самонастройки и присущей адаптивным фильтрам гибкости они используются в таких различных сферах, как телефонное эхоподавление, обработка сигналов с радаров, системы навигации, выравнивание каналов связи и выделение биомедицинских сигналов.
Итак, адаптивные фильтры стоит использовать, если:
характеристики фильтра должны быть переменными, адаптироваться к меняющимся условиям;
существует спектральное перекрытие сигнала и шума (рис. 10.1);
полоса шумовых сигналов неизвестна или меняется со временем.
Рис. 10.2. Блок-схема адаптивного фильтра-шумоподавителя
В перечисленных случаях использование обычных фильтров привело бы к неприемлемому искажению полезного сигнала. Ниже показано, что помимо снижения уровня шумов есть и другие ситуации, когда выгодно использовать адаптивные фильтры.
Концепции адаптивной фильтрации
Адаптивные фильтры как средство подавления шума
Адаптивный фильтр состоит из двух различных частей: цифрового фильтра с регулируемыми коэффициентами и адаптивного алгоритма, который используется для настройки или изменения коэффициентов фильтра (рис. 10.2). На адаптивный фильтр одновременно подаются два входных сигнала, у к и хк- Сигнал ук загрязнен и содержит полезный сигнал вк и шум пк, причем предполагается, что эти сигналы не коррелируют. Сигнал хк — это мера загрязненного сигнала, который коррелирует с пк. В цифровом фильтре сигнал хк обрабатывается для получения оценки пк сигнала пк. Затем полезный сигнал оценивается как разность зашумленного сигнала ук и выхода цифрового фильтра йк".
Зк = Уь-пк = Зк + Пк-Пк.(10.1)
Основная цель шумоподавления заключается в получении оптимальной оценки шума в зашумленных сигналах, а следовательно, оптимальной оценки желаемого сигнала. Для этого зк подается в цепь обратной связи, и на основе этого сигнала и подходящего адаптивного алгоритма регулируются коэффициенты цифрового фильтра для минимизации шума в сигнале вк. Выходной сигнал вк используется двояко: 1) как оценка желаемого сигнала и 2) как сигнал ошибки, который применяется для регулировки коэффициентов фильтра.
' 10.2.2. Другие конфигурации адаптивного фильтра
В приведенных выше рассуждениях предполагается, что фильтр используется для адаптивного шумоподавления. Важно помнить, что адаптивные фильтры могут использоваться и в других целях, например, для линейного предсказания, адаптивного выделения сигнала и адаптивного управления. Вообще всегда стоит иметь в виду, что значение сигналов хк, ук и ек или способа их получения зависит от приложения. Некоторые примеры конфигураций адаптивного фильтра приведены на рис. 10.3.
Основные компоненты адаптивного фильтра
В большинстве адаптивных систем цифровой фильтр, показанный на рис. 10.2, реализован с использованием трансверсальной структуры или схемы с конечной импульсной характеристикой (КИХ) (рис. 10.4). Иногда используются и другие формы, например, схема с бесконечной импульсной характеристикой (БИХ) или решетчатая структура, но КИХ-структура применяется наиболее широко из-за своей простоты и гарантированной устойчивости. Выход TV-точечного фильтра, изображенного на рис. 10.4, выражается следующим образом:
N-1
Пк ^^W^Xk-i,(10.2)
т=0
где шл(г),г = 0,1,... — регулируемые коэффициенты фильтра (или весовые коэффициенты), а хк(г) и 14 — вход и выход фильтра соответственно. На рис. 10.4 изображена система с одним входом и одним выходом. В системе с несколькими входами и одним выходом хк может включать одновременные входы N различных источников сигнала.
Адаптивные алгоритмы
Для настройки коэффициентов цифрового фильтра (на рис. 10.2) используются адаптивные алгоритмы, в которых сигнал ошибки ек минимизируется согласно некоторому критерию, например, по схеме наименьших квадратов. Наибольшее распространение получили алгоритмы, в которых используются схема наименьших квадратов, рекурсивная схема наименьших квадратов и фильтр Калмана. С точки зрения вычислительной сложности и требований к памяти наиболее эффективна схема наименьших квадратов. Более того, для нес несущественна проблема численной неустойчивости, присущая двум другим алгоритмам. По этим причинам во многих ситуациях вначале пробуют схему наименьших квадратов. Впрочем, рекурсивная схема наименьших квадратов имеет лучшую сходимость.
Пример 10.1
Согласно [11] оценка желаемого сигнала на выходе адаптивного шумоподавителя выражается следующим образом:
§к — Ук — fl к — Sk + пк — hk-
Источниксигнала
^(сигнал+шум)!
Адаптивный фильтр
Широкополосная
«к
(шум)
Рис. 10.3. Некоторые конфигурации адаптивного фильтра (согласно [10]): а) адаптивный шумоподавитель;
6) адаптивный самонастраивающийся фильтр; в) подавление периодической помехи без внешнего эталонного источника; г) адаптивный селективный фильтр; д) моделирование системы; е) подбор линейной комбинации
Рис. 10.4. Структура фильтра с конечной импульсной характеристикой
Покажите, что при минимизации общей мощности на выходе шумоподавителя максимизируется выходное отношение сигнал-шум.
Решение
Зашумленный сигнал записывается как
Ук = sk + пк,(10.3)
а оценка полезного сигнал равна
§к = Ук - Пк = sk + пк - пк.(10.4)
Возводя уравнение (10.4) в квадрат, получаем
s2k = sk + ^к - пку + 2sk(nk - пк\(10.5)
Вычисляя математическое ожидание выражений справа и слева от знака “=”, получаем Е^ = EVs^ + Е\(пк - л.^)2] + 2E^sk^nk - пк)\.(10.6)
Поскольку полезный сигнал sk не коррелирует с пк или с пк, последнее слагаемое в формуле (10.6) равно нулю, так что получаем
Ж] = Ж] + ^-^)2],(10.7)
где 5[s£] представляет общую мощность сигнала, E[s^] — оценку мощности сигнала (а также общую выходную мощность), а ^[(п*; — п^)2] — остаточную мощность шума, который все еще может содержаться в sk. Из уравнения (10.7) очевидно, что, если оценка пк — это точная копия пк, выходная мощность — это мощность только полезного сигнала. При настройке адаптивного фильтра к оптимальному положению минимизируется мощность остаточного шума, а следовательно, общая выходная мощность. На мощность полезного сигнала настройка не влияет, поскольку sk не коррелирует с пк. Следовательно,
min£[s^] = E[s2] + minE[(nfc - nfc)2]. (10.8)
Из уравнения (10.8) очевидно, что суммарный эффект минимизации общей выходной мощности заключается в максимизации выходного отношения сигнал-шум. Если фильтр настроен так, что пк = пк, то sk = sk. В этом случае выход адаптивного шумоподавителя свободен от шума. Если сигнал ук не содержит шума, те. когда пк = 0, адаптивный фильтр самовыключается (по крайней мере, теоретически) путем присвоения всем весовым коэффициентам нулевых значений.
ук (сигнал + шум)ук (сигнал + шум)хк (шум)хк (шум)Фильтр ВинераФильтр Винераы-\"lc = lL«(r>Xl1.iы-\"lc = lL«(r>Xl1.i
ук (сигнал + шум)
ук (сигнал + шум)
хк (шум)
хк (шум)
Фильтр Винера
Фильтр Винера
ы-\
"lc = lL«(r>Xl1.i
ы-\
"lc = lL«(r>Xl1.i
Рис. 10.5. Фильтр Винера (стандартная форма)
Основы теории фильтров Винера
Многие адаптивные алгоритмы можно рассматривать как аппроксимации дискретного фильтра Винера (рис. 10.5). На фильтр одновременно подаются два сигнала жк и у к- Обычно у к состоит из компонента, который коррелирует с хк, и компонента, который с хк не коррелирует. Винеровский фильтр выдает оптимальную оценку той части ук, которая коррелирует с хк, затем эта оценка вычитается из ук, и получается ек.
Предположим, что используется КИХ-фильтр с N коэффициентами (или весовыми коэффициентами — весьма популярный термин в литературе). Ошибка ек между выходом фильтра Винера и исходным сигналом ук записывается как
N-1
вк = Ук - Пк = Ук - WTXk = Ук - ^ W(i)X*:-i,(Ю-9)
t=0
где Хк и W — вектор входного сигнала и вектор весовых коэффициентов соответственно, имеющие вид
(10.10)
w(N — 1)w(N — 1). ^k-(N-l)
w(N — 1)
w(N — 1)
Квадрат ошибки равен
(10.11)(10.11)el = у1 - 2ykXlW + WTXkXlW.
(10.11)
(10.11)
Чтобы получить среднеквадратическую ошибку J, нужно найти математическое ожидание обеих частей уравнения (10.11), предполагая, что вектор входа Хк и сигнал ук совместно стационарны:
(10.12)(10.12)J = Е^ = Е^ - 2E\.ykXTkW^ + E\WTXkX^W\ == а2 + 2PTW + WTRW.
(10.12)
(10.12)
где Р[-] обозначает математическое ожидание, <т2 = -^[1/fc] — дисперсия ук, Р = P[?/*;Xjt] — Х-компонентный вектор взаимной корреляции, а Д = Р[Ха.Х^) — автокорреляционная матрица N х N. График зависимости среднеквадратической ошибки от
Рис. 10.6. Поверхность производительности
коэффициентов W — это чашеобразная поверхность с однозначно определенной нижней точкой (см. рис. 10.6). Данная структура называется поверхностью производительности (performance surface) и она неотрицательна. Градиент поверхности производительности записывается так:
V == —2Р + 2RW.(10.13)
a W
Каждый набор коэффициентов w^ (г = 0,1,..., X — 1) соответствует точке на поверхности. В точке минимума градиент равен нулю и вектор весовых коэффициентов фильтра достигает оптимального значения Wopt (см. пример 10.2):
Wopt = RxP.(10.14)
Формула (10.14) называется уравнением Винера-Хопфа. Задача адаптивной фильтрации заключается в настройке весовых коэффициентов фильтра w(0), w(l),... с помощью подходящего алгоритма до достижения оптимальной точки на поверхности производительности.
Практическое использование винеровских фильтров ограничено из-за следующих недостатков:
требует применения автокорреляционной матрицы R и вектора взаимной корреляции Р, причем обе величины априори неизвестны;
фильтры включают обращение матриц, являющееся трудоемким процессом;
если сигналы нестационарны, то R и Р будут меняться со временем, так что Wopt придется вычислять многократно.
В приложениях реального времени Wopt требуется пересчитывать по мере поступления выборок. Использование адаптивных алгоритмов позволяет не обращать при этом матрицы и не вычислять явно R и Р.
Пример 10.2
Начиная с выражения для среднеквадратической ошибки (10.12), выведите уравнение Винера-Хопфа.
Решение
Среднеквадратическая ошибка записывается следующим образом:
J = а2 + 2PTW + WRW.J = а2 + 2PTW + WRW.(10.15)(10.15)Градиент V ошибки J получается дифференцированием J по вектору весовых коэффициентов W и приравниванием результата к нулю (см. [4]):Градиент V ошибки J получается дифференцированием J по вектору весовых коэффициентов W и приравниванием результата к нулю (см. [4]):dJ da2 d(PTW) d(WTRW) dW “ dW* dW + dWdJ da2 d(PTW) d(WTRW) dW “ dW* dW + dW(10.16)(10.16)В нашем случаеВ нашем случаеdW’dWdW’dWИспользуя эти результаты и положив V = 0 в уравнении (10.16), получаемИспользуя эти результаты и положив V = 0 в уравнении (10.16), получаемV == —2Р + 2RW.dWВектор оптимальных коэффициентов записывается в видеV == —2Р + 2RW.dWВектор оптимальных коэффициентов записывается в виде(10.17)(10.17)Wopt^R^P.Wopt^R^P.(10.18)(10.18)10.4. Стандартный адаптивный алгоритм наименьших квадратовОдним из наиболее удачных адаптивных алгоритмов является алгоритм наименьших квадратов, разработанный группой Уидроу (см. [11]). Взамен вычисления Wopt за один шаг по формуле (10.18) в схеме наименьших квадратов коэффициенты настраиваются при последовательной обработке выборок с минимизацией среднеквадратической ошибки. Результат равносилен спуску по поверхности, изображенной на рис. 10.6, к ее дну.10.4. Стандартный адаптивный алгоритм наименьших квадратовОдним из наиболее удачных адаптивных алгоритмов является алгоритм наименьших квадратов, разработанный группой Уидроу (см. [11]). Взамен вычисления Wopt за один шаг по формуле (10.18) в схеме наименьших квадратов коэффициенты настраиваются при последовательной обработке выборок с минимизацией среднеквадратической ошибки. Результат равносилен спуску по поверхности, изображенной на рис. 10.6, к ее дну.
J = а2 + 2PTW + WRW.
J = а2 + 2PTW + WRW.
(10.15)
(10.15)
Градиент V ошибки J получается дифференцированием J по вектору весовых коэффициентов W и приравниванием результата к нулю (см. [4]):
Градиент V ошибки J получается дифференцированием J по вектору весовых коэффициентов W и приравниванием результата к нулю (см. [4]):
dJ da2 d(PTW) d(WTRW) dW “ dW* dW + dW
dJ da2 d(PTW) d(WTRW) dW “ dW* dW + dW
(10.16)
(10.16)
В нашем случае
В нашем случае
dW’
dW
dW’
dW
Используя эти результаты и положив V = 0 в уравнении (10.16), получаем
Используя эти результаты и положив V = 0 в уравнении (10.16), получаем
V == —2Р + 2RW.
dW
Вектор оптимальных коэффициентов записывается в виде
V == —2Р + 2RW.
dW
Вектор оптимальных коэффициентов записывается в виде
(10.17)
(10.17)
Wopt^R^P.
Wopt^R^P.
(10.18)
(10.18)
10.4. Стандартный адаптивный алгоритм наименьших квадратов
Одним из наиболее удачных адаптивных алгоритмов является алгоритм наименьших квадратов, разработанный группой Уидроу (см. [11]). Взамен вычисления Wopt за один шаг по формуле (10.18) в схеме наименьших квадратов коэффициенты настраиваются при последовательной обработке выборок с минимизацией среднеквадратической ошибки. Результат равносилен спуску по поверхности, изображенной на рис. 10.6, к ее дну.
10.4. Стандартный адаптивный алгоритм наименьших квадратов
Одним из наиболее удачных адаптивных алгоритмов является алгоритм наименьших квадратов, разработанный группой Уидроу (см. [11]). Взамен вычисления Wopt за один шаг по формуле (10.18) в схеме наименьших квадратов коэффициенты настраиваются при последовательной обработке выборок с минимизацией среднеквадратической ошибки. Результат равносилен спуску по поверхности, изображенной на рис. 10.6, к ее дну.
Схема наименьших квадратов основана на алгоритме быстрейшего спуска, в котором вектор весовых коэффициентов следующим образом обновляется при обработке выборок:
Wk+1 = W-nVk,(10.19)
где Wk и V к — векторы весовых коэффициентов и действительного градиента соответственно в к-й момент выборки; параметр ц определяет устойчивость и скорость сходимости.
Алгоритм быстрейшего спуска в формуле (10.19) по-прежнему требует знания R и Р, поскольку эти величины необходимы для получения V к (см. формулу (10.18)). Алгоритм наименьших квадратов — это практический метод оценки весовых коэффициентов фильтра Wk в реальном времени без обращения матриц (см. формулу (10.18)) или прямого вычисления автокорреляционной матрицы и вектора взаимной корреляции. Алгоритм наименьших квадратов Уидроу-Хопфа последовательного обновления весовых коэффициентов записывается так:
Wk+1 = Wk+2MekXk,(10.20)
где
ек = ук — WTXk.
Очевидно, что алгоритм наименьших квадратов не требует априорных знаний статистик сигнала (те. корреляции R и Р), а использует их мгновенные оценки (см. пример 10.3). Весовые коэффициенты, полученные с помощью алгоритма наименьших квадратов, — это только оценки, которые постепенно улучшаются по мере того, как настраиваются коэффициенты и фильтр изучает характеристики сигналов. В конце концов весовые коэффициенты сходятся к каким-то значениям. Условие сходимости:
0 < д > 1/Атах,(10.21)
где Атах — максимальное собственное значение ковариационной матрицы данных. На практике W к никогда не достигает теоретического максимума (решение Винера), а флуктуирует около этого значения (рис. 10.7).
Реализация стандартного алгоритма наименьших квадратов
Ниже приводится схема вычислений, принятая в алгоритме наименьших квадратов.
Изначально каждому весовому коэффициенту wk(i"), г = 0,1,..., N-1 присваивается произвольное фиксированное значение, например, 0.
Рис. 10.7. Изменение весовых коэффициентов фильтраРис. 10.7. Изменение весовых коэффициентов фильтра
Рис. 10.7. Изменение весовых коэффициентов фильтра
Рис. 10.7. Изменение весовых коэффициентов фильтра
2. Вычислить выход фильтра2. Вычислить выход фильтраВ каждый последующий момент выборки к = 1,2,... выполняются этапы 2-4.
2. Вычислить выход фильтра
2. Вычислить выход фильтра
N-1
Пк^У^ U^Xk-i-г=0
Ск — Ук ~ ^к-Ск — Ук ~ ^к-Вычислить оценку ошибки
Ск — Ук ~ ^к-
Ск — Ук ~ ^к-
Обновить набор весовых коэффициентов
wk+i^ = wk^ + 2р.екхк-{.
Простота алгоритма наименьших квадратов и легкость реализации, очевидные из приведенных выше выкладок, объясняют, почему данный метод используется в системах реального времени, когда это возможно. Описанный алгоритм требует примерно 2N +1 операций умножения и 2N + 1 операций сложения для каждого нового набора входных и выходных выборок. Основные операции умножения-накопления, фигурирующие в алгоритме, можно выполнять на большинстве процессоров сигналов, что наводит на мысль использовать прямую реализацию алгоритма.
Функциональная схема алгоритма наименьших квадратов показана на рис. 10.8. На рис. 10.9 и 10.10 соответственно изображены псевдокоды программной и аппаратной реализаций. В приложении к этой главе приведена реализация алгоритма наименьших квадратов в виде программы на языке С.
Рис. 10.8. Функциональная схема адаптивной фильтрации по схеме наименьших квадратов
Вход:Вход:Выход:Выход:xk(i) вектор последних входных выборок
Вход:
Вход:
Выход:
Выход:
ук текущая зашумленная выборка сигнала
wk(i) вектор коэффициентов фильтра
ек текущая желаемая выходная выборка (или ошибка) wk(i) вектор обновленных коэффициентов фильтра
/♦расчет текущей оценки ошибки*/
ek=yk for 1=1 to N do ek=ek-xk(1)*wk(1) end
/♦обновление коэффициентов фильтра*/
gk=2u*ek
for 1=1 to N do wk(i)=wk(i)+xk(i)*gk end
return
Рис. 10.9. Код реализации адаптивной фильтрации по схеме наименьших квадратов
Рис. 10.10. Аппаратная реализация адаптивной фильтрации реального времени по схеме наименьших квадратов
Пример 10.3
Начав с алгоритма быстрейшего спуска
Wk+1 = Wk-pVk,
где Wk — вектор весовых коэффициентов фильтра в момент к-й выборки, параметр р, определяет устойчивость и скорость сходимости, Vk — действительный градиент на поверхности производительности, выведите алгоритм наименьших квадратов Уидроу- Хопфа для адаптивного шумоподавления, указав сделанные допущения.
Решение
Алгоритм быстрейшего спуска формулируется так:
Wk+1 = wk- Ц^к.(10.22)
Вектор-градиент V, взаимная корреляция первичного и вторичного входов Р и автокорреляция первичного входа R связаны соотношением
V = -2Р + 2РТУ.(10.23)
В алгоритме наименьших квадратов при вычислении V используются мгновенные значения. Следовательно,
V, = -2Рк + 2RkW к = -2ХкУк + 2XkXTkWk =
„(10.24)
= -2Хк^к - XTkWk^ = —2екХк,
где
ек = ук - X^Wk.
Подставляя уравнение (10.24) в выражение для алгоритма быстрейшего спуска, получаем стандартный алгоритм наименьших квадратов Уидроу-Хопфа:
гдегде(10.25, а)(10.25, б)(10.25, а)(10.25, б)W Н1 — W к + ^ЦЕкХк,ек — Ук — WTkXk.
где
где
(10.25, а)
(10.25, б)
(10.25, а)
(10.25, б)
Практические ограничения стандартного алгоритма наименьших квадратов
Применение стандартного алгоритма наименьших квадратов сопряжено с некоторыми проблемами, что приводит к снижению производительности системы. Часть наиболее существенных проблем рассмотрена в данном разделе.
Влияние нестационарности
В стационарной среде поверхность производительности фильтра имеет постоянную форму и ориентацию, а характеристики адаптивного фильтра просто сходятся к оптимальному значению или колеблются около него. Если статистики сигнала меняются после схождения весовых коэффициентов к оптимальному значению, характеристика фильтра должна также перейти в новый набор оптимальных значений путем повторной настройки весовых коэффициентов. При этом считается, что изменение статистик сигнала происходит достаточно медленно, чтобы коэффициенты успевали сходиться до оптимального значения между изменениями. Тем не менее в нестационарной среде точка минимума непрерывно движется, кроме того, могут меняться ориентация и кривизна траектории ее движения (см. рис. 10.11). Значит, в этом случае алгоритм должен не только найти точку минимума поверхности, но и отследить ее меняющееся положение, что существенно снижает производительность схемы. Отметим, что переменная называется нестационарной, если ее статистики (такие как среднее, дисперсия, автокорреляция) меняются со временем. Причиной таких изменений могут быть, например, случайные помехи малой продолжительности (рис. 10.12) или неверные данные, причем такие изменения часто приводят к расстройке весовых коэффициентов фильтра*.
В настоящее время разработано несколько схем, в которых данная проблема исчезает, но обычно это усложняет стандартный алгоритм наименьших квадратов. Одна из таких схем — упорядоченный во времени адаптивный фильтр (согласно [3]).
Влияние компонентов сигнала на помехи во входном канале
Производительность алгоритма зависит от измеренного сигнала помехи Хк(г\ который сильно коррелирует с реальной помехой, но слабо коррелирует (теоретически
1В этом случае особенно ярко проявляются недостатки линейных фильтров. — Прим. ред.
Рис. 10.11. Нестационарная поверхность производительности
Изменение вследствие случайной помехи
ДО
6)
Рис. 10.12. Иллюстрация нестационарных процессов: а) модулированный сигнал; б) спорадическая интерференция
Адаптивный шумоподавитель
Рис. 10.13. Адаптивное шумоподавление при наличии компонентов сигнала в канале помехи и канале полезного сигнала
совсем не коррелирует) с полезным сигналом. В большинстве случаев данное условие не выполняется. В некоторых приложениях зашумленный входной сигнал может включать и нежелательную помеху, и слабые компоненты сигнала. В результате вместе с шумом подавляются некоторые компоненты полезного сигнала. Подобная ситуация иллюстрируется на рис. 10.13. В работе [11] показано, что в этих случаях процесс адаптивного шумоподавления по-прежнему ведет к значительному улучшению отношения полезный сигнал-шум, но только за счет небольшого искажения сигнала. Впрочем, если Хк содержит только сигналы и совсем не содержит шумовых компонентов, полезный сигнал в ук может быть полностью уничтожен. Названные результаты подтверждает работа авторов в области биомедицинской обработки сигналов [5].
Требования к длине компьютерного представления
Адаптивный КИХ-фильтр, основанный на методе наименьших квадратов, характеризуется следующими уравнениями:
N—1
цифровой фильтр пк = У~^ Wk^Xk-i-,(10.26, а)
1=0
гдегдеадаптивный алгоритм Wk+i = Wk+ 2цекХк,(10.26,6)
где
где
Ек =Ук - WkXk.
Когда адаптивные фильтры реализуются на практике, весовые коэффициенты фильтра Wk и входные переменные Хк и у к неизбежно представляются конечным числом битов. Таким образом, необходимые численные операции выполняются с использованием арифметики конечной точности. Рекурсивная природа алгоритма наименьших квадратов означает, что длина слова будет расти без ограничений и что некоторые биты придется отбрасывать перед сохранением каждого обновленного весового коэффициента.
Следовательно, ук, ек и wk(i^ могут значительно отличаться от их истинных значений. Использование весовых коэффициентов фильтра и результатов арифметических операций с ограниченной точностью может вводить ошибки в адаптивные фильтры, влияние которых проявляется так: 1) возможная несходимость адаптивного фильтра к оптимальному решению, что сделает его малоэффективным (например, если фильтр используется как шумоподавитель, возможен некоторый остаточный уровень помех); 2) выход фильтра может содержать шум, которые приведет к случайным колебаниям выхода; 3) возможно преждевременное завершение алгоритма. Следовательно, чтобы удержать эти ошибки в пределах допустимого, нужно использовать достаточное число битов. В большинстве адаптивных систем, описанных в имеющейся литературе, цифровые сигналы xk_t и ук представляются как числа с фиксированной запятой, имеющие длину от 8 до 16 бит, а квантованные коэффициенты имеют длину от 16 до 24 бит. Размер умножителей меняется в пределах от 8 х 8 бит до 24 х 16 бит, а размер накопителей — от 16 до 40 бит. Похоже, что для фильтров небольших порядков (до 100 коэффициентов) достаточно хранить коэффициенты не более чем с 16-битовой точностью и использовать умножитель 16 х 16 бит с накопителем длиной 32 бит.
Уход коэффициентов
. При наличии входов определенных типов (например, узкополосных сигналов) коэффициенты фильтра могут постепенно смещаться от оптимального значения и медленно расти, со временем превышая разрешенную длину слова. Данная проблема характерна для алгоритмов наименьших квадратов и в перспективе приводит к ухудшению производительности. Чтобы препятствовать уходу коэффициентов, на практике вводится коэффициент потерь, который слегка смещает коэффициенты к нулю. Два примера подобных схем приведены ниже.
(10.27, а)(10.27, а)(10.27, 6)(10.27, 6)wfc+1(z) = 6wk(i) + 2p,ekxk_i 0 < 5 < 1
(10.27, а)
(10.27, а)
(10.27, 6)
(10.27, 6)
wk+1(i) = wk^ + 2p,ekxk_t ± 6 0 < 5 < 1
Небольшой коэффициент потерь 5 гарантирует, что уход коэффициентов присутствует, но вводит в ошибку ек псевдослучайный шум.
Как упоминалось ранее, эффективность стандартного алгоритма наименьших квадратов можно увеличить, несколько его модифицировав. Назовем некоторые улучшенные версии схемы наименьших квадратов.
Комплексный алгоритм наименьших квадратов, разрешающий обрабатывать комплексные данные.
Блочный алгоритм наименьших квадратов, имеющий значительное вычислительное преимущество и в некоторых случаях более быструю сходимость.
Алгоритмы наименьших квадратов с упорядочением во времени, позволяющие решать некоторые нестационарные задачи.
Рис. 10.14. Упрощенная блок-схема фильтра, построенного на основе схемы наименьших квадратов
Другие алгоритмы на основе схемы наименьших квадратов
Комплексный алгоритм наименьших квадратов
Обновление весовых коэффициентов фильтра с помощью комплексного алгоритма наименьших квадратов изложено согласно [12]:
Wk+1 = Wk+2^kxk^,(10.28)
где символом “тильда" обозначена комплексная переменная. Комплексный алгоритм наименьших квадратов идеально воплощается на базе процессоров PDSP16XXX (Mitel), которые могут выполнять арифметические операции непосредственно с комплексными данными, что выгодно отличает их от обычных процессоров.
Быстрые алгоритмы наименьших квадратов
Значительно сэкономить на вычислениях, особенно при большом числе коэффициентов фильтра, позволяют несколько блочных алгоритмов наименьших квадратов. Для уменьшения объема вычислений данные в таких алгоритмах обрабатываются блоками, а не отдельными выборками. Изучив представление в частотной области реализации блочного алгоритма наименьших квадратов, можно отметить, насколько выгодно при выполнении свертки использовать быстрое преобразование Фурье (БПФ) [7]. Соответствующий эффективный фильтр, представленный в частотной области, изображен на рис. 10.14.
ек (выход)ек (выход)О'ук (сигнал + шум)О'ук (сигнал + шум)Рис. 10.15. Иллюстрация основной идеи метода наименьших квадратовРис. 10.15. Иллюстрация основной идеи метода наименьших квадратов
ек (выход)
ек (выход)
О'
ук (сигнал + шум)
О'
ук (сигнал + шум)
Рис. 10.15. Иллюстрация основной идеи метода наименьших квадратов
Рис. 10.15. Иллюстрация основной идеи метода наименьших квадратов
Рекурсивный алгоритм наименьших квадратов
Рекурсивный алгоритм наименьших квадратов основан на хорошо известной схеме наименьших квадратов (рис. 10.15). В ответ на набор входных сигналов ^(г), г = 1,2,..., тг получается выходной сигнал ук, который измеряется в дискретные моменты времени к. Входные и выходной сигналы связаны следующей регрессионной моделью:
71— 1
(10.29)(10.29)Ук = ^w^x^ + ек,
(10.29)
(10.29)
1-0
где ек представляет ошибки измерения или другие эффекты, которые нельзя учесть, a w(i) представляет долю г-го входа в первичном сигнале ук. Задача наименьших квадратов формулируется как получение по данным хк^ и ук оценок величин с w(0) по w(ti — 1).
Оптимальные оценки (по схеме наименьших квадратов) весовых коэффициентов фильтра w(i) определяются выражением
wmwm= УХ^Х^Х'^= УХ^Х^Х'^(10.30)(10.30)
wm
wm
= УХ^Х^Х'^
= УХ^Х^Х'^
(10.30)
(10.30)
где Ym, Wm и Хт записываются как
№
хТ№"
w(0)
У1
хт(1)
w(l)
№
хт =
хт(2)
Wm =
w(2)
Ут-1 ,
хТ(т — 1)
w(n — 1)
хт(к) = [т^(О) хк^ ... хк(п — 1)], к = 0,1,.. ., т — 1.
Индекс т указывает, что каждая из приведенных выше матриц вычисляется для всех т информационных точек, а через Т обозначен транспонированный вектор. Уравнение (10.30) определяет оптимальную оценку Wm по схеме наименьших квадратов, которую можно получить с помощью любого удобного метода обращения матриц. Наконец, выход фильтра записывается как
п—1
пк = У^ w(i)xk^i^ к — 1, 2,..., т.(10.31)
7=0
Рекурсивный алгоритм наименьших квадратов
Вычисление Wm по формуле (10.30) требует трудоемкого вычисления обратной матрицы. Очевидно, что описанный выше метод наименьших квадратов не подходит для фильтрации в реальном времени. На практике при получении непрерывных данных, когда требуется улучшить оценку Wm с помощью новых данных, предпочтительны рекурсивные методы. При рекурсивном методе наименьших квадратов оценки Wm можно обновлять для каждого нового полученного набора данных без прямого повторного трудоемкого обращения матрицы.
Подходящий рекурсивный алгоритм получается, если учитывать данные с экспоненциально затухающими весовыми коэффициентами, чтобы постепенно устранить влияние старых данных на Wm и позволить отслеживать медленно меняющиеся характеристики сигнала. Итак,
W к = W k~i + Gkek. (10.32, а)
Рк = -^Рк-1-Скхт^Рк^, 7Рк = -^Рк-1-Скхт^Рк^, 7(10.32,6)(10.32,6)
Рк = -^Рк-1-Скхт^Рк^, 7
Рк = -^Рк-1-Скхт^Рк^, 7
(10.32,6)
(10.32,6)
гдегде
где
где
Рк-хх^к)
,Oik
ек = Ук- xT^Wk_x,
ак = у + хт(к)Рк^1х(к).
По сути, введение Рк позволяет рекурсивно вычислять обратную матрицу [Х^Х^]-1.
Аргумент к используется, чтобы подчеркнуть тот факт, что величины вычисляются в каждый момент получения выборки; 7 называется коэффициентом забывания. Если положить 7 = 1, приведенная схема сведется к методу наименьших квадратов. Значение 7 обычно выбирается между 0,98 и 1. При меньших значениях наиболее свежим данным присваиваются слишком большие весовые коэффициенты, что приводит к сильной флуктуации оценок. Число предыдущих выборок, вносящих значительный вклад в W в каждый момент выборки, называется асимптотической длиной выборки (asymptotic sample length — ASL) и выражается следующей формулой:
(10.33)
Данное выражение эффективно определяет память фильтра, реализованного с использованием рекурсивной схемы наименьших квадратов. При 7 = 1 фильтр обладает бесконечной памятью.
Ограничения рекурсивного алгоритма наименьших квадратов
Число арифметических операций с выборками в рекурсивной схеме наименьших квадратов равно размерности Wk и Рк в уравнении (10.32). Впрочем, существует две основные проблемы, которые могут встретиться при непосредственной реализации рекурсивного алгоритма наименьших квадратов. Первая, именуемая “раздуванием" (“blow-up”), возникает, если сигнал хк^ равен нулю на протяжении значительного времени, вследствие чего матрица Рк будет расти экспоненциально в результате деления на 7 (7 < 1) в каждый момент получения выборки:
lim Рк = lim (——(10.34) к —»оо к—»оо \ ^к-1 /
Вторая проблема рекурсивного алгоритма наименьших квадратов — это его чувствительность к ошибкам компьютерного округления, из-за чего матрица Р становится отрицательно определенной, а впоследствии — неустойчивой. Для успешной оценки W требуется, чтобы матрица Р была неотрицательно определенной, что в методе наименьших квадратов эквивалентно требованию обратимости матрицы ХТХ. Однако вследствие того, что в уравнении (10.32, б) фигурирует разность величин, положительную определенность Р гарантировать нельзя. Данная проблема может еще больше испортить жизнь в многопараметрических моделях, особенно если переменные линейно зависимы и алгоритм реализован в небольшой системе с конечной длиной слова. После того как в алгоритме будет проделано много итераций, два члена в скобках в уравнении (10.32, б) могут стать почти равными. Вычитание таких членов в системе с конечной длиной слова может привести к ошибкам и тому, что матрица Рк станет отрицательно определенной.
Для решения проблемы численной неустойчивости можно соответствующим образом факторизовать матрицу Р, чтобы избежать вычитания в уравнении (10.32, б). Подобные алгоритмы факторизации лучше сходятся, а их точность сравнима с точностью рекурсивного алгоритма наименьших квадратов с двойной точностью. Два таких алгоритма — это алгоритм квадратного корня и алгоритм UD-факгоризации. С точки зрения памяти и вычислительной сложности UD-алгоритм эффективнее, а следовательно, предпочтительнее. Фактически UD-алгоритм — это формулировка алгоритма квадратного корня без использования квадратного корня, следовательно, свойства обоих алгоритмов одинаковы.
Алгоритмы факторизации
Алгоритм квадратного корня
В методе квадратного корня матрица Рк факторизуется следующим образом [8]:
Рк = sksLРк = sksL(10.35)
Рк = sksL
Рк = sksL
где Sk, верхняя треугольная матрица, и Sk, транспонированная матрица Sk, равны квадратному корню из Рк. Следовательно, если в ходе итераций обновлять не Рк, a Sk,
положительная определенность Рк гарантирована, поскольку произведение двух квадратных корней всегда положительно. Величина Sk обновляется следующим образом:
Sk = ^Sk-iHk-i,(10.36)
где Нк — верхняя треугольная матрица.
Алгоритм UD-факторизации
При UD-факторизации Рк факторизуется следующим образом [1]:
Рк = UkDkuL
где Uк — единичная верхняя треугольная матрица, U^ — транспонированная матрица Uк, a Dk — диагональная матрица. Следовательно, вместо обновления Рк, как в рекурсивном алгоритме наименьших квадратов, обновляются ее факторы U и D. Реализацию UD-алгоритма в форме программы на языке С можно найти на компакт-диске, прилагаемом к книге [Ifeachor, 2001] (подробности см. в предисловии).
Сфера приложения 1 — адаптивная фильтрация окулярных артефактов на ЭЭГ человека
Физиологическая задача
Электроэнцефалограмма (ЭЭГ) человека — это фиксация электрической активности мозга, которая содержит полезную диагностическую информацию по различным неврологическим расстройствам. Стандартные сигналы ЭЭГ поступают с электродов, помещенных на коже черепа, и часто имеют очень маленькую амплитуду порядка 20 мкВ. Сигнал ЭЭГ, подобно всем биомедицинским сигналам, очень уязвим к различным загрязнениям сигнала или артефактам, которые снижают его клиническую полезность. Например, моргание или движение глаз приводит к появлению вокруг глаз значительного электрического потенциала, именуемого электроокулограммой (electrooculogram — EOG, ЭОГ). Компонент ЭОГ, зашумляющий сигнал ЭЭГ, называется окулярным артефактом (ОА). Примеры измеренной ЭОГ и соответствующей зашумленной ЭЭГ приведены на рис. 10.16.
Окулярные артефакты являются главным источником сложностей, когда нужно отличить нормальную активность мозга от патологической. В некоторых случаях, например у младенцев с повреждениями головного мозга и пациентов с опухолями в лобных долях мозга, связанные патологические медленные волны в ЭЭГ и ОА отличить трудно. Сходство ОА с сигналами, представляющими клинический интерес, также затрудняет автоматизацию компьютерного анализа ЭЭГ. Вообще, неврологические расстройства часто проявляют себя в ЭЭГ как медленные волны, которые, к сожалению, не только
200 мкВ
1 секунда
Рис. 10.16. Проблема окулярных артефактов в электроэнцефалографии: а) измеренная ЭОГ: б) соот-ветствующий зашумленный сигнал ЭЭГ; в) сигнал ЭЭГ, скорректированный с учетом артефакта
выглядят подобно ОА, но и занимают ту же полосу частот, что и ОА. Следовательно, проблема заключается в удалении ОА при сохранении сигналов, представляющих клинический интерес.
Алгоритм обработки артефактов
Для обработки ОА было предложено несколько методов. В то же время, такие факторы, как требования клинических лабораторий, ограничения приложений реального времени, стоимость, случайная природа ОА и спектральное перекрытие ОА с некоторых сигналами, исходящими от церебральных источников, требуют, чтобы обработка окулярных артефактов была адаптивной и в реальном времени.
Схема адаптивной фильтрации окулярных артефактов представлена на рис. 10.17. В этом методе для получения оценок окулярных артефактов соответствующим образом масштабируются результаты ЭОГ. После этого оценки артефактов вычитаются из зашумленного сигнала ЭЭГ, и получается чистый (точнее, не содержащий окулярных артефактов) сигнал ЭЭГ. Для иллюстрации сказанного рассмотрим простую задачу ввода в одном канале ЭЭГ поправки на окулярные артефакты с использованием четырех сигналов ЭОГ (рис. 10.17, б). На основе информации, содержащейся в зашумленном сигнале ЭЭГ, у^, и сигналах ЭОГ, с 2^(0) по хк^3\ вычисляется оценка окулярного артефакта ^2,L0 wk(i)xk(i). Затем оценка окулярного артефакта вычитается из зашумленного сигнала ЭЭГ и получается сигнал ЭЭГ без артефактов, ек;
Сигналы ЭОГСигналы ЭОГРис. 10.17. Метод адаптивного устранения окулярных артефактов: а) возможные положения электродов при снятии электроокулограммы и электроэнцефалограммы; 6) адаптивный фильтр окулярных артефактовРис. 10.17. Метод адаптивного устранения окулярных артефактов: а) возможные положения электродов при снятии электроокулограммы и электроэнцефалограммы; 6) адаптивный фильтр окулярных артефактов
Сигналы ЭОГ
Сигналы ЭОГ
Рис. 10.17. Метод адаптивного устранения окулярных артефактов: а) возможные положения электродов при снятии электроокулограммы и электроэнцефалограммы; 6) адаптивный фильтр окулярных артефактов
Рис. 10.17. Метод адаптивного устранения окулярных артефактов: а) возможные положения электродов при снятии электроокулограммы и электроэнцефалограммы; 6) адаптивный фильтр окулярных артефактов
п— 1
«к = Ук - 52 wk^)ik^i), (10.37)i=0
где Wfc(i), г = 0,1,...,п — 1 — коэффициенты адаптивного фильтра, которые представляют элементы сигналов ЭОГ, входящие в ЭЭГ как артефакты. Величина е^ также используется для регулировки весовых коэффициентов адаптивного фильтра с помощью подходящего рекурсивного алгоритма наименьших квадратов, что позволяет получить оптимальные оценки окулярных артефактов. Чтобы учесть изменения окулярных артефактов, вызванные, например, изменением движения глаза, нужна непрерывная настройка коэффициентов wk(i\
Алгоритм адаптивной фильтрации, используемый для устранения окулярных артефактов, — это, по сути, описанный выше UD-алгоритм. Данная численно устойчивая формулировка рекурсивного алгоритма наименьших квадратов предпочтительнее алгоритма наименьших квадратов, поскольку имеет меньшее время сходимости. Это позволяет лучше обрабатывать различные окулярные артефакты, для устранения каждого из которых требуется свой оптимальный набор весовых коэффициентов. Пример сигнала ЭЭГ, адаптивно исправленного с учетом артефактов, приведен на рис. 10.16, в.
Реализация в реальном времени
В работе [5] рассмотрена оперативная микропроцессорная система устранения окулярных артефактов, в которой используется описанный выше UD-алгоритм. В данной системе пользователь может выбирать из нескольких реализованных моделей. Система тестировалась на нескольких больных и здоровых людях, причем для различных категорий больных были получены хорошие результаты.
Впрочем, было определено, что если на электроды ЭЭГ и ЭОГ одновременно поступают патологические сигналы, такие как медленные волны, эпилептические пики и сложные сигналы, сигналы в исправленной ЭЭГ имеют сниженную амплитуду. Это объясняется тем, что доля вычитаемого сигнала ЭОГ зависит от степени корреляции между ЭОГ и ее компонентами в ЭЭГ, а присутствие медленных волн, похожих формой на сигналы окулярных артефактов, может привести к вычитанию той части сигнала, которая зависит и от медленных волн, и от ЭОГ. Следовательно, необходимо отличать окулярные артефакты и медленные волны, например, используя для этой цели системы с базами знаний (см. [6]).
Сфера приложения 2 — адаптивное телефонное эхоподавление
Эхо-сигналы характерны в основном для систем связи, где сигнал рассогласовывается по импедансу. Рассмотрим представленный на рис. 10.18, а упрощенный междугородный телефонный канал. Дифференциальная схема на АТС переводит двухпроводную линию от аппарата пользователя в четырехпроводную линию и обеспечивает раздельные маршруты для каждого направления передачи. Такая схема выбрана в основном по экономическим причинам, например, чтобы разрешить уплотнение, т.е. одновременную передачу большого числа звонков.
В идеальном случае речевой сигнал, идущий от пользователя А, проходит по верхнему тракту передачи к правой дифференциальной схеме, а затем отправляется к пользователю В, тогда как сигнал пользователя В передается по нижнему тракту к пользователю А. Гибридная сеть с каждой стороны должна обеспечивать поступление речевого сигнала удаленного пользователя в ее двухпроводный порт, а не в выходной порт. В то же время, из-за несовпадения импедансов гибридная сеть допускает, что часть входных сигналов уходит в выходной тракт и возвращается к собеседнику в виде эха. Когда телефонный звонок производится на большое расстояние (например, с помощью геостационарных спутников), эхо может запаздывать на время до 540 мс и ухудшать связь, раздражая пользователя, причем ухудшение увеличивается с расстоянием. Чтобы обойти эту проблему, в сеть вводится пара эхоподавителей, как показано на рис. 10.18, б.
С каждого края системы связи (рис. 10.18, б) входной сигнал хк подается на гибридный и адаптивный фильтры [2]. Подавление производится за счет оценки эха с последующим ее вычитанием из ответного сигнала ук. Основное сделанное здесь допущенное — тракт возврата эхо-сигнала (через гибридный фильтр) предполагается
Эхо речи
абонента А
а) 2-проводное соединение
б) 4-проводное соединение
Рис. 10.18. Упрощенная схема междугородного телефонного канала (панель а); эхоподавление в голосовой междугородной телефонной связи (панель б)
линейным и инвариантным во времени. Итак, сигнал в момент к можно выразить следующим образом:
N-1
Ук = У wk^xk_i + sk,(10.38)
i=0
где хк — выборки входного сигнала (от удаленного собеседника), sk — речь ближнего собеседника плюс любой аддитивный шум, a wk — импульсная характеристика тракта эхо-сигнала. Эхоподавитель находит оценку данной импульсной характеристики и выдает соответствующую оценку ук = ^2,wk^xk_j эхо-сигнала, которая затем вычитается из полезного ответного сигнала ук- Экономические соображения налагают ограничения на частоту дискретизации, длину коэффициентов фильтра и входные данные, что, в свою очередь, ограничивает производительность эхоподавителя. Кроме того, существуют фундаментальные ограничения, вызванные неточной настройкой адаптивного фильтра и нелинейностями эхо-тракта.
Другие приложения
Громкоговорящие телефоны
Для разделения трактов передачи и приема (т.е. отделения громкоговорителя от микрофона) используется гибридная сеть, но, поскольку громкоговоритель и микрофон расположены близко, а гибридная сеть согласована неидеально, между этими двумя устройствами существует значительная акустическая связь [9].
Обеспечить достаточное усиление в направлении приема и передачи, не вызвав неустойчивости, довольно сложно.
Обычно для выбора тракта приема и тракта передачи применяется переключатель с речевым управлением, но такое решение проблем неудовлетворительно, поскольку оно не допускает полнодуплексной связи.
Для оценки и контроля за акустическим и гибридным эхом лучше всего использовать методы адаптивной фильтрации (рис. 10.19, б). В такой задаче число коэффициентов фильтра довольно велико (например, 512), что повышает привлекательность быстрого алгоритма.
В сетях телеконференций (или системах публичных выступлений) акустическая обратная связь приводит к проблемам, подобным описанным выше. Необходимые для решения этих проблем адаптивные фильтры могут иметь значительное число коэффициентов (250-1000), особенно в помещениях с большими временами реверберации, кроме того, адаптивные алгоритмы должны быстро сходиться.
Компенсация многолучевого распространения
В системе расширенного спектра каждый бит данных передается как одна из двух ортогональных псевдослучайных последовательностей, имеющих длину М. Передаваемая последовательность зависит от того, какой бит данных обрабатывается — логический 0 или 1. В приемнике находится взаимная корреляция принятой последовательности и двух последовательностей, идентичных использованным в передатчике, на основе сравнения результатов принимается решение, какой бит был передан — 0 или 1.
Иногда сигнал может распространяться по нескольким трактам. Например, так бывает в гористой или городской местности, где возможно многолучевое распространение сигнала с участием отражения. Принятый сигнал складывается из нескольких компонентов, амплитуды и фазы которых могут отличаться (рис. 10.20). В результате это может привести к снижению производительности приемника.
Для оценки суммарной характеристики многолучевого распространения и компенсации ее влияния используется адаптивный фильтр.
Акустический эхоподавитель Гибридный эхоподавитель
б)
Рис. 10.19. Громкоговорящий телефон (панель а); подавление в громкоговорящем телефоне акустического эха и эха гибридной сети (панель б)
Рис. 10.20. Адаптивная система связи расширенного спектра с компенсацией многолучевого распространения
Адаптивная схема выделения сигнала
Рис. 10.21. Подавление помехи в приемнике DS/SS
Адаптивное подавление преднамеренной помехи
Чтобы повысить эффективность приемника в системе расширения спектра методом прямой последовательности (direct sequence spread spectrum — DS/SS) часто требуется подавить преднамеренную помеху. С этой целью можно использовать адаптивную фильтрацию (рис. 10.21). В подобной системе используется тот факт, что станция- постановщик помех передает сильно коррелированный сигнал, тогда как псевдослучайный код имеет слабую корреляцию. Следовательно, выход фильтра ук — это оценка помехи. Значит, вычитая ее из принятого сигнала $к, получаем оценку сигнала расширенного спектра.
Для повышения производительности системы используется двухкаскадный подавитель помех. Влияние конечной корреляции, которое приводит к частичному подавлению полезного сигнала, нейтрализует адаптивный линейный селективный фильтр (по сути, еще один адаптивный фильтр). Для обоих фильтров требуется умеренное число коэффициентов (порядка 16), но частота дискретизации может значительно превышать 400 кГц.
Обработка сигналов с радаров
Методы адаптивной обработки сигналов позволяют решить множество проблем, связанных с радарами. Например, адаптивные фильтры применяются в моностатических РЛС для удаления или подавления шумовых компонентов в полезном сигнале. В высокочастотных поверхностных радарах адаптивные фильтры используются для уменьшения внутриканальных помех, которые являются основной проблемой при работе в высокочастотном диапазоне.
Отделение сигналов речи от фонового шума
При обработке речи серьезную проблему представляет собой фоновый шум. Для улучшения производительности систем передачи речи в зашумленной среде (например, в самолетах-истребителях, танках или автомобилях) можно использовать адаптивный фильтр, что повысит разборчивость речи и облегчит ее распознавание.
Рис. 10.22. Адаптивное подавление материнской ЭКГ на ЭКГ плода (согласно [11]): а) векторы электрического поля сердца матери и плода; б) расположение отведений электрокардиограммы; в) адаптивная схема; г) идеализированная ЭКГ матери (грудные отведения электрокардиограммы); д) идеализированная зашумленная ЭКГ плода (брюшные отведения); е) выход шумоподавителя с ослабленной ЭКГ материРис. 10.22. Адаптивное подавление материнской ЭКГ на ЭКГ плода (согласно [11]): а) векторы электрического поля сердца матери и плода; б) расположение отведений электрокардиограммы; в) адаптивная схема; г) идеализированная ЭКГ матери (грудные отведения электрокардиограммы); д) идеализированная зашумленная ЭКГ плода (брюшные отведения); е) выход шумоподавителя с ослабленной ЭКГ матери
Рис. 10.22. Адаптивное подавление материнской ЭКГ на ЭКГ плода (согласно [11]): а) векторы электрического поля сердца матери и плода; б) расположение отведений электрокардиограммы; в) адаптивная схема; г) идеализированная ЭКГ матери (грудные отведения электрокардиограммы); д) идеализированная зашумленная ЭКГ плода (брюшные отведения); е) выход шумоподавителя с ослабленной ЭКГ матери
Рис. 10.22. Адаптивное подавление материнской ЭКГ на ЭКГ плода (согласно [11]): а) векторы электрического поля сердца матери и плода; б) расположение отведений электрокардиограммы; в) адаптивная схема; г) идеализированная ЭКГ матери (грудные отведения электрокардиограммы); д) идеализированная зашумленная ЭКГ плода (брюшные отведения); е) выход шумоподавителя с ослабленной ЭКГ матери
Наблюдение за плодом — подавление ЭКГ матери при родах
При оценке состояния ребенка до и после родов весьма полезна информация, полученная из электрокардиограммы (ЭКГ) плода, например, сердечный ритм плода.
ЭКГ, полученная с электродов, размещенных на животе матери, загрязнена значительно более сильными фоновыми шумами (например, вызванными мускульной деятельностью и шевелением плода), а также собственной ЭКГ матери.
Для получения “чистой” ЭКГ плода используются адаптивные фильтры; основная концепция этого процесса иллюстрируется на рис. 10.22.
Четыре грудных отвода электрокардиограммы используются для детектирования ЭКГ ребенка, а один или несколько отводов для детектирования суммарной ЭКГ матери и ребенка. Как показано на рисунке, для подавления сигналов пульсации сердца матери используется четырехканальный адаптивный фильтр (32 коэффициента на канал).
Задачи
Докажите, что в перечисленных областях выгоднее использовать не обычные фильтры, а адаптивные:
удаление окулярных артефактов с ЭЭГ человека;
эхоподавление в междугородной телефонии;
подавление активной помехи в системах связи расширенного спектра.
Начав с алгоритма быстрейшего спуска,
Wk+1 = Wk-p^,
где Wk — вектор весовых коэффициентов фильтра в дискретный момент времени к, параметр р отвечает за устойчивость и скорость сходимости, a Vk — вектор истинного градиента поверхности производительности в дискретный момент времени к, выведите алгоритм наименьших квадратов Уидроу-Хопфа для адаптивного шумоподавления. Укажите сделанные предположения. Прокомментируйте практическую значимость алгоритма наименьших квадратов.
Прокомментируйте два главных ограничения алгоритма наименьших квадратов и то, как они снижают эффективность алгоритма. Предложите пути устранения этих недостатков.
Выход адаптивного шумоподавителя записывается следующим образом:
ek = yk-XlW,
где Wk — вектор весовых коэффициентов фильтра, а другие переменные имеют обычное значение. Начав с этого уравнения, выведите
дискретное уравнение Винера-Хопфа;
стандартный алгоритм наименьших квадратов.
Разрешается делать оправданные допущения.
Покажите, что адаптивный фильтр самовыключается при отсутствии корреляции между помехой хк и зашумленным сигналом ук.
С помощью блок-схемы кратко объясните основные концепции адаптивного шумоподавления. Критично обсудите преимущества и ограничения адаптивного шумоподавления в выбранном приложении реального времени и объясните, как названные ограничения можно обойти.
ЛитератураЛитература.::-;;. Ж- -^fc J-^W Ur'A' - ■;!::■■ - ff .^fo:®.-'^:VT.:::ti^■ - ./V
Литература
Литература
»яяяе^^ - '
Bierman G. J. (1976) Measurement updating using the UD factorization. Automatica, 12, 375-382.
Duttweiller D. L. (1978) A twelve-channel digital echo canceler. IEEE Trans. Communications, 26,647-653.
Ferrara E. R. and Widrow B. (1981) The time-sequenced adaptive filter. IEEE Trans. Acoustics, Speech and Signal Processing, 29(3), 766-770.
Haykin S. (1986) Adaptive Filter Theory. Englewood Cliffs NJ: Prentice-Hall.
Ifeachor E. C„ Jervis B. W., Morris E. L., Allen E. M. and Hudson N. R. (1986) A new microcomputer-based on-line ocular artefact removal (OAR) system. IEEE Proc., 133, 291-300.
Ifeachor E. C., Hellyar M. T., Mapps D. J. and Allen E. M. (1990) Knowledge based enhancement of EEG signals. Proc. IEEE (Part F), 137(5), 302-310.
Mansour D. and Gray A. H. (1982) Unconstrained frequency domain adaptive filter. IEEE Trans. Acoustics, Speech and Signal Processing, 30, 726-734.
Peterka P. (1975) A square root filter for real-time multivariate regression. Kybernetika, 11, 53-67.
South C. R., Hoppitt С. E. and Lewis A. V. (1979) Adaptive filters to improve loudspeaker telephone. Electronics Lett, 15, 673, 674.
Widrow B. and Winter R. (1988) Neural nets for adaptive filtering and adaptive pattern recognition. IEEE Computer, 25-30.
Widrow B., Glover J. R., McCool J. M., Kaunitz J., Williams C. S., Hearn R. H., Zeidler J. R., Dong E. and Goodlin R. C. (1975a) Adaptive noise cancelling: principles and applications. Proc. IEEE, 63, 1692-1716.
Widrow B., McCool J. M. and Ball M. (1975b) The complex LMS algorithm. Proc. IEEE, 719, 720.
Дополнительная литература
Clark G. A., Mitra S.K. and Parker S. R. (1981) Block implementation of adaptive digital filters. IEEE Trans. Acoustics, Speech and Signal Processing, 29, 744-752.
Clark G. A., Parker S. R. and Mitra S. K. (1983) A unified approach to time- and frequency-domain realization of FIR adaptive digital filters. IEEE Trans. Acoustics, Speech and Signal Processing, 31, 1073-1083.
Cowan C. F. N. and Grant P. M. (eds) (1985) Adaptive Filters. Englewood Cliffs NJ: Prentice-Hall.
De Courville M. and Duhamel P. (1995) Adaptive filtering in subbands using a weighted criterion. In Proc. ICASSP, Detroit, MI, Vol. 2, pp. 985-988.
Dentine M., McCool J. M. and Widrow B. (1978) Adaptive filtering in the frequency domain. Proc. IEEE, 66, 1658, 1659.
Dudek M. T. and Robinson J. M. (1981) A new adaptive circuit for spectrally efficient digital microwave-radio- relay systems. Electronics and Power, 397-401.
Falconer D. D. (1982) Adaptive reference echo cancellation. IEEE Trans. Communications, 30, 2083-2094.
Ferrara E. R. and Widrow B. (1981) Multichannel adaptive filtering for signal enhancement. IEEE Trans. Acoustics, Speech and Signal Processing, 29, 766-770.
Gilloire A. and Vetterli M. (1992) Adaptive filtering in subbands with critical sampling: analysis, experiments, and applications to acoustic echo cancellation. IEEE Trans. Circuits and Systems, 40, 1862-1875.
Harrison W. A., Lim J. S. and Singer E. (1986) A new application of adaptive noise cancellation. IEEE Trans. Acoustics, Speech and Signal Processing, 34, 21-27.
Holte N. and Stueflotten S. (1981) A new digital echo canceler for two-wire subscriber lines. IEEE Trans. Communications, 29, 1573-1581.
Lappage R., Clarke J., Palma G. W. R. and Huizing A. G. (1987) The Byson research radar. In International Conf. Radar 87, October 1987, London: IEE, 453-461.
Levin М. D. and Cowan C. F. N. (1994) The performance of eight recursive least squares adaptive filtering algorithms in a limited precision environment. In Proc. European Signal Processing Conf., Edinburgh, pp. 12611264.
Lewis A. (1992) Adaptive filtering applications in telephony. ВТ Technology J., 10, 49-63.
Li Y. and Ding Z. (1995) Convergence analysis of finite length blind adaptive equalizers. IEEE Trans. Signal Processing, 43, 2120-2129.
Macchi O. (1995) Adaptive Processing: The LMS Approach with Applications in Transmission. New York: Wiley. Messerschmitt D. G. (1984) Echo cancellation in speech and data transmission. IEEE J. Selected Areas in Communications, 2, 283-297.
Mikhael W. B. and Wu F. H. (1987) Fast algorithms for block FIR adaptive digital filtering. IEEE Trans. Circuits and Systems, 34, 1152-1160.
Mueller К. H. (1976) A new digital echo canceler for two-wire full-duplex data transmission. IEEE Trans. Communications, 24, 956-962.
Ochia K., Araseki T. and Ogihara T. (1977) IEEE Trans. Communications, 25, 589-594.
Ogue J. C., Saito T. and Hoshiko Y. (1983) A fast convergence frequency domain adaptive filter. IEEE Trans. Acoustics, Speech and Signal Processing, 31, 1312-1314.
Reed F. A., Feintuch P. L. and Bershad N. J. (1985) The application of the frequency domain LMS adaptive filter to split array bearing estimation with a sinusoidal signal. IEEE Trans. Acoustics, Speech and Signal Processing, 33, 61-69.
Saulnier G. J., Das P. K. and Milstein L. (1985) An adaptive digital suppression filter for direct sequence spread spectrum communications. IEEE J. Selected Areas in Communications, 3, 676-686.
Sethares W. A., Lawrence D. A., Johnson C. R. and Bitmead R. R. (1986) Parameter drift in LMS adaptive filters. IEEE Trans. Acoustics, Speech and Signal Processing, 34, 868-879.
Sondhi M. M. and Berkley D. A. (1980) Silencing echoes on the telephone network. Proc. IEEE, 68, 948-963.
Tao Y. G., Kolwicz K. D., Gritton C. W. K. and Duttweiller D. L. (1986) A cascadable VLSI echo canceller. IEEE Trans. Acoustics, Speech and Signal Processing, 34, 297-303.
Thornton C. L. and Bierman G. J. (1978) Filtering and error analysis via the UDU covariance factorization. IEEE Trans. Automatic Control, 23, 901-907.
Widrow B. (1966) Adaptive Filters 1: Fundamentals. Report SU-SEL-66-126, Stanford Electronics Laboratory, Stanford University, CA.
Widrow B. (1971) Adaptive filters. In Aspects of Network and System Theory (Kalman R. and DeClaris N. (eds)), pp. 563-587. New York: Holt, Rinehart and Winston.
Widrow B. (1976) Stationary and nonstationary learning characteristics of the LMS adaptive filter. Proc. IEEE, 64, 1151-1162.
Widrow B. and Stearns S. D. (1985) Adaptive Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Widrow B., Mantey R, Griffiths L. and Goode B. (1967) Adaptive antenna systems. Proc. IEEE, 55, 2143-2159.
Приложения
A. Программа на С для адаптивной фильтрации
На компакт-диске к книге [Ifeachor, 2001] имеются следующие программы, в которых реализованы адаптивные алгоритмы:
1msfit. с, алгоритм наименьших квадратов;
uduf It. с, UD-алгоритм;
sqrf It. с, алгоритм квадратного корня;
rlsf It. с, рекурсивный алгоритм наименьших квадратов.
Из-за ограниченного размера данной книги ниже приводится только одна из названных программ.
Программа 10А.1. Реализация на С алгоритма наименьших квадратов (Imsflt.c)
/**/
/* реализация алгоритма наименьших квадратов*/
/**/
/*шаппу 6.11.92*/
/**/
/*вход:*/
/*х[] вектор входных данных*/
/*dk текущий последний элемент входных данных*/
/*w[] вектор коэффициентов*/
/**/
/* выход:'*/
/*екзначение ошибки*/
/*уквыход цифровогофильтра*/
/*w[]вектор обновленныхкоэффициентов*/
/**/
double lmsflt() { int i ; double uek,yk; yk = 0;
for(i=0; 1<N; ++i){/* цифровая фильтрация */
yk=yk+w[i]*x[i];
}
ek=dk-yk;/* вычислить ошибку выхода*/
uek=2*mu*ek; /* обновить весовые коэффициенты*/ for(i=0; i<N; i++){
w [ i]=w[i]+uek*x[i ];
}
return(yk);
}
Для иллюстрации реализации адаптивных фильтров используем программу 10АЛ для детектирования тона в широкополосном шуме.
10.А.1. Адаптивное выделение узкополосных сигналов, спрятанных в шуме
Адаптивные фильтры часто используются для детектирования или выделения узкополосных сигналов, спрятанных в широкополосном шуме. Структура, которая часто используется с этой целью, изображена на рис. 10А.1. Она состоит из элемента задержки, обозначенного через z-M, и адаптивного предсказателя. Элемент задержки удаляет корреляцию, которая может существовать между выборками шумовой составляющей. Адаптивный предсказатель — это, по сути, КИХ-фильтр с настраиваемыми коэффициентами, и его выход ук — это выделенный узкополосный сигнал. В некоторых случаях требуется получить на выходе фильтра не сигнал ук, а второй выход адаптивного фильтра ек. Для оптимизации коэффициентов предсказателя wk(i) используется подходящий
Рис. 10А.1. Адаптивное выделение сигналаРис. 10А.1. Адаптивное выделение сигнала
Рис. 10А.1. Адаптивное выделение сигнала
Рис. 10А.1. Адаптивное выделение сигнала
адаптивный алгоритм, в нашем случае это схема наименьших квадратов (подробности см. в разделе 10.4).
При использовании схемы наименьших квадратов адаптивный фильтр характеризуется следующими уравнениями:
jV—1
(10А.1, а)(10А.1, 6)(10А.1, а)(10А.1, 6)(10A.l,e)(10A.l,e)№ = 52 ^k^XkW),г=0
(10А.1, а)
(10А.1, 6)
(10А.1, а)
(10А.1, 6)
(10A.l,e)
(10A.l,e)
Кк = dk- ук,
Wfc+1(i + 1) = Wk(i) + 2/refc2:fc(i), i = 0,1,... , N - 1,
где dk — выборка зашумленного узкополосного сигнала, хк^ — вектор входных данных, полученный из задержанных значений dk, wk(i) — вектор коэффициентов предсказания в к-й момент выборки, /г — коэффициент устойчивости, ук — выделенный узкополосный сигнал.
Фигурирующая в программе 10А.1 функция 1msfit. с представляет собой реализацию на языке С приведенных выше уравнений. Использование функции 1msfit.с для выделения сигнала иллюстрируется в программе 10А.2. Для моделирования задачи к синусоидальному сигналу с частотой 500 Гц был добавлен широкополосный шум, а составной сигнал был записан в формате ASCII в файле din. dat. Затем зашумленная синусоида была подана на адаптивный фильтр. Для моделирования адаптивной фильтрации в реальном времени входные данные считывались из файла и подавались на адаптивный фильтр по одной выборке. Отметим, что для любой длинной последовательности данных пользователю из соображений эффективности может потребоваться считывать данные блоками. Результат фильтрации с использованием схемы наименьших квадратов представлен на рис. 10А.2.
Как очевидно следует из рис. 10А.2, для использования адаптивных алгоритмов пользователю потребуется задать параметры адаптивных фильтров, например, длины КИХ-фильтра N, коэффициента задержки М и коэффициента устойчивости р. Кроме того, следует уделить внимание формату входных данных. Например, в некоторых приложениях входных данные могут поступать от многоканального источника, когда каждый элемент сигнала хк(г) представляет элемент данных из канала. В этом случае перед применением адаптивного алгоритма массив входных данных следует надлежащим образом модифицировать.
АмплитудаАмплитуда01020304050Время (мс) а)01020304050Время (мс) а)Рис. 10А.2. Адаптивное выделение узкополосного сигнала: а) зашумленный сигнал; б) выделенный сигналРис. 10А.2. Адаптивное выделение узкополосного сигнала: а) зашумленный сигнал; б) выделенный сигнал
Амплитуда
Амплитуда
01020304050
Время (мс) а)
01020304050
Время (мс) а)
Рис. 10А.2. Адаптивное выделение узкополосного сигнала: а) зашумленный сигнал; б) выделенный сигнал
Рис. 10А.2. Адаптивное выделение узкополосного сигнала: а) зашумленный сигнал; б) выделенный сигнал
Программа 10А.2. Программа адаптивного выделения сигнала.
/*
*/
/*
*/
/* Программа иллюстрирует адаптивную фильтрацию
*/
/* с использованием алгоритмов наименьших квадратов
*/
/*
*/
/* имя программы: adfilter.c
*/
/*
*/
/* manny, 7.11.92
*/
/*
♦include<stdio.h>
♦include<math.h>
♦include<dos.h>
/* определения констант */
♦define N30/* длина фильтра */
♦define Ml/* задержка */
*/
♦define wO 0/* исходное значение коэффициентов
/* фильтра */
♦define npt N+M
адаптивного */
♦define SF 2048 /* коэффициент уменьшения выборок - /* использование 11-битового АЦП */
♦define mu 0.04
предполагается */
double lmsfIt();
void initlms();
void updatedatabuffers();
void initfiles();
float x[npt], d[npt], dk, ek;
double w[npt];
fiLE*in,*out,*fopen();
chardin[30];
main() {
double yk, ykl;
initfiles() ;
/* адаптивный фильтр, построенный по схеме наименьших квадратов*/ initlms();
while(fscanf(in,"%f",&dk)!=EOF)(
dk=dk/SF;
updatedatabuffers();
yk=lmsfIt();
ykl =SF*yk;
fprintf(out,"%lf \n",ykl); }
fcloseall();
}
/**/
void initfiles() (
clrscr();
printf("введите имя файла с данными для фильтрации \п");
scanf("%s",din);
printf("\n");
printf("отфильтрованные данные записываются в файл dout.dat \п"); if((in=fopen(din, "г"))= =NULL){
printf("невозможно открыть файл входных данных \п");
exit(1);
}
if ((out = fopen ("dout.dat", "w"))= =NULL){
printf("невозможно открыть файл выходных данных \п");
exit(1);
}
return;
void updatedatabuffers()
{
long j, k;
for(j=l; j,N; + +j)( /*обновление буфера х-данных*/ k=N-j;
x[k]=x[k-l];
}
x[0]=dk;
if(M>0)
x[0]=d[M-l];
for(j=l; j,M; + +j) { /‘обновление буфера d-данных*/ к=М-j; d[k]=d[k-l]; ) d[0]=dk; }
/* */
void initlms() { long i; for(i=0; i,npt; + +i){ x[i]=0; d[i]=0; w [ i ] = wO; }
}
/* */
#include "Imsfit.c";
10.Б. Программы MATLAB для адаптивной фильтрации
MATLAB не поддерживает прямо адаптивную обработку сигналов. Однако авторы разработали две программы MATLAB, в которых реализованы основные адаптивные алгоритмы, метод наименьших квадратов и рекурсивный метод наименьших квадратов:
Imsadf. m — используется для выполнения стандартной адаптивной фильтрации на основе схемы наименьших квадратов;
rlsadf ,m — применяется для выполнения стандартной адаптивной фильтрации на основе рекурсивной схемы наименьших квадратов
Обе программы можно найти в Web.
Оценка и анализ спектра
11
Введение,737
Принципы оценки спектра740
Традиционные методы,742
Современные параметрические методы оценки762
Авторегрессионная оценка спектра .. 763
Сравнение методов оценки770
Примеры применения770
Резюме.,774
Разобранный пример774
Задачи776
" Литература ."'779
" Приложение781
В данной главе рассмотрены следующие темы: основные концепции спектрального анализа, подводные камни непараметрических методов, свойства весовых функций, предварительная обработка данных и выбор весовой функции. Описываются и сравниваются непараметрические методы, в том числе метод модифицированной периодограммы, метод Блэкмена-Тьюки, основанный на применении быстрого преобразования Фурье к автокорреляционной функции данных, и метод быстрой корреляции. Описан наиболее распространенный метод параметрической оценки спектра, основанный на авторегрессионном моделировании, а также дан краткий обзор других параметрических методов. Рассмотрены следующие приложения: обработка электрических сигналов мозга для различения здоровых людей и пациентов с болезнями мозга и анализ электроэнцефалограммы человека на основе авторегрессионного моделирования.
Введение
Преобразование данных из временной области в частотную было описано в разделе 3.1. В данной главе развиваются принципы и навыки оценки и анализа спектра в частотной области. Вообще, графики зависимости амплитуд или фаз гармоник от частоты часто более удачно представляют данные или сигналы, особенно если сигналы имеют случайную природу. Выбирая согласно некоторому критерию определенные гармоники и отбрасывая другие, можно существенно сжать данные. Спектральный анализ оказался полезным в таких областях, как изучение сигналов техники связи или смоделированных откликов человеческой электроэнцефалограммы (ЭЭГ) при диагностике болезней головного мозга [29], других биологических сигналов, метеорологических данных, в управлении технологическим процессом и измерении спектра шума при разработке оптимальных линейных фильтров.
Существующие методы оценки спектра можно разделить на параметрические и непараметрические. Непараметрические методы включают периодограммы, модифицированные периодограммы Барлета (Barlett) и Уэлша (Welsh) и метод Блэкмеиа-Тьюки (Blackman-Tukey). Плюс: все эти методы можно реализовать с использованием быстрого преобразования Фурье; минус: если данные представляются короткими словами, разрешение по частоте ограничено. Кроме того, чтобы получить значимые результаты, следует быть очень аккуратными. С другой стороны, параметрические методы не только вычислительно эффективнее, но и могут давать большее разрешение. Впрочем, перед оценкой спектра процесса нужно вначале построить достаточно точную модель этого процесса. Если выбран параметрический подход, чаще всего спектр выводится из параметров авторегрессионной модели сигнала (авторегрессионная оценка спектра описана в разделе 11.5).
При выполнении непараметрического спектрального анализа нужно обойти множество подводных камней. Связанные с этим темы наложения, гребешковых искажений, конечной длины данных, просачивания спектральных составляющих и размывания спектра очень важны, и их рассмотрению посвящен раздел 11.3.
Отрицательное воздействие просачивания спектральных составляющих и размывания можно минимизировать, ограничив данные посредством подходящей весовой функции. Дискретные данные по одной выборке множатся на дискретные значения выбранной весовой функции. Тема умножения на финитную взвешивающую функцию рассмотрена в разделе 11.3.2. Основными свойствами весовой функции являются ширина полосы шумового (или прямоугольного) эквивалента, коэффициент расширения спектра, потери (времени) при обработке данных в наихудшем случае и полоса минимального разрешения. Все они рассмотрены в подразделе 11.3.2.1. В разделе по корреляции перекрывающихся областей показано, что усреднение спектра из нескольких взвешенных фрагментов данных вместо непосредственного вычисления спектра всех взвешенных данных дает значительно лучшую оценку спектра. В части подраздела 11.3.2.1, посвященной смещающему эффекту взвешивания, показано, как потери энергии сигнала и смещение постоянной составляющей взвешенных данных можно устранить, обработав данные до взвешивания.
Суждения о качестве спектральных оценок основаны на теории оценок, так что в главе приводятся некоторые базовые концепции этой дисциплины. Статистическая оценка включает определение математического ожидания статистических величии, выведенных из выборок совокупности. Впрочем, при анализе с помощью временных рядов обычно доступны не выборки генеральной совокупности, взятые одновременно, а дискретные данные, полученные как функция времени. Этот момент обычно полагается несущественным, постольку принимается эргодическая гипотеза: свойства данных временного ряда совпадают со свойствами предполагаемых выборок. Теперь самое время привести несколько статистических определений.
Среднее значение временного ряда, состоящего из элементов данных х(п\ п = 0,1,..., N — 1, равно его математическому ожиданию Е^п)]:
Е^Ц^М (11.1) п=0
где Е — оператор математического ожидания. Дисперсия того же ряда выражается как
var[ir(n)] = ^{[^(п) — x(n)]2}.(11.2)
Автоковариационная матрица х^ записывается следующим образом:
Схх^) = ■E'{[o:(n) - х(п)][т(п + m) — x(n)]},(Н-З)
где через т обозначено запаздывание элементов данных, а через х(п) записано Е^п)]. Предполагая конечную реализацию, спектральную плотность мощности можно записать какоо
РеМ = Г cXI(m) exp(-iwm).(11.4)
Отметим, что если в отличие от бесконечно длительных стохастических процессов рассматривать сигналы конечной длительности, более правильным будет использовать спектральную плотность энергии. Спектральная плотность мощности имеет размерность В2Гц-1. Если оценивается статистический параметр а, смещение (отклонение) оценки определяется как разность истинного значения (взятого из генеральной совокупности) и оценки:
смещение = а — Е[а].(Н-5)
Если смещение равно нулю, оценка совпадает с истинным значением; если смещение не равно нулю, оно представляет ошибку определения а и оцененное значение а называется смещенным. Хорошие алгоритмы оценки смещения не допускают. Дисперсия а является мерой ширины максимума функции распределения плотности вероятности а. При небольшой дисперсии пики довольно узкие, а при дисперсии, стремящейся к нулю, оцененное значение стремится к значению из генеральной совокупности (истинному), если оценка не смещена. Если дисперсия стремится к нулю при увеличении числа элементов данных N, оценку называют состоятельной. Если она несостоятельна, оценки будут флуктуировать с увеличивающейся амплитудой от реализации к реализации с увеличением элементов данных. Следовательно, нужно, чтобы статистические оценки были несмещенными и состоятельными.
Особенности оценки спектра методами периодограмм рассмотрены в разделах 11.3.3 и 11.3.4. Показано, что оценки спектра, выведенные как периодограммы, несостоятельны, т.е. последовательные реализации дают флуктуирующие оценки, несмещенные только для больших наборов данных. Для получения устойчивых и более точных оценок вырезаются блоки данных, спектры которых затем усредняются. Данная идея реализована в методе модифицированных периодограмм Барлетта и Уэлша. В заключение рассмотрен непараметрический метод Блэкмена-Тьюки. Метод заключается в следующем: вначале вычисляется взвешенная автокорреляционная функция данных, и по ее БПФ получается энергетический спектр. Оценка спектра по методу Блэкмена-Тьюки характеризуется большей добротностью, чем другие методы с использованием периодограмм.
Кроме того, следует определить добротность оценок спектральной плотности мощности, что позволит сравнить различные оценки. В качестве выражения для доброт-
(Н.6)(Н.6)ности оценки было предложено (см. [44]) отношение квадрата среднего спектральной плотности мощности к ее дисперсии:
(Н.6)
(Н.6)
vai[P£(/)] "
Принципы оценки спектра
В начале данного раздела рассматривается форма сигнала напряжения в зависимости от времени. Данная форма сигнала может дать полезную информацию. Например, это может быть синусоида, которую естественно характеризовать ее амплитудой, частотой и фазой. Точнее, такой сигнал можно считать состоящим из одной гармоники известной частоты с определенной амплитудой и фазой. В качестве альтернативы представления сигнала как функции напряжения от времени его можно представить двумя графиками: зависимости амплитуды от частоты и зависимости фазы от частоты. Поскольку синусоида — это единственный сигнал, который имеет одну амплитуду, одну фазу и одну частоту, на графиках амплитуды и фазы синусоиды будет расположена одна точка. С помощью анализа Фурье (см. главу 3) можно показать, что все сигналы можно математически представить как сумму синусоидальных сигналов, каждый из которых имеет свою амплитуду и фазу на заданной частоте. Следовательно, любой сигнал можно альтернативным образом представить зависимостью амплитуды от частоты и фазы от частоты. Данные графики называются амплитудным и фазовым спектрами. Данные спектры важны, поскольку они предлагают дополняющий способ представления сигнала, из которого яснее видна информация о частотном содержании сигнала. Наблюдаемые формы спектров и изменения в них весьма полезны при понимании и интерпретации сигналов. Амплитудный и фазовый спектры в свою очередь очень часто дают больше полезной информации, чем сигналы. Тема преобразования из временной области в частотную и обратно описана в главе 3. Были изложены концепции преобразования периодических сигналов в частотную область с помощью ряда Фурье и комплексного ряда Фурье. Там же было показано, что частоты синусоидальных компонентов периодического сигнала, известные как Фурье-компоненты, гармонически связаны друг с другом, т.е. каждый кратен первой гармонике /, где
f-l/TP,
где Тр — период повторения сигнала. Известно, что расстояние между любой парой соседних гармоник одинаково и равно / = 1/Тр, так что данная величина называется еще разрешением по частоте или частотным разрешением. Амплитуда амплитудного спектра измеряется в вольтах. Пример периодического сигнала импульсов напряжения представлен на рис. 3.1, а, а на рис. 3.1, б и в изображены соответственно амплитудный и фазовый спектры данного сигнала. О различных способах использования амплитудного и фазового спектров рассказывалось во вступлении к главе 3.
Непериодические, но непрерывные сигналы можно преобразовать из временной в частотную область с использованием преобразования Фурье, описанного в разделе 3.1.2.
Было показано, что “амплитуда” этого преобразования имеет размерность В Гц-1 и, если изобразить ее в зависимости от частоты, получим амплитудный спектр. Следовательно, площадь под кривой между двумя частотами характеризует “среднее” напряжение сигнала для частотных компонентов, лежащих между указанными двумя частотами. Возводя в квадрат “амплитуды” вычисленных Фурье-компонентов, получим спектральную плотность энергии сигнала в ДжГц-1. Термином “спектр” часто называют графики зависимости спектральной плотности амплитуды и спектральной плотности энергии от частоты. Данные спектральные плотности для прямоугольного импульса приведены на рис. 3.2, а и б. В главе 3 также было показано, как спектры дискретных и непериодических импульсов напряжения можно получить с помощью дискретного преобразования Фурье (ДПФ). Было показано, что компоненты ДПФ гармонически связаны с первой гармонической циклической частотой Q = 2тг/(N — 1)Т, так что первая гармоника равна /, а
f=l/(N-l)T,(ПЛ, а)
где N — число элементов данных, а Т — интервал дискретизации. Поскольку (N — 1)Т равно Тр (длительности дискретного сигнала), первая гармоника равна
f=1/TP-(11.7,6)
Как и выше, вследствие гармонической связи разрешение по частоте также равно \/Тр. Следовательно, чем длительнее сигнал, тем большим будет разрешение спектра.
Пример вычисления ДПФ последовательности данных {1,0,0,1} представлен в разделе 3.2. Показано, что Фурье-образ данной последовательности равен {2,1 + г, О,1 — г}. Следовательно, амплитуда второй гармоники, 1+г, равна \/(12 + I2) = V2. Если последовательность данных представляет дискретные уровни напряжения, амплитуда второй гармоники — \/2 В, а ее энергия — (\/2 В), те. 2 Дж. Соответствующая фаза равна агс^(минимый компонент/действительный компонент) = arctgl = 45°. Последовательность данных представлена на рис. 3.3, а, а ее амплитудный и фазовый спектры — на рис. 3.3, бив соответственно. Амплитудный спектр имеет размерность “вольт”. В разделе 3.2 показано, что ДПФ и преобразование Фурье связаны соотношением F(iw) = ТХ(к\ В разделе 3.5 представлен алгоритм быстрого преобразования Фурье (БПФ), позволяющий ускорить вычисление ДПФ, пример его использования (для той же последовательности {1,0,0,1}) рассмотрен в разделе 3.5.1.
Если рассматриваемый сигнал длителен по сравнению с интервалом времени, в течение которого можно считать, что сигнал имеет постоянные статистические моменты, оценка спектра с большой вероятностью будет неточной. Сказанное также справедливо в том случае, когда сигнал сильно зашумлен. В таких ситуациях необходимо сгладить оцененный спектр, чтобы получить улучшенную оценку, поскольку сглаживание спектра позволяет устранить элемент случайности. Отношение сигнал-шум в случайных сигналах можно улучшить путем усреднения сигналов; при усреднении К сигналов отношение сигнал-шум улучшается в VK раз. Итак, один метод повышения точности оценки спектра уже есть: разделить данные на К частей равной длины, определить
спектр каждой части, а затем усреднить полученные спектры. Таким образом получаются средняя амплитуда и средняя фаза каждого гармонического частотного компонента К спектров, графическое представление которых является спектром средних амплитуды и фазы. Точность спектров можно выразить через их дисперсию. Например, чем меньше дисперсия спектральной плотности мощности, чем точнее оценка. Следовательно, важно знать, как влияет метод оценки спектра на его дисперсию. Оценка спектра путем усреднения описана в подразделе 11.3.2.1, где объясняется, что оценка спектра как среднего спектров К частей данных имеет меньшую дисперсию, чем оценка, вычисленная непосредственно, причем дисперсия уменьшается пропорционально числу частей. Даже если шумовая составляющая сигнала мала, т.е. имеем большое отношение сигнал-шум, результат, усредненный по К частям, по-прежнему значительно повышает точность этого метода модифицированных периодограмм. В то же время, разбиение данных на части приводит к тому, что при вычислении БПФ используется меньше выборок, а следовательно, оценка спектра получается более грубой. Этого недостатка можно избежать, введя дополняющие нули (подраздел 11.3.1.2). Итак, всегда нужно помнить, что требования к точности оценки и необходимой спектральной гладкости противоречивы, и добиваться наилучшего компромисса между ними. Другой подход к сглаживанию графиков спектральных функций — это вычислить его по ДПФ взвешенной автокорреляционной функции данных. Этот принцип положен в основу метода Блэкмена-Тьюки (см. раздел 11.3.5). Поскольку автокорреляционная функция данных состоит из среднего сумм произведений данных и запаздывающих копий самих себя (раздел 5.2), отношение сигнал-шум улучшается (раздел 5.2.2). Метод Блэкмена-Тьюки дает спектр с большей добротностью, чем спектр, полученный методами модифицированных периодограмм.
Взвешивающие функции также оказывают сглаживающий эффект на спектр. В частности, функции с небольшими ботовыми лепестками в частотной области отфильтровывают шум, который не входит в основной лепесток, и предлагают улучшенное сглаживание. Фактически для реализации этой разновидности спектрального сглаживания нужно свернуть спектр данных со спектром выбранной взвешивающей функции.
Параметрические методы оценки спектра и другие современные методы описаны в разделе 11.4. Данные методы не настолько требуют присутствия человека, как непараметрические методы, и их можно автоматизировать. Ниже описано, как с помощью параметров модели сформировать модель данных, на основе которой по функциям частотных характеристик линейных систем можно получить спектр данных. Описаны также более современные методы спектрального анализа.
Традиционные методы
В разделе 11.3.1 уточняются различные подводные камни спектрального анализа и объясняется, как их можно избежать. Метод взвешивания и свойства весовых функций описаны в разделе 11.3.2. Некоторые свойства спектров и спектрального сглаживания рассмотрены в разделе 11.3.3.
Рис. 11.1. Спектральная плотность амплитуды сигнала с равномерной спектральной плотностьюРис. 11.1. Спектральная плотность амплитуды сигнала с равномерной спектральной плотностью
Рис. 11.1. Спектральная плотность амплитуды сигнала с равномерной спектральной плотностью
Рис. 11.1. Спектральная плотность амплитуды сигнала с равномерной спектральной плотностью
Подводные камни
Частота дискретизации и наложение
Выполнению спектрального анализа должна предшествовать передача аналоговых сигналов через фильтр защиты от наложения спектров, задача которого — предотвратить наложение дискретного сигнала после последующего этапа аналого-цифрового преобразования. Наложением называется искажение спектра сигнала при вводе паразитных (побочных) низкочастотных компонентов вследствие объединения недостаточного фильтра защиты от наложения спектров и слишком низкой частоты дискретизации. Данная тема всесторонне рассмотрена в разделе 2.2.
“Гребешковое искажение”, или “эффект частокола”
Как объяснялось в разделе 3.2, дискретное преобразование Фурье (ДПФ) выдает гармонические амплитудные и фазовые компоненты, равномерно размещенные по шкале частот. Густота размещения спектральных линий уменьшается с увеличением длины дискретизованного сигнала. Следовательно, если компонент сигнала расположен между двумя соседними частотными гармониками спектра, представить его надлежащим образом нельзя. Энергия такого компонента будет распределена между соседними гармониками, что приведет к искажению близлежащих спектральных “амплитуд”. Спектральная плотность амплитуды равномерно распределенного сигнала показана на рис. 11.1. Отметим конечную ширину основных лепестков, центрированных на гармонических частотах, и то, что компонент сигнала на такой негармонической частоте, как /„д, нельзя представить надлежащим образом. Для решения этой проблемы гармонические компоненты должны размещаться более тесно и совмещаться с частотами сигнала. Этого можно достичь, введя в реальные данные дополнительные нули. Эти нули называются дополняющими и нужны для увеличения точности — приближения оцененного спектра к истинному спектру без использования дополнительной информации. Итак, к N данным требуется добавить таете количество нулей N', чтобы удовлетворялось условие
(П.8)(П.8)N + N' = 2т
(П.8)
(П.8)
в алгоритме двоичного быстрого преобразования Фурье (БПФ), где т — целое. Кроме того, гармоники частоты 1/(N+N' — 1 )Т, где Т представляет интервал дискретизации, должны совпадать с частотами сигнала.
Чтобы представить максимальное снижение выигрыша от обработки, которое возникает на частотах, расположенных посредине между гармонически связанными частотами, определяется гребешковое искажение (scalloping loss) (ГИ) [23]:
N-l
№s/2A0[W(0)№s/2A0[W(0)(H.9)(H.9)52 w(nT) exp(-iTrn/7V)n=0
№s/2A0[W(0)
№s/2A0[W(0)
(H.9)
(H.9)
E w(nT) n=0
где W представляет ДПФ-образ весовой функции (подраздел 11.3.2), w = 2л fs — циклическая частота дискретизации, / — частота дискретизации, N — число элементов данных, п — номер элемента данных, w(nT) — весовая функция, дискретизованная во временной области.
Как уже отмечалось, конечная длина данных ограничивает возможное разрешение по частоте до 1/(N - 1)Т (Гц). В результате получается грубый спектр, который можно сгладить и сделать непрерывным, используя дополнительные нули. Данный процесс является просто интерполяцией спектральной кривой между соседними гармониками. Действительного улучшения разрешения можно добиться только за счет более длительной реализации. После дополнения N’ нулями интервал частот между линиями спектра становится равным 1/(N + N' - 1)Т (Гц).
Исключение тренда
Перед вычислением спектра нужно удалить все тренды в данных, постольку вектор ошибок, из-за которого к данным добавляются тренды, будет интегрироваться и может породить большие ошибки в оцененном спектре.
Просачивание спектральных составляющих и размывание спектра
БПФ, которое применяется к набору дискретных данных, — это не совсем истинное БПФ процесса, из которого получены данные. Это объясняется тем, что процесс непрерывен, тогда как данные имеют начало и конец, которые определяются выбранной реализацией. Для эффективного получения данных, которые представляют сигнал длительностью T,(s), все дискретные значения в интервале Т3 умножаются на единицу, а все данные вне этого интервала умножаются на нуль. Это эквивалентно умножению (или взвешиванию) сигнала на прямоугольный импульс (взвешивающую, или весовую, функцию) ширины Т3 и высоты 1. В этом случае выборки данных v(n) равны произведению элементов данных s(n) и значений весовой функции w^N):
(НЛО)(НЛО)v(n) = w(n)s(n).
(НЛО)
(НЛО)
Произведение во временной области эквивалентно свертке в частотной (см. разделы 3.3 и 5.3). Следовательно, БПФ-образ п-й гармоники равен
N
V(w„)= ^2 w(wn~wk)S(wk), (11.11) k=-N
где wn — циклическая частота n-й гармоники, V (шп) — комплексный ДПФ-компонент на частоте шп, W(w„) — ДПФ-образ функции на частоте шп, 8Дк) — действительный ДПФ-компонент сигнала на частоте шк.
Из уравнения (11.11) следует, что рассчитанный спектр состоит из истинного спектра данных, свернутого со спектром весовой функции. Амплитудный спектр прямоугольного импульса 5д(у„) записывается следующим образом (данное выражение называется также ядром Дирихле)'.
Sr^,/) = v ™ = sine I —- I . (11.12)
^■пД sf ^ \ ^ /
Здесь sinc(wnTs/2) — функция выборки с частотой w„/2 (см. подразделы 3.1.1 и 3.1.2), проиллюстрированная на рис. 3.2, а. Она состоит их основного лепестка и бесконечного числа ботовых лепестков с максимумами на 0 Гц и (п + О,5)/Т, Гц соответственно. Теперь амплитудный спектр отдельного синусоидального компонента сигнала на частоте fn включает в себя два импульса на частотах ±/„. Свертка с дискретизирующей функцией дает спектр, изображенный на рис. 11.2. Два импульса преобразовались в две перекрывающиеся выборочные функции. Влияние прямоугольной весовой функции проявилось во введении в вычисленный спектр побочных максимумов (из-за влияния боковых лепестков). Такой эффект будет иметь место для каждого частотного компонента сигнала, так что амплитудный спектр сигнала будет искажен из-за перекрестного сложения и вычитания большого числа боковых и главных лепестков весовых функций. Вследствие этого могут появиться ложные или скрыться истинные максимумы спектра. Данный эффект называется просачиванием спектральных составляющих. Для того чтобы избежать его, данные следует модифицировать — умножить на весовую функцию, форма которой предназначена для снижения влияния боковых лепестков. Подходящая функция равна 1 в центральной точке и сходит на нуль в точках n = 0иn = ^ — 1. На настоящий момент разработано по крайней мере 23 такие функции, их относительная пригодность рассмотрена в работе [23].
Чтобы минимизировать просачивание спектральных составляющих, форма весовой функции выбирается с минимальными уровнями боковых лепестков. К сожалению, это приводит к увеличению ширины основного лепестка, так что он расширяется на соседние боковые лепестки (происходит наложение). Данный эффект имеет место для всех гармоник, а общий результат — наложение спектра сигнала, или размывание. Таким образом, весовые функции и их параметры надлежит выбирать тщательно, чтобы добиться оптимального баланса между разрешением по частоте и статистической точностью оценки спектра.
Рис. 11.2. Спектральная плотность амплитуды синусоидального сигнала, свернутого с дискретизующей функцией
Взвешивание
В данном разделе описаны различные свойства весовых функций, причем в основном рассуждения ведутся во временной области. В то же время, не лишним будет напомнить, что взвешивание можно проводить как во временной (взвешивание данных), так и в частотной области (взвешивание частот), поскольку умножение во временной области эквивалентно свертке в частотной (подраздел 11.3.1.4). Взвешивание в частотной области, следовательно, можно заменить сверткой в частотной области весовой функции со спектром сигнала. Для реализации этой процедуры можно использовать уравнение (5.104).
Свойства весовых функций
Ширина полосы шумового (прямоугольного) эквивалента
В подразделе 11.3.1.4 было показано, что из-за явления просачивания спектральных составляющих импульсные характеристики, которые теоретически представляют спектральные плотности амплитуд, становятся выборочными функциями.Таким образом бесконечно узкие спектральные компоненты замещаются дискретизующими функциями с более широкими полосами. Боковые лепестки этих функций, смещающие компоненты сигнала, можно рассматривать как источники нежелательного шума, а весовую частотную функцию можно считать характеристикой широтополосного фильтра. Следовательно, с тэтой точки зрения желательно разработать весовую функцию с малой шумовой полосой, уменьшив амплитуды боковых лепестков. Шумовая полоса вводится с целью сравнения различных весовых функций по ширине полосы шумового эквивалента. Данная величина определяется как ширина полосы идеального прямоугольного фильтра, который пропускает тот же объем белого шума, что и рассматриваемый спектральный фильтр (см. рис. 11.3) (поэтому данную величину называют еще шириной полосы прямоугольного эквивалента). Данное определение позволяет оценивать характеристики боковых лепестков различных функций путем сравнения их шумовых эквивалентов. Ширина полосы шумового эквивалента — очень важный параметр функции, чем он меньше, чем лучше весовая функция.
Площадь под кривой идеальной характеристики = площадь под кривой реальной характеристикиПлощадь под кривой идеальной характеристики = площадь под кривой реальной характеристикиРис. 11.3. Ширина полосы шумового эквивалентаРис. 11.3. Ширина полосы шумового эквивалента
Площадь под кривой идеальной характеристики = площадь под кривой реальной характеристики
Площадь под кривой идеальной характеристики = площадь под кривой реальной характеристики
Рис. 11.3. Ширина полосы шумового эквивалента
Рис. 11.3. Ширина полосы шумового эквивалента
Ширина полосы шумового эквивалента выражается следующим образом:
n=N-l
Е w2(nT)^п = -^(11.13)
Е ^(пТ)
Корреляция перекрывающихся сегментов
При взвешивании данных начало и конец последовательности данных выходят на нуль, и этот эффект представляет потерю информации. В частности, можно пропустить краткие события, происходящие в области спада характеристики. Для того чтобы решить данную проблему, следует разбить последовательность данных на перекрывающиеся сегменты, взвесить и преобразовать каждый сегмент отдельно. Если перекрытие составляет порядка 50-75%, то в сегментах будет отражено большинство особенностей данных. Затем получающиеся спектры усредняются и дают оценку истинного спектра. Разбиение данных иллюстрируется на рис. 11.4. Данная процедура называется обработкой с избыточностью, или перекрытием. Обычно обработка с перекрытием 50-75% позволяет на 90% использовать потенциал большинства весовых функций, связанный с улучшением производительности [18]. Кроме того, при усреднении спектров сегментов снижается дисперсия спектра. Для К статистически идентичных, но независимых измерений дисперсия среднего составляет 1/К дисперсии отдельных спектров. В то же время, сказанное не относится к случаю, когда усредняются спектры перекрывающихся сегментов, поскольку между сегментами существует корреляция. В работе [23] приводится отношение дисперсии усредненного спектра к дисперсии отдельных спектров для 50- и 75-процентного перекрытия. На основе этих данных можно показать, что, например, усреднение четырех спектров снижает дисперсию до уровня 25% от величины исходного спектра. Итак, описанный подход позволяет значительно улучшить оценку спектра.
Выигрыш от обработки
Выигрыш от обработки определяется делением отношения сигнал-шум на выходе процесса взвешивания на отношение сигнал-шум на входе:
ВО-ВО-(S/N^t(S/N\n ‘(S/N^t(S/N\n ‘(11.14)(11.14)
ВО-
ВО-
(S/N^t
(S/N\n ‘
(S/N^t
(S/N\n ‘
(11.14)
(11.14)
Величина перекрывания = rNВеличина перекрывания = rNО (l-r)NО (l-r)NУ-1У-1
Величина перекрывания = rN
Величина перекрывания = rN
О (l-r)N
О (l-r)N
У-1
У-1
ООrN- 1 N- 1
О
О
Рис. 11.4. Разбиение данных перед обработкой с избыточностью
Выигрыш от обработки зависит от формы весовой функции, поскольку она определяет ширину полосы ее шумового эквивалента (см. предыдущий раздел). Спад вырезающей функции до нуля уменьшает мощность сигнала, приводя к потерям при обработке, тогда как за счет боковых лепестков улучшается ширина полосы шумового эквивалента.
Потери при обработке в наихудшем случае
Потери при обработке в наихудшем случае определяются как сумма (в децибелах) максимального гребешкового искажения весовой функции и потерь при ее обработке. Эта величина представляет уменьшение выходного отношения сигнал-шум, вызванное взвешиванием и наихудшим (наиболее неудачным) расположением частот. Она всегда составляет от 3,0 до 4,3 дБ. Функций, для которых этот параметр составляет более 3,8 дБ, следует избегать. Это относится к прямоугольной функции, функции Пуассона (а = 4), функции Хэмминга-Пуассона (а = 2,0), функции Коши и минимальной четырехточечной функции Блэкмена-Харриса.
Ширина полосы минимального разрешения
Обычно при перекрытии двух идентичных спектральных максимумов их можно разрешить, если точки по уровню 3 дБ не перекрываются (рис. 11.5, а). В то же время, при рассмотрении ДПФ-компонента соседние спектральные составляющие множатся на весовую функцию, а затем когерентно суммируются, т.е. боковые лепестки включаются в сумму. В этом случае усиление каждого компонента в области перекрытия не должно превышать 0,5. Это означает, что спектральное разрешение определяется шириной полосы по уровню 6 дБ, а не шириной полосы по уровню 3 дБ (рис. 11.5, б).
Рис. 11.5. Ширина полосы минимального разрешения: а) разрешение спектральных максимумов определяется ширинами полос по уровню 3 дБ; б) спектральное разрешение максимумов ДПФ определяется ширинами полос по уровню 6 дБ
Смещающий эффект весовых функций
Умножение данных на весовую функцию, выходящую по краям на нуль, уменьшает амплитуду выборок в местах спада, а следовательно, общую мощность сигнала. Можно показать, что все частотные составляющие в равной степени подвержены влиянию весовой функции, и что коэффициент изменения данных пропорционален корню квадратному из коэффициента когерентного усиления мощности, который представляет нормированную мощность данных при рассмотрении как сигнала напряжения. Следовательно, снижение мощности сигнала можно компенсировать без искажения спектра плотности мощности. Весовая функция также выравнивает средний уровень данных, увеличивая таким образом полную энергию низкочастотных компонентов спектра. Данный эффект нужно каким-то образом компенсировать, но прямое вычитание среднего взвешенных данных приводит к более явному проявлению высокочастотных боковых лепестков.
На рис. 11.6 показан спектр плотности энергии 64 точек данных, из которых вначале был вычтен средний уровень данных, после чего данные умножались на соответствующие значения функции Кайзера-Бесселя. Очевидно, что спектр содержит низкочастотные компоненты, введенные в процессе взвешивания. На рис. 11.7 изображен спектр после первого этапа — вычитания среднего из данных. Кажется, что низкочастотные компоненты удалены, но появился набор существенных боковых лепестков на высоких частотах. Ниже приводится пример, демонстрирующий, как можно устранить отрицательное влияние взвешивания.
Рис. 11.6. Энергетический спектр при выборке с интервалом I с, весовая функция Кайзера-Бесселя, 64 информационные точки, 1024точечное БПФРис. 11.6. Энергетический спектр при выборке с интервалом I с, весовая функция Кайзера-Бесселя, 64 информационные точки, 1024точечное БПФ
Рис. 11.6. Энергетический спектр при выборке с интервалом I с, весовая функция Кайзера-Бесселя, 64 информационные точки, 1024точечное БПФ
Рис. 11.6. Энергетический спектр при выборке с интервалом I с, весовая функция Кайзера-Бесселя, 64 информационные точки, 1024точечное БПФ
Пример 11.1
Покажите, что влияния взвешивания, проявляющегося в снижении энергии сигнала и введении низкочастотных компонентов в спектр, можно избежать путем взвешивания линейной функции данных, а не самих данных [27].
Решение
Предположим, что исходные данных s(n) имеют нулевое среднее. Пусть средний уровень, введенный в данные при взвешивании, удален путем вычитания из s(n) константы kv Теперь новые взвешенные данные s1 записываются как
s^n) = w(n)[s(n) — А^],s^n) = w(n)[s(n) — А^],(11.15)(11.15)
s^n) = w(n)[s(n) — А^],
s^n) = w(n)[s(n) — А^],
(11.15)
(11.15)
где w(n) — значения весовой функции, или весовые коэффициенты. Снижение мощности сигнала, вызванное взвешиванием, можно теперь компенсировать, умножив каждое значение s^n) на тщательно выбранную константу к2. Итак, точки теперь преобразуются к виду
S(n) = A:2u;(n)[s(n) — &]]. (11.16)
Требуемое значение кг можно найти из условия равенства нулю среднего значения S(n). Следовательно,„
£>(п) = 0. n=0
Значит,
Таким образом,
о
-80
—100 ।।it।।।।
064128192256320384448512
Точки данных
Рис. 11.7. Энергетический спектр при выборке с интервалом 1 с,весовая функция Кайзера-Бесселя, 64 информационные точки, 1024-точечное БПФ. Средний уровень взвешенных данных удален путемвычитания среднего из данных
N-1
Е w(n)s(n) п=0
Е ^(^ п=О
(11.17)
Нормированная мощность переменного тока данных до взвешивания равна
^(п)-^)2]^,
(11.18)
где через Е обозначено математическое ожидание, a ct,n — дисперсия s(n) со средним значением кх. Нормированная мощность переменного тока взвешенных данных равна
£{A:2u;2(n)[s(n) — А^]2},
где w(n) и s(n) взаимно независимы. Далее получаем
E^k^w2(n^s(n^ — fci]2} = £[A:2u;2(n)]£{[s(n) — &i]2} = = ВД^Н^лс()
Значение k2, требуемое для выравнивания мощности взвешенных и невзвешенных данных, можно получить, приравняв уравнения (11.18) и (11.19):
^ = ^З^^2 (тГ.)]^^,
откуда . 2 =1=1= N
Следовательно,
Рис. 11.8. Энергетический спектр при выборке с интервалом 1 с, весовая функция Кайзера-Бесселя, 64 информационные точки, 1024-точечное БПФ. Данные прошли предварительную обработку с целью удаления среднего уровня взвешенных данных и сохранения средней мощности
1/2
(11.20)
Подставляя уравнения (11.17) и (11.20) в уравнение (11.16), окончательно получаем
N—1
(11.21)(11.21)Е «Шп) п=0
(11.21)
(11.21)
N-1
Е w(«) п=0
На рис. 11.8 показан энергетический спектр данных, получающихся после удаления среднего взвешенных данных и восстановления энергии сигнала согласно уравнению (11.21). Постоянная составляющая, возникшая при взвешивании, и влияние боковых лепестков устранены.
Из приведенного примера видно, что данные s(n) рекомендуется модифицировать согласно уравнению (11.21), а лишь затем применять ДПФ. Данная процедура эквивалентна вычитанию kY из данных с последующим умножением разности на к2 перед взвешиванием.
Выбор весовой функции
В работе [23] подробно рассмотрено влияние различных характеристик весовых функций на эффективность метода взвешивания и сделан вывод, что на качество функции влияет в первую очередь наивысший уровень боковых лепестков и наибольший
проигрыш от обработки. В качестве предпочтительных называются весовые функции Блэкмена-Харриса, Дольфа-Чебышева и Кайзера-Бесселя. Менее эффективны функции Тьюки (спад по косинусу), Пуассона, Хеннинга и Хэмминга.
Спад многих весовых функций и их форму во многих случаях можно регулировать, выбирая значение параметра функции а. Это позволяет варьировать ширину основного лепестка и уровень боковых лепестков. Частью искусства взвешивания является выбор методом проб и ошибок значения а, оптимизирующего результаты в конкретной ситуации.
Пример 11.2
Влияние различных весовых функций на амплитудный спектр. На рис. 11.9, а показаны ДПФ-компоненты двух синусоид, отличающихся по амплитуде на 40 дБ и имеющих частоты 100/ и 120/ (где / — первая гармоника, соответствующая записи длительностью T5(s)), которые были получены без взвешивания, т.е. с прямоугольной весовой функцией. В этом случае сигнал кажется периодическим и бесконечным (из-за гармонической связи сигнала с длиной окна) и точно воспроизводится даже при прямоугольной весовой функции. Чтобы разрушить указанную гармоническую связь, частоту большего сигнала положили равной 102,5/ (не гармоника), результат представлен на рис. 11.9, б. В результате уровень боковых лепестков значительно повышается и в них почти теряется меньший сигнал. Данный эффект можно в значительной степени подавить, использовав подходящую весовую функцию. На рис. 11.10, а и б показаны функции Тьюки (спадающий косинус) с а = 0,1 и а = 0,5, а на рис. 11.11, а и б показаны соответствующие спектры. На рис. 11.12, а и б изображена функция Хэмминга (а = 0,54) и получающийся спектр соответственно. На рис. 11.13, a-в показаны функции Кайзера- Бесселя с а = 2,0 3,0 и 4,0, а на рис. 11.14 иллюстрируются соответствующие спектры. Наиболее близкий к истине результат дает функция Кайзера-Бесселя с а = 4,0. Впрочем, следует отметить, что если увеличивать а для уменьшения боковых лепестков, одновременно увеличивается ширина основного лепестка, поэтому нужно искать компромиссное значение а. Разумеется, в реальной ситуации все гармоники будут подвергаться воздействию, так что если нужно избежать ложных результатов, очень важно выбрать весовую функцию с точки зрения суммарной эффективности для всех частот.
Весовая функция Дольфа-Чебышева наиболее предпочтительна с точки зрения малых боковых лепестков, хотя она дает наибольшие потери при обработке; впрочем, возможность ее использования для многотонового детектирования маловероятна из-за когерентного сложения боковых лепестков. Кроме того, структура боковых лепестков этой функции весьма чувствительна к ошибкам коэффициентов. Таким образом, более предпочтительна функция Блэкмена-Харриса или Кайзера-Бесселя. Отметим, что коэффициенты функции Кайзера-Бесселя генерировать проще, а, меняя параметр а, легче найти компромисс между уровнем боковых лепестков и шириной основного лепестка. Данная функция выражается следующим образом (согласно [33]):
w(nKB) = То < тга 1,0w(nKB) = То < тга 1,0/о(тга), 0 < |пкв| < ЛГ/2,(11.22)
w(nKB) = То < тга 1,0
w(nKB) = То < тга 1,0
10,00 -
о.оо ■
-ю.00 "
| -20,00 ■ 2
-30,00 ■
-40,00 ■
-50,00 ।I—- ll.liI—।I—।।।—I—1■—11—I—।—I0,00 5,12 10,24 15,36 20,48 25,60 30,72 35,84 40,96 46,08 51,20Частота-50,00 ।I—- ll.liI—।I—।।।—I—1■—11—I—।—I0,00 5,12 10,24 15,36 20,48 25,60 30,72 35,84 40,96 46,08 51,20ЧастотаЧастотаЧастота6)6)Рис. 11.9. Амплитудный спектр двух синусоид, отличающихся по амплитуде на 40 дБ: а) длина окна кратна обоим периодам; б) длина окна не кратна одному из периодов (большему)Рис. 11.9. Амплитудный спектр двух синусоид, отличающихся по амплитуде на 40 дБ: а) длина окна кратна обоим периодам; б) длина окна не кратна одному из периодов (большему)
-50,00 ।I—- ll.liI—।I—।।।—I—1■—11—I—।—I
0,00 5,12 10,24 15,36 20,48 25,60 30,72 35,84 40,96 46,08 51,20
Частота
-50,00 ।I—- ll.liI—।I—।।।—I—1■—11—I—।—I
0,00 5,12 10,24 15,36 20,48 25,60 30,72 35,84 40,96 46,08 51,20
Частота
Частота
Частота
6)
6)
Рис. 11.9. Амплитудный спектр двух синусоид, отличающихся по амплитуде на 40 дБ: а) длина окна кратна обоим периодам; б) длина окна не кратна одному из периодов (большему)
Рис. 11.9. Амплитудный спектр двух синусоид, отличающихся по амплитуде на 40 дБ: а) длина окна кратна обоим периодам; б) длина окна не кратна одному из периодов (большему)
где п — номер выборки весовой функции, а — числовой параметр, регулируя который выбирается наилучший компромисс между уровнем боковых лепестков и шириной основного лепестка, N — число выборок весовой функции.
(11.23)(11.23)
(11.23)
(11.23)
это модифицированная функция Бесселя первого рода нулевого порядка, а К теоретически равно бесконечности, но, поскольку амплитуда функции Бесселя быстро спадает с к, обычно достаточно положить К = 32.
Рис. 11.10. Весовая функция Тьюки: а) а = 0,1; 6) а = 0,5Рис. 11.10. Весовая функция Тьюки: а) а = 0,1; 6) а = 0,5
Рис. 11.10. Весовая функция Тьюки: а) а = 0,1; 6) а = 0,5
Рис. 11.10. Весовая функция Тьюки: а) а = 0,1; 6) а = 0,5
Формула (11.22) определяет весовую функцию между точками —N/2 и N/2 - 1. Обычно с помощью ДПФ можно распространить эту функцию на промежуток от пдПФ = О до пдпф = N — 1, где пДпф — номер элемента данных ДПФ. Следовательно, чтобы ДПФ можно было использовать совместно с весовой функцией Кайзера-Бесселя, эту функцию нужно сместить вправо на N/2, в результате чего получится
Пдпф = пкв + N/2
или
(11.24)(11.24)т^кв = идпф - N/2.
(11.24)
(11.24)
Окончательно уравнение (11.22) записывается следующим образом:
^(идпф) = /о ^га 1,0 —^(идпф) = /о ^га 1,0 —/пдпф — N/2\V N/2)/пдпф — N/2\V N/2)^о(тга),^о(тга),0 < |пдпф| < N — 1.0 < |пдпф| < N — 1.
^(идпф) = /о ^га 1,0 —
^(идпф) = /о ^га 1,0 —
/пдпф — N/2\
V N/2)
/пдпф — N/2\
V N/2)
^о(тга),
^о(тга),
0 < |пдпф| < N — 1.
0 < |пдпф| < N — 1.
(11.25)
а)Частота
б)Частота
Рис. 11.11. Амплитудный спектр двух синусоид, умноженных на весовую функцию — конический косинус
. Метод и свойства периодограмм
Квадрат модуля Фурье-образа |P(iw)|2 представляет собой оценку спектральной плотности мощности Р[Р(/)] и называется периодограммой. Можно показать [18, 44], что Р[Р(/)] равно
^[Л/)] = 52 wB(m)czzexp(-2Tri/m),(11.26)
где czz(m) — автоковариационная матрица х(п), вычисленная с запаздыванием т, f — частота, a wB — треугольная весовая функция (Барлетта), которая определяется следующим образом:.
H<JV-1.(11.27)
Для сравнения отметим, что истинная спектральная плотность мощности P(f) функции х^ равна
Р(Л = 52 с±1ехр(-2тгг/т).(11.28)
0,00 1,00 2,00 3,00 4,00 5,00 6,00 7,00 8,00 9,00 10,00
а)Время
6)6)ЧастотаЧастотаРис. 11.12. Весовая функция Хэмминга (панель а); соответствующий амплитудный спектр двух синусоид (панель 6)Рис. 11.12. Весовая функция Хэмминга (панель а); соответствующий амплитудный спектр двух синусоид (панель 6)
6)
6)
Частота
Частота
Рис. 11.12. Весовая функция Хэмминга (панель а); соответствующий амплитудный спектр двух синусоид (панель 6)
Рис. 11.12. Весовая функция Хэмминга (панель а); соответствующий амплитудный спектр двух синусоид (панель 6)
Следовательно, спектральная плотность мощности, представленная периодограммой, колеблется, а максимальная амплитуда колебаний отклонения определяется следующим образом:
P(f) - Е[Р(/)] = 52 [1 - wB(m)]cXI ехр(-2тгг/m) =
m=-oo(11.29)
Для N » |m| смещение становится малым и Е[Р(/)] —► P(f\ те. периодограмма асимптотически несмещенная. Кроме того, для больших N дисперсия периодограммы становится равной
var\P^«FP\n,(11.30)
где F зависит от используемой весовой функции, те. дисперсия зависит от квадрата спектральной плотности мощности и не сходится к нулю с ростом N. Это означает, что оценки спектральной плотности мощности, полученные из периодограммы, несостоятельны и дают колеблющиеся оценки Р(/) в последовательных реализациях.
АмплитудаЦД)
Рис. 11.13. Весовые функции Кайзера-Бесселя: а) а = 2,0; б) а = 3,0; в) а = 4,0
10,00 •
10,00 •
0,00
-10,00
-20,00
-30,00
-40,00 •
! i 5
0,00 •
-10,00
-20,00
-30,00
-40,00
а)
-50,00 0,0010,2420,4830,7240,9651,20
5,1215,3625,603 5,8446,08
-50,00
J
0,0010,24:
5,1215,36
20,4830,7240,9651,20
i 25,6035,8446,08
Частота
Частота
в)
Рис. 11.14. Амплитудный спектр двух синусоид, вычисленный с использованием соответствующих функций Кайзера-Бесселя, представленных на рис. 11.13: а) а = 2,0; б) а = 3,0; в) а = 4,0
Отметим, что автоковариационная матрица обычно определяется усреднением по N членам, хотя ее можно определять и усреднением по N - |т| членам. Обе оценки состоятельны и являются асимптотически несмещенными, но в первом случае получается меньшая дисперсия, поэтому такой способ предпочтительнее.
Более того, при применении для получения спектра ДПФ соответствующая периодограмма определяется как (l/7V)|X(k)|2 и имеет размерность нормированной энергии, хотя некоторые авторы называют функцию (l/N)|X(fc)|2 спектральной плотностью мощности.
Методы модифицированных периодограмм
В работе [50] предлагается для устранения несостоятельности метода периодограмм использовать усреднение нескольких модифицированных периодограмм. Каждая из таких периодограмм состоит из сегмента данных. Данные сегменты могут идти последовательно (метод Барлетта) или перекрываться (метод Уэлша). Данные методы также уменьшают дисперсию оценок спектральной плотности мощности. Метод Барлетта иллюстрируется в примере 11.3.
Метод Уэлша
Преимущество метода Уэлша по сравнению с методом Барлетта заключается в дальнейшем уменьшении спектральной плотности мощности. В то же время, это улучшение происходит за счет добавочного уменьшения спектрального разрешения. В методе Уэлша L сегментов данных длины М перекрываются и периодограммы вычисляются по L взвешенным сегментам. Далее периодограммы нормируются на величину U, чтобы компенсировать потери энергии сигнала вследствие процедуры взвешивания. Фактически U приравнивается к l/k^2, где к2 — коэффициент, полученный в подразделе 11.3.2.1 и описывающий эффект смещения весовых функций. Следовательно,
1 М-1
и = м^М<1L31)
n=0
Таким образом, оценка Уэлша спектральной плотности мощности Pwe(/) записывается следующим образом:
Pwe(/) = ^£P^)-(П.32)
з=о
Математическое ожидание оценки Уэлша:
тЕ(/)] == wa (н.зз)
3=0
т.е. оно равно математическому ожиданию модифицированной периодограммы. Можно показать [44], что при N —► оо и М —► оо значения сходятся к истинной спектральной плотности мощности РЦ). Итак, для больших N и М оценка Уэлша спектральной
плотности мощности несмещенная. При определенных условиях дисперсия оценок Уэлша сходится к нулю, т.е. оценки состоятельны. Уэлш также показал, что при отсутствии наложения сегментов (L = К)
var[PWE(/)] « №Р\П,
что равно дисперсии оценки Барлетта при тех же условиях. При 50%-ном наложении (L = 2К)
var[PWE(/)] « (9/8L)P2(/),
что составляет 9/16=0,56 дисперсии оценки Барлетта.
Метод Блэкмена-Тьюки
В главе 3 было показано, что спектр плотности мощности определяется ДПФ автокорреляционной функцией данных. Зная, что периодограммы можно вычислить прямо по данным как квадрат ДПФ-образа данных, рассмотрим вопрос о полезности данного подхода. В связи с этим, во-первых, заслуживает внимания тот факт, что метод Блэкмена-Тьюки был разработан в 1958 году (см. [6]), тогда как алгоритм БПФ для быстрого вычисления ДПФ не публиковался до 1965 года [17]. Во-вторых, метод Блэкмена-Тьюки имеет некоторые преимущества по сравнению с методом периодограмм. Например, в следующем разделе показано, что метод Блэкмена-Тьюки характеризуется большой добротностью. Кроме того, автокорреляционные функции теперь можно вычислить с помощью ДПФ посредством метода быстрой корреляции (раздел 11.3.6). В результате получаем следующую процедуру Блэкмена-Тьюки для определения спектра плотности мощности:
вычислить автокорреляционную функцию данных;
воздействовать на данные подходящей весовой функцией;
вычислить БПФ получающихся данных и получить спектр плотности мощности.
Сравнивая эту процедуру с методом периодограмм, видим, что сглаживание достигается не за счет усреднения нескольких периодограмм, а за счет усредняющего эффекта процесса автокорреляции.
Взвешивание автокорреляционной функции необходимо для сглаживания ее экстремумов, поскольку при больших значениях параметра запаздывания в вычислении участвует немного точек данных, так что получающиеся оценки менее точны. Спад весовой функции по конусу приводит к тому, что данные оценки учитываются с меньшими весовыми коэффициентами.
Оценка Блэкмена-Тьюки Рвте(Л равна
М-1
Яте(/) =52 rzzw(m) ехр(-2тгг/т),(11.34)
m=-(M-l)
где т^тп) — автокорреляционная функция данных, a w(n) — весовая функций длины 2М - 1, равная нулю при |m| > М.
Чтобы получить реальные оценки, щ(п) должно быть симметричным относительно m = 0, а чтобы оценки были положительными, образ w(n) должен быть больше нуля. Не все весовые функции удовлетворяют данным критериям. Например, им не удовлетворяют функции Хеннинга и Хэмминга.
Можно показать, что математическое ожидание оценки Блэкмена-Тьюки равно
М-1
(11.35)(11.35)Рвте(/) =£ czzwg(m) ехр(—2тгг/т),
(11.35)
(11.35)
т= — (М— 1)
где wB(m) — треугольная весовая функция Барлетта.Для получения дополнительного сглаживания спектра должно выполняться условие М < N. Если TV 5> т, оценка будет асимптотически несмещенной. Кроме того, если W(k) (ДПФ-образ весовой функции, ш(п)) уже Р(Л, истинный спектр плотности мощности равенгде wB(m) — треугольная весовая функция Барлетта.Для получения дополнительного сглаживания спектра должно выполняться условие М < N. Если TV 5> т, оценка будет асимптотически несмещенной. Кроме того, если W(k) (ДПФ-образ весовой функции, ш(п)) уже Р(Л, истинный спектр плотности мощности равенvar[PBTE(/)] « Р\Лvar[PBTE(/)] « Р\Л£N£NМ-1М-152 w2(m)52 w2(m)m= —(Л/—1)m= —(Л/—1)(11.36)(11.36)
где wB(m) — треугольная весовая функция Барлетта.
Для получения дополнительного сглаживания спектра должно выполняться условие М < N. Если TV 5> т, оценка будет асимптотически несмещенной. Кроме того, если W(k) (ДПФ-образ весовой функции, ш(п)) уже Р(Л, истинный спектр плотности мощности равен
где wB(m) — треугольная весовая функция Барлетта.
Для получения дополнительного сглаживания спектра должно выполняться условие М < N. Если TV 5> т, оценка будет асимптотически несмещенной. Кроме того, если W(k) (ДПФ-образ весовой функции, ш(п)) уже Р(Л, истинный спектр плотности мощности равен
var[PBTE(/)] « Р\Л
var[PBTE(/)] « Р\Л
£
N
£
N
М-1
М-1
52 w2(m)
52 w2(m)
m= —(Л/—1)
m= —(Л/—1)
(11.36)
(11.36)
и при N/M —> оо var[PBTE(f)] -» 0, так что при данных условиях оценка Блэкмена- Тьюки является состоятельной.
Метод быстрой корреляции
В разделе 5.3.7 было отмечено, что если данные превышают 128 элементов и требуется найти их корреляцию, то вычисления будут выполняться быстрее, если использовать теорему о корреляции (уравнение (5.63)) и реализовать вычисления с использованием БПФ. Например, при N = 1024 это позволяет десятикратно увеличить скорость. Кроме того, если нужно обработать большие наборы входных данных, например, превышающие объем памяти системы, то можно применить методы наложения-сложения или наложения-хранения (разделы 5.3.8-5.3.10). При вычислении автокорреляции в методе Блэкмена-Тьюки описанным выше способом с использованием БПФ подход называется методом оценки спектра с помощью быстрой корреляции.
Сравнение методов оценки спектральной плотности мощности
Выражение для добротности оценок спектральной плотности мощности приводилось в уравнении (11.6). Можно показать (см. [44]), что добротность четырех рассмотренных непараметрических методов спектрального анализа имеет значения, указанные в табл. 11.1, где / — ширина главного лепестка соответствующих весовых функций по уровню 3 дБ. Видно, что метод Блэкмена-Тьюки является наилучшим с точки зрения качества, и что все методы, исключая метод периодограмм, позволяют поддерживать качество при увеличении разрешения по частоте (уменьшения /) за счет увеличения N.
Чтобы добиться удовлетворительных результатов, требуется большая аккуратность и несколько вспомогательных вычислений. С точки зрения баланса наилучшим кажется метод Блэкмена-Тьюки, хотя могут существовать соображения, повышающие привлекательность других методов.
Таблица 11.1. Добротность Q оценок спектральной плотности мощности
Метод оценки
Условия
Q
Комментарии
Периодограмма
N —♦ оо
1
Несостоятельная оценка, не зависит от N
Барлетта
N, М —> оо
1,117V/
Качество повышается с размером сегмента данных
Уэлша
N, М —* оо, наложение 50%
1,397V/
Качество повышается с размером сегмента данных
Блэкмена-Тьюки
N, М —♦ оо, треугольная весовая функция
2,347V/
Качество повышается с размером сегмента данных
• 11.4. Современные параметрические методы оценки
Для непараметрических методов, описанных в предыдущих разделах данной главы и использующих периодограммы и БПФ, характерны упомянутые выше ограничения: низкое спектральное разрешение при коротких сегментах данных, необходимость взвешивания для предотвращения просачивания спектральных составляющих. Этих сложностей можно избежать, используя параметрические методы [9-11, 20, 22, 31, 38, 41, 49]. Ценой улучшения является необходимость всестороннего исследования подходящей модели каждого процесса, определения необходимого порядка выбранной модели для адекватного представления данных [1-5, 7, 14, 24, 45, 48, 51] и вычисления параметров модели [15, 19, 36, 37, 43, 44, 52]. В число получаемых преимуществ входят повышенное спектральное разрешение, возможность применения к кратким сегментам данных, отсутствие просачивания спектральных составляющих, гребешкового искажения, размывания спектра и смещения весовой функции. Поскольку параметрические методы очень важны, ниже представлен самый распространенный из них — метод авторегрессионного моделирования. Тем не менее, кроме преимуществ, параметрические методы имеют и недостатки, которые можно устранить с помощью альтернативных современных подходов, например, последовательного или адаптивного [20, 30] и метода максимального правдоподобия [13, 34].
Параметрический подход требует параметрического моделирования данных, процесса, хорошо изученного в сфере анализа с помощью временных рядов [7, 24, 43], плюс интерполяции данных, которые рассматриваются как выход линейной системы, возбужденной белым шумом. Данная система представляется полиномиальной передаточной функцией, выраженной через параметры модели. Далее по этой передаточной функции вычисляется спектр данных.
Авторегрессионная оценка спектра
В данном методе оцифрованный сигнал моделируется как авторегрессионный (АР) временной ряд плюс слагаемое белого шума. После этого спектр находится из параметров АР-модели и дисперсии слагаемого шума. Параметры модели — это решение системы линейных уравнений, полученных минимизацией среднеквадратической ошибки (мощности белого шума) по всем данным. Несколько способов решения данной системы уравнений описано ниже. Важным моментом является выбор числа членов в АР-модели — порядка модели. При слишком маленьком порядке оценка плотности мощности будет чрезмерно сглаженной, так что некоторые максимумы могут скрадываться. Если порядок слишком велик, могут вводиться ложные максимумы. Следовательно, для каждого набора данных нужно определить подходящий порядок модели, и ниже эта тема обсуждается подробно. Описанный метод применим к сигналам, спектр плотности мощности которых содержит острые максимумы. Если сигналы не удовлетворяют этому критерию, можно использовать другие модели, такие как модель скользящего среднего или авторегрессионного движения. Поскольку авторегрессионный подход дает решаемые уравнения, его стоит использовать, когда только возможно. Более подробное освещение данной темы можно найти в работах [12, 16, 32, 39, 42, 44].
Авторегрессионная модель и авторегрессионный фильтр
В АР-модели временного ряда текущее значение ряда х(п) представляется линейной функцией предыдущих значений плюс ошибка е(п):
х(п) = — a(l)a:(n — 1) — a(2)a:(n — 2) — ... — а^х^п — к) — ... — (11.37)
— а(р}х(тг — р) + е(п).
Это уравнение содержит р предыдущих членов и представляет модель порядка р. Его можно записать в более компактной форме: рр
т(п) = — '^а(к)х(п — k) + e(n) = - ^a,(k)z~kx(n) + е(п),(11.38)
где z~k — оператор запаздывания, которым обозначена задержка на к интервалов выборки. Далее перепишем уравнение (11.38): р/р\
(11.39)(11.39)^(п) "^2,aWz-ka:^ = (+Т,<к>"к) жМ = е(п) к=1\к=1/
(11.39)
(11.39)
Отсюда. .
/ хе(п)
(11.40)(11.40)^W =р■
(11.40)
(11.40)
1 + £ a(k)z-kк=1
*00 текущее значение*00 текущее значениеРис. 11.15. АР-фильтрРис. 11.15. АР-фильтр
*00 текущее значение
*00 текущее значение
Рис. 11.15. АР-фильтр
Рис. 11.15. АР-фильтр
Выражая отношение x(n)/e(n), получаем
- н^.- н^.(11.41)(11.41)х(п)1
- н^.
- н^.
(11.41)
(11.41)
е^ 1 + £ a(k)z-kк=1
Здесь H(z) интерпретируется как z-преобразование цифрового БИХ-фильтра с одними полюсами, который имеет коэффициенты аХку Подобный фильтр называется авторегрессионным. Из уравнения (11.41) x(ji) можно рассматривать как выходы данного фильтра, порожденные случайными входами е(п\ Величина е(п) представляет ошибку между значением, предсказанным моделью, х(п) и истинным значением выборки х(пу Как правило, предполагается, что е^ имеет свойства белого шума, т.е. гауссово распределение плотности вероятностей и равномерный спектр плотности мощности. Следовательно, можно считать, что a:(n) генерируется АР-фильтром, на входе которого — источник белого шума. Частотная характеристика фильтра H(f) получается подстановкой z = ешТ в уравнение (11.39) (см. раздел 4.4), где ш — угловая частота, а Т — период дискретизации. Следовательно,
(11.42)(11.42)н(П = —
(11.42)
(11.42)
1+52 а(к')е~*кшТk=i
Спектральная плотность мощности авторегрессионного ряда
Требуется найти спектральную плотность мощности Pz(f) АР-ряда х(п\ Данная величина связана со спектральной плотностью мощности сигнала белого шума Ре(УУ равной ее дисперсии ^(п):
РАП = ЖП\2Ре(П = ЖПКИ =РАП = ЖП\2Ре(П = ЖПКИ =1+52 а(<к')е-гкшТк=11+52 а(<к')е-гкшТк=1(11.43)(11.43)
РАП = ЖП\2Ре(П = ЖПКИ =
РАП = ЖП\2Ре(П = ЖПКИ =
1+52 а(<к')е-гкшТк=1
1+52 а(<к')е-гкшТк=1
(11.43)
(11.43)
Дисперсия белого шума равна ее среднеквадратическому значению, которое, в свою очередь, равно квадрату среднего значения е(п), а эту величину мы обозначили через Е. Итак, значение сг^п^ (или Е) можно выразить через параметры модели, а поскольку параметры модели определить можно, то спектральная плотность мощности также находится.
Расчет параметров модели — уравнения Юла-Уокера
Оптимальными параметрами модели считаются те, которые минимизируют ошибку е(п) для всех выборок х(п), представленных выражением, подобным уравнению (11.38). Выразим эти ошибки из уравнения (11.38):
р
е(п) = a;(n) + У^ а^к^х^п - к).(11.44)
/с=1
Далее требуется мера общей ошибки по всем выборкам, N (1 < n < N). Каждая ошибка е(п) может быть положительной или отрицательной, и для больших наборов выборок средняя ошибка обычно мала. Следовательно, средняя ошибка — это не совсем удобная мера точности модели, поэтому обычно используется средний квадрат ошибки (среднеквадратическая ошибка). Среднеквадратическая ошибка определяется следующим образом:„
N1 N /р\2
-^^е2(7г) = — ^ I a;(7i) + ^a(A:)x(n-k).(И.45)
П=1П=1 \fc=l/
Выше указывалось, что Е = <72(п). Значит, теперь требуется выбрать параметры модели, минимизирующие Е. Чтобы получить оптимальное значение каждого параметра в уравнении (11.45), нужно положить частную производную по параметру модели равной нулю. Таким образом для к-го параметра получаем уравнение:
2 w\ Яaa(fc) = N Е Г (") 1 Е^) а„(ц ЕТеперьaQ^T,a^W к) = х(п к),так что уравнение (11.46) упрощается до вида ЯЕ 2/р\9а^ = дг Е +52фДля к-го параметра получаем следующее уравнение:1 N / р\N^52 I ^а^х^п - к) j х^п — к) = - — ^х^х п=1 \/с=1/п=11 — к) = 0, 1 < к < р.(11.46)- к) = 0.(11.47)^п — к\(11.48)2 w\ Яaa(fc) = N Е Г (") 1 Е^) а„(ц ЕТеперьaQ^T,a^W к) = х(п к),так что уравнение (11.46) упрощается до вида ЯЕ 2/р\9а^ = дг Е +52фДля к-го параметра получаем следующее уравнение:1 N / р\N^52 I ^а^х^п - к) j х^п — к) = - — ^х^х п=1 \/с=1/п=11 — к) = 0, 1 < к < р.(11.46)- к) = 0.(11.47)^п — к\(11.48)
2 w\ Я
aa(fc) = N Е Г (") 1 Е^) а„(ц Е
Теперь
aQ^T,a^W к) = х(п к),
так что уравнение (11.46) упрощается до вида ЯЕ 2/р\
9а^ = дг Е +52ф
Для к-го параметра получаем следующее уравнение:
1 N / р\N
^52 I ^а^х^п - к) j х^п — к) = - — ^х^х п=1 \/с=1/п=1
1 — к) = 0, 1 < к < р.
(11.46)
- к) = 0.(11.47)
^п — к\(11.48)
2 w\ Я
aa(fc) = N Е Г (") 1 Е^) а„(ц Е
Теперь
aQ^T,a^W к) = х(п к),
так что уравнение (11.46) упрощается до вида ЯЕ 2/р\
9а^ = дг Е +52ф
Для к-го параметра получаем следующее уравнение:
1 N / р\N
^52 I ^а^х^п - к) j х^п — к) = - — ^х^х п=1 \/с=1/п=1
1 — к) = 0, 1 < к < р.
(11.46)
- к) = 0.(11.47)
^п — к\(11.48)
Проиллюстрируем полученный результат на примере. Записывая левую часть уравнения (11.48) для к = 1, получаем
1 N
— У^(а(1)х(п - 1) + a(2)rr(n - 2) + ... + a(p)x(n - р^х(тг - 1) =
= ^(а(1)а:(0)а:(0) + а(2)а?(-1)а:(0) + ... + а(р)а:(1 - p)z(0))+
+ ^(а(1)а;(1)а;(1) + а(2)а:(0)я;(1) 4-... 4- а(р)а:(2 - р)х(1)) 4-... 4
+ ^(a(l)z(JV - l^N - 1) + a(2)z(W - 2)x(N - 1) 4-... 4- a(p)x(N - pW? - 1)).
Изучая первые члены в каждой строке, видим, что их сумма дает автокорреляционную функцию с нулевой задержкой R^lO) ряда ^(п), умноженную на а(1). Следовательно, сумма вторых членов дает автокорреляционную функцию с единичной задержкой Н^-Г), умноженную на а(2), а сумма п-х членов строк дает произведение Rxx(-(p ~ 1)) и а(р). Поскольку для автокорреляционных функций справедливо соотношение RIX(-f) = Rxx(i), данное выражение можно записать как
Яи(0)а(1) + 7?1:г(1)а(2) + ... + RIX(k - l)a(k) + ... Rxx(j> - l)a(p).
Правая часть уравнения (11.48) равна —Rxx(l\ Приравнивая левую и правую части, получаем
Rzx($aW + /?IZ(l)a(2) + ... + Rxx(k — l)a(k) 4-... 4
+ Rxx(p - l)a(p) = -Rxx(l).
Подобное уравнение можно записать для каждого значения к, 1 < к < р. В матричной форме эти уравнения выглядят так:
/ Я1Х(0)Я„(1)■
RxxWRx.x(0)■
• Rxx\p- 1) ^
• Rxx^p-2^
/ "(1)
"(2)
/ RxxW \ Яхт (2)
.(11.50)
^ КхДр-1) Rxx^p-Y) •
■RxxWу
< °(p) у
Яхт(р) у
Теперь из этой системы уравнений, известных как уравнения Юла-Уокера (Yule-Walker), можно получить параметры модели а(к\ В матричной форме уравнение (11.50) записывается следующим образом
Rxx(k-j')a(k) = -Rxx(k).(11.51)
Значит, в принципе, aW = -RL(t-3)RxxW.(11.52)
Видно, что матрица Rxx(k — f) симметричная, и поскольку все элементы главной диагонали одинаковы (и равны Rxx(0')), матрица является матрицей Теплица. Она также
положительно определенная, откуда следует, что х(п) не состоит исключительно из синусоид. Далее осталось только найти a(fc) из системы уравнений (11.50), использовав один из множества существующих способов.
Значение Е можно вычислить из уравнения (11.45) или получить другое выражение через автокорреляционные функции и найти а(к) так, как описано ниже. Предполагая, что a(fc) и х(п) — действительные и расписывая уравнение (11.45), получаем:
NN(П-53)(П-53)
N
N
(П-53)
(П-53)
Из уравнения (11.47), которое справедливо для всех к, находим, что в уравнении (11.53)
1(г1 р
^52 И+Еa(fc)x(n — fc) I 52 a(fc)x(n — fc),n=l tfc=lJ fc=l
таким образом, уравнение (11.53) упрощается до вида
NрЭ
Е = — Е < х^ + а(к)х(п — fc) > х(п) =п—1 k к=1J
1N1^/ Р\
= ]уЕ ^м+^Е(Е а(к)х(п -fc))xw =
П=1n=^l\fc=l/
P ч N
= л1Х(о) + E ]v 52 a(kM'n-Mn - k\k=l n=l
так что окончательно получаемр
Е = RIZ^ + а^Н^ку(11.54)
к=1
Уравнение (11.54) или (11.45) и параметры модели из уравнения (11.52) теперь можно подставить в уравнение (11.43) и получить авторегрессионный спектр плотности мощности. Впрочем, опишем вначале методы нахождения a(fc) из системы (11.50) и выбор порядка модели р.
Решение уравнений Юла-Уокера
Среднеквадратическая ошибка Е, представленная в уравнении (11.45), вычисляется с использованием имеющихся выборок х(п) для п от 1 до N. Предшествующие или будущие значения х(п) полагаются равными нулю. Как объяснялось выше, это
эквивалентно взвешиванию данных и при использовании непараметрических методов оценки спектра приводит к спектральному сглаживанию, вызванному влиянием боковых лепестков и пониженным разрешением. Впрочем, для авторегрессионного метода данное утверждение неверно. Можно показать (см. [32]), что в данном методе неявно оцениваются автокорреляционные функции для задержек, превышающих р, даже если соответствующих значений я(п) не существует. Следовательно, авторегрессионные методы дают улучшенное спектральное разрешение. В то же время можно улучшить и спектральные оценки, например, используя в методе только существующие данные. При таком подходе значения п (0 > п < N) не требуются, а следовательно их не нужно полагать равными нулю. Ниже приводятся примеры методов, разработанных на описанном принципе. Более полное специализированное изложение можно найти в таких работах, как [12, 32]. Реализации алгоритмов в программном виде представлены в книге [32], также их можно найти в других публикациях и программных пакетах.
Автокорреляционный метод
Автокорреляционный метод основан на выражении для среднеквадратической ошибки (11.45). Из системы уравнений (11.50) с помощью алгоритма Левинсона-Дурбина (Levinson-Durbin) (см. [32, 42]) можно вычислительно эффективно найти параметры модели. Данный метод дает худшее разрешение по частоте, чем методы, описанные ниже, а следовательно, он менее подходит для коротких последовательностей выборок.
Ковариационный метод
В данном методе пределы суммирования в уравнении (11.45) устанавливаются равными от п = р до n — N. Это означает, что для вычисления автокорреляционной функции требуются только доступные значения ж(п). Кроме того, среднее вычисляется по N — р слагаемым, а не по N. Таким образом, уравнение (11.45) приводится к виду
Кроме того, используется следующий эквивалент уравнения (11.50):
/ с„(1,0) \
Cxz(2,0)
\ см(р,0) /
£x(n- j)x(n — к),
Е выражается следующим образом:
(11.58)(11.58)Е = С„(0,0) +52a(fc)CIZ(O,fc).
(11.58)
(11.58)
► .(11.59)► .(11.59)FPE^ = ^pE(pYFPE^ = ^pE(pY(11.60)(11.60)
► .(11.59)
► .(11.59)
FPE^ = ^pE(pY
FPE^ = ^pE(pY
(11.60)
(11.60)
Матрица CIZ(j, fc) размером р х р эрмитова и неотрицательно определенная. Для решения уравнения (11.56) можно использовать метод разложения Холецкого [35]. Суммируется только N — р запаздывающих компонентов, так что для кратких последовательностей данных могут иметь место некоторые краевые эффекты. Отметим, что ковариационный метод дает лучшее спектральное разрешение, чем автокорреляционный.
Модифицированный ковариационный метод
В модифицированном ковариационном методе минимизируется среднее оцененных ошибок предсказания с опережением и запаздыванием [12, 32]. По-прежнему используются уравнения (11.56) и (11.58), но уравнение (11.57) модифицируется до вида
У^ ж(п — з^х^гг — fc) + У2 ^^ + j)1^ + к)
Матрица CZI(j,fc) размером р х р снова эрмитова и неотрицательно определенная, а для решения уравнения (11.56) используется метод разложения Холецкого [35]. Данный подход не гарантирует строгой устойчивости фильтра с одними полюсами, но на практике такие фильтры обычно устойчивы. Кроме того, метод дает статистически устойчивые спектральные оценки с высоким разрешением.
Метод Бэга
Данный метод основан на аспектах, которые не рассматриваются в данной книге. Он дает точные спектральные оценки для авторегрессионных данных.
Порядок модели
Порядок авторегрессионной модели, которая наилучшим образом аппроксимирует данные, нужно выбирать аккуратно для каждого набора данных, поскольку порядок зависит от статистических свойств данных. Данный момент можно проиллюстрировать на данных ЭЭГ, где различные сегменты данных требуют моделей различных порядков [42]. Модели низкого порядка предпочтительнее, поскольку нужно подбирать меньше параметров. Впрочем, если порядок слишком низок, оценка спектра будет слишком сглаженной. С другой стороны, слишком высокий порядок приведет к появлению ложных максимумов и спектральной неустойчивости. Для оценки порядка Экейком (Akaike) было предложено два параметра. Первый — это ошибка окончательного предсказания (Final Prediction Error — FPE), которая определяется следующим образом [1]:
Второй параметр — это информационный критерий Экейка (Akaike Information Criterion), который определяется так [3]:
Параметр Л/С(р) применяется для небольших наборов данных, тогда как FPE(p) рекомендуется использовать для более крупных наборов. На практике обычно пытаются так выбрать р, чтобы одновременно минимизировать FPE(p) и АКДр).
Сравнение методов оценки
Из непараметрических методов наибольшую добротность имеет метод Блэкмена- Тьюки, следовательно, он наиболее предпочтителен, хотя для удобства может выбираться и другой метод.
Параметрические методы предлагают большее разрешение по частоте и не требуют использования весовых функций. Метод максимального правдоподобия Кейпена дает несмещенную оценку с минимальной дисперсией, при которой спектральное разрешение находится между разрешением метода Бэга (метода наименьших квадратов без ограничений) и непараметрических методов. Для нестационарных данных лучше всего подходят методы адаптивной фильтрации, делающие акцент на наиболее свежих данных.
Примеры применения
Использование спектрального анализа с помощью ДПФ для различения болезней мозга
В работе [29] описано использование амплитудного и фазового спектров, полученных с помощью БПФ, для различения пациентов с болезнью Хантингтона, шизофренией, болезнью Паркинсона и здоровых пациентов путем анализа выбранных гармоник спектра возможной отрицательной вариации (contingent negative variation — CNV) на электроэнцефалограмме (ЭЭГ) исследуемых.
CNV — это зависящий от событий потенциал (Event-Related Potential — ERP), который проявляется как отрицательное смещение электрического потенциала на скальпе при вызове подходящего слухового раздражителя. Схематическое изображение сигнала CNV приведено на рис. 11.16. CNV — это отрицательный пик, находящийся между точками начал слуховых раздражителей S^ и 52. Считается, что у людей, подверженных перечисленным выше заболеваниям, сигнал CNV искажен. Определяя спектр подходящих частей сигнала и статистически их обрабатывая, людей можно относить к одной из указанных выше категорий.
С помощью специализированной контрольно-измерительной системы обработки сигналов [25, 46] было записано несколько CNV для больных каждой группы и здоровых людей. Затем данные обрабатывались для уменьшения эффекта фоновой ЭЭГ и окулярных артефактов на сигнал CNV. Чтобы можно было провести сравнение во временной области и обеспечить надлежащую работу алгоритма удаления окулярных артефактов, был исключен средний уровень сигналов. Это привело к положительному смещению базовых линий до и после раздражения. Следовательно, для коррекции базовой линии
кнопки
Рис. 11.16. Схематический сигнал CNV
потребовалось вычесть средние характеристики различных участков из соответствующих отрезков. Затем сигнал пропустили через цифровой фильтр нижних частот для удаления нежелательных высокочастотных компонентов ЭЭГ. При этом использовался не искажающий сигнал КИХ-фильтр. Затем применялся алгоритм удаления окулярных артефактов с помощью метода пропорциональных вычитаний (см. [28]). В каждой категории было обработано восемь сигналов CNV. Усредненные результаты показаны на рис. 11.17-11.20 (группа здоровых пациентов, группа с болезнью Хантингтона, группа шизофреников и группа с болезнью Паркинсона соответственно).
Затем два сегмента каждого сигнала CNV, имеющие длительность 512 мс (64 выборки), взвешивались с использованием функции Кайзера-Бесселя. Эксперименты показали, что при значении весового параметра а = 0,75 достигается приемлемый компромисс между уровнем боковых лепестков и шириной основного лепестка. Для снижения гребешкового искажения к 64 выборкам было добавлено 960 дополняющих нулей. Затем находились ДПФ полученных наборов из 1024 элементов данных. К первым 96 гармоническим составляющим полученных спектров применялось четыре статистических теста (описаны в [26]). Данные тесты были названы тестом на ближайшую и наиболее удаленную среднюю амплитуду, тестом разности средних амплитуд до и после раздражения, тестом Релея круговой дисперсии и модифицированным тестом Релея круговой дисперсии. В результате были собраны необходимые тестовые статистики.
Чтобы уменьшить число тестовых статистик, выбрав из них наиболее селективные, использовали одномерный критерий, проверку по критерию Стьюдента и ступенчатый дискриминантный анализ. Все эти процедуры описаны в [29], кроме того, компания SAS выпустила пакет статистических программ, где реализованы все названные тесты [47].
После получения статистических результатов была выполнена классификация отдельных пар пациентов с помощью дискриминантного анализа [40]. Для реализации использовался пакет SAS, а более подробно этот вопрос освещен в [29]. Краткие результаты эксперимента приведены в табл. 11.2.
О 24681012
Время (с)
Рис. 11.17. Сигнал CNV здорового пациента после предварительной обработки и усреднения
-14 1111.1111111
024681012
Время (с)
Рис. 11.18. Сигнал CNV пациента с болезнью Хантингтонапосле предварительной обработки и усреднения
Таблица 11.2. Результаты разделения по группам пациентов с заболеваниями головного мозга
Типы объектов
Процент правильной классификации
Тип 1
Тип 2
Тип 1
Тип 2
БХ
контрольный
100
100
шизофреник
контрольный
95
100
БП
контрольный
93,8
87,5
БХ
шизофреник
100
90,9
БХ
БП
90,9
81,8
шизофреник
БП
81,3
93,8
БХ — пациент с болезнью Хантингтона, БП — пациент с болезнью Паркинсона, контрольный — контрольный пациент того же пола и возраста, что и тестируемый.
Рис. 11.19. Сигнал CNV пациента с шизофренией после предварительной обработки и усреднения
8
б
-12
О 24681012
Время (с)
Рис. 11.20. Сигнал CNV пациента с болезнью Паркинсонапосле предварительной обработки и усреднения
Из результатов видно, что для сигналов CNV спектральный анализ весьма полезен, и что объединение этой методики со статистическими методами позволяет с высокой степенью точности различать здоровых пациентов, шизофреников и пациентов с болезнями Хантингтона и Паркинсона.
Спектральный анализ ЭЭГ с использованиемавторегрессионного моделирования
Записанное изменение потенциала событий моделировалось как сумма измеренного сигнала электроэнцефалограммы (ЭЭГ) со смоделированным сигналом ERP. Смоделированный записанный потенциал ERP и смоделированный потенциал ERP изображены на рис. 11.21, а. На рис. 11.21, б иллюстрируется запись спектра плотности мощности смоделированного сигнала ERP с помощью метода быстрого преобразования Фу-
рье. Затем для получения спектра сигналов использовался метод авторегрессионного определения спектра, описанный в разделе 11.5. Для расчета параметров модели был использован ковариационный метод (см. раздел 11.5.4.2). Спектр амплитудной характеристики смоделированного записанного потенциала ERP показан на рис. 11.21, в для авторегрессионной модели порядка 50. Данный спектр более гладкий, чем спектр, полученный с помощью БПФ. Для сравнения на рис. 11.21, г показан спектр амплитудной характеристики измеренной ЭЭГ. Этот спектр содержит меньше энергии ниже частоты 2 Гц, чем спектр смоделированного сигнала ERP, чего следовало ожидать, поскольку энергия ERP сконцентрирована на низких частотах. Спектр амплитудной характеристики ERP показан на рис. 11.21, 0. Похоже, что основная энергия сосредоточена в полосе до 2 Гц, что подтверждает предыдущие наблюдения. Сравнивая рис. 11.21, г и д, видим, что большая часть энергии ниже 2 Гц связана в основном с ERP, а не с ЭЭГ. Наконец, на рис. 11.21, е приведен спектр амплитудной характеристики ERP, но для модели порядка 6, а не 50. Данные спектры идентичны, следовательно, модели низкого порядка достаточно для определения спектра узкополосного ERP, тогда как модель большого порядка необходима для нахождения спектра ЭЭГ, который имеет более широкую полосу.
Резюме
В данной главе утверждается, что параметрические методы оценки спектра дают более достоверные результаты. Поскольку эти методы можно автоматизировать, они, скорее всего, предпочтительнее непараметрических методов, основанных на понятии периодограммы. Непараметрические методы менее надежны и более трудоемки, так как требуют для получения значимых результатов значительных исследований. Впрочем, их преимущества проявляются при использовании для различения болезней головного мозга.
Разобранный пример
Пример 11.3
Покажите, что оценка Барлетта спектральной плотности мощности асимптотически несмещенная, дисперсия оценки уменьшается с увеличением числа сегментов данных, и оценки спектра состоятельны. Какое влияние оказывает модифицированный метод периодограмм на разрешение по частоте?
Решение
В рассматриваемом методе вычисляется периодограмма К неперекрывающихся сегментов из М элементов данных. Если общее число элементов данных равно N, тогда К = N/M. Среднее К периодограмм равно оценке Барлетта спектральной плотности мощности PbeU\ гДе
рВЕт = ^ Е ш(Ц.62)
n j=O
а) смоделированный потенциал ERP + измеренныйсигнал ЭЭГ
30
050100150 200 250 300 350 400
Номер выборки —»
б) спектр БПФ смоделированного потенциала ERP + измеренного сигнала ЭЭГ
мкВ
в) авторегрессионный спектр порядка 50, смоделированный потенциал ERP + измеренный
г) авторегрессионный спектр измеренного сигнала ЭЭГ, 50 параметров
д) авторегрессионный спектр порядка 50,
е) авторегрессионный спектр порядка 6, смоделированный потенциал ERP
Рис. 11.21. Иллюстрация получения спектра авторегрессионным методом
и через з обозначен порядковый номер, a Pj(/) — соответствующая г-я оценка спектральной плотности мощности.
Изучая математическое ожидание PbeUY получаем
1 К-1
evpBeU^ = ^EeVpA^ =
j=0
(11.63)(11.63)-Е[Р^)] =
(11.63)
(11.63)
М-1т= — (М— 1)М-1т= — (М— 1)А _ НА\ м )А _ НА\ м )Схх^) ехр(—2тгг/т).Схх^) ехр(—2тгг/т).
М-1
т= — (М— 1)
М-1
т= — (М— 1)
А _ НА
\ м )
А _ НА
\ м )
Схх^) ехр(—2тгг/т).
Схх^) ехр(—2тгг/т).
Для М 5> |т| элемент весовой функции Барлетта 1 — \т\/М стремится к единице и E\PbeUT\ переходит в истинную спектральную плотность мощности P(f\ Таким образом, оценка Барлетта функции P(f) является асимптотически несмещенной.
Теперь рассмотрим дисперсию:
vax[PBS(/)] = — ^ var[Pj(/)] = ^var^Cf)]. (11.64) j=0
Следовательно, дисперсия уменьшается обратно пропорционально числу сегментов К, на которые разбита последовательность из N элементов данных. Поскольку дисперсия уменьшается с увеличением К, оценка Барлетта функции Р(/) состоятельна. Впрочем, поскольку число элементов данных, по которым вычисляются периодограммы, уменьшается с N в К раз до М = N/K, и спектральное разрешение также уменьшается в К раз. Следовательно, ширина основного лепестка при использовании метода Барлетта в К раз больше, чем при применении полного набора из N элементов данных.
Задачи
1. Сигнал выбирается с частотой 30 кГц. Первые 524 288 выборок подвергаются быстрому преобразованию Фурье. Вычислите частоту первой гармоники и частотное разрешение спектра.
Если известно, что истинный спектр сигнала содержит синусоидальный компонент с частотой 5,7505 Гц, каким образом следует модифицировать данные, чтобы обеспечить надлежащее представление этого компонента в оцененном спектре?
Сигнал выбирается с частотой 8 кГц. Получены следующие уровни напряжения: 1,0; 1,0; 1,0; 1,0; 1,0; 1,0; 1,0; 1,0 В. Затем данные умножаются на весовую функцию, соответствующие дискретные значения которой — 0; 0,5; 1,0; 1,0; 1,0; 1,0; 0,5; 0,0. Определите ДПФ-образ, а следовательно, и Фурье-образ взвешенных данных.
Вычислите гребешковое искажение и ширину полосы шумового эквивалента данных, представленных в задаче 11.2.
Используя рис. 11.10, 11.12 и 11.13, оцените ширину полосы шумового эквивалента и выигрыш от обработки следующих весовых функций (в каждом случае используйте восемь выборок):
прямоугольная;
Тьюки (спад по косинусу), а = 0,1;
Тьюки, а = 0,5;
Хэмминга, а = 0,54;
Кайзера-Бесселя, а = 2,0;
Кайзера-Бесселя, а = 4,0.
Импульсный телекоммуникационный сигнал выбирается каждые 0,167 мкс, в результате получаются такие выборки: 0,0, 1, 1, 1, 1, 1,0 В. Ненулевые значения умножаются на весовую функцию Кайзера-Бесселя с а = 4,0. Вычислите энергетический спектр взвешенного импульса с использованием восьмиточечного БПФ (или ДПФ). (Весовая функция представлена на рис. 11.13, в.)
Определите гребешковое искажение, потери при обработке и наихудшие потери от обработки весовой функцией из задачи 11.5.
По данным задачи 11.5 определите наихудшие потери от обработки и амплитуду первого бокового лепестка весовой функции Кайзера-Бесселя с а = 4,0, функции Хэмминга с а = 0,54, функции Тьюки с а = 0,5 и прямоугольной весовой функции. Результаты сведите в таблицу и выберите наиболее подходящую весовую функцию. (Для получения оценок весовых функций используйте рис. 11.13, в, 11.12, а и 11.10, б.)
Сигнал, который выбирается с частотой 8 кГц, дает следующие выборки: 0; 4,0; 2,4; 1,0; -1,0; -3,8; -1,3; 0 В. Вычислите и изобразите энергетический спектр:
воздействовав на данные весовой функцией Кайзера-Бесселя с а = 2,0;
после модификации данных согласно формуле (11.21);
-N-1"
Е w(n)s(n)
X
--| 1/2
N
D\n) W{Tl) о{П)
Е -n=0-
JV-1
E w4n) - n=0-
где w(n) — дискретные значения весовой функции Кайзера-Бесселя с а = 2,0;
объясните причины отличий результатов, полученных в п. а и б.
Получите энергетический спектр дискретной последовательности данных {0,1, 0, 1,0,1,0,1} и сравните его со спектром сигнала прямоугольной формы (меандра).
С помощью метода модифицированных периодограмм Барлетта получите энергетический спектр данных из задачи 11.9, разбив данные на две неперекрыва- ющиеся последовательности: {0,1,0,1} и {0,1,0,1}.
С помощью метода модифицированных периодограмм Уэлша получите энергетический спектр данных из задачи 11.9, разбив данные на три последовательности равной длины с перекрытием 50%.
Пусть последовательность данных из задачи 11.9 искажается случайным шумовым компонентом и становится равной {0,763; 1,656; 0,424; 1,939; 0,133; 1,881; 0,328; 1,348}. Вычислите энергетический спектр зашумленных данных и сравните его со спектром исходных данных. Оцените по выборкам отношение сигнал-шум.
Повторно решите предыдущую задачу, используя модифицированный метод периодограмм Барлетта и две неперекрывающиеся последовательности данных {0,763; 1,656; 0,424; 1,939} и {0,133; 1,881; 0,328; 1,348}.
Повторно решите задачу 11.11, используя зашумленные данные из задачи 11.12.
Пусть исходная последовательность данных из задачи 11.9 значительно искажена шумом и перешла в последовательность {6,03; 6,18; 3,35; 8,42; 1,05; 7,96; 2,59; 3,75}. Вычислите энергетический спектр этих данных и оцените по выборкам отношение сигнал-шум.
Получите улучшенную оценку энергетического спектра данных из задачи 11.15, используя метод Барлетта с двумя последовательностями равной длины.
Улучшите качество оценки энергетического спектра из задачи 11.15, используя метод модифицированных периодограмм Уэлша с тремя последовательностями равной длины с 50%-ным перекрытием.
Составьте таблицу для сравнения различных методов оценки спектра и отношений сигнал-шум (результаты задач 11.9-11.17). Обсудите влияние отношения сигнал-шум на различные методы и выберите наиболее понравившийся метод.
Получите спектр плотности мощности данных из задачи 11.9, т.е. (0,1,0,1,0,1, 0, 1}, используя метод Блэкмена-Тьюки и сравните результат с полученным в задаче 11.9. Используйте весовую функцию {0; 0,5; 1; 1; 1; 1; 0,5; 0}.
Повторно решите задачу 11.19, используя зашумленные данные из задачи 11.12.
Повторно решите задачу 11.19, используя зашумленные данные из задачи 11.15.
Сравните результаты, полученные при решении задач 11.12-11.17, и выясните, какой метод лучше при наличии шума — периодограмм или Блэкмена-Тьюки.
Определите энергетический спектр меандра с периодом 1,0 мкс, который попеременно принимает значения 0 и 5 В, используя метод Блэкмена-Тьюки. Сравните ваш результат с теоретическим.
Напишите компьютерную программу генерации желаемого сигнала и разработайте подходящие процедуры анализа спектра, используя описанные в данной главе методы оценки энергетического и фазового спектров.
Придумайте несколько амплитудных и фазовых спектров, демонстрирующих некоторые интересные особенности (например, близлежащие максимумы), на
которых можно проверять методы оценки спектра. Преобразуйте их во временную область, а затем добавьте шум, чтобы получить а) малое отношение сигнал-шум; б) единичное отношение сигнал-шум; в) большое отношение сигнал-шум. Теперь рассчитайте и обсудите амплитудные и фазовые спектры.
Литература
Akaike Н. (1969) Fitting autoregressive models for prediction. Ann. Institute of Statistical Mathematics, 21, 243-247.
Akaike H. (1973) Information theory and an extension of the maximum likelihood principle. In 2nd International Symposium on Information Theory (Petrov B. N. and Csaki F. (eds)), pp. 267-281. Budapest: Akademiai Kiade.
Akaike H. (1974) A new look at the statistical model identification. IEEE Trans. Automatic Control, 19, 716-722.
Akaike H. (1978) A Bayesian analysis of the minimum AIC procedure. Ann. Institute of Statistical Mathematics, 30A, 9-14.
Akaike H. (1979) A Bayesian extension of the minimum AIC procedure of autoregressive model fitting. Biometrika, 66, 237-242.
Blackman R. B. and Tukey J. W. (1958) The Measurement of Power Spectra. New York: Dover.
Box G. E. P. and Jenkins G. M. (1976) Time-Series Analysis, Forecasting, and Control. San Francisco CA: Holden-Day.
Burg J. P. (1967) Maximum entropy spectral analysis. In Proc. 37th Meeting Society Exploration Geophysicists, Oklahoma City, October. Reprinted in Childers D. G. (ed.) (1968) Modern Spectrum Analysis. New York: IEEE Press.
Burg J. P. (1968) A new analysis technique for time series data. In NATO Advanced Study Institute on Signal Processing with Emphasis on Underwater Acoustics, 12-23 August. Reprinted in Childers D. G. (ed.) (1968) Modern Spectrum Analysis. New York: IEEE Press.
Cadzow J. A. (1979) ARMA spectral estimation: an efficient closed-form procedure. In Proc. RADC Spectrum Estimation Workshop, Rome NY, October 1979, pp. 81-97.
Cadzow J. A. (1982) Spectral estimation: an overdetermined rational model equation approach. Proc. IEEE, 70, 907-938.
Candy J. V. (1989) Signal Processing: The Modern Approach. New York: McGraw-Hill.
Capon J. (1969) High-resolution frequency-wavenumber spectrum analysis. Proc. IEEE, 57, 1408-1418.
Chatfield C. (1979) Inverse autocorrelation. J. Royal Statistical Society A, 142, 363-377.
Chatfield C. (1984) The Analysis of Time Series, 3rd edn. London: Chapman and Hall.
Clarkson P. M. (1993) Optimal and Adaptive Signal Processing. Boca Raton FL: CRC Press.
Cooley J. W. and Tukey J. W. (1965) An algorithm for the machine calculation of complex Fourier series. Mathematics of Computation, 19, 297-301.
DeFatta D. J., Lucas J. G. and Hodgkiss W. S. (1988) Digital Signal Processing: A System Design Approach, Section 6.6.5, p. 263. New York: Wiley.
Durbin J. (1959) Efficient estimation of parameters in moving-average models. Biometrika, 46, 306-316.
Friedlander B. (1982) Lattice methods for spectral estimation. Proc. IEEE, 70, 990-1017.
Gersch W. (1970) Spectral analysis of EEGs by autoregressive decomposition of time series. Mathematical Biosciences, 7, 205-222.
Graupe D., Krause D. J. and Moore J. B. (1975) Identification of autoregressive-moving average parameters of time series. IEEE Trans. Automatic Control, 20, 104-107.
Harris F. J. (1978) On the use of windows for harmonic analysis with the discrete Fourier transform. Proc. IEEE, 66(1), 51-84.
Jenkins G. M. and Watts D. G. (1968) Spectral Analysis and its Applications. San Francisco CA: Holden- Day.
Jervis В. W. and Saatchi М. R. (1990) An integrated system for process control and the acquisition, storage and processing of data. In IEE Colloq. on PC-Based Instrumentation, 31 January, IEE Digest No. 1990/025.
Jervis B. W., Nichols M. J., Johnson T. E., Allen E. M. and Hudson N. R. (1983) A fundamental investigation of the composition of auditory evoked potentials. IEEE Trans. Biomedical Engineering, 30(1), 43-50.
Jervis B. W., Coelho M. and Morgan G. W. (1989a) Spectral analysis of EEG responses. Medical and Biological Engineering and Computing, 27, 230-238.
Jervis B. W., Coelho M. and Morgan G. W. (1989b) Effect on EEG responses of removing ocular artefacts by proportional EOG subtraction. Medical and Biological Engineering and Computing, 27, 484-490.
Jervis B. W., Saatchi M. R., Allen E. M., Hudson N. R., Oke S. and Grimsley M. (1993) A pilot study of computerised differentiation of Huntington’s disease, schizophrenia, and Parkinson’s disease patients using the contingent negative variation. Medical and Biological Engineering and Computing, 31 (January), 31-38.
Kalouptsidis N. and Theodoridis S. (1987) Fast adaptive least-squares algorithms for power spectral estimation. IEEE Trans. Acoustics, Speech and Signal Processing, 35, 661-670.
Kay S. M. (1980) A new ARMA spectral estimator. IEEE Trans. Acoustics, Speech and Signal Processing, 28, 585-588.
Kay S. M. (1988) Modern Spectral Estimation: Theory and Application. Englewood Cliffs NJ: Prentice-Hall.
Kuo F. F. and Kaiser J. F. (1966) System Analysis by Digital Computer, Chapter 7, pp. 232-238. New York: Wiley.
Lacoss R. T. (1971) Data adaptive spectral analysis methods. Geophysics, 36, 661-675.
Lawson C. L. and Hanson R. J. (1974) Solving Least Squares Problems. Englewood Cliffs NJ: Prentice-Hall.
Levinson N. (1947) The Weiner RMS error criterion in filter design and prediction. J. Mathematical Physics, 25, 261-278.
Makhoul J. (1975) Linear prediction: a tutorial review. Proc. IEEE, 63, 561-580.
Marple S. L. (1980) A new autoregressive spectrum analysis algorithm. IEEE Trans. Acoustics, Speech and Signal Processing, 28, 441-454.
Marple S. L. (1987) Digital Spectral Analysis. Englewood Cliffs NJ: Prentice-Hall.
Morrison D. F. (1976) Multivariate Statistical Methods, 2nd edn. New York: McGraw-Hill.
Nuttall A. H. (1976) Spectral Analysis of a Univariate Process with Bad Data Points via Maximum Entropy and Linear Predictive Techniques. NUSC Technical Report TR-5303, New London CN.
Pardey J., Roberts S. and Tarassenko L. (1996) A review of parametric modelling techniques for EEG analysis. Medical Engineering Physics, 18, 2-11.
Priestley M. B. (1981) Spectral Analysis and Time Series, Volume 1, Univariate Series, Chapter 6 and 7. New York: Academic Press.
Proakis J. G. and Manolakis D. G. (1989) Introduction to Digital Signal Processing, Sections 1.3.2, 11.2.4, 11.3 and 11.3.4 and Appendix 6A. Basingstoke: Macmillan.
Rissanen J. (1983) A universal prior for the integers and estimation by minimum description length. Ann. Statistics, 11, 417-431.
Saatchi M. R. and Jervis B. W. (1991) PC-based integrated system developed to diagnose specific brain disorders. Computing and Control Engineering J., 2(2), 61-68.
SAS (1982) SAS User Guide. SAS Institute.
Shibata R. (1976) Selection of the order of an autoregressive model by Akaike’s information criterion. Biometrika, 63, 117-126.
Ulrych T. J. and Clayton R. W. (1976) Time series modelling and maximum entropy. Physics Earth and Planetary Interiors, 12, 188-200.
Welch P. D. (1967) The use of fast Fourier transform for the estimation of power spectra. IEEE Trans. Audio and Electroacoustics, 15, 70-73.
Whittle P. (1965) Prediction and Regulation. London: English Universities Press.
Wold H. (1954) A Study of the Analysis of Stationary Time Series. Stockholm: Almquist and Wichsells.
Приложение
11 А. Программы MATLAB для оценки и анализа спектра
Средство MATLAB под названием Signal Processing Toolbox содержит массу полезных функций для оценки спектра и спектрального анализа с использованием параметрических и непараметрических методов. Для иллюстрации использования этих функций на практике мы разработали следующие полезные программы:
welchm.mwelchm.mburgm.mburgm.myulewalkm.myulewalkm.mпрограмма, иллюстрирующая оценку и анализ спектральной плотности мощности с помощью метода Уэлша;
welchm.m
welchm.m
burgm.m
burgm.m
yulewalkm.m
yulewalkm.m
программа, иллюстрирующая оценку и анализ спектральной плотности мощности с помощью метода Бэга;
программа, иллюстрирующая оценку и анализ спектральной плотности мощности с помощью метода Юла-Уокера.
Все программы можно найти в Web.
Универсальные и специализированные процессоры ЦОС
Вступление -%\.784
Компьютерные архитектуры обработки сигналов ■■' 784
Универсальные процессоры ЦОС i 1804
Выбор цифрового процессора сигналовJ818
Реализация алгоритмов ЦОС на универсальных процессорах ЦОС820
Специализированная аппаратура ЦОС847
Резюме■■ 852
. .Задачи'■ 852
: Литература г .:Л 857
■ Дополнительная литература857
■ Приложение ::/■>:: :859
В данной главе объясняются ключевые фундаментальные вопросы, связанные с универсальными и специализированными процессорами для цифровой обработки сигналов (ЦОС), влиянием алгоритмов ЦОС на аппаратную и программную архитектуру данных процессоров, а также с реализацией ключевых алгоритмов ЦОС на блоке специализированной аппаратуры или на универсальных процессорах ЦОС для работы в реальном времени.
Обработка в реальном времени обычно означает “как можно скорее", но в заданных временнь/х рамках. Обработку в реальном времени можно разбить на две обширные категории (хотя данные категории также можно разбить на более мелкие классы): потоковая обработка, например, цифровая фильтрация, где данные обрабатываются по выборке за такт, и блоковая обработка, например, нахождение БПФ и корреляции, где за такт обрабатывается блок данных фиксированной длины. Отметим, что для реализации алгоритмов ЦОС в реальном времени требуется и программное, и аппаратное обеспечение. В качестве аппаратной поддержки можно использовать матрицы процессоров, стандартные микропроцессоры, чипы ЦОС или микропро- граммируемые специализированные устройства. Программной поддержкой служат коды или микрокоды на языке ассемблера низкого уровня, “родном” для аппаратуры ЦОС, и/или коды на эффективном языке высокого уровня, таком как С или C++. В настоящее время обычно используют именно языки высокого уровня, особенно с новейшими процессорами ЦОС, имеющими сложную и запутанную структуру.
Процессоры ЦОС, появившиеся в начале 1980-х, стали в настоящее время значительно сложнее, повысили свои возможности и расширили число сфер применения. Все это также привело к значительному увеличению числа доступных процессоров ЦОС. Чтобы помочь читателю сориентироваться в выборе необходимого процессора ЦОС, в главу включен обзор основных отличий поколений процессоров ЦОС с фиксированной или плавающей запятой.
Вступление
Процессоры ЦОС можно для удобства разделить на две обширные категории: универсальные и специализированные. В число распространенных процессоров ЦОС входят такие устройства с фиксированной запятой, как TMS320C54x от Texas Instruments и DSP563x от Motorola, и такие устройства с плавающей запятой, как TMS320C4x (Texas Instruments) и ADSP21xxx SHARC (Analog Devices).
Существует два типа специализированных устройств.
Аппаратное обеспечение, разработанное для эффективного выполнения специальных алгоритмов ЦОС, таких как цифровая фильтрация, быстрое преобразование Фурье. Устройства данного типа иногда называют алгоритмическими процессорами ЦОС.
Т. Аппаратное обеспечение, разработанное для специального приложения, например, в сфере контроля, телекоммуникаций или цифрового аудио. Устройства данного типа иногда называют процессорами ЦОС специального назначения (специализированными) .
В большинстве случаев специализированные процессоры выполняют такие алгоритмы ЦОС, как кодирование-декодирование РСМ. Кроме того, они должны выполнять другие операции, отражающие специфику приложения. В качестве примеров специализированных процессоров ЦОС можно привести процессор Cirrus CS8420 для конвертеров частоты дискретизации в цифровой аудиоаппаратуре, подавитель речевого эха в многоканальной телефонии Mitel МТ9300, процессор БПФ PDSP16515A и программируемый КИХ-фильтр VPDSP16256.
Все универсальные и специализированные процессоры можно построить с помощью отдельных чипов или блоков умножителей, АЛУ, ячеек памяти и т.д.
Рассмотрим архитектурные особенности процессоров ЦОС, которые позволили применить цифровую обработку в реальном времени во многих областях.
Компьютерные архитектуры обработки сигналов
Большинство доступных сейчас универсальных процессоров основаны на архитектуре фон Неймана, при которой операции выполняются последовательно*. Упрощенная архитектура стандартного процессора фон Неймана показана на рис. 12.1. При обработке инструкции в таком процессоре блоки процессора, не задействованные в каждой фазе инструкции, находятся в холостом состоянии до передачи им управления. Повышение скорости процессора достигается за счет ускорения работы отдельных блоков, хотя существует определенный предел, ограничивающий их возможную скорость работы.
Если устройство должно работать в реальном времени, архитектуру процессора ЦОС нужно оптимизировать под выполнение функций ЦОС. Например, на рис. 12.2 показана общая аппаратная архитектура, подходящая для цифровой обработки сигналов в реальном времени. Она характеризуется следующими особенностями.
’Уже нет — в большинство (чтобы ие сказать — во все) универсальные процессоры встроено как минимум иефон- неймановское ядро (MMX, 3DN0W и другие технологии, ставшие аппаратным ширпотребом). — Прим. ред.
Рис. 12.1. Упрощенная архитектура стандартных микропроцессоров
Арифметические устройства
Рис. 12.2. Стандартная универсальная аппаратная архитектура обработки сигналов
■ Многошинная структура с раздельной памятью для данных и инструкций программы. Обычно память для хранения данных содержит входные данные, промежуточные значения и выходные выборки, а также фиксированные коэффициенты, например, для цифровой фильтрации или БПФ. Команды программы хранятся в специально отведенных ячейках памяти.
Порт ввода-вывода позволяет обмениваться данными со внешними устройствами (АЦП, ЦАП) или передавать цифровые данные другим процессорам. Прямой доступ к памяти (Direct Memory Access — DMA) (если он есть) позволяет быстро обмениваться блоками данных с памятью (ОЗУ) для хранения данных, причем обычно это происходит под внешним управлением.
Арифметические устройства для логических и арифметических операций, в число которых выходят АЛУ, аппаратные умножители и схемы сдвига (или умножители- накопители).
Почему необходима именно такая архитектура? Большинство алгоритмов ЦОС (фильтрация, корреляция, преобразование Фурье) включают повторяющиеся арифметические операции, такие как умножение, сложение, обращение к памяти и интенсивная передача данных через центральный процессор. Архитектура стандартных микропроцессоров не предназначена для такого типа деятельности. При разработке аппаратуры ЦОС важно оптимизировать под операции ЦОС и аппаратную архитектуру, и систему команд. В процессорах ЦОС для этого широко используется концепция параллелизма. В частности, применяются следующие средства:
гарвардская архитектура;
конвейерная обработка;
быстрые специализированные аппаратные умножители-накопители;
специальные команды, предназначенные для ЦОС;
копирование;
встроенная память/кэш;
расширенный параллелизм — векторная архитектура (SIMD), архитектура с командными словами сверхбольшой длины (VLIW) и статическая суперскалярная обработка. Для успешной разработки структуры ЦОС важно понимать и правильно использовать все названные ключевые архитектурные особенности.
Гарвардская архитектура
Принципиальная особенность гарвардской (двухшинной) архитектуры заключается в том, что память для хранения данных и память для хранения программы располагаются в разных местах, допуская полное совмещение во времени операций вызова команды из памяти и ее выполнения. Стандартные микропроцессоры, такие как Intel 6502, характеризуются одношинной структурой, через которую передаются и данные, и команды, как показано на рис. 12.1.
Предположим, что при использовании стандартного микропроцессора требуется считать значение opl, которое находится по адресу памяти ADR1, в аккумулятор, а затем
LDALDASTA ADR2STA ADR2STA ADR3STA ADR3ВыборкаВыборкаДекодиро-вание1Декодиро-вание1Выпол-нениеВыпол-нение11Выборка2Выборка2Декодиро-ваниеДекодиро-вание22Выпол-нениеВыпол-нениеВыборкаВыборкаДекодироДекодированиеваниеВыпол-Выпол-нениенениез ! з ! зз ! з ! з
LDA
LDA
STA ADR2
STA ADR2
STA ADR3
STA ADR3
Выборка
Выборка
Декодиро-вание
1
Декодиро-вание
1
Выпол-нение
Выпол-нение
1
1
Выборка
2
Выборка
2
Декодиро-вание
Декодиро-вание
2
2
Выпол-нение
Выпол-нение
Выборка
Выборка
Декодиро
Декодиро
вание
вание
Выпол-
Выпол-
нение
нение
з ! з ! з
з ! з ! з
Рис. 12.3. Иллюстрация выборки, декодирования и выполнения команды в негарвардской архитектурес единой областью памяти: а) вызов команды из памяти; б) временная диаграмма процесса
сохранить его по двум другим адресам, ADR2 и ADR3. В этом случае могут использоваться такие команды:
LDA ADR1STA ADR2STA ADR3LDA ADR1STA ADR2STA ADR3загрузить операнд opl в аккумулятор из ячейки ADR1
LDA ADR1
STA ADR2
STA ADR3
LDA ADR1
STA ADR2
STA ADR3
сохранить opl по адресу ADR2
сохранить opl по адресу ADR3
Обычно каждая из приведенных команд включает три различных этапа:
выборка команды из памяти;
декодирование команды;
выполнение команды.
В нашем случае выборка команды включает вызов следующей команды из памяти, а выполнение команды предполагает чтение данных из памяти либо запись данных в память. В стандартном процессоре без гарвардской архитектуры команды программы (т.е. программный код) и данные (операнды) содержатся в одной области памяти (см. рис. 12.3). Следовательно, вызов следующей команды при выполнении текущей невозможен, поскольку обе операции требуют обращения к памяти.
В гарвардской архитектуре (рис. 12.4), где команды программы и данные хранятся в различных областях памяти, вызов следующей команды может совпадать с выполнением текущей команды (см. рис. 12.5). Обычно память программы содержит программный
Рис. 12.4. Стандартная гарвардская архитектура с раздельными областями памяти для хранения данных и программы. Вызов команд данных и команд программы может выполняться одновременно, поскольку используются две независимые памятиРис. 12.4. Стандартная гарвардская архитектура с раздельными областями памяти для хранения данных и программы. Вызов команд данных и команд программы может выполняться одновременно, поскольку используются две независимые памятиLDAADRILDAADRIВыборкаВыборкаДекодированиеДекодированиеВыполнениеВыполнениеSTAADR2STAADR2ВыборкаВыборкаДекодированиеДекодированиеВыполнениеВыполнениеSTAADR3STAADR3ВыборкаВыборкаДекодированиеДекодированиеВыполнениеВыполнение
Рис. 12.4. Стандартная гарвардская архитектура с раздельными областями памяти для хранения данных и программы. Вызов команд данных и команд программы может выполняться одновременно, поскольку используются две независимые памяти
Рис. 12.4. Стандартная гарвардская архитектура с раздельными областями памяти для хранения данных и программы. Вызов команд данных и команд программы может выполняться одновременно, поскольку используются две независимые памяти
LDAADRI
LDAADRI
Выборка
Выборка
Декодирование
Декодирование
Выполнение
Выполнение
STAADR2
STAADR2
Выборка
Выборка
Декодирование
Декодирование
Выполнение
Выполнение
STAADR3
STAADR3
Выборка
Выборка
Декодирование
Декодирование
Выполнение
Выполнение
Рис. 12.5. Иллюстрация совмещения команд, возможного при использовании гарвардской архитектуры
код, тогда как память для хранения данных включает переменные, например, выборки входных данных.
Строгая гарвардская архитектура используется лишь в нескольких процессорах ЦОС (например, Motorola DSP56000), в большинстве устройств применяется модифицированная гарвардская архитектура (например, семейство процессоров TMS320). В модифицированной архитектуре также выделяются раздельные области памяти для хранения программы и данных, но в отличие от строгой гарвардской архитектуры здесь разрешена связь между двумя областями памяти.
। Конвейерная обработка
Конвейерная обработка — это метод, который позволяет совмещать несколько операций в процессе выполнения. При конвейерной обработке задача разбивается на несколь-
Выборка командыВыборка командыДекодирование командыДекодирование командыВыполнение командыВыполнение командыРис. 12.6. Иллюстрация концепции конвейерной обработкиРис. 12.6. Иллюстрация концепции конвейерной обработки
Выборка команды
Выборка команды
Декодирование команды
Декодирование команды
Выполнение команды
Выполнение команды
Рис. 12.6. Иллюстрация концепции конвейерной обработки
Рис. 12.6. Иллюстрация концепции конвейерной обработки
ко различных подзадач, которые затем совмещаются при выполнении. Данный метод широко используется в цифровой обработке сигналов для повышения скорости. Конвейер в цифровой обработке подобен обычной производственной линии на фабрике, например, предприятии по сборке телевизоров или автомобилей. Как и на производственной линии, задача разбивается на небольшие независимые подзадачи, именуемые каскадами конвейера. Последовательное соединение каскадов формирует конвейер.
Как было показано в предыдущем разделе, команду можно разбить на три этапа. Каждый этап команды рассматривается как каскад конвейера. Таким образом можно организовать наложение команд, при котором новая команда будет начинать выполняться в первый момент каждого такта (рис. 12.6, а).
На рис. 12.6, б приведена временная диаграмма трехкаскадного конвейера, на которой выделены этапы команд. Обычно каждый этап в конвейере занимает один машинный цикл. Следовательно, в течение данного цикла могут быть одновременно активны до трех различных команд, хотя все они будут на разных стадиях завершения. Основной момент при использовании конвейерной обработки команд заключается в том, что три части команды (т.е. выборка из памяти, декодирование и выполнение) независимы, так что выполнение нескольких команд может совмещаться. На рис. 12.6, б показано, что в ходе г-го цикла процессор может одновременного извлекать из памяти г-ю команду, декодировать (г - 1)-ю команду и в то же время выполнять (г - 2)-ю команду.
Трехкаскадный конвейер, рассмотренный выше, основан на технике, которая применяется в процессорах TMS320 (Texas Instruments). В том же процессоре TMS320 конвейерная обработка используется и по-другому, когда для получения конвейера применяется несколько регистров. Счетчик упреждающей выборки содержит адрес следующей команды, которая будет вызываться из памяти, регистр команд содержит команду, которая будет выполняться, и регистр команды в очереди хранит команды, которые будут выполняться при выполнении текущей команды. Адрес следующей выполняемой команды фиксирует программный счетчик.
Благодаря использованию внутреннего параллелизма потока команд конвейерная обработка позволяет существенно снизить в среднем время выполнения одной команды. Пропускная способность машины с конвейерной обработкой определяется числом команд, пропущенных через конвейер за единицу времени. Как и в производственной линии, все каскады конвейера должны быть синхронизированы. Время перехода команды на следующий этап (см. рис. 12.6, а) равно одному циклу и зависит от наиболее медленного каскада конвейера. В идеальном конвейере среднее время выполнения одной команды равно [6]
время на команду (без конвейерной обработки)^^
число каскадов конвейера
В идеальном случае увеличение скорости равно числу каскадов конвейера (частей, на которые разбита команда). На практике увеличение скорости будет меньше из-за служебных издержек на организацию конвейера, задержек в регистрах конвейера и т.п.
Пример 12.1
В машине без конвейерной обработки вызов, декодирование и выполнение команды занимает 35, 25 и 40 нс соответственно. Определите увеличение пропускной способности, если этапы команд обрабатываются конвейером. Предполагайте, что служебные издержки составляют 5 нс на каждом этапе, и что другие задержки несущественны.
Решение
В машине без конвейерной обработки среднее время выполнения команды просто равно сумме времен, необходимых на реализацию отдельных ее этапов: 35 + 25 + 40 = 100 нс. В то же время, если предположить, что процессор имеет фиксированный машинный цикл, и что этапы команды синхронизированы по системным часам, завершение каждой команды потребует трех машинных циклов: 40 х 3 = 120 нс. Эта величина соответствует пропускной способности 8,3 х 106 команд с-1.
В машине с конвейерной обработкой тактовая частота определяется скоростью самого медленного каскада плюс служебные издержки. В нашем случае машинный цикл равен 40+5=45 нс, что вводит ограничение на среднее время выполнения команды. Пропускная способность (при заполненном конвейере) равна 22,2 х 106команд с-1. Следовательно,
среднее время выполнения команды (без конвейера)
ускорение вычислений = =(12.2)
среднее время выполнения команды (с конвейером)
= —— = 2, 67 раза (предполагается, что без конвейера команда выполняется за три цикла)
В машине с конвейерной обработкой каждая команда по-прежнему требует трех тактов, но в каждом такте процессор занимается выполнением до трех различных команд. Конвейерная обработка увеличивает пропускную способность системы, но не время выполнения каждой команды. Как правило, из-за служебных издержек на организацию конвейера время выполнения каждой команды даже немного увеличивается.
Конвейерная обработка существенно влияет на память системы. Число обращений к памяти в машине с конвейерной обработкой увеличивается, особенно с увеличением числа этапов. При цифровой обработке сигналов конвейерная обработка сигналов облегчается при использовании гарвардской архитектуры, где данные и команды размещаются в различных областях памяти.
При последовательном соединении такого медленного устройства, как память для хранения данных, и арифметического элемента, последний часто простаивает довольно долго. В таких случаях можно применять конвейерную обработку, что позволит полнее использовать возможности арифметического устройства. Ниже данная концепция иллюстрируется на примере.
Пример 12.2
Большинство алгоритмов ЦОС характеризуются операциями умножения-накопления, например:
аоа:(п) + ayi^n — 1) + а^п — 2) + ... + аы-^п — (N — 1)).
На рис. 12.7 представлена конфигурация системы без конвейерной обработки, в которой приведенное выше уравнение реализовано с помощью арифметического элемента. Транспортные задержки для памяти, умножителя и накопителя равны соответственно 200, 100 и 100 нс.
Чему равна пропускная способность системы?
Измените конфигурацию системы для конвейерной обработки с двукратным увеличением скорости. Проиллюстрируйте операции в новой конфигурации с помощью временной диаграммы.
Решение
Коэффициенты ак и массивы данных хранятся в памяти, как показано на рис. 12.7, а. В режиме без конвейерной обработки коэффициенты и данные вызываются последовательно и подаются на умножитель. Произведения суммируются в накопителе (накапливающем сумматоре). Последовательные операции умножения-накопления будут завершаться каждые 400 нс (200+100+100), так что пропускная способность равна 2,5 х 106 операций с-1.
Рис. 12.7. Конфигурация умножителя-накопителя без конвейерной обработки. Произведения подаются в накопитель каждые 400 нс
Фигурирующие в вычислениях арифметические операции можно разбить на три различных этапа: считывание из памяти, умножение и накопление. Для увеличения скорости данные шаги разных операций можно совместить. Для двукратного увеличения скорости следует ввести конвейерные регистры между памятью и умножителем и между умножителем и накопителем, как показано на рис. 12.8. Временная диаграмма полученного блока с конвейерной обработкой представлена на рис. 12.9. Как очевидно из диаграммы, операция умножения-накопления завершается каждые 200 нс. Поскольку по условию задачи издержки на организацию конвейера можно не учитывать, ограничивающим фактором является стандартная задержка передачи через самый низкоскоростной элемент, в данном случае — память.
Алгоритмы ЦОС часто имеют итерационную, но сложную структуру, что делает их идеально подходящими для многоуровневой конвейерной обработки. Например, БПФ требует постоянного вычисления по схеме “бабочка”. Хотя каждое такое вычисление требует иных данных и коэффициентов, основная арифметическая операция в схеме “бабочка" остается без изменений. Следовательно, такие арифметические устройства, как процессоры БПФ, можно модернизировать, сыграв на этой особенности вычислений. Конвейерная обработка гарантирует постоянный поток команд на центральный процессор и в общем случае приводит к значительному увеличению пропускной способности системы. В то же время, иногда конвейерная обработка может порождать проблемы. Например, в некоторых процессорах ЦОС конвейерная обработка может привести к выполнению нежелательной команды, особенно при наличии команд ветвления, и разработчику следует помнить, что такая возможность существует.
Рис. 12.8. Конфигурация умножителя- накопителя с конвейерной обработкой. Регистры конвейера используются как временное хранилище для коэффициентов и пар выборок данных. Регистр произведения также служит временным хранилищем произведения
Аппаратный умножитель-накопитель
Основными численными операциями в цифровой обработке сигналов являются умножение и сложение. Умножение в программной форме печально знаменито своей трудоемкостью, а если используется арифметика с плавающей запятой, сложение оказывается даже еще более трудоемкой операцией. Чтобы максимально ускорить цифровую обработку сигналов в реальном времени, рекомендуется использовать специализированные аппаратные умножители-накопители с арифметикой с плавающей или фиксированной запятой. Такое аппаратное обеспечение теперь стандартно используется во всех цифровых процессорах сигналов. В процессоре с фиксированной запятой аппаратный умножитель за один такт (обычно 25 нс) принимает два 16-битовых дробных числа, представленных в форме дополнения до двух, и вычисляет их 32-битовое произведение. Среднее время выполнения команды умножения-накопления можно значительно уменьшить, если использовать специальные команды повторения.
Такт
Первый умножитель/ накопитель
Второй умножитель/ накопитель
Третий умножитель/ накопитель
Считать х(0)
Умножить аох(О)
Считать х(1)
Накопить 0 + аох(О)
Умножить
а,х(1)
Считать
х(2)
Накопить аоХ(О) + 3^(1)
Умножить а2х(2)
Накопить
аох(О) + а,х(1) + а2х(2)
Рис. 12.9. Временная диаграмма блока умножителя-накопителя с конвейерной обработкой. При заполненном конвейере операция в блоке завершается каждый такт (200 нс)
Типичная конфигурация аппаратного умножителя-накопителя ЦОС изображена на рис. 12.10. В такой конфигурации умножитель имеет пару входных регистров, которые содержат входы умножителя, и 32-битовый регистр произведения, который содержит результат умножения. Выход регистра Р (product — произведение) соединяется с накопителем двойной точности, в котором накапливаются произведения.
Принцип весьма сходен с тем, что используется в аппаратных умножителях-накопителях с плавающей запятой, за исключением того, что входы и произведения — это нормированные числа, представленные в форме с плавающей запятой. Умножители- накопители с плавающей запятой позволяют быстро вычислять результаты алгоритмов ЦОС с минимальным ошибками. Как обсуждалось в главах 7 и 8, такие алгоритмы ЦОС, как КИХ- и БИХ-фильтрация подвержены эффектам конечной разрядности (квантование коэффициентов и арифметические ошибки). Операции с плавающей запятой позволяют использовать большой динамический диапазон и снижают арифметические ошибки, хотя во многих приложениях достаточно динамического диапазона, который предлагает представление с фиксированной запятой.
Специальные команды
Процессоры ЦОС предлагают некоторые специальные команды, оптимизированные для цифровой обработки сигналов. Эти команды обладают двойным преимуществом. Во-первых, они позволяют создавать более компактный код, который занимает меньше места в памяти (получается практически такой же компактный код, как и программа, написанная на языке высокого уровня, например, С). Во-вторых, они увеличивают скорость выполнения алгоритмов ЦОС. Специальные команды, внедренные в микросхемы ЦОС, включают: 1) команды, поддерживающие базовые операции ЦОС; 2) команды,
Рис. 12.10. Типичная для ЦОС конфигурация умножителя-накопителя
которые снижают служебные издержки для организации циклов команд; 3) команды, ориентированные на конкретное приложение.
Многие ключевые алгоритмы ЦОС, такие как алгоритмы цифровой фильтрации и поиска корреляции, требуют смещения или задержки данных, чтобы освободить место для новых выборок данных. Процессоры ЦОС предлагают специальные команды, которые позволяют копировать выборку, находящуюся в ячейке памяти со следующим порядковым адресом, так же, как будто выборка извлечена из памяти или обрабатывается в данный момент, причем все это за один такт. Например, во втором поколении семейства TMS320 процессоров ЦОС пара команд LTD и МРУ позволяет одновременно загружать данные во временный регистр для умножителя, смещать данные (для реализации единичной задержки, которая обозначается z-1) и накапливать произведения. Специальные команды, которые поддерживают операции умножения-накопления со сдвигом данных, в современных процессорах ЦОС стали стандартными.
Специальные команды также позволяют ускорить часто повторяющиеся операции ЦОС. Например, во втором поколении процессоров семейства TMS320 есть команда, которая позволяет повторить следующую за ней команду заданное число раз. Поскольку команда повтора требует только одной операции извлечения из памяти, фрагмент кода, который обычно требует цикла в несколько тактов, эффективно превращается в однотактовую команду. Команды повтора особенно полезны в цифровой обработке сигналов для расчета внутренних циклов, например, в КИХ- и адаптивной фильтрации, и записи данных в порядке, определяемом обращенными битами, при вычислении БПФ.
Напомним, что КИХ-фильтры характеризуются следующим уравнением:
N-1
уМ = 52 ^о^хкп—до,
к=0
где N — длина фильтра.
В процессоре TMS320C50, например, уравнение КИХ-фильтрации можно эффективно реализовать с использованием пары команд:
RPT NM1
MACD HNM1,XNM1
Первая команда RPT NM1 загружает длину фильтра минус 1 (т.е. N — 1) в счетчик повторения команды и приводит к TV-кратному повторению следующей за ней команды умножения-накопления с перемещением данных (MACD). Команда MACD выполняет за один такт несколько команд:
умножает выборку данных х^п - к), которая находится в памяти для хранения данных, на коэффициент Цк), который находится в памяти для хранения программы;
добавляет предыдущее произведение к накапливающему сумматору;
реализует единичную задержку, которая обозначается как z-1, путем смещения выборки данных х^п — к) в ячейку со следующим по возрастанию адресом для обновления линии задержки с отводами.
В семействе процессоров ЦОС Motorola DSP56000, как и в семействе TMS320, для эффективной реализации КИХ-фильтра можно использовать команду МАС вместе с командой повторения (REP):
RPT#N-1
MACX0,Y0,AX:(R0)+,X0 Y:(R4)+,Y0
Здесь команда повторения используется вместе с командой МАС для выполнения длительных умножений и суммирования произведений. Снова отметим возможность осуществить умножение с помощью одной команды, что позволяет иметь несколько трактов обработки данных. Содержимое регистров ХО и Y0 перемножается, а результат добавляется к накопителю. В это же время следующая выборка данных и соответствующий коэффициент извлекаются для умножения из ячеек X и Y.
В наиболее современных процессорах ЦОС была развита концепция повторения команды и введена команда, которая позволяет повторять заданное число раз не только одну команду, но и блок кода. В семействе TMS320 (например, TMS320C50, TMS320C54 и TMS32OC3O) используется такой формат вычисления повторяющего блока команд (цикл с нулевыми служебными издержками):
RPTB loop
loop (последняя команда)
Команды повторения, предлагаемые некоторыми процессорами ЦОС, имеют функции, характерные для языков высокого уровня. В семействах Motorola DSP56000 и DSP563OO есть циклы DO с нулевыми служебными издержками, которые также могут быть вложенными. Приведенный ниже пример иллюстрирует вложенный цикл DO, в котором внешний цикл выполняется N раз, а внутренний — NM раз.
DO #N, LOOPl
DO #M, LOOP2
LOOP2 (здесь располагается последняя команда)
LOOP1 (здесь располагается последняя команда внешнего цикла)
Вложенные циклы полезны при эффективной реализации таких функций ЦОС, как алгоритмы БПФ и двумерная обработка сигналов.
Процессоры ЦОС, производимые Analog Devices (например, ADSP-2115 и SHARC), также позволяют организовать вложенные циклы. Процессор ADSP-2115 поддерживает до четырех уровней вложения циклов. При вложении используется следующий формат:
CNTR=N DO LOOP UNTIL СЕ
LOOP: (последняя команда цикла)
Цикл повторяется до обнуления счетчика. Цикл может содержать большой блок команд. Формат вложения циклов, по сути, идентичен формату, который используется в процессорах семейства DSP56000.
Адаптивная фильтрация — это еще одна ключевая характерная функция современной обработки сигналов, и для ее поддержки также были реализованы специальные команды. В адаптивной фильтрации важным шагом является обновление коэффициентов (см. главу 10) и вычисление нового набора коэффициентов на основе старого. Например, в адаптивных фильтрах, основанных на схеме наименьших квадратов, задача обновления коэффициентов характеризуется следующим уравнением:
Ик*1^ = М*) + 2цекх^к - г),(12.3, а)
где
ек = Ук- Ук,(12.3, б)
а уь выход адаптивного фильтра, выражается следующим образом:
Ук = 52 М^1^ - г)-(12-3, ^
г=0
Обычно часть задачи обновления коэффициентов, которая относится к КИХ-фильтра- ции (уравнение 12.3, в), реализуется с использованием специальных команд умножения- накопления, как описывалось ранее. Задачу обновления коэффициентов (уравнение (12.3, а)) можно выполнить с помощью команды повторения блока с нулевыми служебными издержками на организацию цикла. В процессоре TMS320C54 рассчитывать выход адаптивного фильтра и обновлять коэффициенты фильтра можно с помощью команды адаптивной фильтрации на базе схемы наименьших квадратов LMS, команды умножения ST//МРУ и команды повтора блока RPTBD. Указанные команды позволяют снизить время выполнения и размер кода адаптивных фильтров.
В быстром преобразовании Фурье (БПФ), другой ключевой операции ЦОС, всегда требуется скремблировать последовательность входных данных до БПФ и восстанавливать обычный порядок после БПФ, чтобы гарантировать, что точки данных идут в правильной последовательности. Все высококачественные универсальные процессоры ЦОС предлагают специальные команды для адресации с инвертированием битов, позволяющие выполнять требуемое скремблирование/воостановление одновременно с извлечением выборок данных из памяти или перемещением выборок.
Например, адресацию с инвертированием битов в процессорах TMS320 можно использовать для обращения битов при занесении в память А-точечной комплексной последовательности данных:
RPT N2
BLDD #XN, *BR0+
В данном случае используются комплексные входные данные, так что каждая выборка состоит из действительной и мнимой частей. Следовательно, каждая выборка требует двух ячеек памяти.
Современные процессоры ЦОС также предлагают ориентированные на приложения команды для таких областей, как кодирование речи (например, при поиске в кодовой книге), цифровое аудио (например, в системах объемного звучания) и телекоммуникации (например, в декодировании Витерби).
Средства дублирования
В цифровой обработке сигналов дублирование подразумевает использование нескольких стандартных блоков, например, более одного АЛУ, умножителя или ячейки памяти. Часто блоки располагаются так, чтобы их можно было использовать параллельно. В ЦОС нормой является наличие одного центрального процессора с дублированными одним или несколькими арифметическими устройствами.
В то же время, в области ЦОС уже используется концепция полнофункциональной параллельной обработки, когда, например, над одной задачей работают несколько независимых процессоров или несколько процессоров под общим управлением. На настоящий момент на рынке представлено несколько процессоров ЦОС с параллельной обработкой, например, TMS320C40 и ADSP-21060 SHARC.
Встроенная память/кэш
В большинстве случаев чипы ЦОС работают настолько быстро, что медленная недорогая память не может поддерживать такой темп. Обычно при этом процессор замедляется — вводятся состояния ожидания. В некоторых процессорах состояния ожидания имеют программное управление, хотя иногда для замедления процессора требуются внешние аппаратные блоки. Разумеется, наличие состояний ожидания означает, что процессор не может работать с полной скоростью.
Чтобы решить описанную проблему, во многие чипы ЦОС встраивают скоростные внутренние ОЗУ и/или ПЗУ данных. В таких процессорах низкоскоростная внешняя память может использоваться для хранения программного кода. При инициализации код может передаваться в быструю внутреннюю память для выполнения операций на полной скорости. Для реализации в реальном времени и создания окончательных прототипов полезны скоростные встроенные стираемые программируемые ПЗУ (СППЗУ). Некоторые чипы имеют также встроенный программный кэш, который может использоваться часто повторяемыми блоками программы. Если код выполняется в кэше, можно не вызывать лишний раз команды из памяти, ускоряя выполнение программы.
В настоящее время встроенная память используется повсеместно.
Расширенный параллелизм — SIMD, VLIW и статическая суперскалярная обработка
В настоящее время в архитектуре процессоров ЦОС наблюдается тенденция к повышению производительности за счет увеличения числа команд, выполняемых в каждом такте, и числа операций, выполняемых при вызове одной команды [1, 2, 4, 8, 10].
В новейших архитектурах процессоров ЦОС для повышения вычислительной эффективности интенсивно используются методы параллельной обработки. Наиболее часто применяются (иногда совместно) следующие три техники: архитектура SIMD (single instruction, multiple data — с одним потоком команд и многими потоками данных, также ОКМД — “одна команда, много данных”), архитектура VLIW (very-large-instruction- word — архитектура с командными словами сверхбольшой длины) и суперскалярная обработка [4, 5, 10].
Обработка с архитектурой SIMD используется для увеличения числа операций, выполняемых при вызове одной команды. Обычно в процессорах ЦОС с архитектурой SIMD процессор имеет несколько трактов передачи данных и несколько операционных блоков. Следовательно, одна команда может передаваться нескольким операционным блокам для обработки блоков данных одновременно, увеличивая число операций, выполняемых за один такт (см., например, рис. 12.11). В контексте рис. 12.11 процессор ЦОС имеет два операционных блока, каждый со своим АЛУ, умножителем-накопителем и схемой сдвига. Процессор может выполнять две различных арифметических операции (например, сложение и умножение-накопление) одновременно в течение одной команды. В число процессоров ЦОС с архитектурой SIMD входят DSP16000 (Lu-
Шина данных — АШина данных — АШина данных — ВШина данных — ВСхема сдвигаСхема сдвигаСхема сдвигаСхема сдвигаУмножитель/ накопительУмножитель/ накопительУмножитель/ накопительУмножитель/ накопительОперационное устройство АОперационное устройство АОперационное устройство ВОперационное устройство В
Шина данных — А
Шина данных — А
Шина данных — В
Шина данных — В
Схема сдвига
Схема сдвига
Схема сдвига
Схема сдвига
Умножитель/ накопитель
Умножитель/ накопитель
Умножитель/ накопитель
Умножитель/ накопитель
Операционное устройство А
Операционное устройство А
Операционное устройство В
Операционное устройство В
Рис. 12.11. Двойные арифметические устройства и двойные тракты передачи данных для обработкипо схеме SIMD
cent), TMS320C62x (Texas Instruments) и TigerSHARC (Analog Devices) ADSP-TS001 (Analog Devices).
Привлекательной особенностью архитектур SIMD, особенно архитектур, которые поддерживают данные нескольких размеров, является возможность эффективного увеличения числа доступных операционных блоков, а следовательно, числа операций, выполняемых за такт, путем разделения блоков. Например, в процессоре TigerSHARC два доступных умножения можно разделить для одновременного выполнения четырех операций умножения-накопления 16 х 16 бит вместо одной операции умножения- накопления 32 х 32 бит (рис. 12.12).
Очевидно, что в приложениях, где данные обрабатываются параллельно, архитектура SIMD может значительно повысить эффективность работы процессора. Впрочем, в приложениях с последовательными данными возможность увеличения вычислительной эффективности за счет обработки по схеме SIMD незначительна. По этой причине в следующем поколении процессоров ЦОС, нацеленных на многоканальные приложения (такие как системы мобильной связи третьего поколения), используются возможности обработки с одним потоком команд и многими потоками данных (SIMD) [4, 8, 10].
Обработка с командными словами сверхбольшой длины (Very Long Instruction Word — VLIW) позволяет существенно увеличить число команд, обрабатываемых за такт [10]. По сути, командное слово сверхбольшой длины — это конкатенация нескольких коротких команд, и для выполнения нескольких коротких команд за один такт требуется несколько операционных блоков, функционирующих параллельно.
Принципы архитектуры VLIW и схема потока данных улучшенных процессоров ЦОС с фиксированной запятой TMS320C62x иллюстрируются на рис. 12.13. Центральный процессор содержит два тракта передачи данных и восемь независимых операционных блоков, организованных в два набора — (LI, SI, Ml и D1) и (L2, S2, М2 и D2). В данном случае каждая короткая команда имеет длину 32 бит. Восемь таких команд вместе образуют пакет командного слова сверхбольшой длины, который может обрабатываться параллельно несколькими устройствами.
Обработка по схеме VLIW начинается с извлечения центральным процессором из встроенной программной памяти пакета команд (восемь 32-битовых команд). Восемь команд в вызванном пакете формируют исполняемый пакет, если они могут выпол-
Два 32-битовых входаДва 32-битовых входаДва 32-битовых входаДва 32-битовых входаРис. 12.12. Иллюстрация использования обработки по схеме SIMD и поддержки данных нескольких размеров для увеличения в процессоре TigerSHARC числа умножителей-накопителей с одного до четырехРис. 12.12. Иллюстрация использования обработки по схеме SIMD и поддержки данных нескольких размеров для увеличения в процессоре TigerSHARC числа умножителей-накопителей с одного до четырех
Два 32-битовых входа
Два 32-битовых входа
Два 32-битовых входа
Два 32-битовых входа
Рис. 12.12. Иллюстрация использования обработки по схеме SIMD и поддержки данных нескольких размеров для увеличения в процессоре TigerSHARC числа умножителей-накопителей с одного до четырех
Рис. 12.12. Иллюстрация использования обработки по схеме SIMD и поддержки данных нескольких размеров для увеличения в процессоре TigerSHARC числа умножителей-накопителей с одного до четырех
няться параллельно, а затем (по обстановке) передается восьми операционным блокам. Следующий 256-битовый пакет команд вызывается из программной памяти во время декодирования и выполнения исполняемого пакета. Если восемь команд в вызванном пакете нельзя выполнять параллельно (например, если все восемь команд — команды умножения/накопления, в течение одного такта можно выполнять только две из них, так как существует всего два умножителя), тогда формируется несколько исполняемых пакетов, которые передаются операционным блокам по одному за раз. Вызываемый пакет всегда имеет длину 256 бит (восемь команд), но размер исполняемого пакета может составлять от одной до восьми команд.
Архитектура VLIW предназначена для поддержки параллелизма на уровне команд. Если объединить данную архитектуру с высокой тактовой частотой (обычно 200 МГц), обычно получаются весьма эффективные процессоры ЦОС. Следует, правда, помнить, что в семействе TMS320C62x, например, параллельная обработка команд планируется во время компиляции. Впрочем, если команды нельзя выполнять параллельно, вычислительная эффективность подобных процессоров не используется.
Другой способ увеличить скорость выполнения команд процессора ЦОС (число команд, обработанных за такт) состоит в суперскалярной обработке, в которой используется параллелизм на уровне команд. Традиционно термином суперскалярный называют архитектуру компьютера, позволяющую выполнять несколько команд за один такт [5].
Пакет извлеченных командПакет извлеченных командИсполняемые пакетыИсполняемые пакетыДва тракта данныхДва тракта данныхРис. 12.13. Принципы архитектуры с командными словами сверхбольшой длины (Very Long Instruction Word — VLIW) и схема потока данных в процессорах TMS320C62X. Примечание-. LI, L2 — логические элементы; SI, S2 — схемы сдвнга/логические элементы; Ml, М2 — умножители; DI, D2 — адресные элементыРис. 12.13. Принципы архитектуры с командными словами сверхбольшой длины (Very Long Instruction Word — VLIW) и схема потока данных в процессорах TMS320C62X. Примечание-. LI, L2 — логические элементы; SI, S2 — схемы сдвнга/логические элементы; Ml, М2 — умножители; DI, D2 — адресные элементы
Пакет извлеченных команд
Пакет извлеченных команд
Исполняемые пакеты
Исполняемые пакеты
Два тракта данных
Два тракта данных
Рис. 12.13. Принципы архитектуры с командными словами сверхбольшой длины (Very Long Instruction Word — VLIW) и схема потока данных в процессорах TMS320C62X. Примечание-. LI, L2 — логические элементы; SI, S2 — схемы сдвнга/логические элементы; Ml, М2 — умножители; DI, D2 — адресные элементы
Рис. 12.13. Принципы архитектуры с командными словами сверхбольшой длины (Very Long Instruction Word — VLIW) и схема потока данных в процессорах TMS320C62X. Примечание-. LI, L2 — логические элементы; SI, S2 — схемы сдвнга/логические элементы; Ml, М2 — умножители; DI, D2 — адресные элементы
Подобные архитектуры широко используются в таких универсальных процессорах, как PowerPC и Pentium. Суперскалярные процессоры ЦОС содержат несколько операционных блоков, и несколько команд могут передаваться этим блокам для параллельной обработки. Кроме того, для дальнейшего увеличения производительности интенсивно эксплуатируется метод параллельной обработки.
Наиболее известным суперскалярным процессором ЦОС является TigerSHARC (Analog Devices) (см. [4] и рис. 12.14). Процессор TigerSHARC описан в спецификации как статический суперскалярный процессор ЦОС, поскольку параллелизм команд определяется до их выполнения. Фактически процессор TigerSHARC объединяет концепции SIMD, VLIW и суперскалярной обработки. Данный улучшенный процессор ЦОС имеет несколько трактов обработки данных и два набора независимых операционных блоков, в каждом из которых имеется умножитель, АЛУ, 64-битовая схема сдвига и блок регистров (см. рис. 12.14). TigerSHARC — это процессор с плавающей запятой, но он также поддерживает арифметику с различными типами данных (8-, 16- и 32-битовые числа).
Длина команды в процессоре TigerSHARC не фиксирована. В каждом такте из внутренней памяти извлекается до четырех 32-битовых команд, которые передаются двум параллельным наборам операционных блоков. Команды могут передаваться и параллельно двум блокам (архитектура SIMD — Single Instruction, Multiple Data — с одним
Рис. 12.14. Принципы суперскалярнон архитектуры и схема потока данных в процессоре ЦОС TigerSHARC
потоком команд и многими потоками данных) или каждому операционному блоку независимо. Каждый операционный блок (АЛУ, умножитель или схема сдвига) получает свой вход от блока регистров и возвращает результаты ему же. Блоки регистров соединены с тремя трактами передачи данных, так что они могут одновременно в одном такте считывать два входа и записывать выход в память. Данная архитектура загрузки- хранения подходит для стандартных операций ЦОС, у которых часто бывает два входных значения и одно выходное.
Как обсуждалось ранее, поскольку процессор может работать с несколькими размерами данных (8-, 16-, 32- и 64-битовые числа), возможна организация параллельной обработки на следующих уровнях. Следовательно, в каждом такте процессор TigerSHARC может выполнять до восьми операций сложения-вычитания и восемь операций умножения-накопления с 16-битовыми входами вместо двух операций умножения- накопления с 32-битовыми входами. Возможность обработки смешанных типов данных и разбиения больших командных слов на отдельные команды для операционных блоков позволяет процессору интенсивно использовать параллелизм на уровне команд.
Стоит также отметить, что в процессорах ЦОС, использующих такие улучшенные архитектуры, как VLIW и суперскалярная обработка, для эффективного использования параллельных операционных блоков необходима некоторая форма статического планирования команд перед выполнением программы. Кроме того, следует учитывать возможную зависимость по данным (например, результаты требуются до того, как они готовы) и зависимость по управлению (например, при использовании команд ветвления), что может представлять проблемы при параллельной обработке.
Универсальные процессоры ЦОС
Универсальные процессоры ЦОС — это, по сути, высокоскоростные микропроцессоры с гарвардской архитектурой и наборами команд, оптимизированных под операции ЦОС. В данных процессорах везде, где только возможно, выполнение трудоемких операций (таких как сдвиг/масштабирование, умножение и т.д.) облегчается за счет интенсивного использования гарвардской архитектуры, конвейерной обработки и специализированного аппаратного обеспечения.
Универсальные процессоры ЦОС значительно развились за последнее десятилетие в результате непрекращающихся поисков лучших способов выполнения операций ЦОС с точки зрения вычислительной эффективности, легкости использования, стоимости, расхода энергии, размера и требований приложения [1,7,8]. Ненасытный спрос на улучшенную вычислительную эффективность привел к существенному снижению времени выполнения команд, увеличению тактовой частоты и, что более важно, усложнению аппаратных и программных архитектур. В нестоящее время обычным является наличие специализированных встроенных арифметических аппаратных устройств (например, для поддержки быстрых операций умножения-накопления), большой встроенной памяти со множественным доступом и специальных команд для эффективного выполнения операций ЦОС во внутреннем ядре. Авторы также отмечают тенденцию к увеличению размера слова (например, для поддержания качества сигнала) и более интенсивному использованию параллелизма (для увеличения числа команд, выполняемых в одном такте, и числа операций, выполняемых при вызове одной команды). Таким образом, по мнению авторов, в новых универсальных процессорах ЦОС увеличивается число трактов обработки данных и используются арифметики, поддерживающие параллельные операции. Вводятся процессоры ЦОС, основанные на архитектурах SIMD (Single Instruction, Multiple Data — архитектура с одним потоком команд и многими потоками данных), VLIW (Very Long Instruction Word — архитектура с командными словами сверхбольшой длины) и суперскалярной архитектуре для поддержки эффективной параллельной обработки. В некоторых процессорах ЦОС, чтобы дополнительно повысить производительность, используют специализированные встроенные сопроцессоры для ускорения таких специфических алгоритмов ЦОС, как КИХ-фильтрация и декодирование Витерби. Вообще, на развитие процессоров ЦОС значительное влияние оказало взрывоподобное развитие технологий в сфере связи и цифровых аудиосистемах, а также рост числа приложений, в которых используются встроенные процессоры ЦОС.
Рис. 12.15. Упрощенная архитектура процессора ЦОС с фиксированной запятой первого поколения (Texas Instraments TMS32OC1O)
В следующих двух разделах кратко описаны архитектурные особенности нескольких поколений процессоров ЦОС с фиксированной и плавающей запятой.
Процессоры ЦОС с фиксированной запятой
Доступные на сегодня процессоры ЦОС с фиксированной запятой отличаются друг от друга деталями архитектуры и встроенными ресурсами. Резюме по ключевым особенностям четырех поколений процессоров ЦОС с фиксированной запятой, созданных основными производителями полупроводниковых технологий, представлено в табл. 12.1. Условная классификация процессоров ЦОС на четыре поколения основана на исторических причинах, архитектурных особенностях и вычислительной эффективности.
Таблица 12.1. Особенности универсальных процессоров ЦОС с фиксированной запятой производства Texas Instruments, Motorola и Analog Devices
Поколение
ЦОС с фиксированной запятой
Ширина тракта данных (биты)
Число трактов данных
Длина слова накопителя (биты)
Длина слова (биты)
Длина команды (биты)
Размер встроенного ОЗУ(слова)
Размер кэша команд (число команд)
Число умножителей
Коэффициент производительности*
1
TMS320C10 (Texas Instruments)
16
1
16
32
16
144
1
2
TMS32OC5O (Texas Instruments)
16
2
16
32
16
10 К
1
10 @ 50 МГц
DSP56002 (Motorola)
24
2
24
56
24
1 К
1
13 @ 50 МГц
DSP-2100 (Analog Devices) 1600 (Lucent Technologies)
16
16
2
2
16
16
40
36
24
16
32 К
16
15
1
1
13 @ 52 МГц
22 @ 120 МГц
3
TMS320C54 (Texas Instruments) DSP56300 (Motorola)
16
24
3
3
16
24
40
56
16
24
32 К
3 К
1
1
25 @ 100 МГц
25 @ 100 МГц
4
16000
(Lucent Technologies) TMS320C6200
32
2
2
32
40
40
32
256
127 К
17 К
31
64 К
2
2
36 @ 100 МГц
86 @ 133,6 МГц
(Texas Instruments)
* Коэффициент производительности рассчитывается на основе скорости расчета контрольных ядер/вычисления контрольных алгоритмов ЦОС (см. [1, 7]).
Рис. 12.16. Упрощенная архитектура процессора ЦОС с фиксированной запятой второго поколения (Texas Instruments TMS320C50)
Стандартная архитектура семейства процессоров ЦОС с фиксированной запятой первого поколения TMS320C1X, впервые использованная в 1982 году Texas Instruments, изображена на рис. 12.15. Ключевые особенности TMS320C1X — выделенные арифметические устройства, которые включают умножитель и накопитель. Процессоры семейства имеют модифицированную гарвардскую архитектуру с двумя отдельными областями памяти для данных и программы. Кроме того, процессоры имеют встроенную память и несколько специальных команд для выполнения основных алгоритмов ЦОС.
Процессоры ЦОС с фиксированной запятой второго поколения имеют значительно улучшенные архитектуры по сравнению с процессорами первого поколения. В большинстве случаев в число этих особенностей входили большая встроенная память и много специальных команд для поддержки эффективного выполнения алгоритмов ЦОС. В результате вычислительная производительность процессоров ЦОС второго поколения в 4-6 раз превышает производительность процессоров первого поколения.
Типичными представителями процессоров ЦОС второго поколения являются семейства TMS320C5x (Texas Instruments), DSP5600x (Motorola), ADSP21xx (Analog Devices) и DSP16xx (Lucent Technologies). Процессоры ЦОС первого и второго поколений производства Texas Instruments имеют много общего архитектурно, но процессоры второго поколения имеют больше особенностей и более высокую скорость (см. табл. 12.1). Внутренняя архитектура процессоров семейства TMS320C5x показана на рис. 12.16 (в упрощенном виде, чтобы акцентировать внимание на двойной области памяти, характерной для гарвардской архитектуры). В число специальных команд для выполнения
Рис. 12.17. Упрощенная архитектура процессора ЦОС с фиксированной запятой второго поколения (Motorola DSP56002)
операций ЦОС входит команда умножения и накопления со смещением данных, которую, например, можно объединить с командой повтора и реализовать КИХ-фильтр со значительной экономией времени. Возможность адресации с инвертированием битов полезна при БПФ. Кроме того, в отличие от процессоров первого поколения процессоры, семейства С5х имеют большую встроенную память.
Процессор DSP5600x (Motorola) является высокоточным цифровым процессором сигналов с фиксированной запятой. Его архитектура изображена на рис. 12.17. Он имеет две независимые области памяти для хранения данных (области X" и У) и одну область для хранения программ. Наличие двух отдельных областей для хранения данных позволяет естественно разбить данные для операций ЦОС и облегчает выполнение алгоритмов ЦОС. Например, в графических приложениях данные могут записываться как данные, относящиеся к координате X, и данные, относящиеся к координате У, при КИХ-фильтрации — как коэффициенты и данные, в БПФ — как действительная и мнимая части числа. В ходе выполнения программы за один такт можно одновременно извлечь пару выборок из внутренней памяти или занести пару выборок во внутреннюю память. Внешне две области данных уплотняются в единую шину данных, что несколько сни-
Запоминающие устройстваЗапоминающие устройстваПамятьпрограммыПамятьпрограммыПамять данныхПамять данныхТракт передачи из памяти программы (24 бит)Тракт передачи из памяти программы (24 бит)Арифметические устройстваАрифметические устройстваАЛУАЛУУмножитель- накопительУмножитель- накопительТракт передачи из памяти данных (16 бит)Тракт передачи из памяти данных (16 бит)Схема сдвигаСхема сдвига
Запоминающие устройства
Запоминающие устройства
Памятьпрограммы
Памятьпрограммы
Память данных
Память данных
Тракт передачи из памяти программы (24 бит)
Тракт передачи из памяти программы (24 бит)
Арифметические устройства
Арифметические устройства
АЛУ
АЛУ
Умножитель- накопитель
Умножитель- накопитель
Тракт передачи из памяти данных (16 бит)
Тракт передачи из памяти данных (16 бит)
Схема сдвига
Схема сдвига
Рис. 12.18. Упрощенная архитектура процессора ЦОС с фиксированной запятой второго поколения(Analog Devices ADSP2100)
жает преимущества двойной внутренней памяти. Кроме того, процессоры семейства имеют следующие арифметические устройства: два 56-битовых накопителя и одно- такговый аппаратный умножитель-накопитель с фиксированной запятой. Умножитель- накопитель принимает 24-битовые входы и выдает 56-битовое произведение. Размер 24 бит обеспечивает достаточную точность для представления большинства переменных ЦОС, тогда как 56-битовый накопитель (включая 8 защитных бит) предотвращает арифметическое переполнение. Указанных длин слов достаточно для для большинства приложений, включая цифровое аудио с его весьма строгими требованиями. Процессоры TMS5600x предлагают также специальные команды, позволяющие организовывать циклы с нулевыми служебными издержками, кроме того, существует возможность адресации с инвертированием битов, чтобы скремблировать входные данные перед быстрым преобразованием Фурье или восстанавливать правильный порядок данных после БПФ.
Другим семейством процессоров ЦОС с фиксированной запятой второго поколения является ADSP21xx (Analog Devices), имеющий две раздельные области памяти — в одной хранятся только данные, а в другой — данные и программный код. Упрощенная блок-схема внутренней архитектуры процессоров ADSP21xx изображена на рис. 12.18. Основными компонентами являются АЛУ, умножитель-накопитель и схемы сдвига. Умножитель-накопитель за один такт принимает вход 16 х 16 бит и выдает 32-битовое произведение. Накопитель процессора ADSP21xx имеет 8 защитных бит, которые могут использоваться для расчетов с повышенной точностью. При создании процессора ADSP21xx разработчики отошли от стандартной гарвардской архитектуры, поскольку процессор позволяет хранить в программной памяти данные и команды программы. Чтобы указать, когда из программной памяти извлекаются данные, а не
Запоминающие устройства
ПамятьпрограммыПамятьпрограммыПамять данныхПамять данных16-битовая шина16-битовая шинаРис. 12.19. Упрошенная архитектура процессора ЦОС с фиксированной запятой DSP16xx (Lucent Technologies)Рис. 12.19. Упрошенная архитектура процессора ЦОС с фиксированной запятой DSP16xx (Lucent Technologies)
Памятьпрограммы
Памятьпрограммы
Память данных
Память данных
16-битовая шина
16-битовая шина
Рис. 12.19. Упрошенная архитектура процессора ЦОС с фиксированной запятой DSP16xx (Lucent Technologies)
Рис. 12.19. Упрошенная архитектура процессора ЦОС с фиксированной запятой DSP16xx (Lucent Technologies)
команды программы, используется сигнальная шина. Хранение данных в программной памяти препятствует равномерному потоку данных через центральный процессор, поскольку извлечение данных и команд не может происходить одновременно. Чтобы избежать в этой связи значительного снижения производительности, в семействе ADSP21хх используется встроенный кэш программной памяти, который содержит 16 последних выполненных команд. Это устраняет потребность в извлечении из программной памяти повторяющихся команд (данная особенность весьма существенна при выполнении циклов программы). Процессоры ADSP21xx предлагают также специальные команды для организации циклов с нулевыми служебными издержками и поддерживают возможность адресации с инвертированием разрядов битов (требуется при БПФ). Процессоры семейства имеют большую встроенную память (для более интенсивной передачи данных предоставляется до 64 Кбайт внутреннего ОЗУ). Стоит также отметить, что данные процессоры поддерживают прямой доступ к памяти, и внешние устройства могут обмениваться данными и командами с ОЗУ процессора ЦОС без участия самого процессора.
Семейство процессоров ЦОС с фиксированной запятой DSP16xx (Lucent Technologies) (см. рис. 12.19) нацелено на рынок телекоммуникаций и модемов. С точки зрения вычислительной производительности это один из самых мощных процессоров второго
Шина данных программыШина данных программыНесколько шин данных
Шина данных программы
Шина данных программы
Шина данныхСШина данныхСРис. 12.20. Упрощенная архитектура процессора ЦОС с фиксированной запятой третьего поколения (Texas Instraments TMS320C54x)Рис. 12.20. Упрощенная архитектура процессора ЦОС с фиксированной запятой третьего поколения (Texas Instraments TMS320C54x)поколения. Процессор имеет гарвардскую архитектуру и подобно другим процессорам второго поколения имеет два тракта передачи данных, тракты X и У. В набор его арифметических устройств входят специализированный умножитель 16 х 16 бит, 36-битовое АЛУ/схема сдвига (включает четыре защитных бит) и двойные накопители. Предлагаются специальные команды, например для организации циклов команд и выполнения блоков команд с нулевыми служебными издержками.
Шина данныхС
Шина данныхС
Рис. 12.20. Упрощенная архитектура процессора ЦОС с фиксированной запятой третьего поколения (Texas Instraments TMS320C54x)
Рис. 12.20. Упрощенная архитектура процессора ЦОС с фиксированной запятой третьего поколения (Texas Instraments TMS320C54x)
Процессоры ЦОС с фиксированной запятой третьего поколения являются, по сути, улучшением процессоров предыдущего поколения. В общем случае повышение производительности достигается за счет более интенсивного и/или эффективного использования доступных встроенных ресурсов. По сравнению с процессорами ЦОС второго поколения, процессоры третьего поколения отличаются большим числом трактов передачи данных (обычно три по сравнению со старыми двумя), более широкими трактами передачи данных, большими встроенной памятью и кэшем команд и в некоторых случаях двойными умножителями-накопителями. В результате производительность процессоров ЦОС третьего поколения обычно в 2-3 раза превышает производительность процес-
Запоминающие устройства
Кэш программы(4 Кбайт слов)Кэш программы(4 Кбайт слов)ОЗУ данных X (2 Кбайт слов)ОЗУ данных X (2 Кбайт слов)ОЗУ данных Y (2 Кбайт слов)ОЗУ данных Y (2 Кбайт слов)
Кэш программы(4 Кбайт слов)
Кэш программы(4 Кбайт слов)
ОЗУ данных X (2 Кбайт слов)
ОЗУ данных X (2 Кбайт слов)
ОЗУ данных Y (2 Кбайт слов)
ОЗУ данных Y (2 Кбайт слов)
Шина данных программыШина данных программыШина данных XШина данных XРис. 12.21. Упрощенная архитектура процессора ЦОС с фиксированной запятой третьего поколения (Motorola DSP56300)Рис. 12.21. Упрощенная архитектура процессора ЦОС с фиксированной запятой третьего поколения (Motorola DSP56300)
Шина данных программы
Шина данных программы
Шина данных X
Шина данных X
Рис. 12.21. Упрощенная архитектура процессора ЦОС с фиксированной запятой третьего поколения (Motorola DSP56300)
Рис. 12.21. Упрощенная архитектура процессора ЦОС с фиксированной запятой третьего поколения (Motorola DSP56300)
соров второго поколения того же семейства (согласно [1, 7]). Упрощенные архитектуры процессоров ЦОС третьего поколения TMS320C54x, DSP563x и DSP 16000 изображены на рис. 12.20, 12.21 и 12.22 соответственно. Большинство процессоров ЦОС с фиксированной запятой третьего поколения нацелены на применение в цифровой связи и цифровом аудио (вообще, развитие этих приложений оказало огромное влияние на развитие процессоров ЦОС). Таким образом, авторы обнаружили в некоторых процессорах особенности, облегчающие использование процессоров в указанных сферах. Процессор TMS320C54x, например, включает специальные команды для адаптивной фильтрации (которая часто используется для эхоподавления и адаптивного выравнивания в сфере телекоммуникаций) и для поддержки декодирования Витерби. В процессорах третьего поколения производители полупроводниковых технологий также серьезно отнеслись к вопросу потребляемой мощности (вследствие его важности в таких портативных устройствах, как мобильные телефоны). Большинство процессоров ЦОС третьего поколения имеют низкий расход энергии и средство управления режимом электропитания.
Запоминающие устройства
ПамятьПамять
программыданных
Рис. 12.22. Упрощенная архитектура процессора ЦОС с фиксированной запятой третьего поколения (Lucent Technologies DSP16000)
Процессоры ЦОС с фиксированной запятой четвертого поколения с их новыми архитектурами нацелены в первую очередь на большие и/или развивающиеся многоканальные приложения, такие как построение медицинских изображений, цифровые абонентские линии, модемы удаленного доступа, беспроводные базовые станции и мобильные системы третьего поколения. Новой архитектурой с фиксированной запятой, которая привлекла значительную долю внимания в обществе ЦОС, стала архитектура с командными словами сверхбольшой длины (VLIW) (подробности представлены в разделе 12.2). В архитектуре новых процессоров интенсивно используется параллелизм, при этом сохранены некоторые преимущества предыдущих процессоров ЦОС. По сравнению с предыдущими поколениями, четвертое поколение процессоров с фиксированной запятой отличается более длинными командными словами, более широкими трактами передачи данных, большим числом регистров, большим кэшем команд и наличием нескольких арифметических устройств, что позволяет выполнять значительно больше команд и операций за такт.
Семейство процессоров ЦОС с фиксированной запятой TMS320C62x (Texas Instruments) основано на архитектуре VLIW (рис. 12.23). Процессор ядра имеет два независимых арифметических тракта, в каждом из которых четыре операционных блока — логическое устройство (Li), схема сдвига/логическое устройство (Si), умножитель (Mi) и устройство адреса данных (Di). Обычно процессор ядра извлекает из памяти восемь
Встроенные запоминающие устройства
ОЗУОЗУ
программыданных
—1ЛЛ
_vUL
256-битовая шина данных программы
IVII
32-битовая шина данных А
Рис. 12.23. Упрощенная архитектура процессора ЦОС с фиксированной запятой четвертого поколения (Texas Instruments TMS320C62x). Обратите внимание иа два независимых арифметических тракта передачи данных, каждый из которых имеет четыре операционных блока — LI, SI, Ml и D1; L2, S2, М2 и D2
32-битовых команд за раз, так что длина получающегося слова равна 256 бит (отсюда и название — с командными словами сверхбольшой длины). При наличии в сумме восьми операционных блоков, по четыре в каждом тракте, процессор TMS320C62x может выполнять до восьми команд параллельно в одном такте. Процессор имеет значительную программную память и большой кэш данных (обычно 4 Кбайт программного кэша/кэша данных уровня 1 и 64 Кбайт программного кэша/кэша данных уровня 2). Каждый тракт данных имеет собственный блок регистров (шестнадцать 32-битовых регистров), но может также обращаться к регистрам другого тракта данных. Преимущества архитектуры VLIW включают простоту и значительную вычислительную эффективность. Недостатки — повышенное использование программной памяти (организация кодов для согласования внутреннего параллелизма процессора может привести к неэффективному использованию памяти). Более того, оптимальной производительности процессоров можно достичь, только когда все операционные блоки заняты, что не всегда возможно вследствие зависимости по данным, задержек команд и ограничений при использовании операционных блоков. Впрочем, существуют сложные программные средства для сжатия кода, планирования команд, распределения ресурсов и использования богатого потенциала процессора вообще.
. Процессоры ЦОС с плавающей запятой
Возможность разработки процессоров для выполнения операций ЦОС с высокой скоростью, высокой точностью и использованием арифметики с плавающей запятой стала долгожданным открытием. Такие операции минимизируют влияние конечной разрядности, которое проявляется как переполнение, ошибки округления и ошибки квантования коэффициентов. Кроме того, такой подход облегчает разработку алгоритмов, поскольку разработчик может создать алгоритм на большом компьютере на языке высокого уровня, а затем перенести его на устройство ЦОС проще, чем он бы это сделал при арифметике с фиксированной запятой.
Ключевые особенности процессоров ЦОС с плавающей запятой аналогичны свойствам процессоров с фиксированной запятой — существуют специальные команды для операций ЦОС и множественные тракты передачи данных для выполнения нескольких операций. При этом, как и процессоры ЦОС с фиксированной запятой, доступные процессоры ЦОС с плавающей запятой существенно отличаются архитектурно. Некоторые ключевые особенности трех поколений процессоров ЦОС с плавающей запятой производства Texas Instruments и Analog Devices сведены в табл. 12.2.
Пожалуй, самым известным семейством универсальных процессоров ЦОС с плавающей запятой первого поколения является TMS320C3X, которое представлено 32битовыми одночиповыми цифровыми процессорами сигналов и поддерживает как арифметические операции с целыми числами, так и действия с плавающей запятой. Процессоры имеют большую память и множество встроенных периферийных средств, упрощающих разработку систем. В число этих средств входят программный кэш (позволяет ускорить выполнение часто вызываемых кодов) и встроенная память двойного доступа. Размеры областей памяти удовлетворяют запросам приложений с большими требованиями к памяти, как, например, графические приложения и задачи из сферы обработки изображений. В процессоре TMS320C30 умножение с плавающей запятой требует 32битовых операндов и выдает 40-битовое нормированное произведение, представленное в форме с плавающей запятой. Целочисленное умножение требует 24-битовых входов и дает 32-битовый результат. Всего поддерживается три формата с плавающей запятой. Первый — короткий 16-битовый формат с 4-битовой экспонентой, одним бит знака и 11 бит мантиссы. Данный формат используется в тех операциях с плавающей запятой, где требуется немедленный результат. Второй формат — формат обычной точности с 8битовой экспонентой, одним бит знака и 23-битовой мантиссой (всего 32 бит). Третий — это 40-битовый формат повышенной точности, который имеет 8-битовую экспоненту, один бит знака и 31-битовую мантиссу. Отметим, что описанное представление в форме с плавающей запятой отличается от стандарта IEEE, но процессор имеет средства конвертации между двумя форматами. Процессор TMS320C3x объединяет особенности гарвардской архитектуры (отдельные шины для команд программы, данных и ввода- вывода) и фон-неймановской архитектуры (унифицированное адресное пространство).
Во втором поколении универсальных процессоров ЦОС с плавающей запятой акцент был сделан на многопроцессорной обработке и поддержке нескольких процессоров. Ключевыми вопросами здесь являются передача данных между процессорами, передача данных с прямым доступом к памяти и совместное использование глобальной памяти.
Таблица 12.2. Особенности универсальных процессоров ЦОС с фиксированной запятой производства Texas Instruments, Motorola и Analog Devices
Поколение
ЦОС с фиксированной запятой
Ширина тракта данных (биты)
Число трактов данных
Длина слова накопителя (биты)
Длина слова (биты)
Длина команды (биты)
Размер встроенного ОЗУ(слова)
Размер кэша команд (число команд)
Число умножителей
Коэффициент производительности*
1
TMS320C10 (Texas Instruments)
16
1
16
32
16
144
1
2
TMS320C50 (Texas Instruments)
16
2
16
32
16
10 К
1
10 @ 50 МГц
DSP56002 (Motorola)
24
2
24
56
24
1 К
1
13 @ 50 МГц
DSP-2100 (Analog Devices) 1600 (Lucent Technologies)
16
16
2
2
16
16
40
36
24
16
32 К
16
15
1
1
13 @ 52 МГц
22 @ 120 МГц
3
TMS320C54 (Texas Instruments) DSP56300 (Motorola)
16
24
3
3
16
24
40
56
16
24
32 К
3 К
1
1
25 @ 100 МГц
25 @ 100 МГц
4
16000
(Lucent Technologies) TMS320C6200 (Texas Instruments)
32
2
2
32
40
40
32
256
127 К
17 К
31
64 К
2
2
36 @ 100 МГц
86 @133,6 МГц
* Коэффициент производительности рассчитывается на основе скорости расчета контрольных ядер/вычисления контрольных алгоритмов ЦОС (см. [1, 7]).
Наиболее известными семействами процессоров ЦОС с плавающей запятой второго поколения являются TMS320C4x (Texas Instruments) и ADSP-2106x SHARC (Analog Devices). Семейство C4x имеет некоторые архитектурные особенности семейства СЗх, но разработано для многопроцессорной обработки. Семейство С40х имеет хорошие возможности ввода-вывода — шесть последовательных портов для передачи данных между процессорами и шесть 32-битовых каналов прямого доступа к памяти для быстрой передачи данных. Данная архитектура позволяет выполнять несколько операций параллельно в одном такте. Семейство С4х поддерживает арифметику с плавающей запятой и фиксированной запятой. Родной формат данных с плавающей запятой в процессоре С40 отличается от стандарта IEEE 754/854, хотя преобразовать формат довольно легко.
Процессоры ЦОС ADSP-2106х SHARC (Analog Devices) также являются 32-битовыми устройствами с плавающей запятой. Они имеют большую внутреннюю память и впечатляющие возможности ввода-вывода —10 каналов прямого доступа к памяти, позволяющих обращаться к внутренней памяти без вмешательства процессора, и шесть портов связи для высокоскоростной передачи данных между процессорами. Архитектура допускает совместное использование глобальной памяти, так что до шести процессоров SHARC могут обращаться к внутренним ОЗУ друг друга на скорости передачи данных, достигающей максимальной. Семейство ADSP-2106x поддерживает арифметику с фиксированной запятой и плавающей запятой. Формат обычной точности согласуется со стандартом IEEE 754/854 (24-битовая мантисса и 8-битовая экспонента). Архитектура также позволяет выполнять за такт несколько операций.
В процессорах ЦОС третьего поколения еще больше была развита концепция параллелизма, увеличено число команд и число операций за такт, чтобы процессоры удовлетворяли требованиям многоканальных и вычислительно интенсивных приложений. Это стало возможным за счет применения новых архитектур, в частности, VLIW (Very Long Instruction Word — архитектура с командными словами сверхбольшой длины) и суперскалярной архитектуры. Двумя лидирующими семействами процессоров ЦОС с плавающей запятой третьего поколения являются TMS320C67x (Texas Instruments) и ADSP-TS001 (Analog Devices). Семейство TMS320C67x имеет ту же архитектуру VLIW, что и улучшенные процессоры ЦОС с фиксированной запятой четвертого поколения TMS320C62x (детальная информация представлена в разделе 12.3.1 и на рис. 12.23).
Семейство TigerSHARC поддерживает смешанные арифметические типы (арифметику с плавающей и фиксированной запятой) и типы данных (8-, 16- и 32-битовые числа). Данная гибкость позволяет повышать эффективность за счет выбора типа арифметики и формата данных, наиболее подходящих для данного приложения. Как и семейство TMS320C67x, процессоры TigerSHARC нацелены на масштабные многоканальные приложения, такие как мобильные системы третьего поколения (беспроводные системы третьего поколения), цифровые абонентские линии (xDSL) и модемы удаленного множественного доступа для служб Internet. Процессор TigerSHARC с его статической суперскалярной архитектурой (см. рис. 12.14 и раздел 12.3.1) объединяет хорошие особенности архитектуры VLIW, обычной архитектуры ЦОС и компьютеров RISC (reduced instruction set computer — компьютер с сокращенным набором команд). Процессор имеет два операционных блока, в каждом из которых есть умножитель, АЛУ и 64-битовая схема сдвига. Процессор может выполнять до восьми операций
умножения-накопления за такт с 16-битовыми входами и 40-битовым накоплением, две 40-битовые операции умножения-накопления с 16-битовыми комплексными данными или две 80-битовые операции умножения-накопления с 32-битовыми данными. При 8битовых данных TigerSHARC может выполнять до 16 операций в такте. TigerSHARC имеет значительную пропускную способность памяти, а сама память организована в три 128-битовых блока. При работе с данными могут использоваться разные форматы — обычные 32-битовые слова, длинные 64-битовые слова и учетверенные 128-битовые слова. В одном такте может обрабатываться до четырех 32-битовых команд. Чтобы избежать использования больших служебных издержек (недостаток структуры VLIW), длинные командные слова могут разбиваться на отдельные короткие команды, которые затем передаются независимо каждому блоку.
Выбор цифрового процессора сигналов
В последние годы вопрос выбора процессора ЦОС для конкретного приложения становится важным, поскольку число доступных процессоров продолжает расти [1, 8]. В число специфических факторов, которые следует рассмотреть при выборе процессора ЦОС для данного приложения, входят архитектурные особенности, скорость выполнения, тип арифметики и длина слова.
Архитектурные особенности. Большинство доступных сейчас процессоров ЦОС имеют хорошие архитектуры, ресурсов которых, впрочем, может не хватать для определенного приложения. Ключевыми характеристиками процессоров являются размер встроенной памяти, наличие специальных команд и возможности ввода-вывода. Наличие встроенной памяти — необходимое требование в большинстве приложений ЦОС реального времени, поскольку это означает быстрый доступ к данным и быстрое выполнение программы. Для приложений со строгими требованиями к памяти (цифровое аудио, система Dolby, факс-модем, кодирование-декодирование MPEG) размер внутренней памяти ОЗУ может стать решающим фактором при выборе процессора. Если внутренней памяти недостаточно, ее можно дополнить высокоскоростной внешней памятью, хотя это может привести к увеличению стоимости системы. Для приложений, требующих быстрых и эффективных вычислений или обмена потоками данных с внешним миром, весьма важны такие средства ввода-вывода, как интерфейсы к АЦП и ЦАП, возможность прямого доступа к памяти и поддержка многопроцессорной обработки. В зависимости от приложения важен богатый набор специальных команд поддержки операций ЦОС, например, возможность организации циклов с нулевыми служебными издержками, специализированные команды ЦОС и круговая адресация.
Скорость выполнения. Поскольку большинство задач ЦОС требует срочного решения, важной мерой производительности является скорость процессоров ЦОС. Традиционно двумя основными единицами измерения этой величины являются тактовая частота процессора в мегагерцах и число выполняемых команд в миллионах команд за секунду (Million Instructions Per Second — MIPS) или, если используются процессоры ЦОС с плавающей запятой, в миллионах операций с плавающей запятой
в секунду (million floating-point operations per second — MFLOPS). Впрочем, подобные меры могут в некоторых случаях не подходить из-за значительных отличий в принципах работы различных процессоров ЦОС, большинство из которых может выполнять несколько операций в одной машинной команде. Например, в семействе процессоров С62х возможно выполнение восьми команд за такт. Для разных процессоров также отличается число операций, выполняемых в каждом такте. Следовательно, сравнивать скорости работы процессоров на основе названных выше мер бессмысленно. Альтернативная мера основана на скорости выполнения контрольных алгоритмов [1,7] — например, центральных алгоритмов ЦОС, таких как БПФ, КИХ- и БИХ-фильтрация. В табл. 12.1 и 12.2 представлены коэффициенты производительности, рассчитанные на основе подобных контрольных алгоритмов; изучая эти данные, можно получить представление об относительной производительности различных популярных процессоров ЦОС.
Тип арифметики. Двумя наиболее распространенными типами арифметики, используемыми в современных процессорах ЦОС, являются арифметики с фиксированной и плавающей запятой. Арифметика с плавающей запятой — это естественный выбор в приложениях с широкими и переменными требованиями к динамическому диапазону (динамический диапазон можно определить как разность между наибольшим и наименьшим уровнем сигнала, который можно представить, или как разность между наибольшим сигналом и минимальным уровнем шума, измеренными в децибелах). Процессоры с фиксированной запятой предпочтительны с точки зрения низкой стоимости, они подходят для массового производства (например, сотовые телефоны и компьютерные дисководы). При использовании арифметики с фиксированной запятой возникают вопросы, связанные с ограничениями динамического диапазона, которые обязательно должен рассмотреть разработчик (см. главу 13). Вообще процессоры с плавающей запятой дороже процессоров с фиксированной запятой, хотя в последние годы разница в цене существенно уменьшилась. Отметим также, что большинство существующих процессоров ЦОС с плавающей запятой также поддерживают арифметику с фиксированной запятой.
Длина слова. Еще одним важным параметром в ЦОС является длина слова данных процессора, поскольку она может существенно влиять на качество сигнала. Этот параметр определяет, насколько точно можно представить параметры и результаты операций ЦОС (см. главу 13). Вообще, чем длиннее слово данных, тем меньше ошибки при цифровой обработке сигнала. В аудиообработке с фиксированной запятой, например, для поддержания CD-качества длина слова процессора должна быть не меньше 24 бит, что позволит поддержать наименьший уровень сигнала достаточно выше минимального уровня шума, генерируемого обработкой сигнала. В процессорах ЦОС с фиксированной запятой используются разнообразные длины слов процессоров, в зависимости от приложения (см. табл. 12.1). В процессорах ЦОС с фиксированной запятой, нацеленных на рынок телекоммуникаций, обычно используются слова 16-битовой длины (например, TMS320C54x), тогда как в процессорах, нацеленных на аудиоприложения высокого качества, используются 24 бит (например, DSP56300). В последние годы авторы отмечают тенденцию к использованию большего числа битов для АЦП и ЦАП (например, 24-битовый аудиокодек
Cirrus, CS4228), поскольку стоимость подобных устройств постоянно снижается. Таким образом, авторы предвидят повышение спроса на процессоры для аудиообработки с большими длинами слов. В накопителях процессоров с фиксированной запятой также могут требоваться защитные биты (обычно 1-8 бит) для предотвращения арифметического переполнения в процессе операций умножения и накопления повышенной точности. Дополнительные биты эффективно расширяют динамический диапазон, доступный для процессоров ЦОС. В большинстве процессоров ЦОС арифметика обычной точности подразумевает использование 32-битовых данных (24-битовая мантисса и 8-битовая экспонента). Данный размер также совместим с форматом IEEE представления в форме с плавающей запятой (IEEE 754). Большинство процессоров ЦОС с плавающей запятой также позволяют выполнять операции с фиксированной запятой и часто поддерживают арифметику с фиксированной запятой с переменным размером данных.
На практике при выборе процессора в расчет могут приниматься и такие факторы, как опыт работы (знакомство) с конкретным семейством процессоров ЦОС, легкость использования, срок присутствия на рынке и стоимость.
Реализация алгоритмов ЦОС на универсальных процессорах ЦОС
Цифровав КИХ-фильтрация
Нерекурсивные ^точечные КИХ-фильтры со структурой, представленной на рис. 12.24, а, характеризуются следующим разностным уравнением (см. главу 7):
N-1
У^ = 52 Цк)х(п — к).(12.4)
fc=0
В программе 12.1 представлен фрагмент реализации на языке С общего КИХ-фильтра. При фильтрации в реальном времени предполагается, что данные и коэффициенты хранятся в памяти, как показано на рис. 12.24, б. Чтобы понять, как работает КИХ-фильтр, рассмотрим простой случай N — 3, который описывается следующим разностным уравнением:
2/(n) = h^x^n) + /i(l)x(n — 1) + /г(2):г(п — 2),(12.5)
где x(n) представляет последнюю входную выборку, х(п — 1) — предпоследнюю входную выборку, а х(п — 2) — предпредпоследнюю входную выборку.
КоэффициентыА(0) W)КоэффициентыА(0) W)h(N-DMN- 1)h(N-DMN- 1)
Коэффициенты
А(0) W)
Коэффициенты
А(0) W)
h(N-D
MN- 1)
h(N-D
MN- 1)
Рис. 12.24. Реализация КИХ-фильтра: а) структура фильтра; 6) карты памятикоэффициентов и данных; в) альтернативная карта памяти
Программа 12.1. Псевдокод С для выполнения КИХ-фильтрации
nml=N-l;
уп=0 ;
for(k=0; k,nml;++k)(/* данные смещаются, чтобы освободить место
для новой выборки */
x[nml-k]=x[nml-k-l];
х[0]=хп;
}
for(k=0; k,N;++k){
yn=yn+h[k]*x[k];/* данные фильтруются и вычисляется
выходная выборка*/
}
return(yn);/* выходная выборка фильтра */
Предположим, что данные на трехкоэффициентный КИХ-фильтр поступают с АЦП. Первое, что нужно сделать — выделить два набора соседствующих ячеек памяти (в ОЗУ), один для хранения входных данных (x(ji),x(n — l),x(n — 2)), а другой для хранения коэффициентов фильтра, (/г(0), /г(1), /i(2)), как показано ниже:
ОЗУ данных Память коэффициентов
"ОЦО)
О/г(1)
О/г(2)
Во время инициализации значения ячеек ОЗУ, в которых планируется хранить выборки данных, обнуляются, поскольку фильтр всегда начинает работу, не имея данных. Затем выполняются следующие операции.
1.
Первый момент выборки. Считывается выборка данных с АЦП, ОЗУ данных смещается на одну позицию (чтобы освободить место для новых данных), сохраняется новая входная выборка, вычисляется выходная выборка согласно формуле (12.5), а затем выходная выборка посылается ЦАП:
ОЗУ данных Память коэффициентов
-z(l) 0 О
h(0) h(l) h(2)
2/(1) = /i(0)x(l) + /i(l)x(0) + /г(2)а;(-1)
2.
Второй момент выборки. Повторяются описанные выше действия, и новая выходная выборка посылается ЦАП:
ОЗУ данных а:(2) z(l)
О
Память коэффициентов
/i(0)з/(2) = /i(0)z(2) + /г(1)л;(1) + /i(2)a:(0)
/1(1)
/1(2)
3.
Третий момент выборки. Повторяются описанные выше действия, и новая выходная выборка посылается ЦАП:
ОЗУ данных
-*(3)
1(2)
*(1)
Память коэффициентов
/i(0)3/(3) = /i(0)z(3) + /i(l)z(2) + /i(2);r(l)
/1(1)
/1(2)
4.
Четвертый момент выборки. Повторяются описанные выше действия, и новая выходная выборка посылается ЦАП:
ОЗУ данных — z(4) ^(3) Ж(2)
Память коэффициентов
/i(0)1/(4) = /i(0)z(4) + /i(l)x(3) + /i(2)a:(2)
/i(l)
/1(2)
5.
Обратите внимание на то, что старейшая входная выборка удалена из памяти.
Момент выборки п. Повторяются описанные выше действия, и новая выходная выборка посылается ЦАП:
ОЗУ данных
х(п - 1) z(n - 2)
Память коэффициентов
/i(0) у(п) = /i(0)x(n) + ЦГ)х(п - 1) + /г(2);г(п - 1)
/1(1)
/1(2)
Реализация трехточечного КИХ-фильтра на процессоре ЦОС с фиксированной точкой первого поколения (TMS320C10) представлена в программе 12.2. В данном случае расчет произведений начинается с верхнего адреса памяти данных и коэффициентов, что позволяет использовать команду TMS320C10 для передвижения данных. Для реализаций КИХ-фильтров на базе TMS320C10 основными являются пара команд LTD и МРУ. Например, приведенная ниже пара команд выполняет сдвиг, подразумеваемый в уравнении (12.4) или обозначенный на рис. 12.24, а через z-1, добавляет предыдущее произведение в накопитель и рассчитывает следующее произведение Цк^х^п — к).
Программа 12.2. Линейный код трехточечного КИХ-фильтра
NXTPTIN
XN, ADC
ZAC
LT
XNM2
MPY
H2
/h(2)x(n-2)
LTD
XNM1
/0+h(2)x(n-2) / x(n-2)=x(n-l)
MPY
Hl
/h(l)x(n-l)/ x(n-l)=x(n-2)
LTD
XN
/h(2)x(n-2)+h(l)x(n-l) / x(n-l)=x(n)
MPY
HO
/h(0)x(n)
APAC
/h(2)x(n-2)+h(l)x(n-l)+h(0)x(n)
SACH
YN,1
/сохранить выходную выборку
OUT
YN,DAC
/передать выходную выборку ЦАП
В
NXTPT
LTDXNM1
MPYHl
В частности, команда LTD XNM1 загружает в регистр Т (временный) выборку данных Дп — 1) (хранилась в ОЗУ данных по адресу XNM1), добавляет предыдущее произведение НСДДп — 2), которое все еще находится в регистре Р (произведение), к накопителю и смещает х(п — 1) в ячейку со следующим адресом, т.е. ж(п — 2) = х^п — 1). Вторая команда MPY множит содержимое регистра Т на h(l) и оставляет результат в регистре произведения. Схема сдвигов гарантирует, что, когда потребуется вычислять следующую выборку, входные выборки данных будут находиться в правильных ячейках.
Линейный код КИХ-фильтра, подобный программе 12.2, — это быстрая реализация, которая, впрочем, не является универсальной и для больших N-точечных фильтров не позволяет получить компактную программу. В частности, для реализации универсального КИХ-фильтра требуется организовать внутренний цикл, реализующий уравнение КИХ-фильтра и вычисляющий выход фильтра, как задано в уравнении (12.4).
Функциональная схема TV-точечной КИХ-фильтрации, на которой показан внутренний цикл, представлена на рис. 12.25. В процессоре ЦОС первого поколения внутренний цикл КИХ-фильтра можно реализовать с помощью следующих команд:
LOOP LTD *,AR0/сдвиг/обновление линии задержки и
/накопление произведений
MPY *-,ARl /умножение следующего коэффициента и элемента данных BANZ LOOP
В рассматриваемом случае вспомогательные регистры AR0 и AR1 применяются для указания на элемент данных и коэффициент, которые нужно перемножить. Вспомогательный регистр AR1 содержит длину фильтра и используется как счетчик цикла. Для управления циклом используется команда ветвления BANZ и проверка содержимого регистра AR1. Отметим, что реализация КИХ-фильтра на процессоре ЦОС первого поколения неэффективна из-за служебных издержек, связанных с управлением циклом.
ИнициализацияИнициализацияВход Считать и сохранить новую выборку
Инициализация
Инициализация
Внутренний цикл КИХ-филыпрации Умножить, накопить и сдвинуть данные
Выход Сдвинуть и проквантовать выход
Рис. 12.25. Функциональная схема КИХ-фильтра.Внутренний цикл КИХ-фильтра вычисляет сверточ-ную сумму, представленную в уравнении (12.25)
Процессоры ЦОС с фиксированной запятой второго поколения, такие как TMS320C50 и DSP56000 (Motorola), позволяют создавать циклы с нулевыми служебными издержками и содержат специальные команды умножения и накопления, которые помогают сократить время выполнения внутреннего цикла КИХ-фильтрации. В процессоре TMS320C50, например, внутренний цикл N-точечного КИХ-фильтра, показанный на рис. 12.25, можно эффективно выполнить с помощью следующих команд:
RPT NM1
MACD HNM1, XNM1
Команда RPT NM1 загружает длину фильтра минус 1 (те. (N — 1)) в регистр повтора и инициирует (N — 1)-кратное выполнение с нулевыми служебными издержками команды умножения и накопления со сдвигом данных MACD. Команда MACD объединяет пару команд LTD MPY в одну, что позволяет быстрее их выполнить. Вообще, пара команд RPT и MACD — это хороший пример экономных специальных команд, доступных в процессорах ЦОС.
Альтернативным подходом к реализации N-точечных КИХ-фильтров на процессорах ЦОС второго и последующих поколений является использование круговых буферов. Очевидно, что в КИХ-фильтрации содержимое памяти коэффициентов статично, а вот память данных меняется с поступлением каждой новой входной выборки. С точки зрения эффективности выгоднее подавать последующие выборки данных в раздвижное окно, удаляя старейшие выборки из памяти. Для обработки изменений в блоке входных данных, используемых при КИХ-фильтрации, можно применять круговой буфер, при этом данные не придется сдвигать, как в линейных буферах.
Концептуально круговой буфер идентичен линейному, если рассматривать два конца линейного буфера как соседние ячейки памяти, т.е. самая новая и самая старая выборки данных х(п) и х\тг — (N — 1)] находятся в соседних ячейках памяти; (рис. 12.26, а). В круговом буфере на рис. 12.26 указатель данных (обозначен стрелочкой) ссылается на ячейку памяти с новейшей входной выборкой х(п), а предыдущие входные выборки данных х(п — 1), х(п — 2),..., х(п — 7) хранятся в последующих ячейках памяти по часовой стрелке. В каждый момент получения выборки, как и ранее, выполняется внутренний цикл КИХ-фильтра — каждая выборка данных множится на соответствующий коэффициент фильтра /г(п), и произведения накапливаются. Единственное отличие состоит в том, что выборки данных не смещаются. После вычисления внутреннего цикла указатель находится возле ячейки х^п — 7) со старейшей выборкой данных, на место которой затем записывается следующая входная выборка ж(?г). Работа кругового буфера для трех последовательных выборок данных иллюстрируется на рис. 12.26, а-в.
На практике круговая адресация реализуется за счет использования для автоматического циклического возврата, когда указатели адреса выходят за границы буфера, модульной арифметики. Обычно в таких случаях требуется задать начальный адрес кругового буфера и размер буфера (или размер модуля). Ниже приводится реализация внутреннего цикла ААточечного КИХ-фильтра с использованием круговой адресации на базе процессора DSP56000.
ад, А(1) ^ад А(3) 6(4) 6(5) 6(6) 6(7)
6(0), ад
6(2)
й(3)
6(4)
6(5)
6(6)
6(7)
А”)
Ап- 1)
А"-2) А"-3)
X» -4) 4»-5)
А”-6)
Ап-7)
Аи- 1)
Ап-2) Ап-3) Ап-^ Ап-5)
Ап -6)
Ап-7)
А")
ад, 6(1) 6(2)
6(3)
6(4)
6(5)
6(6)
6(7)
Ап-2) Ап-3) А"-4) А"-5) Ап -6) Ап-7) Ап)
An-I)
Рис. 12.26. Иллюстрация принципов реализации КИХ-фильтра на основе кругового буфера
MOVE#XDATA,RO
MOVE#COEFF,R4
MOVE #N-1, MO;размер буфера/модуля
MOVERX: INPUT, X:(RO)/считывание и запись входной выборки
CLRА/очистканакопителя
REP #N-1/выполнение внутреннего цикла КИХ-фильтра
МАС ХО, YO, AX:(R0)+, ХО Y:(R4)+, Y0
MACR ХО, ХО, A (R0)-
В представленном случае круговые буферы используются для хранения данных и коэффициентов. Круговой буфер данных выполняет неявный временной сдвиг, как описано выше. В то же время, для удобства автоматического циклического возврата указателя коэффициентов используется круговой буфер коэффициентов. Первые четыре команды в приведенной выше программе устанавливают указатели адреса R0 и R4. Пара команд REP и МАС выполняет внутренний цикл КИХ-фильтра. Команда повтора REP повторяет следующую за ней команду N — 1 раз. В следующей строке для выполнения набора операций умножения используется архитектура и параллелизм DSP56000 — здесь умножаются элементы данных и коэффициенты, расположенные в ячейках ХО и Y0, произведение добавляется к накопителю, из ячеек X и Y извлекается следующая пара “элемент данных — коэффициент" и обновляются указатели.
Кроме области КИХ-фильтрации, круговая адресация применяется при эффективной реализации нескольких других функций ЦОС, требующих временных сдвигов или простых очередей, например, корреляции, фильтров с обработкой при нескольких скоростях (фильтров децимации и интерполяции) и генерации периодических сигналов. Использование круговой адресации делает ненужным смещение данных или постоянную проверку (обновление) указателей адреса. Все процессоры ЦОС старших поколений имеют улучшенные возможности круговой адресации.
Пример 12.3
Цифровой фильтр, удовлетворяющий приведенным ниже спецификациям, нужно реализовать на базе процессора ЦОС с фиксированной запятой второго поколения TMS320C50.
1,875 кГц.60 дБ.1,575 и 2,175 кГц.0,01 дБ.7,5 кГц.1,875 кГц.60 дБ.1,575 и 2,175 кГц.0,01 дБ.7,5 кГц.Частота режекции
1,875 кГц.
60 дБ.
1,575 и 2,175 кГц.
0,01 дБ.
7,5 кГц.
1,875 кГц.
60 дБ.
1,575 и 2,175 кГц.
0,01 дБ.
7,5 кГц.
Подавление на частоте режекции
Граничные частоты полосы пропускания Неравномерность в полосе пропускания Частота дискретизации
Решение
Приведенным спецификациям удовлетворяет 61-точечный оптимальный КИХ-фильтр.
Разработка этого фильтра подробно рассмотрена в разделе 7.6.5. Здесь мы остановимся только на его реализации. Коэффициенты фильтра квантуются до 16 бит (формат Q15) путем умножения каждого коэффициента на 215 с последующим округлением результата до ближайшего целого. Квантованные и неквантованные коэффициенты фильтра перечислены в табл. 12.3. Как показано на функциональной схеме на рис. 12.25, полный КИХ-фильтр имеет по крайней мере четыре необходимых элемента.
Система инициализации, которая может включать настройку таблицы коэффициентов.
Вводная часть программы, которая может включать считывание входной выборки х^, например, с АЦП через последовательный порт.
Вычисление внутреннего цикла. Реализация уравнения КИХ-фильтрации для получения у(п\
Выходная часть программы, включающая сдвиг (округление) результата, полученного при расчете внутреннего цикла, и передачу его, например, ЦАП через последовательный порт.
Таблица 12.3. Коэффициенты фильтра из примера 12.3
Длина фильтра = 61♦♦♦♦* Импульсная характеристика *****Длина фильтра = 61♦♦♦♦* Импульсная характеристика *****Ж 1) =0,127436405 - 02 = Я(61)42Ж 2) =0,267306405 - 05 = Я(60)0Ж 3) =-0,23681110S - 02 = Я(59)-78Ж 4) =-0,174163505 - 05 = Я(58)0Ж 5) =0,434284805 - 02 = Я(57)142Ж 6) =0,535792505 - 05 = Я(56)0Ж 7) =-0,715702405 - 02 = Я(55)-235Ж 8) =-0,490286205 - 05 = Я(54)0Ж 9) =0,108975405 - 01 = Я(53)357ЖЮ) =0,896292805 - 05 = Я(52)0ЖП) =-0,156059605 - 01 = Я(51)-511Я(12) =-0,855089905 - 05 = Я(50)0Я(13) =0,212264105 - 01 = Я(49)695Я(14) =0,122501505 - 04 = Я(48)0Ж15) =0,276301305 - 01 = Я(47)-905Я(16) =-0,110912005 - 04 = Я(46)0Я(17) =0,345797705 - 01 = Я(45)1133Я(18) =0,138006605 - 04 = Я(44)0Я(19) =-0,417741305 - 01 = Я(43)-1369Я(20) =-0,115603905 - 04 = Я(42)0Я(21) =0,488327905 — 01 = Я(41)1600Я(22) =0,127875905 - 04 = Я(40)0Я(23) =-0,553598405 - 01 = Я(39)-1814Я(24) =-0,900658605 - 05 = Я(38)0Я(25) =0,609444505 - 01 = Я(37)1997Я(26) =0,889973005 - 05 = Я(36)0Я(27) =0,652321905 - 01 = Я(35)-2137Я(28) =0,381671205 - 05 = Я(34)0Я(29) =0,679257205 - 01 = Я (33)2226Я(30) =0,270411505 - 05 = Я(32)0Я(31) =0,931152205 + 00 = Я(31)30512Ж 1) =0,127436405 - 02 = Я(61)42Ж 2) =0,267306405 - 05 = Я(60)0Ж 3) =-0,23681110S - 02 = Я(59)-78Ж 4) =-0,174163505 - 05 = Я(58)0Ж 5) =0,434284805 - 02 = Я(57)142Ж 6) =0,535792505 - 05 = Я(56)0Ж 7) =-0,715702405 - 02 = Я(55)-235Ж 8) =-0,490286205 - 05 = Я(54)0Ж 9) =0,108975405 - 01 = Я(53)357ЖЮ) =0,896292805 - 05 = Я(52)0ЖП) =-0,156059605 - 01 = Я(51)-511Я(12) =-0,855089905 - 05 = Я(50)0Я(13) =0,212264105 - 01 = Я(49)695Я(14) =0,122501505 - 04 = Я(48)0Ж15) =0,276301305 - 01 = Я(47)-905Я(16) =-0,110912005 - 04 = Я(46)0Я(17) =0,345797705 - 01 = Я(45)1133Я(18) =0,138006605 - 04 = Я(44)0Я(19) =-0,417741305 - 01 = Я(43)-1369Я(20) =-0,115603905 - 04 = Я(42)0Я(21) =0,488327905 — 01 = Я(41)1600Я(22) =0,127875905 - 04 = Я(40)0Я(23) =-0,553598405 - 01 = Я(39)-1814Я(24) =-0,900658605 - 05 = Я(38)0Я(25) =0,609444505 - 01 = Я(37)1997Я(26) =0,889973005 - 05 = Я(36)0Я(27) =0,652321905 - 01 = Я(35)-2137Я(28) =0,381671205 - 05 = Я(34)0Я(29) =0,679257205 - 01 = Я (33)2226Я(30) =0,270411505 - 05 = Я(32)0Я(31) =0,931152205 + 00 = Я(31)30512Квантованные коэффициентыКвантованные коэффициенты
Длина фильтра = 61
♦♦♦♦* Импульсная характеристика *****
Длина фильтра = 61
♦♦♦♦* Импульсная характеристика *****
Ж 1) =
0,127436405 - 02 = Я(61)
42
Ж 2) =
0,267306405 - 05 = Я(60)
0
Ж 3) =
-0,23681110S - 02 = Я(59)
-78
Ж 4) =
-0,174163505 - 05 = Я(58)
0
Ж 5) =
0,434284805 - 02 = Я(57)
142
Ж 6) =
0,535792505 - 05 = Я(56)
0
Ж 7) =
-0,715702405 - 02 = Я(55)
-235
Ж 8) =
-0,490286205 - 05 = Я(54)
0
Ж 9) =
0,108975405 - 01 = Я(53)
357
ЖЮ) =
0,896292805 - 05 = Я(52)
0
ЖП) =
-0,156059605 - 01 = Я(51)
-511
Я(12) =
-0,855089905 - 05 = Я(50)
0
Я(13) =
0,212264105 - 01 = Я(49)
695
Я(14) =
0,122501505 - 04 = Я(48)
0
Ж15) =
0,276301305 - 01 = Я(47)
-905
Я(16) =
-0,110912005 - 04 = Я(46)
0
Я(17) =
0,345797705 - 01 = Я(45)
1133
Я(18) =
0,138006605 - 04 = Я(44)
0
Я(19) =
-0,417741305 - 01 = Я(43)
-1369
Я(20) =
-0,115603905 - 04 = Я(42)
0
Я(21) =
0,488327905 — 01 = Я(41)
1600
Я(22) =
0,127875905 - 04 = Я(40)
0
Я(23) =
-0,553598405 - 01 = Я(39)
-1814
Я(24) =
-0,900658605 - 05 = Я(38)
0
Я(25) =
0,609444505 - 01 = Я(37)
1997
Я(26) =
0,889973005 - 05 = Я(36)
0
Я(27) =
0,652321905 - 01 = Я(35)
-2137
Я(28) =
0,381671205 - 05 = Я(34)
0
Я(29) =
0,679257205 - 01 = Я (33)
2226
Я(30) =
0,270411505 - 05 = Я(32)
0
Я(31) =
0,931152205 + 00 = Я(31)
30512
Ж 1) =
0,127436405 - 02 = Я(61)
42
Ж 2) =
0,267306405 - 05 = Я(60)
0
Ж 3) =
-0,23681110S - 02 = Я(59)
-78
Ж 4) =
-0,174163505 - 05 = Я(58)
0
Ж 5) =
0,434284805 - 02 = Я(57)
142
Ж 6) =
0,535792505 - 05 = Я(56)
0
Ж 7) =
-0,715702405 - 02 = Я(55)
-235
Ж 8) =
-0,490286205 - 05 = Я(54)
0
Ж 9) =
0,108975405 - 01 = Я(53)
357
ЖЮ) =
0,896292805 - 05 = Я(52)
0
ЖП) =
-0,156059605 - 01 = Я(51)
-511
Я(12) =
-0,855089905 - 05 = Я(50)
0
Я(13) =
0,212264105 - 01 = Я(49)
695
Я(14) =
0,122501505 - 04 = Я(48)
0
Ж15) =
0,276301305 - 01 = Я(47)
-905
Я(16) =
-0,110912005 - 04 = Я(46)
0
Я(17) =
0,345797705 - 01 = Я(45)
1133
Я(18) =
0,138006605 - 04 = Я(44)
0
Я(19) =
-0,417741305 - 01 = Я(43)
-1369
Я(20) =
-0,115603905 - 04 = Я(42)
0
Я(21) =
0,488327905 — 01 = Я(41)
1600
Я(22) =
0,127875905 - 04 = Я(40)
0
Я(23) =
-0,553598405 - 01 = Я(39)
-1814
Я(24) =
-0,900658605 - 05 = Я(38)
0
Я(25) =
0,609444505 - 01 = Я(37)
1997
Я(26) =
0,889973005 - 05 = Я(36)
0
Я(27) =
0,652321905 - 01 = Я(35)
-2137
Я(28) =
0,381671205 - 05 = Я(34)
0
Я(29) =
0,679257205 - 01 = Я (33)
2226
Я(30) =
0,270411505 - 05 = Я(32)
0
Я(31) =
0,931152205 + 00 = Я(31)
30512
Квантованные коэффициенты
Квантованные коэффициенты
Поскольку этапы 1, 2 и 4 зависят от системы, сконцентрируемся на вычислении внутреннего цикла. Внутренний цикл КИХ-фильтра можно реализовать с помощью следующих команд TMS320C50:
SACL XN;записать новейшую выборку х(п) в память данных
LAR ARI, #XNM1 .-указать на положение старейшей выборки данных x[n—(N—1) ]
ZAP;очистить накопитель и регистр произведения
MAR *, AR1 ;сделать AR1 текущим вспомогательным регистром
RPT #60;выполнить внутренний цикл КИХ-фильтрации
MACD #COEFF, *- ;умножить и накопить со сдвигом данных
АРАС;прибавить последнее произведение
В данном случае памяти данных и коэффициентов организованы так, как показано на рис. 12.24, в. Вспомогательный регистр AR1 используется для организации непрямой адресации при вычислении внутреннего цикла (команда MACD) и изначально указывает
а)
Рис. 12.27. Каноническое звено второго порядка: а) диаграмма реализации; б) память для хранения данных и коэффициентов
на старейшую выборку данных, XNM1, в памяти для хранения данных. Во внутреннем цикле команда MACD делает следующее:
добавляет предыдущее произведение к накопителю — изначально произведение равно нулю;
умножает коэффициент /i(fc) на данные, на которые ссылается указатель AR1 — изначально h(k) = h(N — 1), и устанавливает во вспомогательном регистре ссылку на х[п - (N - 1)];
копирует данные, на которые указывает AR1, в ячейку памяти со следующим адресом — изначально х[п — (N — 1)] копируется в х(п — N\, т.е. старейшая выборка данных отбрасывается. Последняя команда MACD копирует х(п) в х(п — 1), чтобы освободить место для следующей входной выборки;
уменьшает AR1 на 1 (т.е. указатель теперь ссылается на следующую выборку в памяти для хранения данных) — изначально AR1 указывает на х\п - (N - 1)], а затем последовательно указывает на x[n - (N - 2)], х\п — (N — 3)],..., х(п) по мере кругового прохождения цикла;
увеличивает адрес COEFF на 1; последовательно получаются следующие адреса: ^G?V - 1), /г(ЛГ-2),..., /г(0).
Цифровая БИХ-фильтрация
Стандартные компоновочные блоки БИХ-фильтров
В качестве стандартных компоновочных блоков при создании цифровых БИХ-фильтров используются звенья БИХ-фильтров второго порядка. Двумя наиболее используемыми структурами второго порядка являются каноническое звено (рис. 12.27) и реализация в прямой форме (рис. 12.28). Каноническое звено второго порядка характеризуется следующими уравнениями:
w(n) = SFja^n) — a^w^n — 1) - a2w(n - 2),(12.6, a)
*i- 1)И"-2)х(я)
X*-Ох(и-2)
Рис. 12.28. Реализация звена второго порядка в прямой форме: а) диаграмма реализации; б)память для хранения данных и коэффициентов
(12.6, б)(12.6, б)2/(n) = bow(n) + byw^n — 1) + b^w^n — 2),
(12.6, б)
(12.6, б)
где а?(?г) представляет входные данные, a w(n) — внутренний узел, ?/(п) — выходная выборка фильтра, SFi — масштабный множитель, равный 1/si. Разностное уравнение звена БИХ-фильтра, реализованного в прямой форме (рис. 12.28, б), записывается как
у(тг) = Ьох(п) + Ьхт^п — 1) + Ь^х^п — 2) — а^у^п — 1) — а2у(п — 2),(12.7)
где х (п — к) — последовательность входных, а у(п — к) — выходных данных. Память для хранения данных и коэффициентов для реализации в прямой форме изображена на рис. 12.28, б.
Фильтр в прямой форме проще программировать, и такая реализация может быть несколько быстрее, чем реализация в канонической форме, поскольку в ней используется более простая система индексации: сравните, например, уравнения (12.6) и (12.7).
БИХ-фильтры больших порядков реализуются как каскадная либо параллельная комбинация звеньев фильтров второго порядка (см. главу 8).
Каскадная реализация
Передаточная функция H(z) БИХ-фильтра N-ro порядка, полученного как каскад звеньев второго порядка, записывается следующим образом:
N/2 н^ = П к=1N/2 н^ = П к=1(12-8)(12-8)bok + blkz 1 + blkz 2
N/2 н^ = П к=1
N/2 н^ = П к=1
(12-8)
(12-8)
1 -«ika-1 -a^z"2 '
Каскадная реализация БИХ-фильтра четвертого порядка (^ = 4) с использованием канонических звеньев второго порядка показана на рис. 12.29, а. Память для хранения переменных фильтра (данных и коэффициентов) показана на рис. 12.29, б. Набор
б)
Рис. 12.29. Каскадная реализация БИХ-фильтра: а) диаграмма реализации; б) память для храненияданных и коэффициентов
разностных уравнений БИХ-фильтра четвертого порядка, полученного с помощью канонических звеньев, записывается следующим образом:
УхW = b01Wx(n - 1) + b21Wj(n - 2),
(12.9, 6)
w2(n) - Ух(п) - axitOx^Ti - 1) - a22w2(n - 2),
(12.9, e)
y2(n) = b02w2(n) + b12w2(n - 1) + b22w2(n - 2).
(12.9, г)
w^n) = SF^n) — аиШх^п — 1) — a2iWi(n — 2),
(12.9, а)
Псевдокод С для реализации БИХ-фильтра в форме каскада канонических звеньев второго порядка представлен в программе 12.3.
В программах 12.4 и 12.5 соответственно представлены фрагменты реализаций БИХ- фильтра N-ro порядка, который состоит из каскадного соединения М биквадратных звеньев (где М = N/2), на базе процессоров TMS320C50 и DSP56000.
Программа 12.3. Псевдокод С для реализации каскадного БИХ-фильтра
for(n=0; n,(Nsamples-1); ++п){/* Nsamples - число выборок данных */
хп = х[п];
for(k=l; k,N; ++k){
wk=sk[ k ]*xn-al[k]*wl[k]-a2[k]*w2[k];
yk=(b0[k]*wk+bl[k]*wl[k]+b2[k]*w2[k]); /* выход первого звена */ w2[k] = wl[k]; /* сдвиг и запись данных элемента задержки */ wl[k] = wk;
xn = yk;/* выход k-го звена подается на вход следующего звена */
1
y[n] = yk;/* n-я выходная выборка */
1
Программа 12.4. Реализация М каскадно соединенных канонических звеньев фильтров второго порядка на базе процессора TMS32OC5O
SPLK
#М-1, BRCR;
число биквадратных звеньев
RPTB
M_IIR ; расчет
M биквадратных звеньев, соединенных каскадом
LT
AR2;
загрузка wk(n-2)
MPYA
+, ARI;
расчет wk(n-2)*ак(2)
МРУ
+;
wk(n-l)* ак(1)
LTA
*+, ARI;
расчет и запись в память wk(n)=x(n)+
wk (n-1)*ак(1)+wk(n-2)*ак(2)
SACH
*0+, 1
МРУ
расчет wk(п-2) * Ьк(2)
LACL
#0;
LTD
*-, AR2;
сдвиг данных wk(п-2) = wk(п-1)
МРУ
*+, ARI;
yk=yk+wk(n-2) * bk(2), wk(n-l)*bk(l)
LTD
*-, AR2;
сдвиг данных wk(п-1) = wk(n)
МРУ
*+, ARI;
расчет wk(п-2) * Ьк(2) +
wk(п-1) * bk(l), wk(n) * bk(0)
M_IIR :
LTA
*, AR4;
прибавить последнее произведение
SACH
*, 1;
квантование и запись выходной выборки
Программа 12.5. Реализация М каскадно соединенных канонических звеньев фильтров второго порядка на базе процессора DSP56OOO
DO
#М, M_IIR
; расчет М биквадратных звеньев
МАС
-Х0, Y0, АX: (RO)-, XI
Y: (R4)+, Y0 ;
MACR
-XI, Y0, АXI, X: (R0)+
Y: (R4)+, Y0 ; сдвиг данных
; w(n-2)= w(n-l)
МАС
Х0, Y0, АА, X: (R0)+
Y: (R4)+, Y0
МАС
XI, Y0, А X: (RO) +, Х0
Y: (R4)+, Y0
M_IIR
RND
MOVER
A, Y: OUTPUT
Пример 12.4
Разработайте и реализуйте БИХ-фильтр нижних частот, используя процессор ЦОС с фиксированной запятой TMS320C50. Фильтр должен удовлетворять следующим спецификациям:
частота дискретизации15 кГц,
полоса пропускания0-3 кГц,
ширина полосы перехода450 Гц,
неравномерность в полосе пропускания 0,5 дБ, затухание в полосе подавления45 дБ.
Повторите п.1, используя процессор ЦОСсфиксированной запятойTMS320C54.
Повторите п.1, используя процессор ЦОСсфиксированной запятойDSP56000.
Повторите п.1, используя процессор ЦОСсфиксированной запятойDSP56300.
Решение
Подробно разработка фильтра рассмотрена в главе 8 (раздел 8.8). Показано, что спецификации удовлетворяет эллиптический фильтр четвертого порядка со следующей передаточной функцией:
1 +0,675 718г-1 + z~21 + 1,649 656г"1 + г"2
~ 1 - 0,495 935г-1 + 0,761 864г-2 Х 1 - 0,829 328г-1 + 0,307 046г-2'
Разностные уравнения каскадной реализации с использованием канонических звеньев совпадают с приведенными в формуле (12.9).
Коэффициенты, масштабированные, чтобы избежать переполнения, и квантованные до 16 бит, перечислены в табл. 12.4. Коды реализации фильтра четвертого порядка с использованием фильтров в канонической форме на базе процессоров TMS320C50 и TMS320C54 не приводятся из-за недостатка места, но их можно найти в книге [Ifeachor, 2001] (см. предисловие). Для реализаций на базе DSP56000 и DSP56300 коэффициенты квантуются до 24 бит (длина коэффициентов).
Таблица 12.4. Коэффициенты фильтра до и после квантования до 16 бит
Коэффициент
Масштабированный коэффициент
Квантованный коэффициент
602
1
0,9999695
32767
612
0,675718
0,675718
22142
Ь22
1
0,9999695
32767
012
-0,495935
-0,495935
-16251
022
0,761864
0,761864
24965
boi
1
0,1311136
4296
Ьц
1,649656
0,2162924
7087
621
1
0,13Ш36
4296
Oil
-0,829328
-0,829328
-27175
021
0,307046
0,307046
10061
S1 = 2,479 158 (Li); SF = 0,403 362 7; s2 = 18,908 47 (Li).
-022
а)
Рис. 12.30. Реализация БИХ-фнльтра четвертого порядка: а) диаграмма реализации; б) схемапамяти для хранения данных и коэффициентов
Параллельная реализация
Передаточная функция БИХ-фильтра N-ro порядка в параллельной реализации записывается следующим образом:
H(z) = pr bok + b^z"1+ с(12,10)
1 + Qlk2 1 + a2kZ
Диаграмма реализации с использованием канонических звеньев второго порядка с N = 4 представлена на рис. 12.30. Разностные уравнения канонического звена записываются следующим образом:
Wi(n) = SFi^n) — a^Wi^n — 1) — а21гиг(п — 2),
!/i(n) = ЬшшДп) + bnwi^n - 1),
ЭДгИ = SF2a;(n) — di2w2(n — 1) — a22Wi(n — 2),
йЫ = Ьог^Ы + b12w2(n - 1),
= coa;(n) + т/Дп) + y2(n).
Простой код С для БИХ-фильтра, реализованного как параллельная комбинация канонических звеньев второго порядка, представлен в программе 12.6.
Программа 12.6. Псевдокод С параллельной реализации фильтра четвертого порядка
for(n=0; n,(Nsamples-1); ++п){/* Nsamples - число выборок данных */
у[п] = с*х[п];/* выход через постоянный тракт */
for(k=l; k,N; ++k){
wk = sk[k]*x[n]-al[k]*wl[k]-a2[k]*w2[k]; yk = (bO[k]*wk+bl[k]*wl[k])/sk[k];/* выход первого звена */
w2[k]=wl[k];/* сдвиг и запись данных элемента задержки*/
wl[k]=wk;
y[n]=yk+y[n] ; )
Пример 12.5
Представьте передаточную функцию, приведенную в примере 12.4, в параллельной форме, используя в качестве элементарных составляющих канонические звенья второго порядка. Реализуйте фильтр на базе аппаратного обеспечения, указанного в предыдущем примере.
Решение
Используя рассмотренную в главе 4 программу разложения на элементарные дроби, по коэффициентам каскадной реализации получим коэффициенты параллельной реализации. В результате передаточная функция преобразуется к следующему виду:
_ -0,132 922 5 -0,180 523г'1 ”1-0,028 994г-1 +0,044 541 6z-2 +
-0,058 534 + 0,508 420Z"1 п Л _
-I’’и 0 249 923 79
1 -0,048 489 9г"1 +0,017 951 lz~2 ’
Si = 5,524 484 4, s2 = 2,4794.
Значения коэффициентов до и после квантования до 16 бит приведены в табл. 12.5. Коды реализации фильтра на базе процессоров TMS320C50, TMS320C54, DSP56000 и DSP56300 можно найти в книге [Ifeachor, 2001] (см. предисловие). Для реализации на базе процессоров DSP56000 и DSP56300 коэффициенты квантовались до 24 бит.
Расширение методов реализации, описанных выше, на каскадную и параллельную структуры БИХ-фильтров высоких порядков выполняется относительно просто. Впрочем, если реализовать расчет звена второго порядка как подпрограмму, можно получить более компактный код.
Таблица 12.5. Реализация БИХ-фильтра четвертого порядка из примера 12.5: коэффициенты фильтра до и после квантования до 16 бит
Неквантованные коэффициенты
Квантованные коэффициенты
SFi
0,18100
5931
Со
0,24992379
8190
<101
-0,1329225
-24063
<1ц
-0,1805232
-32670
Ьи
0,028994
16251
Ьг1
-0,0445416
-24965
<102
-0,058534
-4756
<112
0,5084205
20653
612
0,0484899
27178
622
-0,017951
-10061
sf2
0,40332
13216
12.5.3. Расчет БПФ
Дискретное преобразование Фурье (ДПФ) конечной последовательности данных х(п) определяется следующим образом:
N-1X(k) = ^x(n)W^,п=0
где WN, часто именуемое настроечным параметром, — это набор комплексных коэффициентов.
Прямое вычисление коэффициентов ДПФ Х^ является трудоемким процессом при больших N. Значительно сократить время расчета Х(к) можно с помощью алгоритмов быстрого преобразования Фурье (БПФ). Как обсуждалось в главе 3, основными параметрами алгоритмов БПФ являются коэффициент “бабочки” и настроечный коэффициент.
Реализация “бабочки"
На рис. 12.31, а и б изображено два типа “бабочек”, используемых в двоичном БПФ. Применение быстрого преобразования Фурье по обеим схемам дает одинаковые результаты. Для децимации во времени (рис. 12.31, а) на вход “бабочки” подается два значения А и В, по которым вычисляется пара выходов:
A' = A + BWn,(12.11, а)
В' = A-BW*.(12.11,6)
Вообще, входные и выходные выборки данных, а также настроечные параметры являются комплексными и в общем виде их можно выразить следующим образом:
(12.12, а)
Рис. 12.31. Два типа “бабочек”, используемых в алгоритмах двоичного БПФ: а) “бабочка" для двоичного БПФ с децимацией во времени; б) “бабочка” для двоичного БПФ с децимацией по частотеРис. 12.31. Два типа “бабочек”, используемых в алгоритмах двоичного БПФ: а) “бабочка" для двоичного БПФ с децимацией во времени; б) “бабочка” для двоичного БПФ с децимацией по частоте
Рис. 12.31. Два типа “бабочек”, используемых в алгоритмах двоичного БПФ: а) “бабочка" для двоичного БПФ с децимацией во времени; б) “бабочка” для двоичного БПФ с децимацией по частоте
Рис. 12.31. Два типа “бабочек”, используемых в алгоритмах двоичного БПФ: а) “бабочка" для двоичного БПФ с децимацией во времени; б) “бабочка” для двоичного БПФ с децимацией по частоте
(12.12,0(12.12, в)(12.12,0(12.12, в)В — Вге + iBirn,
(12.12,0
(12.12, в)
(12.12,0
(12.12, в)
Wk = e-^ik!N = C0S(27rk/N) - isin(27rk/A0,
где индекс те обозначает действительную часть величины, aim — мнимую. Операция “бабочка” согласно уравнению (12.11) включает действия с комплексной арифметикой, но на практике она часто выполняется с использованием действительной арифметики. Чтобы выразить эту операцию в форме, подходящей для действительной арифметики, отметим, что произведение В и W в уравнении (12.11) имеет следующий вид:
BW^ = Вте cos(X) + Bresin(X) + z[Bim cosQC) - Bresin(X)], (12.13)
где X = 2nk/N. Подставляя уравнения (12.12) и (12.13) в уравнения (12.11, а и 0, получаем:
А' = Are + [Bre cos(X) + Bim sin(X)] + i{Am + \Bim cos(X) - Bre sin(X)]} (12.14, a)
B' = >lre-[Brecos(X)+Bimsin(X)]+i{Am-[Bimcos(X)-Bresin(X)]}. (12.14, 0
Теперь выходы “бабочки” А' и В' представлены в нужной форме. Следовательно, для данной пары комплексных точек А и В в ПДСК по формулам (12.14, а и 0 можно вычислить выход “бабочки”, используя только действительную арифметику.
Вычисление синуса и косинуса в формуле (12.14) является трудоемкой операцией. В БПФ реального времени эффективнее заранее вычислить действительную и мнимую части настроечного параметра (уравнение (12.12, в)) и сохранить данные значения в таблице соответствий. Предварительный расчет значений настроечного параметра иллюстрируется в программе 12.7.
Программа 12.7. Псевдокод С для предварительного расчета значений настроечного коэффициента
pi=6.28315307179586/N;
for(k=0; k<N/2; ++k){
X=k*pi;
w.real[k]=cos[X];
w.imag[k]=sin[X];
В программе 12.8 приводится псевдокод С для двоичной “бабочки”, значения настроечного параметра которой вычислены заранее и занесены в таблицу соответствий.
Программа 12.8. Псевдокод С для расчета “бабочки”
t.real=br*w.real[k]+bi*w.imag;
t.imag=bi*w.real[k]-br.w.imag[k];
b.real[j]=a.real-t.real; b.imag[j]=a.imag-t.imag; a.real[j]=a.real+t.real; a.imag[j]=a.imag+t.imag;
Псевдокод С для реализации описанного алгоритма на базе процессора TMS320C25 приведен в программе 12.9. Значения настроечного множителя рассчитаны предварительно и сохранены в формате Q15. Предполагается, что входные данные комплексные, их действительные и мнимые части хранятся в последовательных ячейки ОЗУ данных. Для комплексных выходных данных А' и В' могут иметь максимальные значения 2,41442; для действительных входов максимальное значение равно 2. В арифметике с фиксированной запятой это может стать причиной переполнения. Чтобы избежать этого, данные на входе “бабочки” следует масштабировать. В реализации на базе TMS320C50 масштабирование является динамическим, здесь используются преимущества того, что при умножении двух чисел с фиксированной запятой получается один лишний бит знака. Этот дополнительный бит обычно удаляется путем левого сдвига, но результат при этом эффективно масштабируется в два раза.
Программа 12.9. Код для реализации “бабочки” на базе процессора TMS320C50
расчет членов, общих для двух "бабочек", Д' и В'
LT
BR
;расчет 1/2*[b.real*cos(X)+b.imag*sin(X)]
МРУ
WREAL
;l/2*b.real*cos(X)
LTP
BI
МРУ
WIMAG
;l/2*b.imag*sin(X)
АРАС
;1/2[b.real*cos(X)+b.imag*sin(X)]
МРУ
WREAL
;l/2*b.imag*cos(X)
LT
BR
SACH
BR
;1/2[b.real*cos(X)+b.imag*sin(X)]
РАС
;расчет [q.imag*cos(X)-q.real*sin(X)]
МРУ
WIMAG
SPAC
SACH
BI
*
*расчет и
запись
выходов "бабочки"
*
LACC
AR, 14
;расчет и запись действительных частей выхода
ADD
BR, 15
SACH
AR, 1
;запись a.real
SUB
BR
SACH
BR, 1
;запись b.real
LAC
AI,14
;расчет и запись мнимых частей выхода
ADD SACH
BI, 15
AI, 1
;запись а.imag
SUB SACH
BI
BI,1
;запись b.imag
Вычисление с замещением и постоянная геометрия
На рис. 12.32 показана схема прохождения сигнала по восьмиточечному БПФ. Из рисунка очевидно, что для получения коэффициентов ДПФ Х(к\ показанных справа, при данном входе необходимо рассчитать несколько “бабочек". Для упорядоченного проведения ряда вычислений по схеме “бабочка" обычно используется эффективный алгоритм двоичного БПФ. На приведенной схеме сигнал проходит слева направо. Следовательно, после вычисления выходов “бабочки” А* и В* входы А и В уже не нужны, поэтому выходы можно записывать поверх них. Данная концепция получила название вычисление с замещением.
Рис. 12.32. Диаграмма прохождения сигнала по БПФ с децимацией во времени с замещением, где вход идет в естественном порядке, а выход записан в порядке, определяемом обращенными битами
Алгоритмы с замещением позволяют эффективно использовать доступную память, поскольку преобразованные данные записываются на место входных. В прошлом, когда память была очень дорогой, это соображение было существенным. В то же время, при вычислениях с замещением система индексации, позволяющая определить, откуда из памяти извлекать входные данные каждой “бабочки”, достаточно сложна. Например, на рис. 12.32 верхняя “бабочка” на этапе 1 получает вход с адресов 0 и 4 и записывает выход по тем же адресам. С другой стороны, верхняя “бабочка” на этапе 2 принимает вход с адресов 0 и 2. Вообще, при БПФ с замещением входные (выходные) адреса меняются на каждом этапе. Более того, для высокоскоростных БПФ использование одной памяти для входа и выхода замедляет вычисления из-за большого времени доступа
Адреса входаАдреса входаоо223344556677х(7)х(7)оооох(0)х(0)■•ЛЮ)■•ЛЮ)х(4)х(4)ЛГ(!)ЛГ(!)ЛЮ)ЛЮ)х(2)х(2)х(6)х(6)ЛЮ)ЛЮ)|Ю>|Ю>ж'ж'ЛЮ)ЛЮ)х(1)х(1)х(5)х(5)ЛГ(5)ЛГ(5)Ж2Ж2ЛЮ)ЛЮ)х(3)х(3)Адреса выхода каскада 2 и адреса входа каскада 3Адреса выхода каскада 2 и адреса входа каскада 3Адреса выхода каскада 1 и адреса входа каскада 2Адреса выхода каскада 1 и адреса входа каскада 2W2Второй этапW2Второй этапW1Третий этапW1Третий этап|Ю>|Ю>Первый этапПервый этап*Л17)*Л17)
Адреса входа
Адреса входа
о
о
2
2
3
3
4
4
5
5
6
6
7
7
х(7)
х(7)
о
о
о
о
х(0)
х(0)
■•ЛЮ)
■•ЛЮ)
х(4)
х(4)
ЛГ(!)
ЛГ(!)
ЛЮ)
ЛЮ)
х(2)
х(2)
х(6)
х(6)
ЛЮ)
ЛЮ)
|Ю>
|Ю>
ж'
ж'
ЛЮ)
ЛЮ)
х(1)
х(1)
х(5)
х(5)
ЛГ(5)
ЛГ(5)
Ж2
Ж2
ЛЮ)
ЛЮ)
х(3)
х(3)
Адреса выхода каскада 2 и адреса входа каскада 3
Адреса выхода каскада 2 и адреса входа каскада 3
Адреса выхода каскада 1 и адреса входа каскада 2
Адреса выхода каскада 1 и адреса входа каскада 2
W2
Второй этап
W2
Второй этап
W1
Третий этап
W1
Третий этап
|Ю>
|Ю>
Первый этап
Первый этап
*Л17)
*Л17)
Рис. 12.33. Двоичное БПФ с постоянной геометрией, гае вычисления выполняются без замещения ячеек памяти.Обратите внимание на то, что для каждой “бабочки” расстояние между входами и выходами одинаковое
к памяти (исключая, например, случаи использования двухпортовых ОЗУ). Поскольку сейчас память и умножители дешевы, наблюдается тенденция к повышению скорости путем оптимизации всего процессора БПФ.
В альтернативной реализации БПФ, известной как вычисления без замещения, или вычисления с постоянной геометрией, входные данные “бабочки” считываются по паре адресов, а выход записывается в пару ячеек с другими адресами, как показано на рис. 12.33. В отличие от БПФ с замещением, где адреса входа-выхода каждой “бабочки” отличаются для разных этапов, в описываемом случае адресация каждой “бабочки” фиксирована и значительно проще. Для N-точечного БПФ входы n-й “бабочки” на каждом этапе находятся в ячейках с адресами 2п и 2n+1, п = 0,1,..., N/2 — 1. Выходы n-й “бабочки” записываются в ячейки с адресами п и N/2 4- п. Например, на втором этапе (рис. 12.33) верхняя “бабочка” берет входные значения в ячейках с адресами 0 и 1 и записывает выход в ячейки с адресами 0 и 4. Очевидно, что для работы БПФ без замещения требуются две отдельные области памяти или массива; в одном хранятся входы, а в другом — выходы. После каждого этапа роли областей памяти меняются.
Скремблирование данных и обращение битов
Если при БПФ с децимацией во времени последовательность входных данных подается на процессор БПФ в естественном порядке, выход БПФ кажется скремблированным (см. рис. 12.32). Чтобы гарантировать поступление выхода в правильном порядке
Рис. 12.34. Диаграмма прохождения сигнала для БПФ с децимацией во времени и замещением ячеек памяти; вход представлен в порядке, определяемом обращенными битами, а выход идет в естественном порядке
(т.е. Х(0), Х(1),...,X(N — 1)), требуется либо скремблировать последовательность входных данных перед БПФ (см. рис. 12.33 и 12.34), либо восстановить естественный порядок выхода после применения БПФ (см. рис. 12.32).
Скремблирование входных данных для двоичного БПФ выполняется путем записи входной последовательности в порядке, определяемом обращенными битами. Предположим, что входные данные записаны в естественном порядке (т.е. как х(0), х(1), х(2),..., x(N — 1)), для записи в порядке, определяемом обращенными битами, индексы входных данных представляются в двоичном виде, как показано во втором столбце табл. 12.6 для восьмиточечного БПФ, а затем биты переставляются относительно центра (четвертый столбец табл. 12.6). Например, в таблице индекс выборки х(3) представляется в двоичной форме как 011. Меняя местами первый и третий биты, получаем НО (средний бит остается без изменений). Код ПО представляет десятичное число 6. Для создания эффекта скремблирования необходимо переставить выборки х(3) и х(6). Применяя тот же принцип к остальным входам, получаем последовательность, порядок элементов которых определяется обращенными битами (представлена в третьем столбце табл. 12.6). Обратите внимание на то, что после скремблирования положение первой и последней выборки данных не меняется. Это объясняется тем, что обращение битов применительно к индексам ООО и 111 не дает эффекта. Вообще, процесс скремблирования в двоичном БПФ не затрагивает первую и последнюю точки данных. Внимательный читатель может отметить и другие выборки, на которые описанный процесс не влияет.
Когда входные данные содержатся в памяти или в массиве, скремблирование входных данных включает определение пар ячеек с входными данными и перестановкой данных, расположенных в этих ячейках. Для определения индексов ячеек памяти, которые будут обмениваться содержимым, наиболее широко используется алгоритм Рейдера (Rader) (см. [9]). В программе 12.10 представлен псевдокод С с реализацией алгоритма обращения битов.
Таблица 12.6. Демонстрация концепции обращения битов на данных восьмиточечного БПФ
Входная последовательность, естественный порядок
Двоичный код последовательности
Входная последовательность, биты обращены
Двоичный код последовательности (с обращением битов)
z(0)
ООО
z(0)
000
z(l)
001
z(4)
100
z(2)
010
z(2)
010
z(3)
Oil
z(6)
110
z(4)
100
z(l)
001
z(5)
101
z(5)
101
z(6)
но
z(3)
он
z(7)
111
z(7)
111
Программа 12.10. Обращение битов с замещением ячеек памяти в двоичном БПФ
/* обращение битов с замещением */
j=l; for(i=l; i,N; ++i){
if(i,j)<
tr=x.real[j]; /* поменять местами x[j] и x[i] */ ti=x.imag[j];
x.real[j]=x.real[i] ;
x.imag[j]=x.imag[i];
x.real[i]=tr;
x.imag[i]=ti;
k=N/2;
while(k,j){
j=j-k;
k=k/2;
}
)
else (
k=N/2;
while(k, j)(
j=j-k;
k=k/2;
}
} j=j+k;
J
Существующие чипы ЦОС содержат команды для выполнения обращения битов при извлечении выходных выборок данных из памяти (подготовка к БПФ) или при записи выходных данных после БПФ в память.
Обработка при нескольких скоростях
Как обсуждалось в главе 9, обработка при нескольких скоростях включает выполнение операций ЦОС с более чем одной частотой дискретизации. Двумя фундаментальными операциями обработки при нескольких скоростях являются децимация (снижение
FF00
*|(11)
Х|(л)
300h
*|(Ю)
Х,(л - 1)
*|(1)
Х[(л- 10)
*1(0)
Х,(Л - 11)
FF20
*2(12)
х2(л)
320h
*2<П)
х2(л- 1)
*2(1)
х2(л —11)
*2(0)
х2(л- 12)
FF80
*,(47)
х,(л)
380h
*,(46)
х,(л - 1)
*з(1)
х,(л-46)
*,(0)
х,(л-47)
ВОВ1
Рис. 12.35. Параметры трехкаскадного дециматора
частоты дискретизации) и интерполяция (повышение частоты дискретизации). Проиллюстрируем реализацию дециматора реального времени на примере.
Пример 12.6
Частоту дискретизации сигнала требуется в ходе трехэтапного процесса децимации уменьшить с 30 до 1 кГц. Наибольшая частота, представляющая практический интерес после децимации, равна 400 Гц, неравномерность в полосе пропускания равна 0,08 дБ, затухание в полосе подавления равно 50 дБ. Дециматор нужно реализовать на базе процессора TMS320C50.
Решение
Используя программу разработки систем обработки с несколькими скоростями (см. [Ifeachor, 2001] и предисловие), получим параметры трехкаскадного дециматора (рис. 12.35). Коэффициенты трех фильтров, полученные с помощью программы разработки оптимального КИХ-фильтра, представлены в табл. 12.7. Согласно спецификациям длины фильтров взяты несколько больше оценок, предсказанных программой разработки дециматоров (12, 13 и 48 вместо 13, 12 и 46).
На рис. 9.15 представлена функциональная схема общего трехкаскадного дециматора. Схемы хранения коэффициентов и данных для дециматора на основе TMS320C50 показаны на рис. 12.36. Коэффициенты фильтра квантуются до 16 бит путем умножения каждого коэффициента на 215 с последующим округлением результата до ближайшего целого. Приведенная программа децимации на языке ассемблера TMS320C50 является универсальной и ее можно модифицировать для выполнения одно-, двух- или трехкаскадной децимации путем замены коэффициентов, задающих длины фильтров, число каскадов децимации и коэффициенты децимации.
Таблица 12.7. Коэффициенты фильтров трехкаскадного дециматора
Длина фильтра = 12
***** Импульсная характеристика ***** Я( 1) = 0,730755505 - 02 = Я(12) Я( 2) = 0,271232605 - 01 = Я(11) Я( 3) = 0, 592864305 - 01 = Я(10) Я( 4) = 0,101989705 + 00 = Я( 9) Я( 5) = 0,141878705 + 00 = Я( 8) Я( 6) = 0,166757705 + 00 = Я( 7) ***** Импульсная характеристика ***** Я( 1) = -0,867681905 - 02 = Я(13) Я( 2) = -0,254768705 - 01 = Я(12) Я( 3) = —0,254681705 - 01 = Я(11) Я( 4) = 0,241843205 - 01 = Я(10) Я( 5) = 0,132385705 + 00 = Я( 9) Я( 6) = 0,249079505 + 00 = Я( 8) Я( 7) = 0,300751705 + 00 = Я( 7) Длина фильтра = 48
239 889
1943 3342 4649 5464
-284 -835 -834
792 4338 8162 9855
***** Импульсная характеристика ***** Я( 1) = 0,177802205 - 02 = Я(48) Я( 2) = -0,173966405 - 02 = Я(47) Я( 3) = -0,494617905 - 02 = Я(46) Я( 4) = -0,254514305 - 02 = Я(45) Я( 5) = 0,408433305 - 02 = Я(44) Я( 6) = 0,427730705 - 02 = Я(43) Я( 7) = -0,450426405 - 02 = Я(42) Я( 8) = -0,803851805 - 02 = Я(41) Я( 9) = 0,290025005 - 02 = Я(40) Я(10) = 0,121936705 - 01 = Я(39) Я(11) = 0,922811205 — 03 = Я(38) Я(12) = -0,161998605 - 01 = Я(37) Я(13) = -0, 769669705 - 02 = Я(36) Я(14) = 0,188987105 - 01 = Я(35) Я(15) = 0,179662805 - 01 = Я(34) Я(16) = -0,187564905 - 01 = Я(33) Я(17) = -0,324518605 - 01 = Я(32) Я(18) = 0,134588005 - 01 = Я(31) Я(19) = 0,529455205 - 01 = Я(30) Я(20) = 0,176206005 - 02 = Я(29) Я(21) = -0,864334405 - 01 = Я(28) Я(22) = -0,445853605 - 01 = Я(27) Я(23) = 0,181765005 + 00 = Я(26) Я(24) = 0,410394805 + 00 = Я(25)
585 -57 -162
—83
134
140 -148 -263
95
400
30 -531 -252
619
589 -615 -1063
441
1735
58 -2832 -1461
5956 13448
Рис. 12.36. Схемы хранения коэффициентов и данных трехкаскадного дециматора
Рис. 12.37. Общая структура адаптивного фильтра: пара входов и пара выходов
Адаптивная фильтрация
Общая структура адаптивного фильтра изображена на рис. 12.37. Как обсуждалось в главе 10, адаптивная фильтрация включает два процесса.
Цифровая фильтрация. С помощью коэффициентов фильтра, изображенного на рис. 12.37, из входного сигнала х(п) извлекается нужная информация, в результате чего получается у(п).
Считая, что используется трансверсальная структура, фильтр можно записать следующим образом:^
t/(n) = ^ w„(k):r(n — к),(12.15)
к=0
где wk(k), к = 0,1,..., N — 1 — коэффициенты цифрового фильтра (часто именуемые весовыми коэффициентами), а х(п — к), к = 0,1,..., N — 1 — последовательность входных данных.
Реализация цифрового фильтра в форме, представленной в уравнении (12.15), весьма схожа с рассмотренной ранее реализацией стандартного КИХ-фильтра. Так что реализация фильтра на языке С будет иметь знакомый вид: у[п]=0; for(k=0; k<N; k++){
У[n]-у[n]+wn[k]*xn[k];
1
Адаптивный процесс. Данный процесс включает обновление, т.е. настройку коэффициентов фильтра до достижения ими оптимальных значений. При использовании стандартного алгоритма наименьших квадратов коэффициенты обновляются следующим образом:
wn+1(k^ = WnW + 2ре(п)х(п — к), к = 0,1,2,..., N — 1,(12.16)
где wn(k) — к-й коэффициент цифрового фильтра в n-й момент выборки, р — параметр устойчивости, х(п-к) — к-я входная выборка в к-й линии задержки. Реализация стандартного обновления по схеме наименьших квадратов на языке С приведена в программе 12.11. Член 2ue [ п ] является скаляром, будучи одинаковым для всех коэффициентов, он вычисляется один раз и выносится за пределы цикла. Реализация адаптивного процесса на базе TMS320C50 представлена в программе 12.12.
Программа 12.11. Псевдокод С для обновления коэффициентов адаптивного фильтра по схеме наименьших квадратов
uen=2*u*e[n]
for(k=0; k,N; k++)(
wn[k]=wn[k)+uen*xn[k];
2
Программа 12.12. Псевдокод TMS320C50 для обновления коэффициентов адаптивного фильтра по схеме наименьших квадратов
LT
ERR
МРУ
U;вычисляет m * e(n)
РАС
ADD
ONE, 15
SACH
ERRF
LACC
#N-1; задает длину фильтра
SAMM
BRCR
LAR
AR2, #WNM1; указывает на последний коэффициент, wk(N-l)
LAR
AR3, #XNM1; указывает на x(n—(N—1))
LT
ERRF
МРУ
-, AR2; вычисляет me(n) + x(n-k)
RPTB
LMS-1; обновляет коэффициенты, wk+l(n)
ZALR
*, AR3
MPYA
*-, AR2
SACH
*+
LMS ZALR
*, AR3
APAC
SACH
*+
Специализированная аппаратура ЦОС
Почему специализированная?
Операции цифровой обработки сигналов являются вычислительно интенсивными. В приложениях с широкополосными сигналами, где скорость поступления (выдачи) данных велика, большинство универсальных процессоров ЦОС не могут достаточно быстро выполнить нужные вычисления. Разумеется, по этой причине универсальные процессоры ЦОС часто используются в приложениях, где задействованы аудиочастоты. Кроме того, для данных приложений большинство универсальных процессоров ЦОС содержат много встроенных ресурсов, которые либо излишни, либо недостаточно эффективно используются, например, это относится к режимам адресации, наборам команд и периферийным устройствам ввода-вывода. В специализированных процессорах ЦОС аппаратное обеспечение оптимизировано для выполнения определенного алгоритма или некоторых функций специфического приложения. Это позволяет эффективнее использовать встроенные ресурсы и повышать скорость работы.
Специализированное аппаратное обеспечение можно реализовать как одночиповый продукт или как блок отдельных компонентов. Использование блочной конструкции гибче и позволяет повысить скорость, но внедрение подобных аппаратных средств сложнее и дороже. Одночиповые процессоры ЦОС (если они разработаны для выполнения данной задачи) имеют меньшее число интегральных схем, не требуют знания малопонятного языка ассемблера и не имеют проблем программной отладки.
Основные требования к специализированным процессорам ЦОС
Наиболее распространенной арифметической операцией в таких алгоритмах ЦОС, как цифровая фильтрация, корреляция и преобразования, является сумма произведений:
N—X
y=^akxkl(12.17)
k=0
где ak — набор коэффициентов или переменных, х — последовательность данных.
Характерное уравнение (12.17) можно для более эффективного вычисления суммы произведений записать в рекурсивной форме:
Ук = а-к^к + Ук-х, k = 0,l,...,N-1,(12.18)
где
У-х = о,
у = yN-i.
В специализированных процессорах ЦОС уравнение (12.18) вычисляется с помощью умножителя-накопителя с очень большой скоростью, например, 40 нс на одну операцию умножения-накопления.
Подобно универсальным процессорам ЦОС архитектура специализированных процессоров включает память (ОЗУ и/или ПЗУ) для хранения данных, память (ОЗУ и/или ПЗУ) для хранения данных и переменных (таких как коэффициенты фильтра или БПФ),
Рис. 12.38. Архитектура аппаратного цифрового КИХ-фильтра
быстрый аппаратный умножитель-накопитель и временные регистры для хранения данных или промежуточных результатов. Для достижения максимальной скорости интенсивно используются параллелизм, уплотнение и конвейерная обработка.
В следующих нескольких разделах рассмотрены некоторые базовые вопросы, касающиеся разработки специализированного аппаратного обеспечения для цифровой обработки сигналов.
Аппаратные цифровые фильтры
Цифровые КИХ-фильтры
КИХ-фильтр, реализованный в прямой форме, характеризуется следующим уравнением:
N-1
у(п) = У^ h^x^n — к).
к=0
На рис. 12.38 показана стандартная архитектура цифрового КИХ-фильтра с использованием блоков стандартных компонентов. Основные компоненты здесь — это память для хранения данных и память для хранения коэффициентов, блоки аналогового ввода- вывода (АЦП и ЦАП), умножитель-накопитель и контроллер (не показан). Для реализации всех компонентов КИХ-фильтра можно использовать быстрые готовые продукты.
В каждый момент взятия выборки новая выборка данных a?(n) считывается с АЦП и записывается в память для хранения данных. Каждая входная выборка данных и соответствующий коэффициент извлекаются из памяти одновременно и подаются на умножитель. Затем получающиеся произведения накапливаются и на их основе получается выходная выборка. Расчет каждой выходной выборки у^ потребует N операций извлечения данных (коэффициентов) из памяти и N операций умножения-накопления.
Операция КИХ-фильтрации является регулярной с хорошей структурой и ее легко реализовать в одной интегральной схеме. В настоящее время существуют такие специализированные однокристалльные КИХ-фильтры, как перепрограммируемый КИХ- фильтр PDSP16256 (Mitel).
Цифровой БИХ-фильтр
На рис. 12.39 показана архитектура канонического БИХ-фильтра второго порядка. В данном случае память для хранения данных содержит данные внутреннего узла w(n). Стандартное звено второго порядка на рис. 12.39, а характеризуется следующими уравнениями:
w(ti) = в^п) — a^w^n — 1) — a2w(n — 2),
у(тг) = bow(n) + b^w^n — 1) + ЬзиДп — 2),
где x(n) представляет входные данные, a w(n) — внутренний узел, у^ — выходная выборка фильтра, sj — масштабный коэффициент.
Аппаратные процессоры БПФ
ДПФ принимает набор из N выборок во временной области и преобразовывает их в набор из N выборок в частотной области Х(к\ Для эффективного расчета коэффициентов ДПФ X (к) используется БПФ. Основной операцией в БПФ является “бабочка", которая характеризуется следующими уравнениями:
А' = А + W^B,
В' = А- W^B,
где А и В — пара комплексных выборок на входе “бабочки”, А' и В* — выходы “бабочки”, Wn — комплексный настроечный параметр.
Каждая “бабочка” требует комплексного умножения, т.е. W^B, комплексного сложения и комплексного вычитания. На рис. 12.40 показана прямая аппаратная реализация процессора для вычисления “бабочки” с использованием отдельных блоков комплексных арифметических устройств: комплексного умножителя и пары комплексных накопителей. Комплексный умножитель вычисляет общие члены W^B. В двух комплексных накопителях вычисляются два выхода “бабочки”, А* и В'.
Используя комплексный умножитель PDSP16112A (Mitel) и пары комплексных накопителей (PDSP16318A), можно реализовать однотактовый процессор для расчета “бабочки" со временем такта 50 нс. При использовании стандартных действительных
а)
Умножитель-накопитель
6)
Рис. 12.39. БИХ-фильтр: а) структура; 6) гарвардская архитектура биквадратного звена
A' = A+W^BK = A-W^B
Рис. 12.40. Схема аппаратного процессора для вычисления “бабочки” с использованием отдельных блоков комплексной арифметики
Рис. 12.41. Упрощенная архитектура аппаратного процессора БПФ. Контроллер и генератор адресов не показаны
Рис. 12.42. Двойная буферизация в БПФ реального времени
арифметических устройств эквивалентный процессор будет состоять из четырех умножителей и шести сумматоров. Использование комплексных арифметических устройств, очевидно, позволяет обойтись меньшим числом интегральных схем и, возможно, повысить эффективность системы. На рис. 12.41 показан аппаратный процессор БПФ, построенный на базе описанного выше процессора для расчета “бабочки”. Кроме того, существуют и самостоятельные высокоскоростные процессоры БПФ, такие как PDSP16510 (Mitel).
На рис. 12.42 изображена конфигурация БПФ реального времени с двойным буфером. При расчете А-точечного БПФ попеременно используются оба буфера. Пока БПФ применяется к А-точечным данным из буфера А, буфер В заполняется новыми данными. Подобная двойная буферизация позволяет непрерывно выполнять БПФ в реальном времени без потери данных. Максимальное время завершения N-точечного БПФ равно промежутку Tf = NT (с).
Резюме
Алгоритмы ЦОС подразумевают трудоемкие арифметические операции, в частности, умножение и сложение с интенсивным потоком данных через центральный процессор. Эффективное выполнение подобных алгоритмов в реальном времени требует аппаратной архитектуры и набора команд, радикально отличающихся от архитектуры и команд стандартных микропроцессоров. В цифровых процессорах сигналов для этого используются гарвардская архитектура, конвейерная обработка и специализированное аппаратное обеспечение, например, быстрые аппаратные умножители-накопители и схемы сдвига, скоростная внешняя память, также в процессоры внедряется множество команд, ориентированных на ЦОС.
Чтобы удовлетворять требованиям таких многоканальных, вычислительно-интенсивных приложений, как современные модемы удаленного доступа к серверу, системы мобильной связи третьего поколения, обработка мультимедийной информации, вводятся новые архитектуры. В частности, это архитектура VLIW (very long instruction word — с командными словами сверхбольшой длины) и статическая супер скалярная архитектура, которые используются в последнем поколении процессоров ЦОС. В обеих архитектурах применяются множественные тракты обработки данных и арифметические устройства, также для повышения эффективности используется параллелизм на уровне команд.
Существует два типа цифровых процессоров сигналов: универсальные процессоры (которые сродни стандартным микропроцессорам, за исключением архитектур и наборов команд, приспособленных для выполнения операций ЦОС) и специализированные процессоры. Последние используются для выполнения специфических алгоритмов ЦОС, например, цифровой КИХ-фильтрации (алгоритмические процессоры ЦОС), или для эффективного выполнения некоторых операций конкретных приложений (прикладные процессоры, или процессоры специального назначения). По сравнению с универсальными процессорами специализированные более быстрые, но менее гибкие.
В данной главе подробно рассмотрены основные идеи, реализованные в аппаратуре ЦОС, и влияние алгоритмов ЦОС на архитектуру процессоров ЦОС. Для иллюстрации существенных моментов разобрана реализация нескольких ключевых алгоритмов ЦОС с использованием универсальных цифровых и специализированных процессоров сигналов.
|||||||i|||||||||■^
Напишите краткое резюме по следующим концепциям, используя для иллюстрации ответа подходящие диаграммы:
гарвардская архитектура;
конвейерная обработка;
умножитель-накопитель;
специальные команды:
память для хранения данных и программы.
Объясните, чем гарвардская архитектура, используемая в семействе TMS320, отличается от строгой гарвардской архитектуры. Сравните ее с архитектурой стандартного фоннеймановского процессора.
1. В цифровом процессоре сигналов требуется умножитель-накопитель с трехкаскадным конвейером. Изобразите блок-схему умножителя-накопителя подходящей конфигурации. С помощью временной диаграммы объясните работу данного умножителя-накопителя.
Пусть время обращения к памяти равно 150 нс, время умножения — 100 нс, время сложения — 100 нс, служебные издержки на каждом каскаде конвейера — 5 нс. Определите пропускную способность умножителя-накопителя. Ответ прокомментируйте.
Требуется система ЦОС, в реальном времени выполняющая следующий алгоритм:
г/(п) = аох(п') + a^xtn — 1) + a2x(n — 2) + ... + ajv_ix[n — (N — 1)].
Сколько времени затратит умножитель-накопитель на получение каждой выходной выборки?
В работе [3] высокоскоростные компьютеры разбиты на следующие четыре категории:
с одним потоком команд и одним потоком данных (single instruction stream, single data stream — SISD);
с одним потоком команд и многими потоками данных (single instruction stream, multiple data stream — SIMD);
co многими потоками команд и одним потоком данных (multiple instruction stream, single data stream — MISD);
co многими потоками команд и многими потоками данных (multiple instruction stream, multiple data stream — MIMD),
где поток команд — это последовательность команд программы, выполняемой компьютером, а поток данных — это последовательность данных, необходимая компьютеру для выполнения команд.
Классифицируйте перечисленные ниже процессоры. Выбор аргументируйте.
■ Motorola 68000;
■ Motorola DSP56000;
■ Analog Devices ADSP2100;
■ Texas Instruments TMS32OC5O;
■ Texas Instruments TMS320C30;
■ Texas Instruments TMS320C40;
■ Texas Instruments TMS320C62x;
■ Analog Devices TS001.
1. Объясните, почему такие традиционные меры, как тактовая частота процессора, MIPS и MFLOPS, могут не подходить для сравнения вычислительной эффективности процессоров ЦОС. Предложите альтернативный метод сравнения вычислительной эффективности.
Сформулируйте и обсудите ключевые факторы, отличные от скорости работы, которые следует учитывать при выборе процессора ЦОС для следующих приложений:
высококачественное воспроизведение цифрового аудио;
передача речи посредством 1Р-телефонии;
обработка физиологических сигналов в сфере диагностики в биомедицине.
1. Сравните вычислительную эффективность процессоров с фиксированной запятой TMS32OC5O, DSP56000 и ADSP2100 на основе выполнения внутреннего цикла /V-точечного КИХ-фильтра. Укажите сделанные предположения.
Повторите п. 1 для БИХ-фильтра п-го порядка с М каноническими звеньями второго порядка, соединенными каскадно. Число N считайте четным.
Повторите п. 1 для адаптивного фильтра, работающего по схеме наименьших квадратов, который определен в уравнении (12.16).
Напишите краткое резюме по следующим концепциям, используя для иллюстрации ответа подходящие диаграммы:
круговая адресация;
архитектура с одним потоком команд и многими потоками данных (single input, multiple data — SIMD);
суперскалярная архитектура;
архитектура с командными словами сверхбольшой длины (Very Long Instruction Word — VLIW);
организация циклов с нулевыми служебными издержками.
В каждом случае четко укажите достоинства и недостатки метода применительно к цифровой обработке сигналов.
Используя представленную на рис. 12.43 диаграмму прохождения сигнала для 16-точечного БПФ с децимацией по времени, постройте эквивалентную диаграмму для БПФ с постоянной геометрией. Прокомментируйте относительные преимущества двух диаграмм.
На рис. 12.32 изображена схема прохождения сигнала по 8-точечному БПФ с децимацией во времени и скремблированным выходом. Покажите, что выход можно получить в естественном порядке, записав входные данные в порядке, определяемом обращенными битами, показав таким образом, что в БПФ с децимацией во времени окончательный выход будет правильно упорядочен, если последовательность входных данных перед БПФ скремблирована, либо в выходной последовательности после БПФ восстановлен естественный порядок данных.
В табл. 12.8 представлена последовательность входных данных и двоичное представление ее индексов. Определите входную последовательность, записанную в порядке, определяемом обращенными битами, и заполните таблицу.
Таблица 12.8. Последовательность входных данных задачи 12.9
Входная последовательность, естественный порядок
Двоичный код последовательности
Входная последовательность, биты обращены
Двоичный код последовательности (с обращением битов)
т(0)
0000
т(1)
0001
^(3)
ООН
т(5)
0101
х(6)
оно
Ц7)
0111
т(8)
1000
т(9)
1001
z(10)
1010
Т(П)
1011
^(12)
1100
z(13)
1101
z(14)
1110
х(15)
1111
Разработайте эффективное специализированное аппаратное обеспечение, используя отдельные блоки арифметических элементов, для цифрового БИХ- фильтра N-ro порядка реального времени, реализованного как каскад звеньев второго порядка. Разрешение АЦП/ЦАП равно 12 бит, длина коэффициентов — 16 бит. Требуемая частота дискретизации — 100 кГц. Укажите сделанные предположения.
1. Напишите краткое резюме по следующим концепциям:
динамический диапазон;
арифметика с фиксированной и плавающей запятой.
Для иллюстрации ответа укажите определенные приложения в аудиотехнологиях, связи и биомедицине.
а. В системе на основе ЦОС используется цифровой процессор сигналов с фиксированной запятой и длиной слова 16 бит. Оцените динамический диапазон системы.
б. Повторите п. 2, а, если длина слова равна 24 бит.
Повторите п. 2, если для предотвращения переполнения умножитель-накопител предоставляет один бит защиты.
Повторите п. 3, если используется восемь бит защиты.
Оцените и сравните степени расширения динамического диапазона, которое происходит в рассмотренных случаях.
Литература
ЖЖ1ШЬ#/Г■ygggKЖЖ1ШЬ#/Г■ygggKBerkeley Design Technology (1999) Buyer’s Guide to DSP Processors. Fremont CA: Berkeley Design Technology Inc. Подробности см. на www. BDTI. com.
ЖЖ1ШЬ#/Г
■ygggK
ЖЖ1ШЬ#/Г
■ygggK
Blalock G. (1997) General-purpose /zPs for DSP applications: consider the trade-offs. EDN, 23 October, pp. 165-172.
Flynn M. J. (1966) Very high-speed computing systems. Proc. IEEE, 54(12), 1901-1909.
Hacker S. (1999) Static superscalar design: a new architecture for the TigerSHARC DSP processor. Analog Devices Whitepaper, www. analog. com/publications/whitepapers/products/sharc. html
Hayes J. P. (1998) Computer Architecture and Organization, 3rd edn. Boston MA: McGraw-Hill.
Hennessy J. L. and Patterson D.A. (1990) Computer Architecture; A Quantitative Approach. San Mateo CA: Morgan Kaufmann.
Levy M. (1998) DSP architecture directory. EDN, 23 April, pp. 40-110.
Levy M. (1999) DSP architecture directory. EDN, 15 April, pp. 67-102.
Rabiner L. R. and Gold B. (1975) Theory and Applications of Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Texas Instruments (1988) TMS320C2x Software Development System User's Guide. Dallas TX: Texas Instruments.
Texas Instruments (1999) TMS320C6000 Technical Brief, Literature No. SPRU197D, Texas Instruments, Austin TX. Документ также можно найти на www. ti. com.
Дополнительная литература,
Casey Р. Е. and Simmers L. (1986) Digital signal processing IC helps to shed new light on image processing applications. Electronic Design, 20 March, 135.
Chassaing R. and Horning D. W. (1990) Digital Signal Processing with the TMS320C25. New York: Wiley. Cragon H. (1980) The elements of single-chip microcomputer architecture. Computing Mag., 13(10), 27-41.
Croisier A., Estaban D. J., Levilion M. E. and Rizo W. (1973) Digital Filter for PCM Encoded Signal. US Patent 3777130, 3 December, 1973.
Dahnoun N. (2000) Digital Signal Processing Implementation Using the TMS320C6000 DSP Platform. Englewood Cliffs NJ: Prentice-Hall.
De Roberts R. B. and Rifaat R. (1999) DSPs enhance flexible third-generation base-station design. Wireless System Design, November, www.wsdmag.com.
DSP-architecture directory, 1997, EDN, 8 May, 43-107.
DSP56300 Family Manual, Motorola, www.motorola.com/SPS/DSP/documentation
DSP56000 Digital Signal Processor Family Manual, Motorola, Austin TX, 1995.
Fine B. and McGuire G. Considerations for selecting a DSP processor P ADSP-2101 vs TMS320C50, AN-233 Analog Devices Application Note, Digital Signal Processing Products 9-77-9-92.
Gallant J. (1990) Plug-in DSP boards. EDN, 35, 142-160.
Ganesan S. (1991) A dual-DSP microprocessor system for real-time digital correlation. Microprocessor and Microsystems, 15(7), 379-384.
Gore A. E. (1986) Cascadable digital signal processor. New Electronics, 14 October, 39-40.
Jouppi P. and Wall D. W. (1989) Available instruction-level parallelism for superscalar and superpipelined machines. In Proc. Third Conf, on Architectural Support for Programming Languages and Operating Systems. IEEE/АСМ (April), Boston MA, pp. 272-282.’
Kloker K. L. (1986) The Motorola DSP56000 Digital Signal Processor, IEEE Micro, December, pp. 29-48.
Kogge P. M. (1981) The Architecture of Pipelined Computers. New York: McGraw-Hill.
Leary К. and Morgan D. (1986) Fast and accurate analysis with LPC gives a DSP chip speech-processing power. Electronic Design, 17 April, 153.
Levy M. (1996) DSP-chip directory, EDN, March, 42-103.
Levy M. (1997) C compilers for DSPs flex their muscles. EDN, 7 June, 93-107.
Lin K. S. (ed.) (1988) Digital Signal Processing Applications with the TMS320 Family, Vol. 1. Englewood Cliffs NJ: Prentice-Hall.
Lin K. S., Frantz G.A. and Simar R. (1987) The TMS320 family of digital signal processors. Proc. IEEE, 75(9), 1143-1159.
McKee D. (1990) TMS32010 routine finds phase. EDN, 35, 148.
Mennen P. (1991) DSP chips can produce random numbers using proven algorithm. EDN, 36, 141-146.
Messer D. D. (1991) Convolutional encoding and viterbi decoding using the DSP5600I. Microprocessors and Microsystems, 15(1), 54-62.
Motorola (1986) DSP56000 Digital Signal Processor User’s Manual. Motorola.
Nath N. S. M. (1999) C compilers and development tools simplify DSP assembly-language programming. EDN, 21 January, 103-110.
Papamichalis P. (1990) Digital Signal Processing Applications with the TMS320 Family. Theory, Algorithms, and Implementations, Vol. 3. Dallas TX: Texas Instruments.
Papamichalis P. and Simar R. (1988) The TMS320C30 floating-point digital signal processor. IEEE Micro Mag., 8(6), 10-28.
Roesgen J. (1986) Fast modem designs benefit from DSP chip’s versatility. Electronic Design, 12 June.
Roesgen J. and Tung S. (1986) Moving memory off chip, DSP pP squeezes in more computational power. Electronic Design, 20 February, 131.
Rosen S. (1969) Electronic computers: a historical survey. Computer Survey, 1(1), 7-36.
Schmalzel J., Hein D. and Ahmed N. (1980) Some pedagogical considerations of digital filter hardware implementation. IEEE Circuits and Systems Mag., 2(1), 4-13.
So J. (1983) TMS 320 P step forward in digital signal processing. Microprocessors and Microsystems, 7(10), 451-460.
Stokes J. and Sohie G. R. L. (1991) Implementation of PID controllers on the Motorola DSP56000/DSP56001.
Part 1. Microprocessors and Microsystems, 15(6), 321-331.
Stokes J. and Sohie G. R. L. (1991) Implementation of PID controllers on the Motorola DSP56000/DSP56001.
Part 2. Microprocessors ond Microsystems, 15(7), 385-392.
Texas Instruments (1989) Second-Generation TMS320 User’s Guide. Dallas, TX: Texas Instruments.
TMS320C5x User’s Guide, Texas Instruments, 1995.
TMS320C54x DSP Reference Set, Volume 4: Applications Guide. Texas Instruments, October 1996. www. ti. com Tomarakos J. and Ledger D. (1998) Using the Low-cost, High Performance ADSP-21065L Digital Signal Processor for Digital Audio Applications. Analog Devices DSP Application. Подробности можно найти на www. analog. com.
Zolzer U. (1997) Digital Audio Signal Processing. Wiley.
Другие полезные Web-адреса
Специализированное аппаратное обеспечение, например, многоканальный эхопо- давитель МТ9300, программируемые КИХ-фильтры PDSP16256. Mitel Semiconductor, www.mitelsemi.com.
Аудиокодеки и процессоры, например, 24-битовый кодек 96 кГц объемного звучания CS4228, цифровые конвертеры частоты дискретизации аудиосигнала. Cirrus, www.cirrus.com.
Приложение
А. Программы на языке ассемблера TMS320 для обработки сигналов в реальном времени и программа на языке С для двоичного БПФ с постоянной геометрией
На компакт-диске к книге [Ifeachor, 2001] имеются следующие программы для процессоров TMS320C10/C25 (подробности см. в предисловии):
реализация цифрового узкополосного режекторного КИХ-фильтра на основе TMS320C10;
реализация цифрового полосового КИХ-фильтра на основе TMS320C10;
реализация цифрового узкополосного режекторного КИХ-фильтра на основе TMS320C25;
реализация с помощью каскадного соединения звеньев второго порядка цифрового БИХ-фильтра четвертого порядка на основе TMS320C10;
реализация с помощью каскадного соединения звеньев второго порядка цифрового БИХ-фильтра четвертого порядка на основе TMS320C25;
реализация с помощью параллельного соединения звеньев второго порядка цифрового БИХ-фильтра четвертого порядка TMS320C25;
программа на языке С для двоичного БПФ с постоянной геометрией;
двоичный алгоритм БПФ на основе TMS320C25;
адаптивный фильтр на основе TMS320C25.
Из-за недостатка места в данную книгу включены только программы 2 и 5.
Программа 12А.1. Реализация цифрового полосового КИХ-фильтра на основе TMS32OC1O
METAi Assembler 4.00 ©1988 Crash Barrier Thu Nov 19 00:37:40 1992 Page 1 Assembler
00000000
targbpf.asm
1c:\metai\32010.tab/
00000000
00000000
00000000
00000000
00000000
00000000
00000000
.Ctrl27, 15
SEGMENTword at 0000 'ram'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Полосовой КИХ-фильтр
;
; Спецификация фильтра:
00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000
10/
11/ Тип фильтра полосовой фильтр
12; частота дискретизации 15 кГц
13; полоса пропускания 900—1100 Гц
14; ширина полосы перехода 450 Гц
15; неравномерность в полосе пропускания <0.87 дБ
16; затухание в полосе подавления >30 дБ
17/ длина фильтра 41
18;
19; Аппаратура: целевая плата TMS320C10
20; с 8-битовыми АЦП/ЦАП
21////////////////////////////;/////////////////////,
22/
23
00000000
F900002B24 ВSTART
25
00000028 00000000 00000028 00000029 00000051 0000007В 0000007С 00000000 00000001 00000002 00000003 00000002 00000000 00000001 00000002 00000002 00000002
26NM1EQU40/N-1
27XNEQU0;текущая входная выборка
28XNM1EQUNM1
29НОEQUNM1+1
30HNM1EQUH0+NM1
31YNEQU123
32ONEEQU124
33PAOEQU0;адрес ввода-вывода для прямого
34PAIEQU1;доступа к памяти целевой платы
35РА2EQU2
36РАЗEQU3
37COEFF EQU2/начальный адрес коэффициентов.
38R0EQU0
39RIEQU1
40/
41/таблица коэффициентов, которые изначально
42/хранятся в программной памяти.
43
44
00000002 00000002 00000009 00000009 0000000F 0000000F 00000015 00000015 0000001В 0000001В 00000020 00000020 00000027
FE09FFFEFF5B019F 45 02B3038E03D945DC.W-503,-2,-165,415,691,910,985
035001 D9FF97FCE8 46
FA57F88146DC.W848,473,-105,-792,-1449,-1919
F7EAF8DDFB52FEE8 47 02F406A847DC.W-2070,-1827,-1198,-280,756,1704
093F0A2E093F06A8 48 02F4FEE848DC.W2367,2606,2367,1704,756,-280
FB52F8DDF7EAF881 49 FA5749DC.W-1198,-1827,-2070,-1919,-1449
FCE8FF9701D9035050
03D9038E02B350DC.W-792,-105,473,848,985,910,691
019F00A5FFFEFE09 51 DC.W 415,165,-2,-503
METAi Assembler 4.00 © 1988 Crash Barrier Thu Nov 19
00:37:40
1992 Page 2 Assembler'
targbpf.asm
52 53
0000002B 0000002B 0000002B 0000002B
0000002B 0000002C 00000020 0000002E
0000002E
54 /===Начало основной программы ===
55 /
56; инициализация
57 /
7Е01 58 STARTLACK1
507C 59 SACLONE
6E00 60 LDPK0 ;указатель на нулевую страницу
61;памяти данных
62 /передача коэффициентов из программной памяти /в ПСПЗУ в память для хранения данных
0000002E
0000002E
63 /
7Е0264 LACK COEFF ;загрузка адресов коэффициентов
;в накопитель
0000002F
702865 LARK AR0,NMl /числа коэффициентов
/во вспомогательный регистр 0
00000030
7129 66 LARK ARl,H0 /и адреса в памяти для хранения данных /в регистр AR1
00000031
688167 LOAD LARP R1 /выбрать AR1 и начать передавать
/коэффициенты
00000032
67А0 68 TBLR *+,R0 /в память для хранения данных, затем /увеличить содержимое регистра /AR1 на 1
00000033
00000034
00000036
00000036
00000036
00000036
00000037
00000039
007С 69 ADD ONE/увеличить значение в накопителе
F4000031 70 BANZ LOAD /уменьшить значение в AR0 на 1 71/и проверить, не равно ли оно 0
72/дождаться новой входной выборки
73 6880 74 LARP R0
F600003B 75 WAIT BIOZ NXTPT /проверить, готова ли выборка,
F9000037 76 ВWAIT/если нет - подождать
77
0000003B
0000003C
0000003C
0000003C
0000003C
0000003D
0000003E
4000 78 NXTPT IN XN,РАО /если готова - считать выборку
79 /
80 /вычислить выход фильтра в регистре YN
81 /и передать его ЦАП
702882skipLARKAR0,XNMl
715183LARKAR1,HNM1
7F8984ZAC
85
0000003F 00000040 00000041 00000042
00000043 00000045 00000046
6A91 86LT*-,Rl /загрузить XN(N-l) выборку
6D90 87MPY*-,R0 /вычислить H(N-1)*XN(N-1)
6B81 88LOOP LTD *,R1 /вычислить SIG[H(K)*X(N-K)]
6D90 89MPY*-,R0
F4000041 90BANZLOOP
7F8F 91APAC/прибавить H(N-1)*X(N-1)
597B 92SACHYN,1/подать выборку на выход
00000047 487В 93OUT YN,РАО /
94 00000048 F6000048 95 onhi BIOZ onhi /оставаться на этом этапе, /пока строка BIO не станет достаточно большой 96 0000004А F9000037 97 В WAIT 98 0000004099 end
No errors on assembly of 'targbpf.asm'
Программа 12A.2. Реализация на основе TMS320C25 цифрового БИХ-фильтра четвертого порядка с помощью каскадного соединения звеньев второго порядка
/ Эллиптический фильтр четвертого порядка, представленный как / каскад двух биквадратных канонических звеньев
/ Manny Ifeachor, Jan., 1992
/ Спецификации фильтра:
/ Тип фильтра:фильтр нижних частот
/Частота дискретизации:
/Полоса пропускания:
/Ширина полосы перехода:
/Неравномерность в полосе пропускания:
/Затухание в полосе подавления:
/Аппаратура: TMS320C25 с
/1-битовым АЦП/ЦАП (фильтр В)
XN.set0
YN1.set1
WIN.set2
W1NM1.set3
W1NM2.set4
YN2.set5
W2N.set6
W2NM1.set7
W2NM2.set8
15 кГц 0-3 кГц 450 кГц 0,5 дБ
45 дБ
SF2
. set
20
ONE
. set
21
RATED
. set
22
MODED
. set
23
WONE
. set
24
TEMP
. set
25
PBM1
. set
0300 h
•
. sect
TIRUPTSY
START
ВINIT
.text
COEFFS
.word
13217; SF1 = 0.4033627 в формате Q15
;(SCALE
FACTOR)
.word
4296;a01=0.1311136
.word
7087;all-0.2162924
.word
4296;a21=0.1311136
.word
27175;-bll=0.829328
.word
-10061;-b21=-0.307046
.word
32767;a02=0.9999695
. word
22142;al2=0.675718
.word
32767;a22=0.9999695
.word
16251;-bl2=0.495935
.word
-24965;-b22=-0.761864
. word
29769;SF2=0.90847
MODEP
.word
OAh
RATEP
.word
0299h
** Инициализация AIВ ** *
INIT LDPK 6 SSXM LACK MODEP TBLR MODED OUTMODED,PAO
LACKRATEP ;устанавливается частота дискретизации
TBLRRATED
OUTRATED,PAI
OUTRATED,РАЗ
* ** Коэффициенты передаются из памяти программы в память дар * LARPAR0
LRLKARO,PMB1+SF1
RPTK11
BLKPCOEFFS,*+
Инициализируется прямой доступ к памяти для данных внутреннего узла
INITWN
SACL SACL SACL SACL SACL SACL
ZAC
WIN W1NM1
W1NM2
W2N
W2NM1
W2NM2
*
** Ожидать новой выборки данных
RDATA В
NXTPT LT
BIOZNXTPT;Извлечь новую выборку данных
RDATA INXN,PA2
XN
Начало блока фильтра 1
BLOCK1 PAC LT MPY LTA MPY APAC SACH ZAC MPY LTD MPY LTD MPY
MPYSF1;Масштабируется входная выборка данных: SF*X(N)
W1NM1 ;B регистр Т загружается W(N-l)
Bll;B11W1(N-1)
W1NM2 ;SFX(N)+B11W1(N-l)
В21;B21Wl(N-2)
;SFX(N)+B11W1(N-l)+B21W1(N-2) WIN
A21;A21Wl(N-2)
W1NM1 ;SUM = A21W(N-2); W1(N-2)=W1(N-l)
All;A11W1(N-1)
WIN;SUM=A21W1(N-2) + AllWl(N-l); W1(N-l)=W1(N)
AOI;AO1W1(N)
Начало блока фильтра 2
BLOCK2 MPY LTA MPY APAC
LTA W2NM1;Y1(N)=A21W(N-2)+A11W1(N-l)+A01W1(N)
B12;B12W2(N-1)
W2NM2 ;Y1(N)+B12W2(N-l)
B22;B22*W2(N-2)
;Y1(N)+B12*W2(N-l)+B22*W2(N-2) ;SUM=Y1(N)+B12 *W2(N-1)+2 *B2 2 *W2(N-2)
SACH MPY
ZAC LTD MPY
APAC LTD MPY
W2N ;STORE HIGH 16 BIT WORD OF SUM IN W2(N)
A22;A22*W2(N-2)
;SUM=SUM+A22*W2(N-2)
W2NM1;W2(N-2)=W2(N-l); SUM = A22*W2(N-2)
A12;A12*W2(N-1)
;SUM=A22*W2(N-2)+A12*W2(N-l)
W2N; W2 (N-l) =W2 (N)
A02;A02*W2(N)
APAC SACHAPAC SACHYN2YN2
APAC SACH
APAC SACH
YN2
YN2
Выходная выборка масштабируется и передается И
LT YN2 ; MPY SF2 ;SF2*YN2 РАС;
АРАС АРАС АРАС АРАС АРАС АРАС АРАС АРАС АРАС АРАС АРАС АРАС АРАС АРАС АРАС АРАС АРАС АРАС АРАС SACH YN2 ;21*SF2*YN2
OUT YN2,РА2 В RDATA
END ;@\\\000300АВ1800001100АВ18; /* Командный файл связей*/ MEMORY (/* Память программы*/
PAGE 0:VECTORS:origin=0h, length=01Fh
CODE:origin=20h, length=0F90h
/* Память для хранения данных*/ PAGE 1:RAMB2:origin=60h, length=020h
RAMBO:origin=200h, length=0FFh RAMB1:origin=300h, length=0FFh ) SECTIONS
{
IRUPTS
:(}
. VECTORS
PAGE 0
.text
:{}
. CODE
PAGE 0
.data
:{}
. RAMB2
PAGE 1
.bss
:{}
. RAMBO
PAGE 1
}
Анал из эффе кто в конечной разрядности в системах ЦОС
1313с фиксированной запятой ■
13
13
Вступление,..*..867
Арифметика ЦОС-.,. --868
Шум квантования АЦП и качество сигнала-.877
Эффекты конечной разрядности в цифровых БИХ-фильтрах’ 880
Эффекты конечной разрядности слова в алгоритмах БПФ ''' 923
Резюме1 / ,927
1 Задачи ,_' 928
■ Литература’ ’ 930
Дополнительная литература- 931
- Приложения932
Цель данной главы — изучить ошибки, которые возникают в практических системах ЦОС в результате квантования и использования для операций ЦОС арифметических устройств со словами конечной длины. Обсуждается влияние данных ошибок на качество сигнала и методы борьбы с этими ошибками. Понимание вопросов, освещенных в данной главе, должно помочь при разработке систем ЦОС с предсказуемой производительностью.
Поскольку системы ЦОС с фиксированной запятой более распространены, в данной главе, в основном, рассматривается разработка именно таких систем.
Вступление
В большинстве случаев системы ЦОС разрабатываются для реализации функции ЦОС, например фильтрации или БПФ, на цифровом процессоре. На практике для представления точных переменных и выполнения арифметических операций используется конечное число битов. Типичными длинами слов в современных процессорах ЦОС является 16 бит (например, TMS320CC54), 24 бит (например, DSP56300) и 32 бит (например, ADSP-21065). Поскольку слова конечной длины вызывают ошибки, влияющие на производительность систем ЦОС, перед реализацией функции ЦОС разработчик
должен определить степень такого ухудшения и при необходимости найти эффективное “лекарство”.
Ниже приводятся основные ошибки в ЦОС.
Ошибка квантования АЦП, вызванная представлением входных данных ограниченным числом битов.
Ошибка квантования коэффициентов, которая возникает при представлении коэффициентов или параметров ЦОС конечным числом битов. Коэффициенты ак и Ьк, которые используются на этапе 2 разработки фильтра, например, обычно считаются с очень большой точностью, но в процессоре ЦОС они должны квантоваться (обычно до длины слова процессора).
Ошибки переполнения, к которым приводит сложение двух больших чисел одного знака, если в результате получается число, превышающее разрешенную длину слова.
Ошибки округления, которые возникают, когда результат умножения округляется (или усекается) до ближайшего дискретного значения или приемлемой длины слова. Влияние ошибок, возникающих при обработке сигнала, зависит от многих факторов, в том числе типа используемой арифметики, качества входного сигнала и типа реализованной функции или алгоритма ЦОС. Ниже для изучения влияния конечной разрядности на производительность системы ЦОС используются цифровые БИХ- фильтры, поскольку в них проявляются большинство проблем, которые могут встретиться на практике.
Арифметика ЦОС
В предыдущих главах было показано, что основными операциями в ЦОС являются умножение, сложение и задержка (сдвиг). Например, при цифровой КИХ-фильтрации коэффициенты /i(k), (к = 0,1,..., N — 1) и входные выборки т(7г) (п = 0,1,...) умножаются, а полученные произведения суммируются:
N-1
у(п) = У к(к)т(п — к) = /i(0)z(n) + ЫД^т^п — 1) + ... +
(13-1)
+ h(N — l)z[n — (N — 1)].
На практике арифметические операции, входящие в ЦОС (подобные операции, приведенной выше), часто выполняются с использованием арифметики с плавающей или фиксированной запятой (см. [16]). Иногда используются арифметики и других типов, например, блочная арифметика с плавающей запятой, которая в чем-то объединяет преимущества двух арифметик, названных выше. В ЦОС более распространена арифметика с фиксированной запятой, так как ей сопутствует быстрая и недорогая реализация, хотя диапазон представляемых чисел ограничен, а итоговая система подвержена проблемам переполнения, которое может произойти, когда результат сложения не входит в диапазон приемлемых чисел (например, масштабные предельные циклы в БИХ-фильтрах
и перегрузка в БПФ высоких порядков). Чтобы предотвратить выход результата арифметических операций из диапазона приемлемых значений, операнды масштабируются. Подобное масштабирование снижает производительность систем ЦОС, т.е. уменьшает достижимое отношение сигнал-шум.
Арифметика с плавающей запятой предпочтительнее, если амплитуды переменных или коэффициентов системы могут значительно изменяться [6]. Она допускает использование значительно более широкого динамического диапазона и практически снимает проблему переполнения. Более того, обработка с плавающей запятой упрощает программирование. Алгоритмы ЦОС, разработанные на больших машинах, например, на персональных компьютерах или мэйнфреймах, на языке высокого уровня, могут реализовываться прямо на аппаратуре ЦОС с незначительными изменениями основных алгоритмов. В то же время арифметика с плавающей запятой — это более дорогая и часто медленная реализация, хотя в последние годы широкое распространение начинают получать высокоскоростные цифровые процессоры сигналов со встроенным процессором с плавающей запятой (такие как Texas Instruments TMS320C30). Кроме того, в литературе (например, [18]) описаны эффективные программные процедуры, рассчитанные на действия с плавающей запятой. Отметим также, что за последнее время разница в цене и скорости между процессорами с плавающей и фиксированной запятой значительно сократилась.
Методы ЦОС все активнее используются в приложениях, где требуются и широкий динамический диапазон, и высокая точность. Цифровые процессоры сигналов с фиксированной запятой, с длинными словами (24 бит и больше) могут удовлетворять таким требованиям, но гораздо естественнее и проще в таких случаях использовать обработку с плавающей запятой.
Областей применения, в которых требуются широкий динамический диапазон и высокая точность, и где использование арифметики с плавающей запятой необходимо или желательно, множество. В качестве примера можно привести параметрическое выравнивание в реальном времени цифровых аудиосигналов с использованием цифровых фильтров, где значения коэффициентов фильтра меняются при прохождении через полосу аудиочастот и подгонке параметров эквалайзера. В определенных задачах обработки сигналов (например, анализ спектра в радаре или сонаре, сейсмология или биомедицина) часто требуется разрешать очень низкоуровневые компоненты сигнала с широким динамическим диапазоном. В подобных случаях требуется широкий динамический диапазон и высокая точность. В число аналогичных областей применения входят обработка графическими станциями с высоким разрешением и универсальные инженерные вычисления. Необходимый максимальный динамический диапазон и требования к точности в нескольких приложениях сведены в табл. 13.1 [20].
Ключевой вывод из сказанного можно сформулировать следующим образом: тип используемой арифметики — это основной фактор, влияющий на производительность систем ЦОС. Основные концепции арифметик двух типов (т.е. с плавающей и фиксированной запятой) рассмотрены ниже.
Таблица 13.1. Динамический диапазон и требования к точности
Динамический диапазон (бит)
Точность (бит)
Подавление шума
32
20
Обработка сигналов радаров
32
20
Обработка изображений со студийным качеством
20
20
Обработка изображений
30
20
Медицинский спектральный анализ
20
20
Обработка сейсмических данных
70
20
Арифметика с фиксированной запятой
Представление в форме с фиксированной запятой
В ЦОС переменные часто представляются как дробные числа в форме дополнения до двух с фиксированной запятой; см., например, табл. 13.2. В таком представлении двоичная запятая находится справа от самого старшего бита, который одновременно является и битом знака. Каждое число принадлежит диапазону от —1 до 1 — 2-^в-1), где В — число битов, используемых для представления числа. В ЦОС обычным является представление в так называемом формате Q15, где используется 16 бит (1 бит знака и 15 бит дробной части):
ОНО 0000 0000 0000| двоичная запятая
Положительные числа в форме дополнения до двух не отличаются от обычного двоичного представления (см. табл. 13.2). Отрицательное число получается из положительного путем дополнения до двух всех его битов с последующим прибавлением 1 младшего разряда. Например, представление числа —3/8 в форме дополнения до двух получается из 3/8 (т.е. ООП) так: 1100 + 0001 = 1101.
Когда сигнал на вход системы ЦОС поступает с АЦП (аналого-цифрового преобразователя), данные, поступающие на цифровой процессор, могут представляться в двоичном формате со сдвигом. Подобным образом выход системы ЦОС может понадобиться преобразовать в такой формат, если он должен подаваться на ЦАП (цифроаналоговый преобразователь). Чтобы преобразовать двоичный формат со сдвигом в формат дополнения до двух, к числу в двоичном формате со сдвигом следует добавить старший бит. Например, в табл. 13.2 двоичный код со сдвигом 1111 (т.е. 7/8) легко превращается в код дополнения до двух (0111) путем введения дополнительного старшего бита. На практике шины процессоров ЦОС часто шире, чем разрешение АЦП. В таком случае после преобразования в формат дополнения до двух оставшиеся слева позиции заполняет бит знака. Например, код 111 1101 в формате дополнения до двух выглядит как 1111 1111 1111 1101.
Если в представлении с дополнением до двух с фиксированной запятой каждое число представить В бит, то максимум можно представить 2В различных чисел, причем соседние числа будут разнесены приблизительно на 2-в.В связи с этим полезно определить точность, с которой можно представить любое число, по сравнению с десятичным представлением.
Таблица 13.2. Сравнение систем дополнения до двух и двоичной со сдвигом при длине слова 4 бит
Число
Десятичная дробьДополнение до двух
Двоичная со сдвигом
7
7/8
0111
1111
6
6/8
ОНО
1110
5
5/8
0101
1101
4
4/8
0100
1100
3
3/8
ООН
1011
2
2/8
0010
1010
1
1/8
0001
1001
0
0
0000
1000
-1
-1/8
1111
0111
-2
-2/8
1110
оно
-3
-3/8
1101
0101
-4
-4/8
1100
0100
5
-5/8
1011
ООП
-6
-6/8
1010
0010
-7
-7/8
1001
0001
-8
-1
1000
0000
Таблица 13.3.
Связь между числом битов и точностью в десятичных знаках
Число битое
Точность (число десятичных цифр)
7
2,1
8
2,4
10
3
12
3,6
14
4,2
15
4,5
16
4,8
18
5,4
20
6,1
23
7,0
24
7,3
64
19,4
Для данной десятичной дроби X, состоящей из d цифр, точность равна ±0,5 х 10 d. Если представить то же число с помощью В бит, точность будет равна ±0,5 х 2~в.
Чтобы сохранить ту же точность представления, необходимо
(13.2)(13.2)0,5 х 10 j = 0,5 х 2 в, т.е.В = dlog2 10 ~ 3,3d бит.
(13.2)
(13.2)
Например, предположим, что десятичное число 0,23456 нужно представить в двоичной форме. Тогда для представления с прежней точностью потребуется 3,3 х 5 = 17 бит. В табл. 13.3 сведены основные соотношения между числом битов двоичной системы и их точностью в десятичных знаках.
Пример 13.1
Представьте десятичное число 0,95624 следующим образом.
Как число в формате Q3.
Как число в формате Q4.
Сравните ошибки в двух случаях.
Оцените число битов, требуемых для представления указанного десятичного числа с одинаковой точностью.
Решение
Число в формате Q3 — это число в форме дополнения до двух с одним бит знака и тремя бит дробной части. Чтобы преобразовать десятичное число в формат Q3, его нужно просто умножить на 23, а полученное произведение округлить до ближайшего приемлемого числа: 0,95624 х 23 = 7,64992, что округляется до 7 = 0111 (наибольшее приемлемое число).
В данном случае число представляется с использованием одного бит знака и четырех бит дробной части: 0,95624 х 24 = 15,29984, что округляется до 15 = 01111.
Ошибки в представлении чисел в п. 1 и 2 равны соответственно 0,64992/8 = 0,08124 и 0,29984/16 = 0,01874. Ошибка в представлении числа часто называется ошибкой квантования коэффициентов.
Из уравнения (13.2) находим, что требуется 3,3 х 5 = 16,5 бит~ 17 бит.
Умножение с фиксированной запятой
При умножении с фиксированной запятой используется тот факт, что произведение двух дробных чисел также является дробным числом, а произведение двух целых чисел — это целое число. Проиллюстрируем сказанное на примере.
Пример 13.2
Возведите 0,5625 в квадрат, используя арифметику с дополнением до двух с фиксированной запятой. Предполагается формат Q4.
Решение
0
0 00000 0100
000
00
0
1001 = 0,5625
1001 = 0,5625
1
00
000
1001
000101
0001
т двоичная запятая
при квантовании произведения бит теряется
После сдвига влево (для удаления дополнительного бита) и округления получаем окончательный ответ: 0 0101 = 0,25 + 2-4 = 0,3125 (точный ответ — 0,31640625).
Из примера 13.2 видно, что после умножения получается дополнительный бит знака, и что произведение двух 5-битовых чисел имеет длину 10 бит, так что результат следует округлить или усечь до 5 бит перед записью в память. Вообще, произведение двух 5-битовых чисел имеет длину 25 бит. Например, 10-битовый результат смещается на один элемент влево для удаления добавочного бита знака, а затем округляется до 0,0101. Округление (или усечение) результата, как иллюстрируется выше, является одним из главных преимуществ дробной арифметики с дополнением до двух, поскольку оно означает, что при умножении никогда не произойдет переполнения. Впрочем, подобное округление (или усечение) вносит в сигнал ошибки, которые могут привести к неустойчивости или некоторым нежелательным побочным эффектам в системах ЦОС с обратной связью.
Сложение с фиксированной запятой
Сложение двух дробей с фиксированной запятой значительно сложнее умножения. Это объясняется тем, что операнды должны представляться в одном Q-формате, кроме того, следует учитывать возможность переполнения.
Пример 13.3
Найдите сумму следующих чисел, представленных в формате дополнения до двух: 0001 1001 и ОНО 1101 011 1101.
Решение
Вначале операнды выражаются в одном Q-формате, а затем складываются:
0110 1101 0111 1101
0001 1001 0000 0000
1000 0110 0111 1101 | переполнение
Один из способов скорректировать переполнение — это сместить результат на одну позицию вправо, а затем установить метку экспоненты. Таким образом, ответ получается следующим:
1 0100 ООН ООП 1110
т
метка экспоненты
Другая альтернатива — это представить результат с использованием двойной точности или предоставить достаточное свободное пространство, чтобы разрешить расширение вследствие переполнения.
Пример 13.4
Пусть размер регистра составляет 4 бит (1 бит знака и 3 бит данных). Найдите сумму следующих чисел:
-0,25 и 0,75;
0,5; 0,75; -0,5.
Решение
Из табл. 13.2 находим: 0,25ю — 0,0102; 0,510 = 0,1002 и 0,75ю = 0,1102.
0,75 0,110
-0,25 1,110
0,50 10,100
Ответ: 0,100.
0,5 0,100
+0,75 0,110
1,25 1,010 «— частичная сумма
-0,50 1,100
0,75 1 О, ПО «— окончательная сумма
Ответ: 0,110.
Арифметика с плавающей запятой
Представление в формате с плавающей запятой
Двоичное число X в формате с плавающей запятой представляется как произведение двух чисел со знаком — мантиссы М и экспоненты Е:
Х = М-2Е,(13.3)
где 2 — основание двоичной системы.
Экспонента определяет диапазон чисел, которые можно представить, мантисса — это точность чисел. Например, если экспонента и мантисса представлены 8 и 16 бит соответственно, диапазон чисел с плавающей запятой, которые можно представить, в данном случае — от 0,5 х 2-128 до 1 — (2~15) х 2128. Из 16 бит, используемых для представления мантиссы, один — это бит знака, а самый младший разряд имеет сомнительную точность из-за эффектов округления. Следовательно, точность чисел с плавающей запятой составляет 1 в степени 214 (0,61 х 104), т.е. порядка 4 десятичных цифр.
ЗнакНеявная двоичная запятая
| Поле экспоненты |Поле значащих цифр
S
Е,
Е6
Е,
Е,
Ез
е2
Е,
Е,
Е22
f21
Е»
Е„
F»
F,7
Fit
Fis
FM
Ft,
fI2
Fii
F,o
F,
F,
F,
F6
Fs
F4
F3
f2
F,
Fo
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 И 10 9 8 7 6 5 4 3 2 1 0
Самое значащее слово
Наименее значащее слово
Рис. 13.1. Представление с плавающей запятой (формат IEEE обычной точности)
Формат с плавающей запятой IEEE
Одной из наиболее широко используемых двоичных систем с плавающей запятой является стандарт IEEE 754 [9, 15]. Формат обычной точности представлен на рис. 13.1. В данном случае числа с плавающей запятой с экспонентой в диапазоне 0 < Е < 255 называются нормированными.
Десятичный эквивалент X нормированного числа с плавающей запятой в формате IEEE равен
Л" = (-l)s(l ■ jF)2£-127,
где
F — мантисса дробной части в формате дополнения до двух, представленная битами от 0 до 22.
Е — экспонента в форме представления “с избытком 127”.
s = 0 для положительных чисел, s = 1 для отрицательных чисел.
Две важные особенности формата IEEE с плавающей запятой — перед мантиссой предполагается наличие 1 и используется смещенный порядок (biased exponent).
Пример 13.5
Для числа с плавающей запятой
01000 ООН.1100... 00000
экспонента равна 1000 ООП = 131, мантисса — 0,1100... = 0,75 и s = 0. Следовательно, X = (1,75)2131~127 = 1 х 1,75 х 24.
Для числа с плавающей запятой
1 0000 1111.0110... 00000
экспонента равна 0000 1111 = 15, мантисса — 0, ОНО... = 0,375 и s = 1. Следовательно, X = (1,375)215”127 = -1 х 1,375 х 2"112.
Сложение и умножение с плавающей запятой
Если Хг и Х2 — два числа с плавающей запятой, сумму которых нужно найти, причем Xi = Мг х 2B1 и Х2 = М2 х 2£2, их сумма X равна
X = М х 2е,
где
М = Mi + М2 х 2£1~£2; Е = Ei, предполагая, что Хг > Х2.(13.4)
Перед сложением двух чисел с плавающей запятой необходимо уравнять их экспоненты. Этот процесс называется выравниваем и включает сдвиг вправо мантиссы меньшего операнда и увеличение его экспоненты, пока она не сравняется с экспонентой большего операнда.
Если Хг и Х2 — два надлежащим образом нормированных числа с плавающей запятой, произведение которых нужно найти, причем
Хх = Мхх 2E1, Х2 = М2 х 2е2,(13.5)
тогда их произведение X записывается следующим образом:
Х = М х2Е, где
М = Mi х М2, Е = Ei+ Е2.
Таким образом, мантиссы умножаются и их экспоненты складываются. Поскольку Mi и М2 — нормированы, их произведение М будет принадлежать диапазону 0,25 < М < 1. Следовательно, произведение М не вызывает переполнения, но может быть неверно нормировано (“антипереполнение” мантиссы).
Пример 13.6
Найдите сумму двух чисел А и В, где А = 9,985 х 104 и В = 5,6756 х 102.
Найдите произведение двух чисел А и В, где А = 2,75 х 10-16 и В = 4,5 х 1010.
Решение
Прежде всего экспоненты двух чисел сравниваются, и если они не равны, мантисса операнда с меньшей экспонентой смещается так, чтобы две экспоненты стали равными:
5,6756 х 1062 = 0,056756 х 104.
Затем мантиссы складываются:
М = 9,985 +0,056756 = 10,041756; Е = 104
и их сумма равна 10,041756 х 104. Затем сумма нормируется—смещается десятичная точка мантиссы и (при необходимости) выравнивается экспонента — и получается окончательный ответ:
1,0041756 х 105.
Мантиссы перемножаются и экспоненты складываются:
М = 2,75 х 4,5 = 12,375; Е = -16 + 10 = -6,
в результате получается произведение А х В = 12,375 х 10-6. Далее произведение нормируется, причем предполагается, что должным образом нормированное число с плавающей запятой меньше 10, — для этого выравнивается экспонента и меняется положение десятичной точки в мантиссе. В результате получаем
А х В = 1,2375 х 10-5.
В арифметике с плавающей запятой ошибки округления возникают и при сложении, и при умножении, тогда как в арифметике с фиксированной запятой ошибки округления возможны только при умножении. Впрочем, в отличие от переполнения в арифметике с фиксированной запятой, переполнение при сложении с плавающей запятой крайне маловероятно из-за очень большого доступного динамического диапазона: чем больше битов в экспоненте, тем шире динамический диапазон. В настоящее время значительное распространение получили программы и процессоры ЦОС с плавающей запятой (см. главу 12).
Шум квантования АЦП и качество сигнала
АЦП квантует аналоговый входной сигнал в конечное число битов, обычно 8, 12 или 16, что приводит к появлению шума квантования.
Как обсуждалось в главе 2, мощность шума квантования (или дисперсия, <ТдЦП) записывается следующим образом:
(13.6)(13.6)•2 = ^ = ^А 123 ’
(13.6)
(13.6)
где g — размер шага квантования, а В — число битов АЦП. Очевидно, что уровень шума можно легко уменьшить, увеличив число битов АЦП. Кроме того, можно также снизить этот шум, используя методы обработки при нескольких скоростях (см. главу 9). Вообще, для значений В, превышающих 12 бит, шум из-за ошибки квантования незначителен, исключая такие приложения, как профессиональное аудио, где для получения приемлемого качества требуется не менее 16 бит.
Шум, вызванный квантованием АЦП, существует в системе ЦОС как неизбежная ошибка. Мощность шума, введенного АЦП, на выходе системы ЦОС записывается следующим образом:
.2 _ „2.2 _ „212тгг12тггz — '2z — '2(13.7, а)(13.7, а)
.2 _ „2
.2 _ „2
1
2тгг
1
2тгг
z — '2
z — '2
(13.7, а)
(13.7, а)
гдегде(13.7,6)
где
где
fc=O
сг^д — шум квантования АЦП на выходе системы;
^ — контурный интеграл;
Цк) — импульсная характеристика системы.
Выражение в квадратных скобках можно рассматривать как “коэффициент усиления системы по мощности”, который определяет усиление (или изменение) шума АЦП в зависимости от характеристик системы ЦОС.
Пример 13.7
На входе системы ЦОС, которая характеризуется указанной ниже передаточной функцией, расположен 8-битовый АЦП.
Оцените стационарную мощность шума квантования на выходе системы.
Решение■
Мощность шума, введенного АЦП, на входе системы составляет (уравнение (13.6)):
9-16_2 _ "А 3 ‘
Выходной шум, порожденный АЦП, выражается следующим образом:
^а^^),к=0^а^^),к=0(13.8)(13.8)
^а^^),к=0
^а^^),к=0
(13.8)
(13.8)
где £. обозначает контурный интеграл, a h^k) — импульсная характеристика системы (см. главу 4). Выражение в квадратных скобках можно рассматривать как коэффициент усиления системы, который отражает изменение мощности шума АЦП.
Рис. 13.2. Иллюстрация влияния шума округления в обработке сигналов на уровень собственных шумов системы
Для выбранной простой передаточной функции выражение в квадратных скобках можно легко вычислить, используя метод вычетов, рассмотренный в главе 4. Используя результаты, полученные в главе 4, и единичную окружность в качестве контура интегрирования, получаем, что выражение в квадратных скобках равно 4/3. Следовательно, мощность шума квантования равна
22-164
а°А~ 3 х 3'
Шум АЦП плюс шум, присущий сигналу, определяет минимальный уровень шума на входе. Для поддержания качества сигнала уровень искажения, введенный последующей цифровой обработкой, должен быть ниже этого минимального уровня шумов. На рис. 13.2 приведен пример системы ЦОС, в которой шум, введенный цифровой обработкой сигнала (в данном случае — КИХ-фильтрацией) превышает уровень входного шума [21]. В подобных случаях требуется принимать меры для подавления шума до уровня собственных шумов (например, с помощью системы обратной связи по ошибке округления или процессора с достаточно большой длиной слова).
На практике число битов, используемых для представления входных данных, определяет динамический диапазон и качество сигнала. Например, в потребительских системах проигрывания аудиокомпакт-дисков аудиовход представляется как-16-битовые выборки, что соответствует теоретическому уровню сигнал-шум в 96 дБ. Для поддержания требуемого качества операции ЦОС должны выполняться с длиной слова не менее 24 бит. При длине слова процессора 16 бит динамический диапазон равен 96 дБ, но с учетом ошибок вычисления эффективный динамический диапазон будет меньше. Следовательно, при анализе эффектов конечной разрядности важно также рассматривать качество входного сигнала.
Эффекты конечной разрядно БИХ-филырах
Коэффициенты ак и Ък, полученные на этапе 2 разработки БИХ-фильтра, имеют бесконечную или очень высокую точность, обычно это шесть десятичных разрядов. При реализации цифрового БИХ-фильтра на небольшой системе, такой как 8-битовый микрокомпьютер, возникают ошибки в представлении коэффициентов фильтра и выполнении арифметических операций, определяемых разностным уравнением. Данные ошибки снижают производительность фильтра и в крайних случаях приводят к неустойчивости фильтра.
Перед реализацией БИХ-фильтра важно убедиться, что снижение производительности, вызванное эффектами конечной разрядности, минимально, и, если это не так, принять необходимые меры. Вообще, влияние указанных ошибок можно снизить до приемлемого уровня, используя больше битов, но это может привести к повышению стоимости системы.
Перечислим основные ошибки цифровых БИХ-фильтров.
Шум квантования АЦП, проистекающий от представления выборок входных данных х(п) малым числом битов.
Ошибки квантования коэффициентов, вызванные представлением коэффициентов БИХ-фильтров конечным числом битов.
Ошибки переполнения, которые происходят при сложении или промежуточном суммировании частичных результатов в регистре ограниченной длины.
Ошибки округления результата, когда выход у(п) и результаты внутренних арифметических операций округляются (или усекаются) до разрешенной длины слова.
Степень ухудшения фильтра зависит от, во-первых, длины слова и типа арифметики, используемой для выполнения операции фильтрации, во-вторых, метода, используемого для квантования коэффициентов и переменных фильтра, и, в-третьих, структуры фильтра. Зная данные факторы, разработчик может оценить влияние конечной разрядности на производительность фильтра и при необходимости принять меры. В зависимости от реализации фильтра, некоторые эффекты могут быть незначительными. Например, если фильтр реализуется как программа на языке высокого уровня преимущественно на больших компьютерах, ошибки квантования коэффициентов и округления несущественны. При обработке в реальном времени входные и выходные сигналы, коэффициенты фильтра и результаты арифметических операций представляются с использованием слов конечной длины (обычно 8, 12 и 16 бит). В таких случаях практически всегда необходимо проанализировать влияние квантования на производительность фильтра.
Влияние конечной разрядности на производительность более сложно проанализировать для БИХ-фильтров, чем для КИХ-фильтров, вследствие наличия обратной связи. В то же время, компьютерная поддержка позволяет для определенных фильтров найти выгодные практические решения. Влияние каждого из четырех перечисленных источников ошибок рассматривается ниже в этой главе.
3.4.1. Влияние структуры фильтра на эффекты конечной разрядности
Как уже говорилось, БИХ-фильтры можно представить с помощью разнообразных структур, которые теоретически эквивалентны. В то же время, при реализации на процессорах ЦОС с фиксированной или плавающей запятой поведение фильтров может существенно различаться.
На практике БИХ-фильтры часто реализуются с использованием структур второго порядка прямой формы I или прямой формы II (канонической) (рис. 13.1 и 13.2). Прямая форма I характеризуется следующим образом:
22
У^ = 52 ^^ ~ 1) — 52 а*У^п ~ ^ — разностное уравнение г—Ог=1
г,, ч b0 + b1z~1 + b^z-2
п(z) = :- — передаточная функция
1 + a^z-1 + a2z-2
5 коэффициентов фильтра;
4 элемента задержки;
1 сумматор (4 сложения)
1 точка квантования для сумм произведений;
1 умножитель (5 умножений);
9 ячеек памяти для хранения данных и коэффициентов.
Каноническое звено характеризуется следующим образом:
► — двухэтапное разностное уравнение► — двухэтапное разностное уравнение2у(п) = Е Ь;ш(п - г)i=0
► — двухэтапное разностное уравнение
► — двухэтапное разностное уравнение
2
w(n) = x(n) — J2 <nw(n — г) 1=1
Я(г) =Я(г) =Ь0 + byZ 1 + 62Z 2.
Я(г) =
Я(г) =
: — передаточная функция
1 + QjZ-1 + a2z~2
5 коэффициентов фильтра;
2 элемента задержки;
2 сумматора (4 сложения)
2 точки квантования для сумм произведений;
1 умножитель (5 умножений);
7 ячеек памяти для хранения данных и коэффициентов.
Отметим, что хотя две передаточные функции теоретически одинаковы, между ними существуют важные отличия. Например, в структуре, реализованной в прямой форме I (рис. 13.3, а), члены прямой связи (относятся к нулям) предшествуют членам обратной связи (относятся к полюсам). Для канонического звена (рис. 13.3, б) все наоборот. В результате, на практике полюса канонического звена имеют тенденцию к дальнейшему усилению шума, генерируемого при вычислениях.
Рис. 13.3. Стандартные блоки БИХ-фильтров: а) звено второго порядка, реализованное в прямой форме I; б) каноническое звено второго порядка
Различия между двумя структурами более очевидны, если непосредственно сравнивать рис. 13.3, а и б. Реализация в прямой форме I (рис. 13.3, а) имеет только 1 сумматор и 1 точку квантования для сумм произведений, тогда как каноническое звено (рис. 13.3, б) имеет 2 сумматора и 2 точки квантования. Выход левого сумматора на рис. 13.3, б приходится на внутренний узел w(n). Следовательно, каноническое звено подвержено внутреннему самоподдерживающемуся переполнению. Реализация в прямой форме I не содержит внутреннего узла, и переполнение на ее выходе при сложении в арифметике дополнения до двух является либо самоисправляющимся, либо его легко скорректировать извне. Более того, вход такого звена т(п) масштабируется на коэффициент Ьо, в отличие от канонического звена, где вход никак не ограничивается. Следовательно, видно, что структура, использованная для реализации функции ЦОС (в данном случае — КИХ-фильтрации), существенно влияет на производительность итоговой системы ЦОС.
На практике БИХ-фильтры больших порядков реализуются в форме каскадного или параллельного соединения стандартных блоков второго порядка (рис. 13.4). При каскадном соединении возникает три вопроса:
как выбрать пары “множитель числителя-множитель знаменателя” и определить коэффициенты блоков второго порядка;
Рис. 13.4. Структуры реализации БИХ-фильтров больших порядков
в какой последовательности соединить блоки второго порядка;
как масштабировать уровни сигналов в различных точках суммарного фильтра, чтобы они согласовывались с разрешенной длиной слова.
Как обсуждалось в главе 8, разбиение на пары и упорядочение звеньев фильтра тесно связано с эффектами конечной разрядности. В зависимости от порядка фильтра допускается существование множества эквивалентных структур, образованных переупорядочением звеньев второго порядка, но с точки зрения ошибок конечной разрядности данные структуры не равнозначны. Чтобы определить подходящую конфигурацию фильтра, можно, например, использовать программу анализа эффектов конечной разрядности из книги [10].
При параллельной реализации порядок соединения звеньев значения не имеет.
13.4.2. Ошибки квантования коэффициентов
БИХ-фильтр характеризуется следующим уравнением:
N
Ё bkz'k
+ Ё akz~kк=1
[Н(^]ч =.
+ Ё
*=1
где
[о*:]9 — dk + Да»; [Ь*:]9 = Ьк + 2\Ьк;
/ХакДЬк — изменение коэффициентов ак и Ьк соответственно, q обозначает квантованную величину.
Основное влияние квантования коэффициентов фильтра с использованием конечного числа битов проявляется в изменении положения полюсов и нулей Я(и) на комплексной плоскости. В узкополосных фильтрах, например, полюса расположены близко к единичной окружности, так что любое значительное изменение их положения может сделать фильтр неустойчивым. Чем меньше число битов, используемых для представления коэффициентов, тем большим будет изменение положения полюсов и нулей.
Помимо потенциальной неустойчивости смещение положений полюсов и нулей также приводит к изменению частотной характеристики. Квантованный фильтр всегда следует проанализировать, чтобы убедиться, что используемой длины слова достаточно для обеспечения устойчивости и удовлетворительной частотной характеристики. Следовательно, на этом этапе разработчик должен определить число битов, требуемых для представления коэффициентов фильтра.
Пример 13.8
Полосовой цифровой фильтр планируется использовать для цифрового восстановления тактовой синхронизации в модеме 4,8 Кбит/с при частоте дискретизации 153,6 кГц. Фильтр характеризуется следующей передаточной функцией:
1 + axz-x + a^z-1'
где
ах = -1,957558 и а2 = 0,995913.
Оцените влияние квантования коэффициентов до 8 бит на положение полюсов, а следовательно, центральную частоту.
Решение
Вначале найдем положения всех полюсов неквантованного фильтра. Радиус г и угол 9 полюса (см. уравнение (13.10)) записываются как
г = V0,995913 = 0,99795, 9 = arccos ( 1-’-9^7558 ) = П,25°.у 2г /
Найденные величины соответствуют центральной частоте
^^ X 153,6 х 103 = 4,7999 кГц.
Далее квантуем коэффициенты до 8 бит. Поскольку один коэффициент больше единицы, выделим 1 бит для хранения бита знака, 1 бит для целой и 6 бит — для дробной части коэффициента. Таким образом, после квантования коэффициенты приобретают такие значения:
а! = -1,957558 х 26 = -125 = 10000100,
а2 = 0,995913 х 26 = 63 = 00111111.
В дробной записи значения квантованных коэффициентов имеют такой вид:
12563
, «! = ——— =—1,953125; а2 = — = 0,984375.х 164’64
Новое положение полюса: г — 0,992156, 9 = 10,171853°; центральная частота смещается в положение
,/10,171853 \,„„
/о = ( — j х 153,6 х 103 = 4,3399 кГц.
Требования к длинам коэффициентов с точки зрения устойчивости и желаемой частотной характеристики
Далее обсуждение устойчивости будет касаться только звеньев второго порядка, являющихся основой любого фильтра. Рассмотрим звено второго порядка, которое характеризуется следующими уравнениями:
_ 6oJ^i£2_+b2£2
1 + QtZ-1 + a2z~2 ’
2
1/(п) = 52 ^к1^ - fc) - 52 акУ^П ~ fc)-/с=0/с=1
Полюса (или корни знаменателя) расположены в точках
Pi = |[~ai + (а1 — 4а2)1/2],(13.9, а)
P2 = 5[-«i-(«?-4a2)1/2].(13.9,6)
Каждое звено второго порядка может иметь полюса трех типов: комплексно-сопряженные, неравные действительные и равные действительные. Наиболее распространенный случай — это комплексно-сопряженные полюса, которые появляются при а2 < 4а2. В данном случае полюса расположены на окружности радиуса г с центром в начале координат с угловыми координатами
Pi = rZ6,p2 = rZ — 6,(13.10)
где/Л \
1/2 л\
г =0 = arccos —— ).
\2г/
Небольшие изменения коэффициентов ах и а2 после квантования коэффициентов приведут к изменениям г и 6. Чтобы обеспечить устойчивость, коэффициенты фильтра должны лежать внутри треугольника устойчивости (рис. 13.5), который ограничен следующими линиями:
0 < |а2| < 1,(13.11, а)
|ai|<l+-e2.(13.11,6)
Выполнение первого условия гарантирует, что полюса будут лежать внутри единичной окружности, поскольку радиус полюса определяется уравнением (13.10). Из уравнений (13.10) и (13.11) находим, что для оценки числа битов, требуемых для поддержания устойчивости, можно получить несколько простых формул, которые, впрочем, применимы к ограниченному набору классов. Альтернативным способом оценки подходящих
Рис. 13.5. Треугольник устойчивости, показывающий значения коэффициентов фильтра oi и 02, при которых фильтр устойчив
длин коэффициентов является анализ отдельных блоков второго порядка при различных значениях длин коэффициентов (см. пример 13.9).
Числа битов, необходимых для обеспечения устойчивости, может быть недостаточно для получения приемлемой характеристики. Вообще, при представлении коэффициентов слишком малым числом битов меняется частотная характеристика в полосе пропускания и полосе подавления (см. рис. 13.6). Изменения в полосе пропускания вызваны в основном изменением положений полюсов, а изменения в полосе подавления — изменением положений нулей.
Для определения длины коэффициентов, обеспечивающей удовлетворительную частотную характеристику, обычно находится минимальная длина коэффициентов, при которой удовлетворяются требования в полосе подавления и пропускания. Хотя такой подход может быть вычислительно трудоемким, доступность персональных компьютеров и программ анализа эффектов конечной разрядности позволяет относительно просто определить длину слова для данного фильтра (пример подобной программы приводится в книге [10]). Альтернативный подход — использовать статистический метод, чтобы получить разумно точные оценки [2].
Для представления коэффициентов можно использовать меньшее число битов, если для квантования коэффициентов применить метод оптимизации или увеличить порядок фильтра, не меняя остальные параметры. Таким образом можно использовать компромиссы между длиной коэффициентов и порядком фильтра [16]. Например, перед разработчиком может стоять задача использования существующего процессора или системы с предопределенной длиной слова. Если разработчик видит, что требуемая длина слова больше длины слова процессора, может быть удобнее повысить порядок фильтра для уменьшения требований к длине слова до уровня, который предписывает процессор. Впрочем, использование фильтров больших порядков потребует больше вычислений, что может наложить определенные ограничения на скорость работы и сделать систему более уязвимой к шуму округления. Таким образом, все компромиссы следует рассматривать очень тщательно.
Частота (Гц)
Рис. 13.6. Практическое влияние квантования коэффициентов на частотную характеристику: ■ — неквантованные коэффициенты; □ — коэффициенты квантованы до 5 бит
Пример 13.9
Требуется цифровой фильтр, удовлетворяющий следующим спецификациям частотной характеристики:
полоса пропускания20,5-23,5 кГц,
полоса подавления0-19, 25-50 кГц,
неравномерность в полосе пропускания < 0,25 дБ,
затухание в полосе подавления> 45 дБ,
частота дискретизации100 кГц.
Найдите подходящую передаточную функцию фильтра.
Определите подходящую длину коэффициентов,
обеспечивающую устойчивость;
удовлетворяющую спецификациям частотной характеристики.
Изобразите частотную характеристику неквантованного и характеристику квантованных фильтров, полученных в п. 2.~
Решение
Используя программу разработки (книга [10], подробности см. в предисловии), находим, что требованиям удовлетворяет эллиптический фильтр со следующей передаточной функцией:
Я(г) = H1(z)H2(z)H3(z)H4(z),
где
яп =1 + 0,03392-!+2-2
1 -0,1743г-1 + 0,9662z-2’
яп_ 1 -0,7563г-1+2-2
“ 1 -0,5588Z"1 + 0,9675z-2 ’
1 + 0,5331z-1 + г-2
1-0,27Hz-1 + 0,9028г"2’
1 - 1,1489г"1 + z"2
“ 1 - 0,4441г"1 + 0,9045Z-2 ’
а. Коэффициенты знаменателя каждого звена второго порядка были проквантованы (округлены) до В бит (В = 2,3,..., 29), включая бит знака. Затем для каждого значения В были вычислены квантованные коэффициенты и положения полюсов в полярных координатах. Рассмотрим для иллюстрации первое звено второго порядка с передаточной функцией Hi(z). Для В = 8 бит коэффициенты знаменателя квантуются следующим образом:
О! = -(0,1743 х 27 + 0,5) = -22,8104 = -22,
а2 = 0,9662 х 27 + 0,5 = 124,1736 = 124.
В дробной записи коэффициенты имеют следующий вид:
О! = -22/128 = -0,171875,
а2 = 124/128 = 0,96875.
Из уравнения (13.10) находим, что радиус и угол полюса звена при В = 8 бит равны
г = V0-96875 = °, 9843,
9 = arccos ( —= arccos (0,087308) = 84,99°.
Все квантованные коэффициенты и полярные координаты вычислены с использованием программы анализа. Если при некоторой длине слова радиальное расстояние от полюса до начала координат равно или превышает 1, возникает потенциальная неустойчивость. При анализе было найдено, что для поддержания устойчивости требуется не меньше В = 5 бит. Вообще, если полюс неквантованного звена второго порядка лежит на окружности с радиусом г < 0,9, неустойчивость маловероятна, если использовать длину слова 8 бит или больше.
б. Коэффициенты звеньев второго порядка квантовались до различных длин слов, как описано выше. Для каждой длины слова квантованные коэффициенты собирались в общую квантованную передаточную функцию фильтра, реализованного в прямой форме. Примеры коэффициентов при длинах слов 5 и 16 бит приведены в табл. 13.4. Были также рассчитаны неравномерность в полосе пропускания и
затухание в полосе подавления квантованного фильтра для различных размеров коэффициентов. Было найдено, что для удовлетворения спецификаций частотной характеристики в полосе подавления и полосе затухания требуется 16 или более бит. Отметим, что это больше, чем нужно для обеспечения устойчивости.
Частотные характеристики, масштабированные так, чтобы максимум располагался на 0 дБ, с квантованными и неквантованными коэффициентами (В = 5 бит) изображены на рис. 13.6. Визуально характеристика фильтра, квантованного до 16 бит, не отличается от характеристики фильтра с неквантованными коэффициентами, поэтому на рисунке она не показана.
Таблица 13.4. Коэффициенты фильтра (пример 13.9), демонстрирующие эффекты конечной разрядности
к
Точно
5 бит
16 бит
Точно
5 бит
16 бит
0
1,000 000
1,000 000
1,000 000
1,000 000
1,000 000
1,000 000
1
-1,338 200
-1,250 000
-1,338 165
-1,448 300
-1,437 500
-1,448 273
2
3.806 737
3, 707 031
3,806 700
4,483 108
4,355 469 0
4,483 071
3
-3,556 357
-3,288 574
-3, 556 255
-4,220 527
-4,060 791
-4,220 431
4
5,629 177
5,443 726
5,629 105
6,647 162
6,261 536
6,647 087
5
-3,556 357
-3,288 574
-3,556 255
-3,945 450
-3,677 216
-3,945 354
6
3,806 737
3,707 031
3,806 700
3,918 398 1
3,573 486
3,918 352
7
-1.338 200
-1,250 000
-1,338 165
-1,182 602 0
-1,067 047
-1,182 575
8
1,000 000
1,000 000
1,000 000
0,763 340 2
0,672 912
0,763 338
Ошибки переполнения при сложении
В арифметике с дополнением до двух при сложении двух больших чисел одного знака может произойти переполнение (т.е. получиться результат, который превышает приемлемую длину слова), а это приведет к изменению знака выходной выборки. Таким образом, очень большое положительное число становится очень большим отрицательным числом, и наоборот (рис. 13.7). Рассмотрим каноническое звено, изображенное на рис. 13.8. Вследствие рекурсивной природы БИХ-фильтра переполнение в узле w(n) переходит по обратной связи и используется для вычисления следующего выхода, где оно может вызвать дальнейшее переполнение и привести к нежелательным самопод- держивающимся осцилляциям. Подобные масштабные граничные циклы переполнения трудно остановить после их возникновения, чтобы их прекратить, следует повторно инициализировать фильтр.
Масштабное переполнение происходит на выходах сумматоров, и его можно предотвратить путем масштабирования входов сумматоров так, чтобы выходы были малыми, хотя такое решение возможно за счет снижения отношения сигнал-шум. Таким образом, важно выбрать масштабные множители так, чтобы предотвратить переполнение и при этом сохранить наибольшее возможное отношение сигнал-шум.
Рис. 13.7. Характеристики переполнения в арифметике с дополнением до двух. Переполнение происходит в моменты, когда вход выходит из приемлемого диапазона (—1,1)
Рис. 13.8. Иллюстрация эффекта переполнения при сложении. Большие входы одного знака в сумматоре I приводят к тому, что значение в узле w(n) становится слишком большим. Поскольку w(n) возвращается по обратной связи, эффект является самоподдерживающимся
Рис. 13.9. Принципы масштабирования в звеньях второго порядка: а) каноническое звено; 6) реализация в прямой формеРис. 13.9. Принципы масштабирования в звеньях второго порядка: а) каноническое звено; 6) реализация в прямой форме
Рис. 13.9. Принципы масштабирования в звеньях второго порядка: а) каноническое звено; 6) реализация в прямой форме
Рис. 13.9. Принципы масштабирования в звеньях второго порядка: а) каноническое звено; 6) реализация в прямой форме
Принципы масштабирования
Каноническое звено
Рассмотрим каноническое звено второго порядка (рис. 13.9, а). Масштабный множитель «1 на входе фильтра выбирается так, чтобы предотвратить переполнение или снизить его вероятность на выходе левого сумматора. Чтобы поддержать общее усиление фильтра на предыдущем уровне, коэффициенты числителя умножаются на si.
Существует три распространенных метода определения подходящих масштабных множителей фильтра. В первом методе, который часто называют нормой Lx, масштабный множитель выбирается следующим образом:
(13.12)(13.12)«1 = Е№1-fc=O
(13.12)
(13.12)
где f^ — импульсная характеристика, связывающая вход системы с выходом первого сумматора, т.е. узлом w(n). Выбранный таким способом масштабный множитель Sj гарантирует, что общее усиление фильтра от входа до узла w(n) равно единице, поэтому переполнение в ш(п) невозможно. Для получения импульсной характеристики /(к) можно вначале определить соответствующую передаточную функцию F^z\ а затем применить к ней обратное z-преобразование.
Во втором методе, часто называемом нормой L2, масштабный множитель sx определяется следующим образом:
81 =81 =£/2№£/2№1/21/2(13.13)(13.13)
81 =
81 =
£/2№
£/2№
1/2
1/2
(13.13)
(13.13)
Нормировочный множитель L2 можно получить иначе, использовав контурный интеграл
4/1 v JА«4/1 v JА«(13.14)(13.14)
4/1 v JА«
4/1 v JА«
(13.14)
(13.14)
где F(z) — z-образ (результат применения z-преобразования) /(k), a j> обозначает контурный интеграл по единичной окружности |z| = 1. Вычисляя норму L2, получаем:
812тгг J 1 + a^z-1 + a2z-2 1 + aTz + a2z2 z
к=°(13.15)
1
1 — а| — aj(l — а2)/(1 + а2)
Формула (13.15) позволяет обойтись без вычисления бесконечной суммы (13.13). На практике, впрочем, /(к) имеет лишь конечное число значимых членов, и эту функцию легко вычислить с помощью подходящей программы анализа эффектов конечной разрядности.
В методе 3 используется так называемая норма L^ и масштабный множитель определяется следующим образом:
(13.16)(13.16)Si = max |F(w)|,
(13.16)
(13.16)
где F(w) — максимальная амплитуда частотной характеристики между входом и узлом ш(п).
В методе 1 изначально предполагается, что вход ограничен, т.е. |т(п)| < 1. Схема масштабирования такова, что вне зависимости от типа входа переполнения не будет. Это чересчур радикальная схема масштабирования, поскольку она учитывает маловероятные ситуации. Норма L2 соответствует наложению условий на энергию входного сигнала и передаточной функции. Основным привлекательным отличием нормы L2 является то, что анализ эффектов конечной разрядности требует оценки норм L2 (сравните, например, уравнение (13.8) и (13.14)). Кроме того, эта норма позволяет вывести ряд аналитических выражений для различных фильтрующих структур. Метод 3 гарантирует, что в фильтре не случится переполнения при подаче на его вход синусоидального сигнала, также этот фильтр предлагает наилучший компромисс. Обычно, кстати, именно такую схему масштабирования и выбирают, поскольку она позволяет проверить экспериментально эффективность масштабирования с помощью синусоидальных сигналов.
Для компактного представления г-го масштабного множителя используется запись
Si = l|F||P,
Рис. 13.10. Блок-схема фильтра (пример 13.9)
где символ || ■ || обозначает норму, а р = 1,2, ос — тип нормы. Масштабные множители, полученные с использованием описанных трех методов, подчиняются следующему соотношению:
Li < Loo < Lx.
Прямая структура
Рассмотрим прямую структуру, изображенную на рис. 13.9, б. Поскольку фильтр имеет один накопитель, внутреннее переполнение проблемы не представляет, так что масштабирование входа не является обязательным. Этот момент — одно из привлекательных отличий прямой структуры. Промежуточное переполнение возможно на выходе сумматора при вычислении у(п). Впрочем, это несущественно, если гарантировать, что в конечном выходе переполнения не будет. Если масштабирование необходимо, масштабные множители можно упорядочить, как показано на рис. 13.9.
Пример 13.10
Определите подходящий масштабный множитель, позволяющий предотвратить или снизить возможность переполнения в БИХ-фильтре нижних частот, который характеризуется следующей передаточной функцией:
l + 2z-1 + г-2
1 - 1,0581359г-1 + 0,338544г"2'
Решение
Блок-схема фильтра, построенного на канонических звеньях второго порядка, показана на рис. 13.10. Используя программу анализа эффектов конечной разрядности [10] для расчета уравнений (13.12), (13.13) и (13.16), получим масштабные множители для трех методов:
Рис. 13.11. Масштабирование в каскадной реализации БИХ-фильтра шестого порядкаРис. 13.11. Масштабирование в каскадной реализации БИХ-фильтра шестого порядка
Рис. 13.11. Масштабирование в каскадной реализации БИХ-фильтра шестого порядка
Рис. 13.11. Масштабирование в каскадной реализации БИХ-фильтра шестого порядка
£1^2i'oo
Si 3,7112 1,7352 3,5663
Просто для иллюстрации вычислим также норму L2, используя уравнение (13.15):
s2 =1
11 - (0,3385)2 - (1,058)2 [(-0,3385)/(1 + 0,3385)]
= 1/0,3322 = 3,01,
si = 1,7350.
Масштабирование при каскадной реализации
На практике фильтры реализуются как каскадные или параллельные комбинации звеньев второго порядка. На рис. 13.11 показана схема масштабирования каскадной реализации шестого порядка. Как и ранее, масштабные коэффициенты si} г = 1,2,3 выбираются так, чтобы предотвратить или минимизировать переполнение в звеньях фильтра в узлах, отмеченных Wj(n). Схема масштабирования для каждого звена второго порядка, по сути, не отличается от схемы, используемой в базовых фильтрах, рассмотренных выше. Масштабные коэффициенты находятся следующим образом:
3<=1№)||Р,
где р обозначает тип нормы: р = 1,2, ос. ^(z) — передаточная функция, связывающая вход фильтра с узлом w^n), которая записывается так:
П W
;о, г = 1,2,3.
1 ++ a2iz~2
При каскадной реализации входные масштабные коэффициенты s-Js2 обычно вносятся в числитель первого каскада, s2/s3 — в числитель второго, и т.д. Следовательно, масштабные коэффициенты на рис. 13.11 можно переупорядочить так, как показано
Рис. 13.12. Масштабирование в каскадной реализации БИХ-фильтра шестого порядка (масштабные коэффициенты внесены в числитель, т.е. представлены коэффициенты прямой связи)
на рис. 13.12. Следует также отметить, что передаточная функция фильтра после масштабирования, как они определены выше, идентичны соответствующим параметрам немасштабированного фильтра (по крайней мере, теоретически).
Пример 13.11
Используя описанные выше три метода, сравните масштабные коэффициенты фильтра с приведенной ниже передаточной функцией, предполагая каскадную реализацию со звеньями второго порядка:
H(z) = H1(z)H2(z)H3(z),
=1 + 0,2189г"1 + z-2
1 Z — 1 - О,0127Z-1 + 0,9443z-2 ’1 -0,5291г"1 +Z-2
~ 1-0,1731г-1 + 0,7252z-2’н(х 1+ 1,5947г-1+z-23^1 — 0,6152г-1 + 0,2581г-2’
Решение
Используя программу анализа эффектов конечной разрядности и три метода определения нормы, получим масштабные множители sj, s2 и s3.
S120,96083,038813,4098
s219,03612,535810,1366
s314,44672,91466,4087
Как отмечалось выше, норма Iq всегда максимальна, a L2 — минимальна.
Рис. 13.13. Масштабирование в параллельной реализации БИХ-фильтра шестого порядкаРис. 13.13. Масштабирование в параллельной реализации БИХ-фильтра шестого порядка
Рис. 13.13. Масштабирование в параллельной реализации БИХ-фильтра шестого порядка
Рис. 13.13. Масштабирование в параллельной реализации БИХ-фильтра шестого порядка
Масштабирование в параллельной реализации
На рис. 13.13 изображена схема масштабирования для параллельной реализации БИХ-фильтра шестого порядка. Видно, что в данном случае звенья второго порядка масштабируются по отдельности, как описано выше. Масштабный множитель s, на входе каждого фильтрующего звена гарантирует, что переполнения в соответствующем узле Wi(n) не будет. Чтобы сохранить усиление звена таким же, каким оно было до масштабирования, коэффициенты прямой связи bki умножаются на s„ как показано на диаграмме. Масштабные коэффициенты выражаются следующим образом:
(13.17)(13.17)Si = IIWIP,
(13.17)
(13.17)
где Fi^ — передаточная функция от входа т(п) до узла шДп), записываемая следую
щим образом:
1 + Gli + 0212 21 + Gli + 0212 2г = 1,2,3г = 1,2,3
1 + Gli + 0212 2
1 + Gli + 0212 2
г = 1,2,3
г = 1,2,3
Пример 13.12
Сравните масштабные множители фильтра, имеющего приведенную ниже передаточную функцию, используя три метода масштабирования.
=1,2916 -0,0807г-17,5268_
1-0,131г-1 + 0,3355z-2 + 1 -0,049г"1’’
Решение
С помощью программы анализа эффектов конечной разрядности были получены следующие масштабные коэффициенты:
1/11/2Lqo
Si 1,7345 1,0667 1,5126
s2 1,0515 1,0012 1,0515
Детектирование и предотвращение переполнения на выходе
При использовании норм L2 и Loo переполнение возможно, хотя и изредка. В таких случаях обычно на выходе фильтра используется арифметика насыщения. По сути, при переполнении на выходе значение устанавливается равным наибольшему положительному или отрицательному, в зависимости от знака истинной выборки данных. Данный подход оказался эффективным при обработке переполнений конечного выхода. Если выход не насыщается, то такой подход использовать нельзя, так как он может привести к нежелательным результатам, например, раздражающим звукам в цифровом аудио. Если применяется каноническое звено, к сказанному добавить нечего. Если же используется прямая реализация, и конечный выход не модифицируется, переполнение по обратной связи пойдет на умножители и затронет последующие выходные выборки.
На рис. 13.14, а и б показаны характеристики детектирования переполнения в арифметике с дополнением до двух и арифметике насыщения соответственно. На данных рисунках через у обозначен правильный выход, а через у — выход при переполнении. В современных процессорах ЦОС наблюдается тенденция к использованию в накопителе дополнительных защитных битов, позволяющих предотвратить или снизить вероятность ошибок переполнения. Например, в процессоре DSP56300 56-битовый накопитель включает 8 защитных бит. Следовательно, в 256 случаях переполнения возникнет только одна ошибка переполнения.
Рис. 13.14. Переполнение: а — характеристика переполнения; 6 — арифметика насыщения
Ошибки округления произведения в цифровых БИХ-фильтрах
Анализ ошибок округления произведения является обширной темой. Здесь мы будем кратки и просто расскажем о природе ошибок, их влиянии и способах снижения этого влияния.
Основные операции в БИХ-фильтрации определяются знакомым разностным уравнением второго порядка:
2 2
уМ = ^2,Ькх(п- к) - ^а^п- к), (13.18) fc=O fc=l
где х(п — к) и у(п — к) — входная и выходная выборки данных, Ьк и ак — коэффициенты фильтра. На практике эти переменные часто представляются как числа с фиксированной запятой. Обычно каждое произведение Ькх(п — к) или аку(п — fc) требует большего числа битов, чем каждый операнд по отдельности. Например, произведение В-битового элемента данных и В-битового коэффициента имеет размер 2В бит. Для рекурсивных систем, если результат не сократить, последующие вычисления приведут к неограниченному росту числа битов.
Усечение или округление используется для квантования произведения до приемлемой длины слова. Квантование произведения приводит к ошибкам округления в выходных данных, а следовательно, к снижению отношения сигнал-шум. Данные ошибки могут также привести к мелкомасштабным осцилляциям выхода цифрового фильтра даже при отсутствии входа.
На рис. 13.15, а представлена блок-схема процесса квантования произведения, а на рис. 13.15, б — линейная модель эффекта квантования произведения. Модель включает идеальный умножитель с бесконечной точностью, последовательно соединенный с сумматором, на который подается выборка шума е(п), представляющая ошибку в
^л)К25битI"—IЯбит
а) ►/ Q /►
М
Рис. 13.15. Представление ошибки квантования произведения: а — блок-схема процесса квантования;
6 — линейная модель процесса квантования
квантованном произведении, причем для простоты предполагается, что ж(п), у(п) и К представлены В бит каждый. Таким образом,
у(п) = Кх(п) + е(п).(13.19)
Мощность шума, порождаемого квантованием произведения, выражается следующим образом:
где г обозначает ошибку округления, a q — шаг квантования, определяемый длиной слова, до которой квантуется произведение. Считается, что шум округления представляется случайной переменной с нулевым средним и постоянной дисперсией. Хотя такое предположение не всегда справедливо (например, при наличии слабых узкополосных сигналов), оно полезно при оценке производительности фильтра.
Шум округления может передаваться на последующие звенья системы ЦОС, где он усиливается, подавляется или модифицируется. Суммарный выходной шум, порожденный ошибками округления, зависит от структуры реализации. Если фильтр реализован в виде каскадной структуры, шум, порожденный одним звеном, подается на последующие звенья. Следовательно, звенья должны упорядочиваться так, чтобы минимизировать общий шум, вызванный ошибками квантования.
Влияние ошибок квантования на производительность фильтра
Влияние шума квантования на производительность фильтра зависит от типа используемой фильтрующей структуры и точки, в которой квантуются результаты. На рис. 13.16, а показана модель шума квантования для описанного ранее стандартного компоновочного блока, реализованного в прямой форме. На рисунке предполагается, что входные данные ж(п), выход у(п) и коэффициенты фильтра представляются как В-битовые числа (включая бит знака). После умножения произведения квантуются до В бит путем округления (или усечения).
Рис. 13.16. Модель шума квантования произведения для фильтрующего звена, реализованного в прямой форме. Все источники шума, представленные на панели а, на панели 6 объединены, поскольку выход с них поступает в одну точкуРис. 13.16. Модель шума квантования произведения для фильтрующего звена, реализованного в прямой форме. Все источники шума, представленные на панели а, на панели 6 объединены, поскольку выход с них поступает в одну точку5g2125g212(13.20)(13.20)= ^HfWII^t= ^HfWII^t(13.21)(13.21)
Рис. 13.16. Модель шума квантования произведения для фильтрующего звена, реализованного в прямой форме. Все источники шума, представленные на панели а, на панели 6 объединены, поскольку выход с них поступает в одну точку
Рис. 13.16. Модель шума квантования произведения для фильтрующего звена, реализованного в прямой форме. Все источники шума, представленные на панели а, на панели 6 объединены, поскольку выход с них поступает в одну точку
5g2
12
5g2
12
(13.20)
(13.20)
= ^HfWII^t
= ^HfWII^t
(13.21)
(13.21)
где
результат применения обратного z-преобразования к F(z\ Кроме того, /(к) — это импульсная характеристика каждого источника шума, дающего вклад в выход фильтра, Ц'111 — квадрат нормы L2, а <у2/12 — мощность шума округления внутреннего произведе-
Рис. 13.17. Модель шума квантования произведения для канонического фильтрующего звена. Все источники шума, выход которых на панели а поступает в одну точку, на панели 6 объединеныРис. 13.17. Модель шума квантования произведения для канонического фильтрующего звена. Все источники шума, выход которых на панели а поступает в одну точку, на панели 6 объединены
Рис. 13.17. Модель шума квантования произведения для канонического фильтрующего звена. Все источники шума, выход которых на панели а поступает в одну точку, на панели 6 объединены
Рис. 13.17. Модель шума квантования произведения для канонического фильтрующего звена. Все источники шума, выход которых на панели а поступает в одну точку, на панели 6 объединены
ния. Общая мощность шума на выходе фильтра — это сумма мощности шума округления произведений и мощности шума квантования АЦП (формулы (13.8) и (13.20)):
_2 „ _2_
92129212° о ~ а0А + ° or -
92
12
92
12
(13.22)(13.22)£/г2(А:) + 5^£/2(А:)
(13.22)
(13.22)
,fc=0fc=0 .
-§[I|H(z)H2 + 5S2||F(z)||2].
Для канонического звена (рис. 13.17, а) модель шума также включает масштабный множитель, поскольку само каноническое звено вносит шум округления. Выход источников шума еДп), е2(п) и e3(n) подается на левый сумматор, тогда как выход источников е4, е5 и е6 подается непосредственно на выход фильтра. Объединяя источники шума, выход которых подается на одну точку, получаем модель шума, изображенную на рис. 13.17,6. Предполагая, что источники шума не коррелируют, общий вклад шума в полезный сигнал — это просто сумма отдельных шумовых составляющих:
<т2г = Е /2(к) + ^ = ^[11^)112 + 1],(13.23)
к=0
где /(к) — импульсная характеристика, связывающая выход источника шума ех с выходом фильтра, a F^ — соответствующая передаточная функция:
F^ = S1F^ = S1bo + bxz 1 4- 62z 2 1 + ajz-1 + a2z-2bo + bxz 1 4- 62z 2 1 + ajz-1 + a2z-2= sxH(z\= sxH(z\(13.24)(13.24)
F^ = S1
F^ = S1
bo + bxz 1 4- 62z 2 1 + ajz-1 + a2z-2
bo + bxz 1 4- 62z 2 1 + ajz-1 + a2z-2
= sxH(z\
= sxH(z\
(13.24)
(13.24)
Общий шум (шум АЦП + шум округления) на выходе фильтра записывается следуюОбщий шум (шум АЦП + шум округления) на выходе фильтра записывается следующим образом:щим образом:О =^а+^гО =^а+^гО2.= 12]3 1 + S'О2.= 12]3 1 + S'^5>2ю +52^) ► =^5>2ю +52^) ► =fc=0fc=0к=0к=0(13.25)(13.25)
Общий шум (шум АЦП + шум округления) на выходе фильтра записывается следую
Общий шум (шум АЦП + шум округления) на выходе фильтра записывается следую
щим образом:
щим образом:
О =^а+^г
О =^а+^г
О2.
= 12]3 1 + S'
О2.
= 12]3 1 + S'
^5>2ю +52^) ► =
^5>2ю +52^) ► =
fc=0
fc=0
к=0
к=0
(13.25)
(13.25)
= 1^ {3[1 + ^Н^(^)11^] + 11^(^)ПП-
Формулу (13.25) стоит сравнить с формулой (13.22). Отметим также, что использование масштабного множителя увеличивает выходной шум.
Пример 13.13
Фильтр характеризуется следующей передаточной функцией:
0,1436 + 0,2872г"1 + 0,1436г"2“1 - 1,8353г"1 + 0,9747г"2'
Фильтр нужно реализовать в 8-битовой системе со входом х(п), выходом у(п) и коэффициентами фильтра, представленными 8-битовыми дробными величинами с фиксированной запятой в арифметике с дополнением до двух.
Предполагается, что для реализации фильтра используется каноническое звено второго порядка, и что каждое произведение (представленное 16 бит) квантуется до 8 бит непосредственно после умножения.
а. Изобразите диаграмму реализации с указанными источниками ошибок округления и определите подходящий масштабный множитель системы.
б. Оцените общую входную мощность шума в холостом состоянии и ухудшение выходного отношения сигнал-шум (в децибелах), вызванное ошибками округления.
Повторите п. 1 при условии, что для реализации фильтра используется прямая форма.
Решение
а. Диаграмма реализации системы с указанными источниками шума приведена на рис. 13,17, б. Источник шума ег представляет сумму ошибок, вызванных округлением (или усечением) произведений aiw(n — 1), а^ги^п — 2) и x^/sy с 16 до 8 бит. Источник шума е2 представляет сумму трех 16-битовых входов правого сумматора, квантованную до 8 бит.
С помощью программы анализа эффектов конечной длины слова были получены следующие масштабные множители: sj — 133,89966 (норма ДД sT = 12,1395 (норма L2) и Si = 102,088 (норма Loo).
б. Для определения выходной мощности шума, порожденной ошибками округления, использовалась программа анализа эффектов конечной разрядности (за основу взята формула (13.23)):
ст2г = 1668,03g2,
где предполагается использование нормы L2.
Из уравнения (13.8) выходной шум, порожденный АЦП, равен 3,7724g2. Следовательно, общая мощность выходного шума равна:
а2 = (1668,03 + 3,7724)g2 = 1671,8024g2.
Выходная мощность сигнала (на входе предполагается случайный сигнал) равна^ = jl|H« = 15,0896.
Отношение сигнал-шум (без ошибок округления) равно:
15,08964
3,7724g2 “ g2'
Отношение сигнал-шум (с ошибкой округления) равно:
15,08969,0260 х 10-3
1671,8024g2 “ g2 '
Ухудшение отношения сигнал-шум вследствие ошибки округления равно:
/4/д2\
101Ц<й>2б^^)=^^^
При реализации в прямой форме общая выходная мощность шума, порожденного ошибкой округления, равна 9048,82g2. Ухудшение отношения сигнал-шум вследствие ошибки округления составляет 33,8 дБ при масштабировании с нормой L2. Без масштабирования ухудшение отношения сигнал-шум составляет порядка 1,11 дБ. Такое небольшое снижение отношения сигнал-шум при отсутствии масштабирования объясняет, почему в некоторых приложениях прямая реализация выгоднее — она позволяет избежать масштабирования [5].
Шум округления в каскадных и параллельных реализациях
Каскадная структура
На рис. 13.18 показана каскадная реализация БИХ-фильтра шестого порядка с использованием канонических звеньев второго порядка, где для простоты источники шума, выход с которых поступает в одну точку, объединены (см. выше) и перенумерованы. Так, ej — это сумма трех источников шума, поступающего с трех умножителей на крайний слева сумматор. Шум составного источника ех проходит через три звена фильтра Hi(z), Н2^ и H^zY Шум составного источника е2 вносит вклад в две передаточные функции Н2^ и Н3(^У и т.д.
Рис. 13.18. Шумовая модель каскадной реализации БИХ-фильтра шестого порядкаРис. 13.18. Шумовая модель каскадной реализации БИХ-фильтра шестого порядка
Рис. 13.18. Шумовая модель каскадной реализации БИХ-фильтра шестого порядка
Рис. 13.18. Шумовая модель каскадной реализации БИХ-фильтра шестого порядка
Общий выходной шум, возникший вследствие ошибок округления, представляет собой сумму шести источников шума:
ООQ 2 00
E/bW^-EAW
к=0к=0к=0к=0/с=0к=0
к=0к=0
к=0к=0
(13.26)
= ^[311^(2)11^ + 5||F3(z)||= + 511^(2)11^ + 3],
где Ji^ — импульсная характеристика, связывающая источник шума et и выход. Шумовые компоненты, порожденные источниками е2 и е3 (рис. 13.18), проходят через одни звенья фильтра, т.е. множатся на передаточные функции Н2^ и Нз(г), поэтому их выходы объединены. То же относится и к шумовым компонентам е4 и е5.
Параллельная структура
На рис. 13.19 представлена модель шума округления для параллельной реализации фильтра шестого порядка. Как и ранее, источники шума, возникающего при квантовании отдельных произведений, объединены. Выходы источников шума еь е2 и е3 проходят через фильтрующее звено и подаются на выход, тогда как выход остальных источников шума поступает непосредственно на выход фильтра. Вклад источников еь е2 и е3 в выходной шум записывается следующим образом:
Рис. 13.19. Шумовая модель каскадной реализации БИХ-фильтра шестого порядка
п 2 00п 2
< = ^Y№ = ^Н^Нз- » = 1,2,3/с=0
q 2 ооо 2
к=0
где H^z) и /ii(k) — передаточная функция г-го звена и соответствующая импульсная характеристика. F^z) и fi(k) — передаточная функция г-го источника шума и соответствующая импульсная характеристика.
Выход источников шума е^, г = 4,5,6,7 передается непосредственно на выход. Следовательно, общая шумовая мощность записывается так:
^о^^!^3^ siT,hi№ > =
(13.28)(13.28)I i=l L fc=0 J ,
(13.28)
(13.28)
= f^ V + 3f>?l№)ll2]Lk i=lJ
Вообще, при параллельной реализации с L звеньями выходная мощность шума, порожденного ошибкой округления, записывается следующим образом:
.2 = ^_ °Г 12.2 = ^_ °Г 12■3'2L + l + 3^st2||Hi(z)||=.<=1,■3'2L + l + 3^st2||Hi(z)||=.<=1,(13.29)(13.29)
.2 = ^_ °Г 12
.2 = ^_ °Г 12
■3'
2L + l + 3^st2||Hi(z)||=
.<=1,
■3'
2L + l + 3^st2||Hi(z)||=
.<=1,
(13.29)
(13.29)
Используя простую компьютерную программу (например, описанную ранее программу анализа эффектов конечной разрядности), можно легко вычислить мощность шума округления на основе приведенных выше соотношений.
Пример 13.14
Используя приведенную передаточную функцию БИХ-фильтра четвертого порядка [12], определите снижение отношения сигнал-шум (в децибелах), если фильтр реализован:
как каскад двух звеньев второго порядка, упорядоченных так, как следует из функции
как параллельная комбинация двух звеньев второго порядка.
ч 1 — 2z-1 + z~21 -0,707г-1 + г"2„
“ l + 0,777z-10,3434z-2 1 + 0,01877г-1 + 0,801г"2 ’°2 '
Решение
Модели шума для каскадной и параллельной структур идентичны представленным на рис. 13.18 и 13.19 соответственно, если на рисунках отбросить третий каскад.
При каскадной реализации масштабные множители Lx равны
si = 2,395746,
s2 = 15,703627.
Мощность шума округления, мощность шума АЦП и мощность сигнала на выходе фильтра равны
< = 345,0391g2,
<т2л = 0,03976g2,
<т2 = 0,1591g2.
Отношение сигнал-шум без ошибки округления равно
0,1591
0,0397g2 ’
а отношение сигнал-шум с ошибкой округления —
0,1591
345,0789
Снижение отношения сигнал-шум вследствие ошибки округления равно
10/у(345,0789/0,03976) и 39,4 дБ.
Используя для параллельной реализации разложение на простые дроби [12], получаем
х-5,162 +0,7867г-11,65736 + 0,2759г"1\
( + 1 + 0,777г"1 + 0,3434г"2 + 1 +0,01877г"1 + 0,801г"2) "
Мощность шума округления на выходе фильтра выражается так:
г Г2"
5 + 3^s2||Hi(Z)||2 .
Li=l.
Используя программу анализа эффектов конечной длины слова, получаем масштабные множители (норма L2) Si = 2,395746, s2 = 5,450612, ||Hi(z)||2 = (7,378492)2, ||H2(z)||^ = (2,801937)2. Следовательно,
о2
= ^2 {5 + 3[(2,395746)2(7,378492)2 + (5,450612)2 (2,801937)2]} =
= 136,85g2.
Таким образом, если выходной сигнал и шум АЦП те же, что и в предыдущем случае, на выходе фильтра получаем такое отношение сигнал-шум с ошибкой округления:
0,1591/(136,85 + 0,03976)g2 = 1,16228 х 10"3/д2.
а)6)
Рис. 13.20. Модели шума для звеньев БИХ-фильтров в современной системе ЦОС. Показаны длины слов в различных точках фильтра. Предполагается, что входные данные и коэффициенты имеют размер по В бит
Снижение отношения сигнал-шум, вызванное ошибкой округления, равно
101g [(136,85 + 0,03976) /0,03976] = 35,37 дБ.
Влияние шума округления произведения в современных системах ЦОС
Ранние работы по влиянию ошибок округления произведения на производительность фильтра основывались на единой, фиксированной внутренней длине слова и преимущественно каждое 2В-битовое произведение (строго говоря, (2В - 1)-битовое) перед суммированием квантовалось до прежних В бит. В современных процессорах ЦОС подобных условий нет, поскольку процессоры поддерживают накопление в регистрах двойной длины. Все современные процессоры ЦОС имеют по крайней мере встроенный умножитель 16 х 16 бит и 32-битовый регистр произведений и позволяют накапливать произведения как 32-битовые числа — используется так называемая 16/32-битовая архитектура.
На рис. 13.20, а показана модель шума для звена второго порядка, реализованного в прямой форме, где квантование выполняется после сложения произведений. На данном рисунке 2В-битовая сумма произведений у'(?г) квантуется до В бит. Чтобы отличить данную схему от метода с отдельным квантованием каждого произведения, будем называть ее квантованием после накопления (post-accumulation quantization). Очевидно, что в данном случае после квантования остается только один источник шума, и выходная мощность шума записывается как
2
^, = УгИ1&(13.30)
где*
1 + ajz-1 + a2z~2
При использовании канонических звеньев второго порядка (рис. 13.20, б) выходной шум, вызванный источниками шума, равен
о2
= ^[^11^)11^ + 1]-(1331)
Очевидно, что округление после накопления произведений (формулы (13.30) и (13.31)) приводит к значительному снижению шума округления по сравнению с округлением после каждого умножения.
Схемы снижения шума округления
На практике округление или усечение в некоторой точке внутри фильтра необходимо, чтобы приспособить его к умножителям, ячейкам памяти и интерфейсам по фактору длины слова. Ошибки округления произведений, вызванные округлением или усечением произведений, могут привести к заметному искажению выхода фильтра с малыми сигналами, и при создании систем высокой точности их следует минимизировать. Придумано несколько схем снижения или устранения эффектов ошибок округления в БИХ- фильтрах. Эти схемы так эффективно формируют спектр шума, что шум в определенных полосах фильтра снижается или устраняется. В сумме подобные схемы называют формированием спектра ошибки (Error Spectral Shaping — ESS).
Введем основные принципы снижения шума округления с использованием фильтрующего звена второго порядка I (рис. 13.21, а). На данном рисунке параметры фильтра (коэффициенты и данные) представлены как В-битовые числа с фиксированной запятой, а накопитель имеет размер 2В бит (т.е. используется реализация “В/2В бит"). В современных процессорах ЦОС В обычно равно 16 или 24 бит. При квантовании выхода накопителя до В бит создается шум округления. Можно показать, что преобразование квантованного выхода записывается как
У(г) = тj(13.32) 1 + atz-1 + a2z~2X(z) 1 + a^z-1 + a2z-2
Видно, что спектр квантованного выхода равен спектру идеального выхода плюс масштабированный спектр ошибки. Спектр ошибки усиливается полюсами фильтра (корни полинома 1 + а^-1 + a2z~2) вие зависимости от характеристик фильтра. В зависимости от типа фильтра шум может усиливаться в нижней средней или верхней части частотного диапазона.
Схема обратной связи по ошибке первого порядка, используемая для снижения влияния шума округления, изображена на рис. 13.21, б. Можно показать (см. пример 13.16), что в этом случае выходное преобразование звена фильтра с обратной связью по ошибке записывается так:
bo + byz-1 + b2z-2 1 — kz-1
(Z) l + a^-1 +a2z"2X(z) l + a^'1+a2z"2E^' ( 1 }
а)6)
Рис. 13.21. Шум округления в звене второго порядка прямой формы I: а — длины слов в различных точках фильтра; б — схема снижения шума первого порядка
Коэффициент обратной связи к эффективно вводит нуль на пути ошибки, компенсируя таким образом влияние полюсов фильтра. Влияние нуля с обратной связи по ошибке на спектр ошибки демонстрируется на рис. 13.22. Очевидно, что без обратной связи по ошибке спектр ошибки усиливается полюсами фильтра. При использовании обратной связи по ошибке на пути ошибки вводится нуль, что приводит к уменьшению спектра ошибки. Чтобы компенсировать влияние полюсов, нуль в цепи обратной связи обычно помещают как можно ближе к частоте полюса.
Чтобы максимально сократить спектр шума, можно использовать схему второго порядка, изображенную на рис. 13.23.
Обобщенные стратегии снижения шума для звена в прямой форме и канонического звена изображены на рис. 13.24, а и б соответственно. На обоих рисунках коэффициенты прямой и обратной связи а- и b't используются для изменения передаточной функции, искаженной ошибками округления, так что выходной шум округления минимизируется, не затрагивая полезный сигнал. На рис. 13.24, а квантование суммы произведений на выходе левого сумматора порождает ошибку е^п), которая представляет собой нижнюю половину переменной двойной точности у(п\ Произведения а^еДп—1) и а'2е2(п — 2) не имеют такого веса, как другие выходы сумматора, хотя все они имеют длину 2В + 1 бит, так что их следует выровнять или проквантовать перед сложением с другими входами. Ошибка квантования в этом случае обозначается через е2(п). Подобным образом члены boe^/st, b'^e^n — l)/s и Ь2е(п - 2)/si нужно проквантовать перед суммированием с другими входами правого сумматора, что сводится к ошибке е3(п). Наконец, выход правого сумматора квантуется с 2В + 1 бит до В + 1 бит, что дает ошибку е4(п). Подобные соображения можно привести и для канонического звена, изображенного на рис. 13.24, б.
а) диаграмма нулей и полюсов (О фильтра, (ii) сети с обратной связью по ошибке при к = 1
Рис. 13.22. Иллюстрация влияния коэффициента обратной связи. Обратите внимание на то, что положение нуля в цепи обратной связи близко к положению полюсов фильтра
Рис. 13.23. Схема снижения шума второго порядка
Рис. 13.24. Обобщенные схемы снижения шума: а — фильтр, реализованный в прямой форме; 6 — канонический фильтр
При реализации в прямой форме со схемой ESS (рис. 13.24, а) выходной шум выражается следующим образом:
(13.34)
где /i(fc) и /2(^) — импульсная характеристика, связывающая источники шума 1 и 2 с выходом фильтра.
Для канонического звена (рис. 13.24, б) выходная мощность шума, порожденного округлением, записывается так:
(13.35)
гдегде
где
где
F^MW-WW
(1 + a'jZ 2)(b0 + 61z Т+Ь2г 2)si
(^o+^iz + b2z 2)sj1 + a^"1 + a2z-2
Выбор коэффициентов формирования спектра ошибки а' и b' определяет эффективность схемы по снижению шума. На практике обычно коэффициенты ESS выбираются целыми, чтобы избежать дальнейшего квантования, и используются схемы ESS первого и второго порядка.
В схемах снижения шума первого порядка коэффициенты прямой связи по ошибке устанавливаются равными нулю, а коэффициенты обратной связи по ошибке — равными целым числам. Схемы снижения шума первого порядка частично помогают снизить шум округления в узкополосных фильтрах нижних и верхних частот, поскольку позволяют помещать на пути ошибки округления единственный нуль либо в нижней, либо в верхней области частотного диапазона. Схема привлекательна тем, что она лишь незначительно увеличивает вычислительную сложность фильтра.
Оптимум ESS достигается при использовании схем второго порядка, в которых эффект шума округления на выходе фильтра полностью устраняется. Для звена, реализованного в прямой форме (рис. 13.24, а), оптимальная схема ESS записывается следующим образом:
(13.36)(13.36)6' = 0, г = 0,1,2; а' = сц, г = 1, 2.
(13.36)
(13.36)
В данном случае выходной шум округления снижается до уровня, не превышающего внутренний шум округления. Выходная мощность шума округления снижается до величины
иип 1+Е№п 1+Е№(13.37)(13.37)к-0к-0
и
и
п 1+Е№
п 1+Е№
(13.37)
(13.37)
к-0
к-0
о2
где
+ a^z-1 + a2z~2
Для канонического звена следует использовать такие значения:
Ь' = -^,г = 0,1,2; а'=айг = 1,2.(13.38)
Выходная мощность шума записывается следующим образом:
4 оо4
fc=0
ГДСх (t>0 + &1Z"1 + i^Z"2^
v 1 + a^z-1 + a2z~2
Оптимальное решение вычислительно дороже и, как отмечается в работе [13], включает представление с двойной точностью внутренних переменных фильтра. Помимо решения с целыми числами, рассмотренного выше, существует несколько других субоптимальных решений (см., например, [7]).
Пример 13.15
Сравните характеристики шума округления БИХ-фильтра второго порядка, который характеризуется передаточной функцией
0,1436(1 + 2г-1 + z-2)1 - 1,8353г-1 + 0,9748г-2 ’
если фильтр реализован а) как каноническое звено; б) в прямой форме для следующих случаев:
а' = 0, г = 1,2 (без обратной связи по ошибке);
а; = —1,а2 = 0;
а( = —2, а2 = 0;
а\ = —1,а2 = 1;
а^ = —2, а2 = 1.
Предполагайте, что все коэффициенты прямой связи по ошибке во всех случаях равны нулю.
Мощность шума
Ns
Каноническое звеноРеализация в прямой форме
1
2
3
4
5
556,0108g2556,0108g2
77,1261g278, 6247g2
710,0842g2713,0933g2
414,1014g2413,845g2
12,2659g214,9999g2
Решение
Структуры реализации фильтров со схемами ESS показаны на рис. 13.25. Выходная мощность шума округления для канонической структуры и структуры с реализацией в прямой форме равны соответственно:
о2
^г = ^0№« + 1]
И2
<£=^0№)11^
где
Fi(z) = (1 + a^z-1 + a'z-2)2^1, S1 = 12,1395 (масштабирование L^)
+ a^z 1 + a^z 1
F2(z) = G j^iZ l^2^2fi, Si _ 5 7282 (масштабирование L2\
С помощью программы анализа эффектов конечной разрядности была найдена выходная мощность шума в каждом случае, результаты сведены в табл. 13.5. Отметим, что в ситуации 3 (а( = —2, а'2 = 0) выход шума на самом деле увеличился, а не уменьшился, откуда следует, что коэффициенты нужно выбирать аккуратно. Отметим также, что эффективно снизить выходной шум позволяет схема первого порядка, предложенная в п. 2.
Определение практических значений коэффициентов обратной связи по ошибке
Из сказанного выше очевидно, что на спектр ошибки Е^ влияют полюса фильтра. По сути, спектр ошибки усиливается полюсами фильтра. Если предположить, что ошибка имеет плоский спектр, то на выходе фильтра шум будет усилен около частоты полюса. Коэффициенты обратной связи по ошибки компенсируют усиление спектра ошибки, для чего на пути шума вводится один или несколько нулей. В цепи обратной связи по ошибке первого порядка вводится один нуль в числитель передаточной функции ошибки. В цепи второго порядка коэффициенты обратной связи вводят два нуля в передаточную функцию шума. В обоих случаях нули не влияют на выход фильтра.
Рис. 13.25. Две различные структуры реализации БИХ-фильтра второго порядка
Простая, но эффективная стратегия заключается в размещении нулей обратной связи максимально близко к частотам полюсов, чтобы противодействовать влиянию полюсов (см. рис. 13.21). На практике в число факторов, влияющих на выбор коэффициентов обратной связи по ошибке, входят желание избежать дальнейших ошибок округления, использование двойной точности, желание упростить умножители и необходимость расположить нули цепи обратной связи по ошибке максимально близко к полюсам фильтра, чтобы компенсировать влияние шума округления. По этим причинам значения коэффициентов обратной связи по ошибке ку и к^ часто выбираются из простых целых чисел 0, ±1, ±2.
Чтобы коэффициенты обратной связи были простыми числами, нули цепи обратной связи должны располагаться в точках 0, ±60°,±90°,±120°,±180°, в зависимости от значений кг и к2. Возможные значения коэффициентов обратной связи по ошибке и положения соответствующих нулей сведены в табл. 13.6.
Таблица 13.6. Целые коэффициенты обратной связи по ошибке и соответствующие положения нулей
Номер варианта
Значения ki
Значения
к2
Положение нулей
1
0
1
Пара нулей на 0° и 180° (т.е. на постоянной составляющей и F,/2)
2
0
-1
Пара комплексно-сопряженных нулей на ±90° (т.е. на ±F,/4)
3
1
0
Один нуль на 0° (т.е. на постоянной составляющей)
4
1
-1
Пара комплексно-сопряженных нулей на ±60° (т.е. на ±F,/6)
5
2
-1
Двойной нуль на 0° (т.е. на постоянной составляющей)
6
-2
-1
Двойной нуль на 180° (т.е. на Fs/2)
7
-1
-1
Пара комплексно-сопряженных нулей на ±120° (т.е. на ±F5/3)
8
-1
0
Один нуль на 180° (т.е. на Fs/2)
Выбор коэффициентов обратной связи по ошибке зависит также от типа фильтра. Например, фильтр нижних частот будет иметь полюса на постоянной составляющей или возле нее. Таким образом, в таблице показано, что значения кх и к^ можно выбирать лишь из позиций 1, 3, 4 или 5, поскольку только так можно получить нули, близкие к полюсам фильтра. С другой стороны, фильтр верхних частот имеет полюса вблизи верхней границы полосы частот доступного спектра (т.е. возле FJ2). Следовательно, в этом случае значения кх и к^ можно выбирать из вариантов 1, 6, 7 или 8.
Пример 13.16
Используя необходимые диаграммы, обсудите проблемы шума округления в цифровых БИХ-фильтрах с фиксированной запятой. В ответе нужно осветить следующие моменты:
возникновение шума округления в БИХ-фильтрах;
влияние шума округления на производительность БИХ-фильтров.
На рис. 13.26 показана структура звена фильтра второго порядка со схемой обратной связи по ошибке. Предположим, что данное звено нужно реализовать с использованием арифметики с фиксированной запятой с дополнением до двух, причем квантование выполняется после сложения произведений.
Выведите выражение для преобразования квантованного выхода Y(z), записанное через преобразование входа Х^ и ошибку квантования £(z), показав таким образом, что цепь обратной связи по ошибке не оказывает неблагоприятного воздействия на входной сигнал.
Б. Выведите выражение для функции обратной связи по ошибке.
Какие ключевые факторы на практике влияют на выбор значений коэффициентов обратной связи по ошибке?
Из анализа положений полюсов и нулей найдите подходящие пары целых значений коэффициентов обратной связи по ошибке, при которых минимизируется уровень шума на выходе указанных ниже фильтров:
а) Н^ = -Д^"^;
1—2z~x+z~2
l + l.Toz-i+O.Slz-2 ’
в) Н^ = i+oX^'
Допустим, что все фильтры реализованы с использованием структуры, изображенной на рис. 13.26, и что корни полинома второго порядка
-Ь di z <^2 ^
равны (г, Z0) и (г, Z - 0), гдет =равны (г, Z0) и (г, Z - 0), гдет =d2d2и 6и 6= arccos= arccos
равны (г, Z0) и (г, Z - 0), где
т =
равны (г, Z0) и (г, Z - 0), где
т =
d2
d2
и 6
и 6
= arccos
= arccos
Рис. 13.26. Схема снижения шума второго порядка — выбор коэффициентов обратной связи по ошибке
Решение
Шум округления проистекает от квантования произведений (округления или усечения) и/или квантования суммы произведений, необходимого в рекурсивной реализации, чтобы удержать переменные согласованными с разрешенной длиной слов Например, умножение двух чисел, представленных В бит каждое, дает результат раз мером 2В бит. Если результат не проквантовать до (например) В бит, длина слова последующих результатов будет расти бесконечно. Ошибки квантования усиливаются полюсами фильтра и поступают на выход в виде шума. Данный шум увеличивает общий собственный шум системы. При этом искажаются сигналы низкого уровня, и в приложениях, требующих высокоточного воспроизведения, это может быть неприемлемо. Ошибки округления могут также привести к мелкомасштабным осцилляциям на выходе фильтра даже при отсутствии входа. Для иллюстрации ответа можно привести диаграммы топологий фильтра (например, каноническое звено второго порядка) и модели шума округления.
2.А. С помощью рис. 13.26 находим, что ошибка округления е(п) и квантованный и неквантованный выходы фильтра у'(п) и у(п) передаются следующим образом:
е(п) = у(п) - у(п)
222(13 39)
у(п) = biX^n — г) — а^(п — г) + к^п — г)
1=01=11=1
Используя формулы (13.39, а и б), применяя z-преобразования и упрощая результат, получаем искомое уравнение:
5(2).5(2).
5(2).
5(2).
2.Б. Передаточную функцию шума можно получить, положив вход равным нулю. Из уравнения (13.39, в) следует:
1 - Ек»2-1, L —1 L —2
И \ -- 1 ~~ k2Z 2
i + Е aiz
i=l
2.В. Основными факторами являются необходимость избежать: дальнейших ошибок округления или использования двойной точности, дополнительного умножителя, необходимость расположить нули цепи обратной связи по ошибке максимально близко к полюсам фильтра, чтобы компенсировать их влияние на шум округления. По этим причинам значения коэффициентов обратной связи по ошибке ку и к2 выбираются из простых целых чисел 0, ±1, ±2.
З.А. Используя выражение для корней полинома, находим, что полюса фильтра расположены на 2-плоскости с координатами т = V^, 81 = 0,9 и 9 = ± arccos(l, 75/2х 0,9) = ±13,5°; двойной нуль имеет координаты г = 1 и 9 = 180° (т.е. на частоте ^/2). В результате получаем фильтр нижних частот. Коэффициенты обратной связи по ошибке должны давать двойной нуль на г = 1 и 9 = 0, чтобы компенсировать влияние полюсов на шум округления, так что имеем следующие значения: ку = 2 и к2 = — 1. Можно также использовать коэффициенты обратной связи по ошибке первого порядка со значениями ку = 1 и к2 = 0 (чтобы получить нуль на постоянной составляющей).
З.Б. У второго фильтра полюса расположены в точке с координатами г = 0,9 и 9 = ±arccos(-l,75/2 х 0,9) = ±166,4° с двойным нулем на постоянной составляющей, так что фильтр, очевидно, является фильтром верхних частот. Нули цепи обратной связи, ближайшие к полюсам фильтра, получаются при выборе ку = — 2 и к2 = — 1 (при этом возникает двойной нуль, расположенный в точке с координатами г = 1 и 9 = 180°).
З.В. Третий фильтр имеет два комплексно-сопряженных полюса, расположенных в точках с координатами г = 0,9 и 9 = ±90° на z-плоскости, и пару нулей, расположенных в точках с координатами 0° и 180°. Чтобы компенсировать, насколько это возможно, влияние полюсов, следует выбрать целые коэффициенты цепи обратной связи — ку = 0 и к2 = —1. Как видно из табл. 13.6, данный выбор даст пару комплексно-сопряженных нулей в точках с координатами г = 1 и 9 = ±90°.
Граничный цикл вследствие ошибок округления произведений
Помимо снижения отношения сигнал-шум ошибки, вызванные округлением, могут привести к тому, что выход фильтра будет осциллировать или застынет на одном значении даже при отсутствии сигнала на входе. Данное явление называется низкоуровневым граничным циклом, и ниже оно иллюстрируется на примере.
Пример 13.17
БИХ-фильтр первого порядка характеризуется разностным уравнением
у(п) = ж(п) + ау(п — 1) п > 0.
Для данного начального условия у(0) = 6 и нулевого входа, т.е. ж(п) = 0, п = 0,1,... выполните следующие задания:
получите и изобразите (предполагая вычисления с бесконечной точностью) первые 10 выходных значений при 1) а — -0,75; 2) а = 0,75;
повторите п. а, но с предположением, что данные и регистры имеют размер по 4 бит (т.е. 3 бит данных и 1 бит знака), и что произведения округляются;
повторите п. а и б, предполагая усечение произведений непосредственно после умножения.
Решение
Значения выходных выборок для указанных случаев изображены на рис. 13.27 и перечислены в табл. 13.7.
Видно, что если вход ж(п) равен нулю бесконечно, выход у(п) при бесконечной точности экспоненциально затухает до нуля, вне зависимости от знака а. В то же время, если используется арифметика конечной точности с выходом, который округляется до ближайшего целого, то при положительных а выход остается фиксированным на данном уровне. Диапазон выходных уровней, в пределах которого удерживается выход, называется мертвой зоной (deadband). В данном примере мертвая зона — это интервал [-2,2]. В общем случае мертвая зона фильтра первого порядка определяется как [11]
где mt[] обозначает целую часть числа в квадратных скобках. Если а отрицательное, выход осциллирует с частотой Fs/"2 между двумя фиксированными уровнями разного знака. Это вызвано тем, что, когда вход исчезает, выход фильтра затухает до величины, меньше уровня квантования, которая при округлении переходит на следующий уровень, и этот процесс продолжается, порождая низкоуровневые осцилляции. В некоторых ситуациях данные осцилляции нежелательны. Например, они порождают неприятный
Рис. 13.27. Иллюстрация низкоуровневого граничного цикла, порожденного квантованием произведе-ний БИХ-фильтра первого порядка: а — бесконечная точность; б — квантование через округление;в — квантование через усечение
шум в телефонной системе при незанятом канале (когда абонент молчит). Для уменьшения граничных циклов обычно увеличивается длина слова процессора или к выходу перед округлением прибавляется псевдослучайный сигнал. Рассмотренная ранее схема ESS также позволяет снизить амплитуду граничных циклов и в некоторых случаях полностью их устранить.
Вообще, граничные циклы округления не возникают в фильтре второго порядка, если коэффициенты находятся внутри треугольника устойчивости.
Таблица 13.7. Результаты примера 13.17
п
у(п), (а = 0,75)у(п). (а = ~0,75)
Бесконечная точность Округление Усечение Бесконечная точность Округление Усечение
0
1
2
3
4
5
6
7
8
9
666666
4,554-4,5-5-4
3,38433,3843
2,5332-2,53-3-2
1,90211,9021
1,4220-1,42-20
1,07201,0720
0,8020-0,80-20
0,60200,6020
0,4520-0,45-20
Другие нелинейные явления
Помимо переполнения и граничных циклов произведений существуют и другие нелинейные эффекты, которые могут повлиять на поведение цифрового БИХ-фильтра. Перечислим их.
Явление скачка. При подаче на фильтр синусоидального сигнала при одинаковых входных сигналах возможно два выходных уровня. Небольшое изменение амплитуды или частоты входного сигнала приводит к скачку с одного уровня на другой. Определены несколько областей внутри треугольника устойчивости, где возможны такие явления. В этих областях коэффициенты фильтра удовлетворяют условию |qi|q2 < — 1. Доказано, что последствия указанных нелинейных эффектов снижает схема ESS.
Субгармонический отклик. При синусоидальном входе выход может содержать субгармоники входа [4]. Следовательно, при одном и том же входном сигнале, но разных начальных условиях можно получить существенно отличающиеся выходы. Данные эффекты проявляются более значительно, если полюса фильтра лежат близко к единичной окружности.
Эффекты конечной разрядности в алгоритмах БПФ
В большинстве алгоритмов ЦОС основными ошибками, возникающими при реализации алгоритмов БПФ с использованием арифметики с фиксированной запятой, являются:
ошибки округления, которые возникают при усечении или округлении произведения WkB до системной длины слова;
ошибки переполнения, возникающие, когда выход “бабочки” превышает приемлемую длину слова;
ошибки квантования коэффициентов — следствие представления настроечных параметров ограниченным числом битов.
Рассмотрим влияние этих ошибок на примере выхода двоичного БПФ.
Ошибки округления в БПФ
Основной операцией во всех алгоритмах БПФ является вычисление по схеме “бабочка”, которая в двоичном БПФ с децимацией во времени характеризуется следующими уравнениями:
А =4 + WkB,
В' =А - WkB,
где А и В — входы “бабочки”, А и В' — ее выходы. В общем случае настроечный параметр Wk, а также входы и выходы — комплексные. В реализации с фиксированной
запятой вычисление “бабочки” выполняется с использованием действительной ариф
метики, поэтому А' и В' нужно выразить в прямоугольной форме (см. главу 12):
А' = Аге + Вте cos(A') + Bim sin(X) + i[Aim + Bim cos(A") - Вте sin(X)] =
(13.40, a)
= Are + BreWre + BimWim + i^Aim + Bim Wre — 5геИ^т]
В' = Ате - \BTe cos(X) + Bim sin^)] + i[Aim - ^Bim cos(A") - Bre sin(X)}] =
= Are — (BreWre + BlmWlm) +~ (BimWTe — BreWim)l(13.40, 6)
где индексом те обозначена действительная, а индексом гт — мнимая часть переменной, X = hrklN. Таким образом, вычисление по схеме “бабочка" требует четырех умножений и шести действительных сложений (вычитание мы также относим к операциям сложения). В реализации с фиксированной запятой каждое из приведенных выше произведений требует для представления приблизительно вдвое большего числа битов, чем требуется для записи каждого операнда по отдельности. Например, если переменные Вте, Bim, Wre и Wim представлены как 16-битовые числа, то после умножения представление каждого произведения потребует 32 бит. Усечение или округление каждого произведения до прежних 16 бит порождает ошибку округления.
Таким образом, с каждой “бабочкой” можно связать четыре источника шума округления, по одному для каждого произведения, так что мощность шума округления (т.е. дисперсия) на выходе каждой “бабочки” равна
о2
4=4x1(13.41)
где q = 2-(В-1\ а длина слова системы — В бит.
Шум, порождаемый “бабочкой” на каждом этапе, поступает на следующие этапы. Если исследовать граф-схему БПФ, например, рис. 13.28, видно, что каждый выход БПФ Х(к) можно проследить до предыдущих (N — 1) “бабочки”. На рис. 13.29 показаны “бабочки”, которые вносят вклад в выход Х(2) при N = 7. Вообще, каждый выход БПФ соединяется со всеми N/2 “бабочками" этапе 2, N/4 “бабочками” этапа 2, N/8 “бабочками” этапа 3 и т.д. Предполагая, что все “бабочки” порождают идентичные, но некоррелирующие ошибки, получим максимальную мощность шума в каждом выходе БПФ Х(к) [14]:
Од = (N — 1)<Ту ~ N<jg = ^2-2(В-1> (при большом N).
Таким образом, мощность шума прямо пропорциональна размеру преобразования. Если удвоить N, что равносильно прибавлению этапа БПФ, то мощность шума удваивается. Поскольку мощность шума пропорциональна N и 2~2(В~1), то, чтобы удержать ее без изменений, можно увеличить длину слова на 1.
В этом случае отношение сигнал-шум приблизительно равно
= 1/3 =
^2-2(B-D/3 N '
Рис. 13.28. Граф-схема 8-точечного двоичного алгоритма БПФ с децимацией во времени
Рис. 13.29. Граф-схема, на которой показаны “бабочки”, вносящие вклад в шум округления, присутствующий в выходах Х(2) и Х(6)
Рис. 13.30. Схема масштабирования для снижения переполнения в каждой “бабочке”
Если рассмотреть только вклад шума в “бабочки", имеющие нетривиальные настроечные параметры (“бабочки” с настроечными параметрами Wk = ±1 или ±г дадут точные произведения без ошибок), мощность порождаемого шума будет ниже из-за ошибок округления. Фактически, если использовать эту информацию, можно найти, что некоторые выходы БПФ вообще не дают ошибок. Поэтому очевидно, что приведенные выше выражения — это верхние границы ошибок.
Ошибки переполнения и масштабирование в БПФ
Поскольку размер данных растет после расчета каждой “бабочки”, при вычислении БПФ необходимо масштабирование, так как оно позволяет избежать ошибок переполнения (после сложения по формулам (13.40, а и б)). Существует несколько способов масштабирования данных для предотвращения переполнения при вычислении БПФ. Одна из наиболее популярных схем масштабирования основана на наблюдении, что выход каждой “бабочки” удовлетворяет следующему соотношению [14]:
тах[|Д'|, |В'|] < 2тах[|Л|, |В|].(13.42)
Данная запись означает, что максимальный модуль выхода “бабочки” увеличивается от этапа к этапу в два раза. Следовательно, если входы “бабочки” умножить на коэффициент 0,5, в выходах не должно возникнуть переполнения, при условии, что амплитуда входных данных принадлежит диапазону разрешенных длин слов (см. рис. 13.30).
Фактически в некоторых случаях масштабирования с коэффициентом 0,5 недостаточно для предотвращения переполнения, даже если вход меньше единицы. Для иллюстрации рассмотрим явные выражения, приведенные в формулах (13.40):
Д' = Дге + BreWre + BimWim + г[Д,т + BimWre — BreWim]t
В1 = Are — (BreWre + BimWim) + i[Aim — (BimWre — Вге^т)]„
Если X = Олтк/Х = 45°, то cos(45°) = sin(45°) = V2/2. Без масштабирования и с единичными действительными и мнимыми частями входных данных (граничный случай) из приведенного выше уравнения получаем:
А* = 2,4142 + г; В' = -0,4142 + г.
Если каждый вход масштабирован на 0,5, то:
Д'= 1,2071 + 0,5г; В' = -0,2071 + 0,5г.
Очевидно, что действительная часть Д' по-прежнему вызовет переполнение, даже при указанном масштабировании, так как ее амплитуда больше единицы.
Несмотря на возможность переполнения, в большинстве реализаций все же используется масштабный коэффициент 0,5, поскольку его легко реализовать — простой сдвиг на одну позицию вправо (или ничего не делать, сыграв на 2 бит знака, возникающих после умножения). Чтобы избежать переполнения во всех возможных случаях, выход
должен масштабироваться на 1,2071 (2,41421/2), после чего на каждом этапе результат должен масштабироваться на 0,5. После БПФ выход приводится к прежнему масштабу. Для большинства действительных данных дополнительное масштабирование входа может быть необязательным, так как максимальное значение невозможно.
Масштабирование входов “бабочек” меняет характеристики шума округления БПФ. Выходное отношение сигнал-шум приблизительно равно
(13.43)(13.43)SNR =З^5-11-
(13.43)
(13.43)
2N
Пример 13.18
Аппаратный процессор БПФ использует при расчете “бабочек” арифметику с фиксированной запятой. Оцените максимальную длину слова, необходимую для выполнения 1024-точечного БПФ с выходным отношением сигнал-шум 40 дБ. Предполагайте, что входе всего БПФ вход каждой “бабочки” масштабируется с коэффициентом 0,5.
Решение
40 = 101g ^s2^"1^; Ю™^22^1*;
В — 1 = ^log2(2^ х 104)/lg(2) = 12,14 = 13 (бит) (приблизительно).
Длина слова системы — В — 14 бит.
Квантование коэффициентов в БПФ
Во многих аппаратных реализациях БПФ действительная и мнимая части настроечного множителя Wk обычно вычисляются заранее, квантуются до В бит и заносятся в таблицу соответствий (здесь В — длина слова системы). В результате получаем обычные ошибки квантования.
Резюме
Производительность системы ЦОС ограничена числом битов, используемых в ее реализации. Четырьмя основными источниками ошибок являются: 1) входное квантование, 2) квантование коэффициентов, 3) округление произведений и 4) переполнение при сложении. В данной главе представлены методы анализа влияния этих ошибок на производительность системы ЦОС и, где это возможно, устранения или минимизации этого влияния. Для иллюстрации освещаемых концепций использовался БИХ-фильтр. Отмечено, что длины слова коэффициентов должно быть достаточно, чтобы минимизировать
влияние квантования коэффициентов на частотную характеристику и предотвратить возможную неустойчивость. Вообще, устойчивость БИХ-фильтра следует проверять всегда. Явно устойчивый БИХ-фильтр при реализации с конечной точностью может стать неустойчивым. При высококачественной работе с аудио, например, необходимы минимум 24-битовые коэффициенты, поскольку лишь они могут обеспечить обработку низкочастотных аудиосигналов. В большинстве других случаев представления коэффициентов 16 или большим числом бит и выполнения арифметических операций в накопителях двойной длины достаточно для минимизации эффектов конечной разрядности.
Ошибки усечения или округления, вызванные операциями в арифметике конечной точности, создают нелинейные эффекты в фильтре, такие как граничные циклы, когда выход фильтра осциллирует даже при отсутствии входа или при постоянном входе. Влияние ошибок округления на производительность фильтра можно выразить через отношения сигнал-шум на выходе фильтра. Снижение отношения сигнал-шум вследствие ошибок округления можно предотвратить с помощью схем формирования спектра шума (Error Spectral Shaping — ESS). Основным результатом использования подобных схем является устранение эффекта усиления полюсами фильтра ошибок округления. Цена этого — увеличение числа умножений и сложений, хотя схемы ESS первого порядка с целыми коэффициентами довольно эффективны вычислительно.
Задачи
На рис. 13.31 показано стандартное звено фильтра второго порядка.
Объясните, почему переполнение допустимо в узлах 1 и 3, но не в узле 2.
Найдите подходящие масштабные коэффициенты, позволяющие снизить возможность переполнения в узле 2.
Предположив, что фильтр реализован в 8-битовой системе с квантованием перед накопителем, определите число дополнительных битов, требуемых, чтобы снизить шум округления по крайней мере на 20 дБ.
Рис. 13.31. Стандартное звено второго порядка (задача 13.1)
БИХ-фильтр характеризуется следующей передаточной функцией:
0,1436 + 0,2872г"1 + 0,1436г"21 - 1,8353г"1 + 0,9748г"2
Определите положения полюсов и нулей и изобразите диаграмму нулей и полюсов фильтра.
Определите радиальное расстояние полюсов от начала координат.
Определите число битов, требуемых для представления каждого коэффициента:
чтобы обеспечить устойчивость;
чтобы амплитудная характеристика в полосе пропускания менялась не более, чем на 1%.
Дана следующая передаточная функция:
1 -0,9631г" + г”
~ 1 - 1,5763г"1 + 0,9413г"2"
Определите подходящие масштабные коэффициенты, позволяющие избежать переполнения, если для реализации фильтра используется каноническое звено второго порядка.
Определите минимальную длину слова, требуемую для получения выходного отношения сигнал-шум 60 дБ. Укажите сделанные предположения.
Даны следующие полюса и нули БИХ-фильтра восьмого порядка:
полюса0,2870 ± 0,9075г0,7882 ± 0,5658г0,4098 ± 0,7447г0,6479 ± 0,5975гполюса0,2870 ± 0,9075г0,7882 ± 0,5658г0,4098 ± 0,7447г0,6479 ± 0,5975гнули0,0553 ± 0,9985г0,8828 ± 0,4698г—0,4816 ± 0,8764г0,9617 ± 0,2740гнули0,0553 ± 0,9985г0,8828 ± 0,4698г—0,4816 ± 0,8764г0,9617 ± 0,2740г
полюса
0,2870 ± 0,9075г
0,7882 ± 0,5658г
0,4098 ± 0,7447г
0,6479 ± 0,5975г
полюса
0,2870 ± 0,9075г
0,7882 ± 0,5658г
0,4098 ± 0,7447г
0,6479 ± 0,5975г
нули
0,0553 ± 0,9985г
0,8828 ± 0,4698г
—0,4816 ± 0,8764г0,9617 ± 0,2740г
нули
0,0553 ± 0,9985г
0,8828 ± 0,4698г
—0,4816 ± 0,8764г0,9617 ± 0,2740г
Изобразите диаграмму нулей и полюсов и разбейте на пары полюса и нули.
По диаграмме запишите передаточную функцию фильтра. Предполагая, что фильтр нужно реализовать в каскадной форме, выберите подходящую схему упорядочения каскадов.
Определите подходящие масштабные множители звеньев фильтра, используя программу анализа эффектов конечной длины слова.
Пусть входные данные оцифрованы до 8 бит и снижение отношения сигнал- шум вследствие ошибок округления не превышает 0,5 дБ. Определите подходящие длины слов для представления промежуточных данных, коэффициентов и переменных.
Дана следующая передаточная функция:
1 - 1,4890г-1 + г“21 - 1,9020г"1 + г"2
1 - 0,3724г-1 + 0,5119г-2 Х 1 - 0,3779г"1 + 0,0851г"2 ’
Запишите представление коэффициентов фильтра в формате дополнения до двух с фиксированной запятой, используя 8 бит (включая бит знака).
Повторите п. 1 и 2 для квантованного фильтра и сравните полученные результаты.
1 + 2г-1 + г"21 + 2г-1 + г"2Н(г) = 0,1436Н(г) = 0,1436Дана следующая передаточная функция:
1 + 2г-1 + г"2
1 + 2г-1 + г"2
Н(г) = 0,1436
Н(г) = 0,1436
1 - 0,67993г-1 + 0,49133г"2'
Определите подходящие масштабные множители, чтобы на выходе сумматора 1 не было переполнения и общий масштабный коэффициент был равен 1.
Запишите коэффициенты фильтра и масштабные коэффициенты в 8-битовой арифметике с фиксированной запятой
Определите общий шум округления
Литература
Abu-el-Haija A. and Al-lbrahim М. М. (1986) Improving performance of digital sinusoidal oscillators by means of error feedback circuits. IEEE Trans. Circuits and Systems, 33(4), 373-380.
Antoniou A. (1979) Digital Filters Analysis and Design. New York: McGraw-Hill.
Chen W. (1996) Performance of cascade and parallel HR filters. J. Audio Eng. Soc., 44(3), 148-158.
Claasen T. (1974) Improvement of overflow behaviour of 2nd-order digital filters by means of error feedback. Electronics Lett., 10(12), 240-241.
Dattorro J. (1988) The implementation of recursive digital filters for high-fidelity audio. J. Audio Eng. Soc., 36(11), 851-878.
Flores I. (1963) The Logic of Computer Arithmetic. Englewood Cliffs NJ: Prentice-Hall.
Higgins W. E. and Munson D. (1982) Noise reduction strategies for digital filters: error spectrum shaping versus the optimal linear state-space formulation. IEEE Trans. Acoustics, Speech and Signa] Processing, 30(6), 963-973.
IEEE (1979) Programs for Digital Signal Processing. New York: IEEE Press.
IEEE (1985) IEEE Standard for Binary Floating Point Arithmetic. SIGPLAN Notices, 22(2), 9-25.
Ifeachor E. C. (2001) A Practical Guide for MATLAB and C Language Implementation of DSP Algorithms. Harlow: Pearson Education.
Jackson L. B. (1986) Digital Filters and Signal Processing. Boston MA: Kluwer.
Mitra S. K., Hirano K. and Sakaguchi H. (1974) A simple method of computing the input quantization and multiplication roundoff errors in a digital filter. IEEE Trans. Acoustics, Speech and Signal Processing, 22(5), 326-329.
Mullis С. T. and Roberts R. A. (1982) An interpretation of error spectrum shaping in digital filters. IEEE Trans. Acoustics, Speech and Signal Processing, 30(6), 1013-1015.
Oppenheim A. V. and Weinstein C. J. (1972) Effects of finite register length in digital filtering and the fast Fourier transform. Proc. IEEE, 60, 957-976.
Patterson D. A. and Hennessy J. L. (1990) Computer Architecture: A Quantitative Approach. San Mateo CA: Morgan Kaufmann.
Rabiner L. R. and Gold B. (1975) Theory and Applications of Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Rader С. M. and Gold B. (1967) Effects of parameter quantization on the poles of a digital filter. Proc. IEEE, 55, 688, 689.
Texas Instruments (1986) Digital Signal Processing Applications with the TMS320 Family: Theory, Algorithms and Implementations. Texas Instruments.
Tomarakos J. and Ledger D. (1998) Using the Low-cost, High-performance ADSP-21065L Digital Signal Processor for Digital Audio Applications. Analog Devices DSP Application. Подробности — на сайте www. analog. com.
Weitek (1984) High Speed Digital Arithmetic VLS Application Seminar Notes. Sunnyvale CA: Weitek.
Wilson R. (1993) Filter topologies. J. Audio Eng. Soc., 41(9), 667-678.
Дополнительная литература ■
Abu-el-Haija A. I. and Peterson A. M. (1979) An approach to eliminate roundoff errors in digital filters. IEEE Trans. Acoustics, Speech and Signal Processing, 27, 195-198.
Ahmed N. and Natarajan T. (1983) Discrete-time Signals and Systems. Reston VA: Reston Publishing Inc. Avenhaus E. (1972) Filters with coefficients of limited wordlength. IEEE Trans. Audio Electroacoustics, 20, 206-212.
Barnes C. W., Tran B. N. and Leung S. H. (1985) On the statistics of fixed-point roundoff error. IEEE Trans. Acoustics, Speech and Signal Processing, 33, 595-606.
Chang T. L. (1978) A low roundoff noise digital filter structure. In Proc. IEEE Int. Symp. on Circuits and Systems, May 1978, pp. 1004-1008.
Chang T. L. (1979) Error-feedback digital filters. Electronics Lett. 348-349.
Chang T. L. (1980) Comments on “An approach to eliminate roundoff errors in digital filters". IEEE Trans. Acoustics, Speech and Signal Processing, 28(2), 244, 245.
Chang T. L. (1981) Suppression of limit cycles in digital filters designed with one magnitude-truncation quantizer. IEEE Trans. Circuits and Systems, 28(2), 107-111.
Chang T. L. (1981) On low-roundoff noise and low-sensitivity digital filter structures. IEEE Trans. Acoustics, Speech and Signal Processing, 29(5), 1077-1080.
Chang T. L. and White S. A. (1981) An error cancellation digital-filter structure and its distributed-arithmetic implementation. IEEE Trans. Circuits and Systems, 28(4), 339-342.
Charalambous C. and Best M. J. (1974) Optimization of recursive digital filters with finite wordlengths. IEEE Trans. Acoustics, Speech and Signal Processing, 22(6), 424-431.
Claasen T. A. С. M. and Kristiansson L. O. G. (1975) Necessary and sufficient conditions for the absence of overflow phenomena in a second order recursive digital filter. IEEE Trans. Acoustics, Speech and Signal Processing, 23(6), 509-515.
Claasen T. A. С. M., Mecklenbrauker W. F. G. and Peek J. В. H. (1973) Second-order digital filter with only one magnitude-truncation quantiser and having practically no limit cycles. Electronics Lett., 9, 531, 532.
Claasen T. A. С. M., Mecklenbrauker W. F. G. and Peek J. В. H. (1973) Some remarks on the classification of limit cycles in digital filters. Philips Research Rep., 28, 297-305.
Claasen T, Mecklenbrauker W. F. G. and Peek J. В. H. (1975) Frequency domain criteria for the absence of zero-input limit cycles in nonlinear discrete-time systems, with applications to digital filters. IEEE Trans. Circuits and Systems, 22, 232-239.
Claasen T. A. С. M., Mecklenbrauker W. F. G. and Peek J. В. H. (1976) Effects of quantization and overflow in recursive digital filters. IEEE Trans. Acoustics. Speech and Signal Processing, 24(6), 517-528.
Crochiere R. E. (1975) A new statistical approach to the coefficient wordlength problem for digital filters. IEEE Trans. Circuits and Systems, 22, 190-196.
Crochiere R. E. and Oppenheim A. V. (1975) Analysis of linear digital networks. Proc. IEEE, 63(4), 581-594.
Diniz P. S. R. and Antoniou A. (1985) Low-sensitivity digital filter structures which are amenable to error-spectrum shaping. IEEE Trans. Circuits and Systems, 32(10), 1000-1007.
Elliot D. F. (ed.) (1987) Handbook of Digital Signal Processing. London: Academic Press.
IEEE (1978) Digital Signal Processing IL Institute of Electrical and Electronics Engineers.
Jackson L. B. (1970) On the interaction of roundoff noise and dynamic range in digital filters. BSTJ, 49(2), 159-184.
Jackson L. B. (1976) Roundoff noise bounds derived from coefficient sensitivities for digital filters. IEEE Trans. Circuits and Systems, 23(8), 481-485.
Knowles J. В. and Olcayto Е. М. (1968) Coefficient accuracy and digital filter response. IEEE Trans. Circuit Theory, 15, 31-41.
Liu B. (1971) Effect of finite wordlength on the accuracy of digital filters P a review. IEEE Trans. Circuit Theory, 18, 670-767.
Liu B. and Kaneko T. (1969) Error analysis of digital filters realized with floating-point arithmetic. Proc. IEEE, 57(10), 1735-1747.
Markel J. D. and Gray A. H. (1975) Fixed-point implementation algorithms for a class of orthogonal polynomial filter structures. IEEE Trans. Acoustics, Speech and Signal Processing, 23(5), 486-494.
Markel J. D. and Gray A. H. (1975) Roundoff noise characteristics of a class of orthogonal polynomial structures.
IEEE Trans. Acoustics, Speech and Signal Processing, 23(5), 473-486.
Motorola (1988) Digital Stereo 10-band Graphic Equalizer Using the DSP56001. Motorola Application Note.
Mullis С. T. and Roberts R. A. (1976) Round-off noise in digital filters: frequency transformations and invariants.
IEEE Trans. Acoustics, Speech and Signal Processing, 24(6), 538-550.
Munson D. C. and Liu B. (1980) Low-noise realization for narrow-band recursive digital filters. IEEE Trans.
Acoustics, Speech and Signal Processing, 28, 41-54.
Nagle H. T. and Nelson V. P. (1981) Digital filter implementation on 16 bit microcomputers. IEEE Micro, 1, 23-41.
Oppenheim A. V. and Schafer R. W. (1975) Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Peled A., Liu B. and Steiglitz K. (1974) A new hardware realization of digital filters. IEEE Trans. Acoustics, Speech and Signal Processing, 22, 456-462.
Peled A., Liu B. and Steiglitz K. (1975) A note on implementation of digital filters. IEEE Trans. Acoustics, Speech and Signal Processing, 23, 387-389.
Rabiner L. R., Cooley J. W., Helms H. D., Jackson L. B., Kaiser L. E, Rader С. M., Schafer R. W., Steiglitz K. and Weinstein C. J. (1972) Terminology in digital signal processing. IEEE Trans. Audio and Electroacoustics, 20, 322-337.
Sandberg 1. W. and Kaiser J. F. (1972) A bound on limit cycles in fixed-point implementations of digital filters. IEEE Trans. Audio and Electroacoustics, 20, 110-112.
Sim P. K. and Pang К. K. (1985) Effects of input-scaling on the asymptotic overflow-stability properties of second recursive digital filters. IEEE Trans. Circuits and Systems, 32(10), 1008-1015.
Steiglitz K. (1971) Designing short-word recursive digital. Proc. 9th Ann. Allerton Conf, on Circuit and System Theory, 6-8 October, pp. 778-788.
Steiglitz K., Bede L. and Liu B. (1976) An improved algorithm for ordering poles and zeros of fixed-point recursive digital filters. IEEE Trans. Acoustics, Speech and Signal Processing, 24, 341-343.
Taylor F. J. (1983) Digital Filter Design Handbook. New York: Marcel Dekker.
Thong T. (1976) Finite wordlength effects in the ROM digital filter. IEEE Trans. Acoustics, Speech and Signal Processing, 24, 436, 437.
Thong T. and Liu B. (1977) Error spectrum shaping in narrowband recursive digital filters. IEEE Trans. Acoustics, Speech and Signal Processing, 25, 200-203.
Williamson D. and Sridharan S. (1985) An approach to coefficient wordlength reduction in digital filters. IEEE Trans. Circuits and Systems, 32(9), 893-903.
Приложения
.A. Программа анализа эффектов конечной разрядности для БИХ-фильтров
Программу анализа эффектов конечной разрядности для БИХ-фильтров с разобранными примерами можно найти в книге [10] (подробности — в предисловии).
Рис. 13Б.1. Стандартное каноническое звено фильтраРис. 13Б.1. Стандартное каноническое звено фильтра
Рис. 13Б.1. Стандартное каноническое звено фильтра
Рис. 13Б.1. Стандартное каноническое звено фильтра
.Б. Уравнения масштабных множителей Ь2
На рис. 13Б.1 изображено стандартное каноническое звено фильтра. Передаточная функция этого звена записывается следующим образом:
= bo + b^+b^(13БЛ)
1 + axz~Y + a2z~2
Масштабный множитель L2, который выбирается для снижения вероятности переполнения, в узле, помеченном w(n), записывается следующим образом:
s? = (в - _.—— = Ф F(z)dz,(13Б.2)
1 2тгг J D^D^z-^ 2т J vv 7
где
D(z') = 1 + а^-1 + a2z-2
F^ = z-x/D^D(z"TY
a — контурный интеграл по окружности |z| = 1.
1 Гz dz2т J (1 + axz~x + a2z-2Ml + axz + a2z21 Гz dz2т J (1 + axz~x + a2z-2Ml + axz + a2z2Используя значение D(z') из уравнения (13Б.2), получаем
1 Гz dz
2т J (1 + axz~x + a2z-2Ml + axz + a2z2
1 Гz dz
2т J (1 + axz~x + a2z-2Ml + axz + a2z2
8
1 /zdz
2т J (z2 + axz + а2)(1 + axz + а2г2)
Полюсы zx и z2 подынтегрального выражения расположены внутри единичной окружности и находятся следующим образом:
(13Б.З)(13Б.З)z2 + axz + a2 = (z - zx^z - z2) = 0.
(13Б.З)
(13Б.З)
Вычисляя вычеты, получаем выражение для суммы вычетов функции F(z), s2: s2 = Ит ^-z^z+ Um (z - z2y=
z—zi (z2 + axz + a2)(l + axz + а2г2) z—z2 (z2 + axz + a2)(l + axz + a2z2)
(zi — z2)(l + axzx + Дг^2) (zx — z2)(l + aiZ2 + 02^2)
_ г1(1 + aiz2 + Дг^г) — z2(l + axzx + a2Zj)
(zi — z2)(l + axzx + a2z2)(l + aiZ2 + a^z^)
1 — H2^1 -22 —f к
(1 + axzx + a2Zj)(l + 01^2 + Дг2г)
_1 — a2ZiZ2_
1 + a^Zt + z2) + a2(zf + z2) + a?ZjZ2 + a1a2ziz2(z1 + z2) + a2z2z£
1 — a2zxz2
1 + ai(2i + ^2) + Дг[(21 + 2г)2 — 2zjZ2] + ajzii^ + axa2zxz2^zx + Z2) + a2(zjZ2)2
Далее из уравнения (13Б.З) получаем:
z2 + axz + а2 = (z - zx)(z - z2) = z2 - (zx + z2)z + zxz2.
Следовательно, ai — —(2i + 2г) a2 = zxz2.
Подставляя значения ax и a2 в уравнение (13Б.4), получаем
^2 1 а2
11 — ах + а2(ах — 2а2) + аха2 — аха2 + а2
1 — а2
1 — а2 — 2а2 + 2аха2 — ахаз + а2
1 — а2
(1 — а2)2 — а2(1 — 2а2 + а2)
1 — а2
(1 - а^)2 - а?(1 - а2)2
_ 1
(1 - а^) - а2(1 - а2)/(1 + а2) ‘
(13Б.5)(13Б.5)Итак,
(13Б.5)
(13Б.5)
Приложения^кК|
и разобранные примеры 1
Платы для демонстрации обработки сигналов в реальном времени' -935
Приложения ЦОС■939
Модельные задачи1।967
Вопросыпо ЦОС для компьютерных тестов■,975
Резюме■'-983
Задачи1. 983
Литература .984
Дополнительная литература986
; Приложение_ 986
При написании этой главы ставилось четыре цели. Первая — описать некоторые дешевые платы, которые можно использовать для реализации алгоритмов ЦОС, рассмотренных в предыдущих главах. Представлены две платы для процессоров ЦОС с фиксированной запятой первого и второго поколений, которые авторы использовали для демонстрации студентам принципов цифровой обработки сигналов. Кроме того, приводится обзор дешевых плат для процессоров ЦОС с фиксированной запятой третьего порядка.
Вторая цель — описать несколько реальных приложений ЦОС в форме разобранных примеров. Ниже рассмотрены такие приложения, как обработка аудиосигналов в реальном времени, адаптивная фильтрация артефактов на электроэнцефалограмме (фиксация электрической активности мозга) человека и детектирование сердцебиения плода на электрокардиограмме (фиксация электрической активности сердца) плода, что необходимо для оценки состояния ребенка во время родов. Рассматриваемые аспекты логически продолжают круг вопросов, освещенных в предыдущих главах.
Третья цель — представить несколько перспективных практических задач, обсуждение которых можно продолжить в группах на практических занятиях. Последняя цель — изложить набор вопросов с несколькими вариантами ответов, позволяющих подробнее рассмотреть различные аспекты цифровой обработки сигналов.
? 14.1. Платы для демонстрации обработки сигналов в реальном времениL
Основы
Как и в других инженерных сферах, для правильной работы с ЦОС, необходим практический опыт разработки и реализации ее алгоритмов. Студентам инженерных специ-
альностей, имеющим только базовые знания из сферы аналоговой обработки сигналов, сложно разобраться в методах ЦОС, особенно не обладая математическими знаниями, необходимыми для понимания концепций с теоретической точки зрения. Довольно часто такие студенты не могут понять, например, как численные операции, используемые в БИХ- или КИХ-фильтрах, могут приводить к фильтрации данных. Они чувствуют себя комфортно с аналоговыми фильтрами и понимают, как фильтрация достигается на основе сопротивлений и частотно-зависимых характеристик конденсаторов и катушек индуктивности. Часто у студентов возникает вопрос: “А как, собственно, работает цифровой фильтр?”.
Исходя из таких наблюдений, авторы пришли к мысли о необходимости простого, самодостаточного аппаратного блока, на основе которого студенты смогут реализовывать простые функции ЦОС. Мы также хотели поднять такие практические вопросы, возникающие при реализации цифровой обработки сигналов в реальном времени, как наложение, создание зеркальных изображений, затухание по закону sin(i)/х, переполнение и т.д. В результате было разработано несколько простых целевых плат для процессоров ЦОС с фиксированной запятой первого и второго поколений. Данные платы оказались полезными и недорогими платформами для демонстрации алгоритмов ЦОС в реальном времени. В настоящее время налажено промышленное производство нескольких типов дешевых демонстрационных плат для процессоров ЦОС с фиксированной запятой второго и третьего поколений. Некоторые из подобных плат будут описаны ниже.
Целевая плата TMS320C10
Нашей первой платой была целевая плата TMS320C10. На настоящий момент она по-прежнему используется для демонстрации простых алгоритмов ЦОС реального времени. Отметим основные ее особенности:
самодостаточность и возможность выполнения простых алгоритмов ЦОС в реальном времени;
простой аналоговый вход-выход, квантованный до 8 бит;
легкая модификация кодов алгоритмов ЦОС;
возможность работы с двумя различными частотами дискретизации;
возможность изучать наложение и создание зеркальных изображений.
Блок-схема системы, показанная на рис. 14.1, состоит из четырех основных устройств: цифрового процессора сигналов первого поколения TMS320C10 (сердце системы), блока 8-битового АЦП/ЦАП, схемы синхронизации и ячеек памяти. Для систем, требующих высокого качества, 8 бит недостаточно, но для демонстрации принципов ЦОС плата вполне подходит. Устройство памяти состоит из ключа выбора программы и пары СППЗУ (стираемое программируемое постоянное запоминающее устройство), смонтированных для облегчения использования на разъемах с нулевым усилием сочленения (Zero Insertion Force — ZIF). СППЗУ разбито на восемь блоков по 1 Кбайт каждый, обращаться к которым можно посредством ключа выбора программы. Такое решение позволяет хранить в СППЗУ до восьми различных программ. Для автономной работы использование СППЗУ обязательно. Пользователь может выбирать из двух доступных частот дискретизации: 7,5 и 15 кГц.
Рис. 14.1. Простая блок-схема целевой платы TMS32OC1O
Таблица 14.1. Выбор программы из памяти
Блок
АдресПрограммы ЦОС
0
1
2
3
4
5
6
7
OOOO-O3FFЦикл входа-выхода
0400-07FFГенератор шума
0800-0BFFГенератор прямоугольных сигналов
0C00-0FFF41-точечный полосовой КИХ-фильтр
1000-13FF61-точечный режекторный БИХ-фильтр
1400-17FF Каскадная реализация БИХ-фильтра нижних частот четвертого порядка
1800-1BFF Параллельная реализация БИХ-фильтра нижиих частот четвертого порядка
1C00-1FFF Каскадная реализация полосового БИХ-фильтра четвертого порядка
На данной целевой плате реализованы многие алгоритмы ЦОС, например, КИХ- и БИХ-фильтры, генераторы шума и сигналов прямоугольной формы (см. табл. 14.1).
Демонстрационный модуль для ЦОС реального времени
Плата TMS320C10 полезна при демонстрации простых функций ЦОС в автономном режиме, но в серьезных задачах разработки ее пригодность ограничена. Для быстрой разработки и демонстрации систем ЦОС реального времени лучше подходит дешевый демонстрационный модуль Motorola DSP56002EVM. За последние шесть лет мы использовали данный модуль в одном из наших курсов по цифровой обработке сигналов, в основном из-за того, что он великолепно подходит для обработки реальных аудиосигналов. Отметим основные особенности данного модуля:
24-битовый процессор ЦОС DSP56002;
для автономной работы предусмотрены 32 Кбайт статического ОЗУ и (необязательно) 32 Кбайт флэш-ППЗУ;
аудиокодек CD-качества (16-битовые стереоаналогоцифровой и цифроаналоговый преобразователи);
частота дискретизации 48, 32, 16, 9,6 или 8 кГц;
ассемблер и программы отладки.
Процессор ЦОС имеет два 48-битовых регистра X и Y, которые также можно использовать как четыре 24-битовых регистра (ХО, XI, У0 и У1), два 56-битовых накопителя и аппаратный умножитель, бесценные в обработке сигналов. Отладчик позволяет вносить изменения в регистры и исходный код с помощью простого экранного редактирования. В данном разделе для иллюстрации использования платы DSP56002 рассмотрена задача разработки фильтра.
Демонстрационные платы TMS320C54 и DSP56300
В настоящее время существуют и более сложные программные и аппаратные средства, предназначенные для новых поколений процессоров ЦОС с фиксированной или плавающей запятой (например, Texas Instruments Code Composer Studio), подробное описание этих средств можно найти на Web-сайтах ведущих производителей. В данном разделе кратко описаны два дешевых демонстрационных модуля, которые хорошо подходят для изучения концепций ЦОС и разработки сравнительно сложных систем ЦОС.
Демонстрационный модуль TMS320C54x [35] — это компьютерная сменная плата, которую можно использовать для выполнения алгоритмов ЦОС в реальном времени. Основные особенности этого модуля:
16-битовый процессор ЦОС с фиксированной запятой TMS320C541 с 5 Кбайт внутреннего ОЗУ и 28 Кбайт внутреннего ПЗУ;
графическая программа отладки под среду Windows;
встроенная поддержка эмуляции отладчика кода на С;
аналоговый интерфейс ввода-вывода.
Аналоговый интерфейс ввода-вывода поддерживает программируемую фильтрацию с целью защиты от наложения и подавления зеркальных частот, управления амплитудой и частотой дискретизации (до 43,2 кГц). Предлагается также одноканальный 14-битовый аналого-цифровой/цифроаналоговый преобразователь.
Великолепной дешевой автономной (с возможностью подключения к компьютеру) платформой для разработки систем ЦОС является демонстрационный модуль DSP56302 [27]. Разработанную пользователем программу можно загрузить с компьютера во встроенную память для отладки и выполнения. Основные особенности модуля DSP56302 таковы:
24-битовый процессор ЦОС с фиксированной запятой DSP56302;
32 Кбайт внутренней программной памяти/кэша и ОЗУ для хранения данных;
два канала аудиокодеков CD-качества (16-битовые АЦП/ЦАП);
кросс-ассемблер и программа отладки под среду Windows.
Частота сердцебиения плода (ударов/с)Частота сердцебиения плода (ударов/с)Сокрашательная активность маткиСокрашательная активность маткиРис. 14.2. Пример кардиотокограммы (КТГ). КТГ состоит из сигнала сердцебиения плода и сигнала маточной активностиРис. 14.2. Пример кардиотокограммы (КТГ). КТГ состоит из сигнала сердцебиения плода и сигнала маточной активности
Частота сердцебиения плода (ударов/с)
Частота сердцебиения плода (ударов/с)
Сокрашательная активность матки
Сокрашательная активность матки
Рис. 14.2. Пример кардиотокограммы (КТГ). КТГ состоит из сигнала сердцебиения плода и сигнала маточной активности
Рис. 14.2. Пример кардиотокограммы (КТГ). КТГ состоит из сигнала сердцебиения плода и сигнала маточной активности
14.2. Приложения ЦОС
Детектирование сердцебиения плода во время родов1
Во всем мире стандартным методом наблюдения за плодом во время родов является отображение непрерывной частоты сердцебиения плода (Fetal Heart Rate — FHR) и маточной активности, что в сумме составляет сигнал кардиотокограммы (КТГ) (рис. 14.2). Анализируя и соответствующим образом интерпретируя изменения КТГ, акушеры надеются предотвратить появление на свет мертвого младенца или младенца с задержкой в развитии из-за недостатка кислорода во время родов.
Электрокардиограмма плода
Частота сердцебиения плода во время родов обычно определяется с помощью электрокардиограммы (ЭКГ), записи электрической активности сердца (рис. 14.3) или с помощью ультразвуковых методов. Подобно ЭКГ взрослого человека нормальная ЭКГ плода характеризуется пятью максимумами и долинами, которые отмечаются последовательными буквами алфавита Р, Q, R, S и Т [16]. Таким образом, говорят, что ЭКГ состоит из волны Р, комплекса QRS и волны Т [16].
Как показано на рис. 14.3, величина, обратная периоду сердечного ритма, т.е. интервалу времени между пиками R-R (в миллисекундах), умноженная на 60 000, дает
'Данный раздел частично основан на выпускном проекте одного из наших бывших студентов. Яда Резека (lead Rezek).
Рис. 14.3. Электрокардиограмма
мгновенный сердечный ритм. Частота сердцебиения плода в верхней половине рис. 14.2 представляется графиком последовательных мгновенных сердечных ритмов.
На практике для измерения сердечного ритма плода к детектированию (аппаратному или программному) последовательных комплексов QRS применяется подходящий алгоритм ЦОС, а по полученным данным вычисляется интервал R-R и соответствующий сердечный ритм. В большинстве методов детектирования комплексов QRS предполагается, что форма комплекса QRS плода известна априори, но время его появления неизвестно. Это предположение разумно, хотя и не всегда справедливо, поскольку форма комплекса QRS различна для разных пациентов, и даже один пациент может давать QRS-комплексы разной формы. Таким образом, сравнивая сигнал ЭКГ с известным шаблоном QRS, можно определить положение комплексов QRS в ЭКГ, используя некоторую меру сходства, например, большое значение взаимной корреляции.
Основная проблема здесь — надежное детектирование комплексов QRS. Ухудшение сигнала, например, в связи со смещением базовой линии, интерференцией с сигналом питающей сети, маточными сокращениями, насыщением АЦП и движением ребенка или матери, может привести к ложному детектированию или пропущенным комплексам QRS. Цель данного примера заключается в исследовании и сравнении двух методов детектирования комплексов QRS, которые могут иметь практическую ценность в наблюдении за плодом в реальном времени. Данная работа является малой частью текущего исследовательского проекта, инициированного местными госпиталями с целью разработки интеллектуальных систем помощи медицинским работникам в принятии родов [22].
Данные ЭКГ плода, использованные в рассматриваемом примере, взяты из базы данных, собранной авторами во время работы над проектом. Для получения сигнала ЭКГ измеряется разность сигналов от электрода на голове плода и обычного электрода, размещенного на бедре матери, в качестве заземления использовался второй электрод, расположенный на коже матери (рис. 14.4). Вектор чувствительности данной направленной системы расположен в продольной плоскости плода (в отличие от сагиттальной плоскости соединения стандартного электрода на черепе плода), что должно уменьшить изменение вектора ЭКГ, вызванное вращением плода [25]. ЭКГ плода подавалась через пациента, изолированный усилитель, аналоговый полосовой фильтр (полоса пропускания — 0,07-100 Гц) и оцифровывалась с частотой 500 выборок/с с разрешением 8 бит.
Персональный компьютерПерсональный компьютерСистема хранения на оптических дискахСистема хранения на оптических дискахФормиро-вание иоцифровкасигнала
Персональный компьютер
Персональный компьютер
Система хранения на оптических дисках
Система хранения на оптических дисках
Рис. 14.4. Измерение электрокардиограммы плода
Примеры измеренных ЭКГ плода представлены на рис. 14.5, a-в. На этих рисунках показано, что данные на рис. 14.5, а имеют относительно большое отношение сигнал- шум по сравнению с рис. 14.5, б и 6, с большими амплитудами волн R (выглядят, как пики). С другой стороны, для данных на рис. 14.5, б характерно относительно высокое содержание шума и значительные смещения базовой линии, хотя волны R по- прежнему различимы. Данные на рис. 14.5, в содержат ошибки АЦП, которые выглядят как большие перепады амплитуды между максимальным и минимальным значениями АЦП в начале записи (возможно, вызваны насыщением АЦП), а также значительные смещения базовой линии и высокочастотный шум (включая загрязнение сигналом питающей сети). Три набора данных на рис. 14.5, a-в классифицированы как ЭКГ класса 1 (хорошая), 2 (средняя) и 3 (плохая) соответственно.
Предварительная обработка сигнала ЭКГ плода
Для данных класса 2 и 3 уровни шума и смещения базовой линии затрудняют детектирование комплексов QRS в необработанных ЭКГ. Поэтому для надежного детектирования комплексов QRS необходимо предварительно обработать ЭКГ, чтобы минимизировать влияние этих источников ухудшения сигнала, а лишь затем следует пытаться детектировать комплексы QRS. Известно, что значительные частотные компоненты комплекса QRS расположены между 4 и 45 Гц. Смещения базовой линии в ЭКГ обычно низкочастотные, как правило, меньше 3 Гц, хотя для данных класса 3 частота базовой линии может доходить до 15 Гц и даже превышать эту величину.
Для предварительной обработки грубой ЭКГ перед детектированием комплексов QRS можно использовать цифровой полосовой КИХ- или БИХ-фильтр. Мы предпочитаем использовать КИХ-фильтр, поскольку БИХ-фильтр высокого (например, восьмого) порядка иногда входит в резонанс при возбуждении узкополосными комплексами QRS, что может затруднить точную локализацию волны R. В нашем примере используются следующие спецификации фильтра:
Ос10
Рис. 14.5. Примеры классов данных ЭКГ: а — степень 1 (хорошая); б — степень 2 (средняя); в — степень 3 (плохая)
длина фильтра75;
частота дискретизации500 Гц;
полосы подавления0-1, 47-250 Гц;
полоса пропускания9-39 Гц;
неравномерность в полосе пропускания 0,5 дБ;
затухание в полосе подавления30 дБ.
Коэффициенты фильтра получены с помощью оптимального метода, описанного в главе 7. На рис. 14.6, a-в показаны отфильтрованные данные ЭКГ. По сравнению с соответствующими нефильтрованными данными (рис. 14.6, а-e) смещения базовой линии, а также высокочастотный шум в фильтрованных данных снижены (исключая исходные импульсные помехи в фильтрованных данных). В данных класса 3 ошибка АЦП выглядит как пакетная помеха, которая несомненно разрушает большинство алгоритмов детектирования комплексов QRS (см. рис. 14.6, в).
Шаблон QRS
Большинство методов детектирования комплексов QRS полагаются на доступность характерного шаблона QRS, с которым сравнивается входной сигнал ЭКГ. Шаблон может генерироваться по необработанным ЭКГ-данным путем детектирования и усреднения нескольких хороших комплексов QRS. Это можно сделать автоматически или полуручным образом путем визуального изучения ЭКГ класса 1 и определения хороших однозначных комплексов QRS. Затем волны R синхронизируются и комплексы
1м *^|*и|»А^|м|гм|^>65|<Ч м^»^|м|м<||м^Ь^«и|*^
ЦЦ*4'4*',Ы|<4Ц*|,44^
^4*4*4*4*444и4***4^
Рис. 14.6. Фильтрованные данные ЭКГ: а — класс 1 (хороший); б — класс 2 (средний);в — класс 3(плохой)
QRS усредняются. Для детектирования комплексов QRS может использоваться фиксированный шаблон QRS, или же в начале каждой новой записи ЭКГ генерироваться новый шаблон. Пример шаблона QRS, полученного путем усреднения 69 комплексов данных класса 1 с последующим взятием 31 выборки (15 выборок с каждой стороны волны R) усредненных комплексов QRS, показан на рис. 14.7.
В данном примере пробовались шаблоны различной длины. Обычно длина шаблона N составляла от 11 до 31 выборки, т.е. ширина при частоте дискретизации 500 выбо- рок/с равна 20-60 мс. Ниже представлены результаты, полученные для двух шаблонов длиной 11 и 31 выборки.
Методы детектирования комплексов QRS
Общая блок-схема процесса детектирования комплексов QRS изображена на рис. 14.8. Необработанные ЭКГ-данные вначале предварительно обрабатываются для снижения влияния шума. Обработанные выборки данных подаются в буфер по одной выборке за такт. Для каждой новой точки данные подаются в буфер, старейшая выборка данных удаляется, и содержимое буфера сравнивается с шаблоном в детекторе QRS. Затем выход детектора QRS сравнивается с порогом. Если выход превышает пороговое значение, считается, что комплекс QRS присутствует. В данном примере сравниваются два удобных метода детектирования, выбранные с точки зрения практической пригодности или потенциальной практической пригодности. Отметим, что существует множество иных методов детектирования комплексов QRS.
Рис. 14.7. Пример схемы комплекса QRS. Получен путем усреднения по 69 комплексам QRS в ЭКГ класса 1 с синхронизированными R- волнами. Комплексы QRS детектировались с уровнем порога 13
Предварительная обработкаДетектор QRS
Рис. 14.8. Концепции детектирования комплексов QRS по необработанной ЭКГ
Итак, используются следующие методы:
усреднение амплитуд перекрестных разностей (Average Magnitude Cross-Difference — AMCD), в настоящее время используемое в новом мониторе наблюдения за плодом [25];
согласованная фильтрация — распространенный метод детектирования комплексов QRS, который исследовался многими авторами [1, 10]: он тесно связан с методом корреляции.
Усреднение амплитуд перекрестных разностей
В данном методе блоки предварительно обработанных данных ЭКГ-плода сравниваются с шаблонным комплексом QRS, как описано выше. Далее вычисляются разности между соответствующими выборками в ЭКГ и шаблоном. Затем высчитывается сумма у(г) абсолютных значений разностей:
JV-1
у(г) = 57 WM - xt - ^(k + г) - а^]|, г = 0,1...,(14.1)
к=О
где xtW — выборки шаблонного комплекса QRS, х(к + г) — выборки сигнала ЭКГ, N — длина шаблона, г — параметр смещения времени. Величина xt — среднее значение шаблона QRS, а х^ — среднее значение г-го блока данных для сигнала ЭКГ, которое находится следующим образом:
1 JV"1
= n YXk + iVк=О
Если сигнал ЭКГ и шаблон QRS весьма похожи по форме, т.е. принадлежат окрестности комплекса QRS, значение AMCD у (г) становится минимальным (теоретически — равным нулю).
Цифровая согласованная фильтрация
Согласованная фильтрация широко используется для детектирования периодических сигналов, скрытых в шуме. При данном подходе делаются следующие предположения: сигнал ограничен во времени и имеет известную форму. Таким образом, задача формулируется как определение момента прохождения сигнала. Известно, что импульсная характеристика цифрового согласованного фильтра h,(k) является обращенной во времени копией детектируемого сигнала. Итак, в нашем случае, если х^к) — шаблонный комплекс QRS, коэффициенты фильтра записываются следующим образом:
(14.2)(14.2)h(k) = xt(N -k-1), fc = 0,l,... ,N -1.
(14.2)
(14.2)
Цифровой согласованный фильтр можно представить как КИХ-фильтр с обычной трансверсальной структурой, вход и выход которого связаны следующими соотношениями:
JV-1
у^ = 52 h-W1^ — к) —
N—1
= У^ xt(N — к— 1)т(г — к,1), ■ к=0
где т(г) — выборки входного сигнала ЭКГ, xt(k) — выборки шаблона QRS, N — длина фильтра, Цк) — коэффициенты согласованного фильтра, г — коэффициент сдвига времени. Очевидно, что при совмещении шаблона и комплекса QRS выход согласованного фильтра будет максимальным. Следовательно, исследуя выход фильтра на предмет значений, превышающих порог, можно определить начало QRS-комплекса.
Мера эффективности схемы детектирования QRS
Чтобы оценивать и сравнивать алгоритмы, требуется мера эффективности. Определим (согласно [1]) меру эффективности как
(общее число волн R — число пропусков — число случаев ложного детектирования) X 100%(14 3)
общее число волн R плода
Для данной записи ЭКГ мера эффективности достигает значения 100%, если только волны R в записи корректно обнаружены, нет пропусков (необнаруженных волн R), случаев ложного детектирования (ложных тревог). Для данного метода детектирования комплексов QRS число пропусков или ложных тревог можно определить, визуально сравнивая выход детектора и предварительно обработанную ЭКГ. Другая альтернатива — использовать так называемое “правило 28 ударов” (28-beat rule), которое медицинские работники применяют, чтобы различать истинные изменения сердечного ритма плода и ложные изменения, вызванные, например, ошибками приборов. Согласно этому правилу волна R, изменяющая частоту сердцебиения плода на более чем ±28 ударов в минуту, указывает на пропущенный или ложный комплекс QRS. Чтобы облегчить применение этого правила, к шаблону сердечного ритма плода можно подобрать базовую линию.
Результаты
На рис. 14.9 и 14.10 изображена зависимость эффективности методов AMCD и согласованной фильтрации соответственно от порогов для данных класса 1 и 2.
Эффективность обоих методов зависит от используемого порогового уровня (каждый порог выражается как доля максимального входного сигнала) и длины шаблона QRS. В обоих методах наилучшая производительность достигается с порогом порядка 50%. Более широкие шаблоны обычно эффективнее узких, если качество данных хорошее, но основная характеристика метода — его чувствительность к уровням порога.
В целом, с точки зрения эффективности методы AMCD и согласованной фильтрации не сильно отличаются. При подходящих уровнях порога оба метода достигают следующей эффективности:
Рис. 14.9. Эффективность метода среднего перекрестной разности амплитуд для данных класса 1 и 2 и шаблонов длины 11 н 31: О — класс I, длина 11;
Д — класс 1, длина 31; О — класс 2. длина 11; А — класс 2, длина 31
Рис. 14.10. Эффективность метода согласованной фильтрации для данных класса 1 н 2 н шаблонов длины 11 и 31; О — класс 1, длина 11; Д — класс 1, длина 31; О — класс 2, длина 11; А — класс 2, длина 31
100%-ное детектирование для всех ЭКГ класса 1;
детектирование больше 90% для данных класса 2;
детектирование больше 60% для данных класса 3.
Адаптивное устранение окулярных артефактов с ЭКГ человека
Вступление
Работа, описанная в данном разделе, касается оперативного устранения окулярных артефактов с электрокардиограммы (ЭКГ) человека. ЭКГ широко используется в клинических и психологических ситуациях, но часто она зашумляется окулярными артефактами (ОА), порожденными движением окулярных систем (глазных яблок, век и т.д.). В некоторых случаях, например, у младенцев с повреждениями головного мозга и пациентов с опухолями лобных долей мозга, трудно различить патологические медленные волны в ЭКГ и окулярные артефакты. Сходство ОА и сигналов, представляющих интерес, также затрудняет автоматизацию анализа ЭКГ с помощью компьютера. Реакция на раздражитель, известный как условная отрицательная вариация (Contiingent Negative Variation — CNV), которая используется при диагностике пациентов с хореей Хантингдона (Huntingdon’s chorea) [23], очень чувствительна к окулярным артефактам. Следовательно, необходимо удалить ОА с ЭКГ, чтобы анализировать можно было запись истинной ЭКГ.
Хотя устранить ОА в настоящее время можно в автономном режиме, до сих пор нет удовлетворительной схемы оперативного устранения ОА. Ранее заявленные методы оперативного устранения артефактов требуют совместной работы с пациентом (обеспечить которую можно не всегда), включают трудоемкую ручную калибровку и позволяют обработать ОА максимум одного типа, поскольку в них предполагается постоянный поправочный коэффициент. В данном разделе описана новая оперативная система устранения окулярных артефактов из сигналов ЭКГ, которая не имеет указанных недостатков и предлагает такие дополнительные преимущества, как гибкость. Система основана на микропроцессоре Motorola 68000 и использует численно устойчивый алгоритм UD-факторизации, который допускает непрерывное адаптивное устранение окулярных артефактов. Рассматривается также оперативный алгоритм, аппаратное и программное обеспечение системы.
Методы устранения окулярных артефактов и контроля над ними
Проблема устранения окулярных артефактов с ЭКГ усложняется их сходством с определенными церебральными волнами, представляющими практический интерес, и их спектральным перекрытием. Из различных методов, предложенных для устранения окулярных артефактов из ЭКГ и контроля над ними, наилучшими, пожалуй, являются методы вычитания электроокулограмм (ЭОГ). В данной главе термином электроокуло- грамма называется электрический потенциал, порожденный окулярными движениями, измеренный между двумя электродами на коже, расположенными близко к глазам. Впрочем, заявленные иа сегодняшний день различные методы вычитания ЭОГ не решают за-
дачу полностью, поэтому непрерывно развиваются новые подходы. Все существующие методы основаны на предположении, что окулярный артефакт аддитивно прибавляется к фоновой ЭКГ. Следовательно, в декретной форме записи получаем:
(14.4)(14.4)у(г) = ^OiX^ + е(г) = хт(г)У + е(г),
(14.4)
(14.4)
где
X [xi(z) X2^t)• . .Xn(z)],
У = [У1(О 9t^ ... М<,
у(г) и ж, (г) — выборки измеренных ЭЭГ и ЭОГ соответственно, е< — “истинная ЭЭГ”, которую можно рассматривать как сигнал ошибки, а г — номер выборки. Величины 6j — коэффициенты пропорциональности, которые далее будем называть параметрами окулярного артефакта, п — число параметров модели; 93 также называется коэффициентами передачи. Величины хт(г) и 9 — векторы параметров ЭОГ и окулярного артефакта соответственно, а Т обозначает транспонирование. Если значение 93 можно оценить, можно получить и оценку е(г):
ё(г) = у(г) - ^^:г,(г), г = 1,2,... ,т, (14.5) 3
где 6j — оценки 9j, а ё(г) и т — номера выборок, используемых в оценке. Таким образом, задача превращается в поиск оценки 93. Ее иллюстрация приведена на рис. 14.11. Для данного типа окулярного движения 93 практически константа, но эта константа значительно меняется для разных типов окулярных артефактов, хотя можно показать, что 9j меняется медленно, по крайней мере для данного типа окулярных артефактов. Вообще, тип окулярного артефакта, который появится в данное время, определить невозможно, поскольку во многих случаях одновременно проявляется несколько типов окулярных артефактов, 9j нельзя считать константой, так что лучшей стратегией является адаптивная оценка 9,. Термин “адаптивная” использован для того, чтобы подчеркнуть, что оценки параметров окулярного артефакта, а следовательно, и алгоритм устранения ОА должны автоматически подстраиваться под изменения окулярного артефакта. Различные методы вычитания ЭОГ отличаются преимущественно способом оценки 93, числом используемых сигналов ЭОГ и способом их измерения.
Метод вычитания ЭОГ можно реализовать либо оперативно, т.е. по мере получения данных, либо автономно. Основным преимуществом автономного метода является возможность использования более сложных методов удаления артефактов. Впрочем, в приложениях, требующих обработки и анализа в реальном времени, задержка, предполагаемая при использовании автономных методов, неприемлема. В настоящее время в обработке сигналов ЭЭГ наблюдается тенденция к обработке в реальном времени, поэтому устранение артефактов нужно проводить оперативно.
Рис. 14.11. Блок-схема устранения окулярных артефактов
В автономных методах оценки 9 получаются при минимизации J, суммы квадратов члена ошибки, т.е. J = 52™ i е2И- Такой минимум дает
L = [X^Xm]"1X^Ym,(14.6)
где
Vm=[y(l) у(2) ... y(m)]T, Хт = [хт(1) хт(2) ... хт(т)]т
0m = [01 02 ■■• 0m]T,Em = [е(1) е(2) ... е(т)]т.
Данное уравнение, основа автономных методов устранения окулярных артефактов, — это просто оценка по схеме наименьших квадратов величины 0, которую можно получить, используя любой подходящий метод обращения матриц. После получения 0т оценивается окулярный артефакт, а следовательно, из уравнения (14.5) можно получить фоновую ЭЭГ ё(г).
Описанный метод наименьших квадратов можно расширить на многоканальную систему, где корректируется более одного сигнала ЭЭГ. Таким образом, систему с п входами ЭОГ и q измеренными выходами ЭЭГ можно рассматривать как q отдельных подсистем с одним выходом. Общая система определяется q различными способами.
Типичный пример ранее описанных оперативных методов изображен на рис. 14.12. В данном метод (согласно [13]) исходная калибровка выполнена путем настройки потенциометров, когда пациент двигал глазами в вертикальной или горизонтальной плоскости, пока в ЭЭГ наблюдался минимальный окулярный артефакт. Затем устройство с такими настройками применялось при записи. Данный метод был использован несколькими авторами, которые нашли его громоздким и недостаточным для устранения ОА (см., например, [15]).
В ранее заявленных оперативных методах устранения окулярных артефактов используются аналоговые методы [3, 13], требующие совместной работы с пациентами, гарантировать которую можно не всегда. В общем случае такие методы хуже автономных с точки зрения устранения окулярных артефактов [5, 24], требуют от пользователя знания метода и включают трудоемкую ручную калибровку каждого канала ЭЭГ. Кроме того, данные методы можно настроить только для одного типа ОА.
Рис. 14.12. Типичный пример автономных методов устранения артефактов [13]
В данном разделе описана оперативная система устранения окулярных артефактов, не имеющая указанных недостатков. Это микрокомпьютерная система, в которой используется численно устойчивый оперативный алгоритм, основанный на эффективной рекурсивной схеме наименьших квадратов.
Алгоритмы оперативного устранения окулярных артефактов
Расчет 9т по формуле (14.6) требует трудоемкого вычисления обратной матрицы. Очевидно, что обычная схема наименьших квадратов не подходит для оперативной (в реальном времени) оценки, тогда как предпочтителен оперативный алгоритм, включающий ограниченное фиксированное число арифметических операций и не содержащий прямого обращения матриц. При использовании этих оперативных алгоритмов 9 так обновляется с поступлением каждой новой выборки, что изменения окулярных движений могут отражаться в 9, и устранение окулярных артефактов в этом случае можно рассматривать как адаптивную фильтрацию окулярных артефактов с ЭЭГ [38].
Существует два метода оценки параметров, подходящих для оперативной оценки 9, — метод наименьших квадратов [38] и рекурсивный метод наименьших квадратов [7, 30]. С точки зрения требований к вычислениям и памяти алгоритм, построенный на схеме наименьших квадратов, более эффективен. Кроме того, для него несущественна проблема численной неустойчивости, присущая алгоритму, построенному на рекурсивной схеме (см. ниже). В то же время рекурсивная схема наименьших квадратов дает лучшую сходимость и по этой причине предпочтительнее.
Обычно используется следующая форма схемы наименьших квадратов:
9(т + 1) = 0(т) + 2/ux(m + 1)[у(т + 1) — хТ(т + 1)0(т)], (14.7)
где У(т) и 6(т + 1) — оценки 9 в т-й и (т + 1)-й точке выборки соответственно, р — константа, отвечающая за скорость сходимости и устойчивость алгоритма. Для обеспечения сходимости р должно входить в диапазон
О < < 1/Amax
где Amax — максимальное собственное значение матрицы (Х^Хт) в формуле (14.6). Впрочем, время сходимости алгоритма прямо пропорционально отношению максимального и минимального собственных значений матрицы (Х^Х„), которое может быть очень большим, если входные переменные близки к коллинеарным, что обычно для ЭОГ. В то же время схема наименьших квадратов широко используется в биомедицинских приложениях для снижения шума артефактов в основном из-за своей простоты.
Подходящий рекурсивный алгоритм, построенный на схеме наименьших квадратов, получается путем экспоненциального взвешивания данных с целью постепенного устранения влияния на оценку старых данных. Таким образом,
J = У^7т~*е2(г), 0 < 7 < 1. (14.8) i=l
Минимизация J относительно значений 9 приводит к следующему рекурсивному алгоритму:
11(14.9, а)(14.9, а)(14.9, б)(14.9, б)9^m + 1) = У(т) + G[y(m + 1) — хТ(т + 1)0(т)]
1
1
(14.9, а)
(14.9, а)
(14.9, б)
(14.9, б)
Р(т + 1) = — Р(т) — —Р(т)х(т + 1)хТ(т + 1)Р(т) , 7а
где
а = 7 + хТ(т + 1)Р(т)х(т + 1),
хТ = [^(т + 1) ж2(т + 1) ... жп(т + 1)],G = Р(т + 1)х(т + 1) = Р(т)х(т + 1)/а.
Здесь аргумент т используется, чтобы подчеркнуть тот факт, что величины получаются в каждой точке выборки, 7 называется коэффициентом забывания и не дает матрице P(m +1) устремиться к нулю (а б^т +1) — к константе) с увеличением т, таким образом становится возможным отслеживание медленно меняющегося параметра. Обычно 7 выбирается между 0,98 и 1. При меньших значениях самым свежим данным присваиваются слишком большие весовые коэффициенты, что приводит к сильно флуктуирующим оценкам.
Существует, впрочем, две основные проблемы, которые могут возникнуть при непосредственной реализации рекурсивного алгоритма наименьших квадратов. Первая, именуемая “раздуванием” (“blow-up") возникает, когда сигнал не инициируется непрерыв-
но, например, когда нет окулярных движений, что приводит к экспоненциальному росту элементов Р в формуле (14.9, б):
lim [Ру (m + 1)] - Птт—*оот—*ооlim [Ру (m + 1)] - Птт—*оот—*оо^(т)^(т)(14.10)(14.10)
lim [Ру (m + 1)] - Птт—*оот—*оо
lim [Ру (m + 1)] - Птт—*оот—*оо
^(т)
^(т)
(14.10)
(14.10)
Впрочем, из-за появления миниатюрных окулярных движений (которые есть всегда) и других сигналов, обычно встречающихся в каналах ЭОГ, данная проблема не настолько серьезна.
Вторая проблема — это чувствительность алгоритма к компьютерным ошибкам округления, которые дают отрицательно определенную матрицу Рив конечном итоге — неустойчивость. Для успешных расчетов необходимо, чтобы матрица Р была положительно квазиопределенной, что эквивалентно следующему требованию: в автономном алгоритме матрица Х^Хт имеет обратную, но из-за наличия в уравнении (14.9, б) разности членов положительную определенность Р гарантировать можно не всегда [4, 7, 30]. Данная проблема острее в многопараметрических моделях, особенно если переменные (в данном случае — электроокулограммы) линейно зависимы [30], и если алгоритм реализован в малой системе с конечной длиной слова [7].
Проблему численной неустойчивости можно решить путем подходящей факторизации матрицы Р, чтобы избежать вычитания в формуле (14.9, б). Подобные алгоритмы факторизации лучше подходят для численных расчетов, а их точность сравнима с точностью алгоритмов, построенных на рекурсивной схеме наименьших квадратов, в которых используется двойная точность [4, 5]. Два таких алгоритма — алгоритм квадратного корня и алгоритм UD-факгоризации. С точки зрения памяти и сложности вычислений UD-алгоритм эффективнее. Фактически UD-алгоритм — это обычный алгоритм квадратного корня, в котором не используется квадратный корень, а значит, свойства этих алгоритмов аналогичны.
В UD-алгоритме матрица P(m + 1) факторизуется следующим образом:
(14-11)(14-11)P(m + 1) = U(m + l)D(m + l)UT(m + 1),
(14-11)
(14-11)
где U(m + 1) — единичная верхняя треугольная матрица, UT(m + 1) — обратная к ней, D(m +1) — диагональная матрица. Таким образом, вместо обновления матрицы Р обновляются ее факторы U и D.
Используя уравнение (14.11), формулу (14.9, б) можно переписать следующим образом:
V^m + 1) = —U(m) B(m) —7 LV^m + 1) = —U(m) B(m) —7 L1 , — VV а1 , — VV а(14.12)(14.12)
V^m + 1) = —U(m) B(m) —
7 L
V^m + 1) = —U(m) B(m) —
7 L
1 , — VV а
1 , — VV а
(14.12)
(14.12)
где
v = B(m)UT(m)x(m + 1).
Если выражение в квадратных скобках факторизовать на верхнюю треугольную и диагональную матрицы, получим
(14.13)(14.13)U(m)D(m)UT(m) = B(m)vvа
(14.13)
(14.13)
где черта используется, чтобы отличить факторы U и D матрицы D(m) — (l/a)vvT от факторов матрицы Р. Далее получаем
p(m +1) = —и(т)и(т)5(т)ПТ(т)ит(т).(14.14)
7
Сравнивая уравнения (14.11) и (14.14) и заметив, что произведение верхних треугольных матриц также является верхней треугольной матрицей, с помощью симметрии уравнения (14.14) получаем
u(m + 1) — и(т)и(т)(14.15, а)
D(m + 1) = —D(m).(14.15,6)
7
Таким образом, для обновления U(m+1) и D(m+1) необходимы подходящие рекурсивные формулы для U и T>(mY В работе [4] приводится алгоритм рекурсивного обновления U(m+1) и D(m+1) для фильтра Калмана, в котором используется дисперсия члена ошибки е(г), но не 7. Данный алгоритм тривиально приводится к виду, удобному для использования в задаче устранения окулярных артефактов. Данный модифицированный алгоритм, в котором фигурирует величина 7, приведен в приложении 14А.
Вектор усиления G, получаемый на этапе 10 указанного алгоритма, используется для обновления оценок параметров, как следует из формулы (14.9, а). Так, хотя P(m + 1) можно получить, обновляя UD-элементы согласно формуле (14.11), непосредственно вычислять P(m + 1) необязательно.
Некоторые свойства UD-алгоритма
Чтобы лучше понять UD-алгоритм, полезно записать его явно. Таким образом, для двухпараметрической модели алгоритм, приведенный в приложении, выглядит так:
■ этап 1: Vj = Ху(т + 1); v2 = ж2(т + 1) + Uy2(m)xy(m + 1);
этап 2: by = 6Дт)жДт + 1); b2 = <Z2(m)v2;
этап 3: ctj = 7 + byUy = 7 + dy^m^Xy^m + 1);
этап 4: 6Дт + 1) = d^m?)/av>
этап 5: а2 =+ 62v2 = cti + (/ДтДД
этап 6: t/12(m + 1) = Uy^m + 1) — byv2(ay;
этап 7: by = by + Ьг^12(т) = dy(m)xy(m + 1) + ДДт)у2^12(т);
этап 8: d^m + 1) = d2ay/^a2.
Из этапа 3 видно, что, если начальные значения диагональных элементов (т.е. с/ДО) и <^2(0)) положительны, а1; а следовательно, dy(m + 1) всегда будет больше нуля. То же справедливо для а2 (а в формуле (14.9)) и d^m + 1).
Положительная определенность Р. Матрица Р положительно определена тогда и только тогда, когда хтРх > 0, исключая случай Ху = х2 = ... = хп = 0 [2]. Из формул (14.9) и (14.11) получаем, что а = 7 + хтРх = 7 + xTUDUTx, откуда для двухпараметрической модели вычисляем (см. выше этапы 3 и 5):
а2 = «1 + d2v2 = 7 + dy^m)Xy(m + 1) + d^m^,
так что в этом случае
хтРх = d^m?)x^m + 1) + d^m^v^-
Следовательно, знак хтРх зависит от знаков диагональных элементов (т.е. di и d2), которые, как отмечалось ранее, всегда положительны, поэтому матрица Р является положительно определенной. Значит, алгоритм UD-факторизации гарантирует положительную определенность Р.
Проблема раздувания. При отсутствии данных (т.е. когда $1 = х2 = ... = хп = 0) av = а2 = -у (этапы 3 и 5) и обе величины d^ и d2 постоянно масштабируются на 7, которое меньше единицы, в результате диагональные элементы экспоненциально растут. Таким образом, похоже, что проблема “раздувания” не исчезает при факторизации, как утверждают некоторые авторы. Для уменьшения эффекта “раздувания” можно использовать другие рекурсивные схемы наименьших квадратов (см., например, [14]), но в задаче устранения окулярных артефактов минимальные окулярные движения и другие присущие системе шумы гарантируют, что значения х никогда не станут равными нулю.
Оперативный алгоритм устранения окулярных артефактов с помощью UD-факторизации и алгоритма квадратного корня моделировался на компьютере. Было показано, что полученные результаты подобны результатам, которые позволяют получить автономные эквивалентные средства.
Аппаратное обеспечение для оперативной системы устранения окулярных артефактов
В данном и следующем разделах описывается оперативная система устранения окулярных артефактов, в которой используется UD-алгоритм. Вначале устанавливается целевая спецификация системы. Затем подходящая система описывается на уровне блок-схемы.
Система устранения окулярных артефактов разрабатывалась с учетом следующих требований:
совместимость со стандартными аппаратами ЭЭГ;
возможность непрерывного устранения окулярных артефактов в реальном времени из многоканальных сигналов ЭЭГ (устранение окулярных артефактов теперь основывается на субъективных критериях и является адаптивным);
возможность подачи скорректированных ЭЭГ и/или нескорректированных ЭЭГ и ЭОГ на аппарат ЭЭГ, чтобы можно было мгновенно сравнить скорректированную и нескорректированную ЭЭГ;
возможность избежать насыщения, которое снизит эффективность схемы коррекции, кроме того, система должна иметь некоторые средства автоматического выбора диапазона;
инструмент может использовать необученный человек.
Данным требованиям удовлетворяет подходящая микропроцессорная система, на которой реализован UD-алгоритм. Использование микропроцессорной системы дополнительно имеет следующие преимущества.
Управляемая программно структура дает очень эффективную систему. В одной системе можно реализовать несколько алгоритмов и моделей устранения окулярных артефактов, выбирать из которых сможет пользователь.
Для исследования новых моделей или идей требуется всего лишь модифицировать программное обеспечение, а не создавать новый инструмент. Следовательно, система с программным управлением может значительно облегчить исследования.
Программируемый инструмент позволяет внедрить обслуживающие программы для самопроверки, автоматической калибровки, снижения проблем переполнения и т.д. Обработка данных на удаленной системе может включать цифровую фильтрацию электроокулограмм с целью снижения влияния вторичных артефактов [17].
На настоящий момент система устранения окулярных артефактов может обрабатывать только шесть каналов сигналов ЭЭГ и ЭОГ, но ее можно расширить до 20 каналов (см. далее). Блок-схема системы приведена на рис. 14.13. Каждый сигнал ЭЭГ/ЭОГ со вспомогательного выхода аппарата ЭЭГ вначале усиливается, а затем ограничивается по полосе до 30 Гц с помощью фильтра нижних частот, выход которого соединен со схемой выборки-хранения. Затем сигналы ЭЭГ/ЭОГ одновременно дискретизуются в моменты положительных переходов сигнала дискретизации FS. Одновременная дискретизация позволяет избежать задержки между соответствующими временными точками. Отрицательные переходы сигнала FS прерывают процессор и сигнализируют о начале цикла, в течение которого 20 выборок последовательно выбираются уплотнителем (MUX) и оцифровываются аналоговым преобразователем (АЦП) под управлением микропроцессора.
Усилитель с программируемым усилением и детектор диапазона используются для расширения динамического диапазона АЦП и предотвращения переполнения. Переполнение АЦП является существенной проблемой в работе схемы и может привести к ложной оценке параметров. Чтобы избежать этого, обычно используется только часть динамического диапазона АЦП, поэтому переполнение возникает редко, а при переполнении все данные в области, где оно произошло, отбрасываются, хотя это может привести к утрате данных. Использование усилителей с программируемым усилением и детектора диапазона позволяет динамически менять усиление. Таким образом, если выход усилителя превышает предопределенный предел детектора, усиление автоматически снижается, при этом значения выборок уменьшаются в два раза, и они переносятся в динамический диапазон АЦП, устраняя таким образом насыщение.
Далее оцифрованные выборки обрабатываются согласно алгоритму устранения окулярных артефактов, и получаются скорректированные ЭЭГ. Выборки скорректированных ЭЭГ плюс необработанные ЭЭГ/ЭОГ при желании можно подать на вспомогательный вход аппарата ЭЭГ, используя аналого-цифровой преобразователь (АЦП) и соответствующую цепь.
Мультиплексор и демультиплексоры требуются для совместного использования ресурсов входным и выходным каналами. Альтернативное решение — предоставить отдельные АЦП и ЦАП для каждого канала. Такой подход снижает шум системы, вызванный перекрестными помехами каналов, до минимума, но признан чересчур дорогим.
Каждый канал имеет собственную выходную схему выборки-хранения и отдельную шину дискретизованных сигналов. Схема выборки-хранения используется для хранения
Рис. 14.13. Блок-схема микропроцессорной системы устранения окулярных
аналоговых выборок до получения новой аналоговой выборки. Эта схема “растягивает” дискретные импульсы и увеличивает мощность сигнала, но вводит апертурное искажение, которое, впрочем, в данном случае мало.
Программное обеспечение для системы оперативного устранения окулярных артефактов
Программное обеспечение для системы устранения окулярных артефактов состоит из программ получения и распределения данных, программы оперативного устранения окулярных артефактов, программ арифметики с плавающей запятой и управляющей основной программы. Все программное обеспечение занимает 3 Кбайт памяти. Сердцем программного обеспечения, записанным на языке ассемблера микропроцессора 68000, является UD-алгоритм, описанный в подразделе 14.2.2.2. Ниже предлагается краткий обзор данного программного обеспечения.
Система устранения окулярных артефактов управляется прерываниями. Сигнал прерывания исходит от программируемого датчика времени, встроенного в контроллер системы, и имеет частоту 128 Гц (иногда используется частота 95 Гц, дающая больше времени на вычисления; измерение частоты сигнала легко выполняется с помощью программного обеспечения). Во время прерывания программное обеспечение системы используется для получения данных ЭОГ/ЭЭГ, устранения окулярных артефактов из выборок ЭЭГ с помощью UD-алгоритма и подачи скорректированных ЭЭГ и/или необработанных данных на аппарат ЭЭГ, чтобы можно было получить график на бумаге. Схематически работа системы показана на рис. 14.14.
В фазе инициализации пользователю посредством дисплея предлагается выбрать различные константы системы, а именно — число каналов ЭЭГ, число параметров модели и, следовательно, модель, которая будет использоваться в алгоритме устранения, и число скорректированных и/или необработанных сигналов ЭЭГ, которые будут поданы на аппарат ЭЭГ. Некоторые сигналы ЭОГ и оценки параметров могут также подаваться на аппарат ЭЭГ. Эти константы проверяются и, если они приемлемы, используются для инициализации системы. Если константа неприемлема, используется значение по умолчанию. После инициализации программа повторяется циклично до тех пор, пока поступают приемлемые данные (рис. 14.14, а). Отметим, что описанная процедура применима только к системе-прототипу. В будущих системах устранения окулярных артефактов пользователю не понадобится дисплей, выбор необходимых параметров выполняется простым нажатием клавиш, и “фоновая” программа заменяется более полезной обслуживающей программной (см. подраздел 14.2.2.3). Флаг (флаг данных) устанавливается в служебной программе прерывания (рис. 14.14, б) при каждом прерывании и свидетельствует о том, что доступны приемлемые данные. После получения данных обновляются элементы UD-алгоритма, с ЭЭГ удаляются окулярные артефакты, и скорректированные ЭЭГ и/или необработанные данные подаются на аппарат ЭЭГ. В завершение флаг данных очищается, чтобы указать, что текущие выборки данных были успешно обработаны.
Рис. 14.14. Программное обеспечение системы устранения окулярных артефактов: а) основная программа; б) служебная программа прерывания
Если новое прерывание происходит до завершения обработки предыдущего, на дисплей выводится сообщение об ошибке, и программа останавливается. Обычно это происходит, если задано больше параметров и/или каналов ЭЭГ, чем система может обработать за интервал дискретизации 8 мс. Остановка предотвращает накопление прерываний, которые нельзя обработать, и последующий сбой системы.
Арифметические операции в системе устранения окулярных артефактов выполняются с использованием формата с плавающей запятой, что подразумевает большой динамический диапазон чисел и отсутствие проблем масштабирования, присущих арифметике с фиксированной запятой.
В данном приложении скорость критична, и наилучшим кажется аппаратное решение с плавающей запятой, однако существующие устройства с плавающей запятой и слишком дороги, и слишком медленны. Следовательно, число каналов ЭЭГ, которые можно обработать, было уменьшено, чтобы можно было использовать программные средства с плавающей запятой.
б)
Рис. 14.15. Использованная экспериментальная установка: а) соединение с аппаратом ЭЭГ; 6) разме-щение электродов для снятия ЭОГ
Тестирование системы и экспериментальные результаты
Предклиническая проверка системы устранения окулярных артефактов выполнялась в Freedom Fields Hospital (Плимут). В первой фазе для расширенного тестирования надежности системы использовались шесть здоровых пациентов. Данная фаза являлась также настроечной, в которой изучалось поведение системы и определялись незначительные погрешности. Во второй фазе для оценки влияния процесса устранения окулярных артефактов на пики и медленные волны использовался один неконтактный больной, ЭЭГ которого содержала пики и разрывы волны, и два пациента, один из которых был неконтактным, ЭЭГ которых содержали медленные волны. Во всех проведенных тестах пациентов просили выполнить определенные движения глазами — периодическое и случайное моргание, вертикальное и горизонтальное движение глаз.
Используя размещение электродов, как показано на рис. 14.15, было получено девять сигналов ЭЭГ: FP2-F4, F4-C4, С4-Р4, FP1-F7, F3-C3, C3-P3,Fz-Cz, CZ-мочка правого уха (А2) и Cz-Pz. Затем с электродов, расположенных возле глаз, как показано на рис. 14.15, б, были получены сигналы ЭОГ.
Сигналы ЭЭГ и ЭОГ подавались на восьмиканальный аппарат ЭЭГ через головной каркас и после усиления переносились в систему устранения окулярных артефактов с помощью 37-контактного D-соединителя. После устранения окулярных артефактов из сигналов ЭЭГ на финальный усилитель аппарата ЭЭГ подавались скорректированная и
необработанная ЭЭГ (с удаленными средними) и/или ЭОГ, откуда для изучения сигналы переносились на бумагу (см. рис. 14.15, а).
В тестах использовалось несколько моделей, но ниже описаны только три, давшие наилучшие результаты. В двух из этих моделей применялись электроокулограммы, полученные с электродов, размещенных так, как показано на рис. 14.15, б (в предварительных исследованиях это давало наилучшие результаты). Итак, две использованные модели записываются следующим образом:
3D у (г) = O^VR^ + 62HR(i) + 93НЦг) + е(г)
4D у(г) = Q^R^ + 62HR(i) + 93HL^ + 04HL^HR^ + е(г). (ИЛ6)
В третьей модели, далее именуемой моделью 2Н, использовались пары электродов FP1- F7и FP2-F8:
2Н y(i) = ^EOGR^ + 92ЕОСЦг) + е^. (14.17)
Следует также отметить, что ключ выбора режима в аппарате ЭЭГ можно использовать для принудительного перехода к разнообразным моделям путем выбора различных пар электродов ЭОГ, сигналы с которых подаются в каналы 1-4 (зарезервированные для ЭОГ).
Система устранения окулярных артефактов использовалась для устранения ОА из сигналов, поступающих с других электродов ЭЭГ (см. рис. 14.15, а), с помощью модели 2Н (иногда моделей 3D и 4D). Было найдено, что во всех случаях окулярные артефакты успешно устранялись, в том числе во всех фронтальных каналах ЭЭГ, где они наиболее значительны. На рис. 14.16 приведены результаты для четырех различных электродов (Fz-Cz, Cz-A2, F4-C4 и F3-C3) в экспериментах с морганием глаз. На рис. 14.16, а и б окулярные артефакты устранялись одновременно из двух различных сигналов ЭЭГ. Из сравнения скорректированной и необработанной ЭЭГ видно, что система успешно удаляет окулярные артефакты (сравните кривые на панелях б и е с кривыми на панелях в и г).
Отметим, что для электродов ЭЭГ, расположенных ближе к задней части головы (например, Cz-Pz и С4-Р4), наблюдалось незначительное засорение сигнала окулярными артефактами. В этих случаях все модели показывали равно хорошие результаты.
На рис. 14.17 показана ЭЭГ-запись неконтактного пациента, содержащая помимо окулярных артефактов эпилептический пик и всплески волн. (В данном и последующих случаях, если ЭЭГ содержит патологические волны, необработанная ЭЭГ подается непосредственно на конечный усилитель аппарата ЭЭГ и на вход системы устранения окулярных артефактов, как описывалось ранее, что разрешает использовать несмещенный анализ записей.) Сравнивая скорректированную и необработанную ЭЭГ (рис. 14.17, г и б), видим, что окулярные артефакты были удалены, но пики и волны остались.
Следует также отметить получение хороших результатов от неконтактного психически больного, ЭЭГ которого содержали только медленные волны малой амплитуды. Заслуживает внимания тот факт, что существовавшие ранее оперативные методы не подходят для работы с неконтактными пациентами.
№)
(V)
Рис. 14.16. Одновременное адаптивное удаление окулярных артефактов в паре электродовЭЭГ в эксперименте с морганием: о и 6 — измеренные сигналы ЭОГ от правого и левогоглаза; виг— ЭЭГ, измеренные с электродов Cz-A2 и Fz-Cz, д и е — соответствующие ЭЭГс удаленными артефактами
Рис. 14.17. Устранение окулярных артефактов при наличии эпилептических пиков и всплесков волн: о и 6 — измеренные ЭОГ для левого и правого глаза; в — измеренная ЭЭГ; г — ЭЭГ с удаленными артефактами; д — необработанная ЭЭГ
Обсуждение
Тесты, в которых использовались различные типы окулярных движений (моргание, вертикальное движение, горизонтальное движение), показали, что достичь приемлемого устранения окулярных артефактов, вызванных указанными движениями, во всех электродах ЭЭГ можно, используя численно устойчивый UD-алгоритм. Было отмечено, что при размещении электродов ближе в затылку наблюдается крайне незначительное загрязнение ЭЭГ со стороны окулярных артефактов, и в этих случаях все модели показывают хорошие результаты. Также отмечалось, что, хотя удовлетворительное устранение ОА достигается при вертикальном движении глаза, окулярные артефакты, вызванные другими артефактами, не устраняются целиком. Подобные результаты были получены в предварительных исследованиях, и проведенные эксперименты их подтвердили. Неспособность системы устранения окулярных артефактов полностью избавиться от рейтерных артефактов, возможно, отчасти объясняется тем, что в использованных моделях учитываются только одновременные изменения ЭОГ и ЭЭГ. Если требуется получить улучшенные результаты, можно использовать динамическую модель следующего вида (единственный вход или ЭОГ):
N-1
у(т) = ^2 h\ri)x(jn — п) + е(п).
п=0
Результаты, полученные для больных пациентов, показывают, что при появлении патологических медленных волн и пиков при отсутствии окулярных артефактов процесс устранения ОА в общем случае влияет на них незначительно. В то же время, когда они появляются одновременно с ОА, их амплитуда может снижаться, хотя и не до нуля. Уменьшение амплитуды происходит в основном во фронтальных каналах ЭЭГ. Таким образом, может потребоваться различать ОА и медленные волны. Для решения данной проблемы нужны дальнейшие исследования.
Система устранения окулярных артефактов ограничена тем, что даже при простейшей модели (2Н) она позволяет одновременно устранять окулярные артефакты максимум из четырех сигналов ЭЭГ, что вызвано малой скоростью программ, в которых используется арифметика с плавающей запятой, — для выполнения арифметической операции обычно требуется 70 мкс. Решение этой проблемы состоит в использовании скоростных аппаратных устройств с плавающей точкой, способных выполнять арифметическую операцию за 1-2 мкс.
Выводы
Предварительные результаты, полученные на здоровых и больных пациентах, показали, что система устранения окулярных артефактов хорошо справляется со своей задачей при моргании, вертикальном и горизонтальном движении глаз и биполярной установке электродов ЭЭГ. Использование алгоритма UD-факторизации и системы с программным управлением позволяет избавиться от недостатков существовавших ранее оперативных методов устранения окулярных артефактов. Таким образом, описанная система может обрабатывать множественные артефакты, не требует действий со стороны пациента на стадии предварительной калибровки и использует критерий
устранения, основанный на чисто объективном методе. Данная система, первая в своем роде, совместима со стандартными аппаратами ЭЭГ, поэтому ее можно производить как вспомогательное оборудование. В то же время полностью оценить полезность инструмента можно только после расширенных клинических испытаний.
Хотя система УОА разработана специально для устранения окулярных артефактов с ЭЭГ, ее можно использовать как универсальную систему устранения артефактов (или шума) в большинстве физиологических ситуаций, где можно по отдельности померять зашумленный сигнал и сигнал шума. Пример — задача измерения электрокардиограммы (ЭКГ) плода в присутствии значительной зашумляющей ЭКГ матери [38]. Другой пример — устранение ОА и артефактов ЭКГ с ЭЭГ [12]. В обоих приложениях систему УОА можно использовать для устранения артефактов, возможно, после незначительных модификаций на программном и аппаратном уровнях. Должным образом запрограммированная система УОА может также использоваться в других задачах обработки сигналов, например, цифровой фильтрации.
Со времени разработки системы ОАУ 10 лет назад в сфере ЦОС произошли существенные изменения, особенно в сфере аппаратного обеспечения ЦОС. Очевидно, что если описанную систему реализовать сейчас, можно будет использовать хороший чип ЦОС. В настоящее время для срочных приложений, подобных описанным выше, хорошо подходят такие цифровые процессоры сигналов с плавающей запятой, как TMS320C30 или TMS320C40. Напомним, что, несмотря на изменения в ЦОС, общие принципы разработки и возникающие вопросы остались прежними. Надеемся, что наш опыт будет полезен читателям.
14.2.3. Выравнивание цифровых аудиосигналов
Выравнивание аудиосигналов является важным функциональным требованием микшерных пультов, используемых во многих профессиональных и полупрофессиональных аудиоприложениях, например, при студийной записи, усилении звука в системах местного радиовещания и широковещательных станциях. Аудиоэквалайзер — это, по сути, набор фильтров с регулируемыми частотными характеристиками, который используется для формирования требуемого спектра аудиосигналов. В традиционном микшерном пульте выравнивание аудиосигналов выполняется за счет аналоговой фильтрации, но наблюдается тенденция к переходу на чисто цифровые микшерные пульты, поскольку это предлагает улучшенное качество звука и потенциальное снижение стоимости производства в будущем. В полностью цифровом микшере аналоговые фильтры заменяются эквивалентными цифровыми фильтрами реального времени. Ниже описан полупараметрический эквалайзер реального времени, реализованный с использованием высокоскоростного цифрового процессора с плавающей запятой TMS320C30.
Стандартный параметрический эквалайзер позволяет пользователю выбирать конкретную частоту в полосе аудиочастот и настраивать уровень аудиосигнала на одной частоте или в диапазоне частот. Используются фильтры трех основных типов.
Звонковый фильтр. Позволяет усиливать или подавлять определенную частоту в полосе аудиочастот. Звонковый фильтр — это, по сути, полосовой фильтр с настра-
20,000
20100IKЮК 50К /
Рис. 14.18. Амплитудная характеристика звонкового фильтра для различных центральных частот и ширин полос (панель о). Амплитудная характеристика полочного фильтра (панель б)
иваемым усилением, добротностью и центральной частотой. Центральная частота может меняться в диапазоне 20-16 кГц, добротность — в диапазоне 0,5-3, а усиление — в интервале ±15 дБ. Пример характеристики звонкового фильтра приведен на рис. 14.18, а.
Полочный фильтр. Позволяет регулировать усиление и частоту среза эквалайзера в интервале, принадлежащем либо диапазону верхних частот, либо диапазону нижних частот аудиополосы. Полочковые фильтры нижних частот используются для усиления или подавления полосы низких частот, например, между 20 и 500 Гц, а полочковые фильтры верхних частот — для усиления или подавления полосы высоких частот, например, между 1,6 и 16 кГц. Обычная регулировка верхних и нижних звуковых частот в домашних аудиосистемах фактически выполняется с помощью полочковых фильтров с фиксированными характеристиками. Типичная характеристика указанного фильтра приведена на рис. 14.18, б.
Пропускающие фильтры. Это, по сути, фильтры нижних частот и верхних частот с фиксированными частотами среза, которые используются для удаления низко- и высокочастотного шума из аудиосигнала.
Полное выравнивание выполняется за счет совместного использования основных фильтров. В аналоговых эквалайзерах характеристики фильтра (усиление, центральная частота, добротность и т.д.) регулируются пользователем посредством интерактивного управления (переменные резисторы, реостаты). В цифровой реализации настройка
выполняется путем замены в реальном времени коэффициентов цифрового фильтра в ответ на изменение параметров эквалайзера.
Анализ типичного аналогового параметрического эквалайзера показывает, что фильтры всех указанных выше типов можно рассматривать как фильтр Баттерворта, передаточные функции которых имеют следующую форму [6]: для звонкового фильтра —
Я(з) =Я(з) =s2 + Awns + ш2,S2 + Вшп8 + W2 ’s2 + Awns + ш2,S2 + Вшп8 + W2 ’(14.18, а)(14.18, а)
Я(з) =
Я(з) =
s2 + Awns + ш2,
S2 + Вшп8 + W2 ’
s2 + Awns + ш2,
S2 + Вшп8 + W2 ’
(14.18, а)
(14.18, а)
для низкочастотного полочкового фильтра —
(14.18,6)(14.18,6)(14.18, в)(14.18, в)s2 + 2Awns + А2ш2
(14.18,6)
(14.18,6)
(14.18, в)
(14.18, в)
s2 + 2Bwns + В2ш2 ’
для высокочастотного полочкового фильтра —
A2s2 + 2Awns + ш2
B2s2 + 2Вшпз + ш2 ’
где
А = C/Q,
В = 1/Q.
Чтобы достичь производительности, сравнимой с производительностью традиционного аналогового эквалайзера, указанные выше аналоговые фильтры заменяются эквивалентными цифровыми путем преобразования приведенных передаточных функций, записанных на s-плоскости, с помощью билинейного z-преобразования (см. главу 8). Все получающиеся передаточные функции на z-плоскости можно записать в форме
az2 + bz + с dz2 + ez + / ’az2 + bz + с dz2 + ez + / ’(14.19)(14.19)
az2 + bz + с dz2 + ez + / ’
az2 + bz + с dz2 + ez + / ’
(14.19)
(14.19)
где
а = Р2 + AP + w2,b = 2w2 -2Р2,с = Р2- АР + ш2,d = Р2 + ВР + ш2п,е = 2ш2п - 2P2J = Р2 - ВР + ш2,
п2/шпТ
Р = -—, = — tg ——-
шр’ р Т & \ 2
Модельные задачи показывают, что, поскольку параметры эквалайзера настраиваются в диапазоне аудиочастот, для учета большого разброса в диапазоне значений коэффициентов фильтра должна использоваться арифметика с плавающей запятой. Такая арифметика также привлекательна тем, что позволяет легче пересчитывать коэффициенты фильтра с помощью билинейного z-преобразования в “реальном времени”, чтобы можно было выполнять оперативную настройку характеристик эквалайзера.
Рис. 14.19. Упрощенная блок-схема демонстрационного модуля TMS32OC3O
Эквалайзер был реализован на компьютерном демонстрационном модуле TMS320C30, содержащем процессор TMS320C30, 14-битовый модуль АЦП/ЦАП и пакет программной разработки. Упрощенная блок-схема параметрического эквалайзера на основе TMS320C30 показана на рис. 14.19. Аналоговый аудиосигнал (например, поступающий с проигрывателя компакт-дисков) оцифровывается до 14 бит с частотой порядка 18,9 кГц и передается на процессор, где он проходит цифровую фильтрацию с помощью звонкового, полочкового и/или пропускного фильтра. Для настройки параметров эквалайзера (усиление, частота, тип фильтра) используется клавиатура, а на дисплее динамически отображается частотная характеристика эквалайзера.
В демонстрационном модуле и персональном компьютере проходит несколько процессов. Процессор TMS320C30 выполняет фильтрацию, необходимую для выравнивания, и пересчитывает коэффициенты фильтра для эквалайзера, когда пользователь настраивает его параметры. Пересчет коэффициентов происходит в фоновом режиме, а фильтрация управляется прерываниями. Программа написана на языке ANSI С, а арифметические операции выполняются с использованием плавающей запятой (24-битовая мантисса и 8-битовая экспонента). Фрагменты кодов С для фильтрации и расчета коэффициентов можно найти в книге [20] (подробности см. в предисловии).
Производительность эквалайзера оценивалась для различных выбранных параметров с использованием музыки от проигрывателя компакт-дисков. Сделан вывод: эквалайзер достаточно эффективен. На настоящее время ограничением является только то, что демонстрационный модуль допускает частоту дискретизации максимум 18,9 кГц, тогда как для профессиональной работы требуется частота 44,1 кГц.
Модельные задачи
В большинстве курсов по ЦОС выигрышной стратегией часто является постановка одной или нескольких серьезных практических задач, работать над решением которых можно индивидуально или группами. Предназначение подобных задач — дать студенту возможность получить более глубокие знания ЦОС. Данные задачи построены на нескольких аспектах концепций ЦОС и могут ставиться ближе к концу курса или ранее (в последнем случае студент овладеет концепциями как раз тогда, когда они ему станут необходимы).
Рис. 14.20. Схема снижения шума второго порядка
В данном разделе представлено несколько подобных серьезных задач, которые авторы нашли полезными в некоторых прочитанных ими курсах. Указано также, какие обучающие цели ставились, и какие подзадачи предполагалось использовать.
Схемы снижения шума округления для цифровых БИХ-фильтров
с фиксированной запятой
На рис. 14.20 показана структура цифрового БИХ-фильтра второго порядка со схемой обратной связи по ошибке, предназначенной для уменьшения ошибок округления произведений. Фильтр требуется реализовать с использованием арифметики с дополнением до двух на процессоре ЦОС с архитектурой “В/2В бит”. Коэффициенты и другие переменные хранятся как В-битовые слова, и произведения квантуются после суммирования. Коэффициенты схемы обратной связи по ошибке могут принимать одно из указанных значений: 0, ±0,25, ±0,5, ±0,75, ±1, ±1,25, ±1,5, ±1,75, ±2.
Выведите общую формулу для следующих величин:
передаточная функция, связывающая источник шума округления е(п) и выход фильтра у(п);
выходная мощность шума, порожденного ошибками округления;
отношение сигнал-шум на выходе фильтра; предполагается, что входной сигнал т(п) — синусоида с известной частотой, квантованная до В бит;
положения нулей цепи обратной связи.
Б. Разработайте
алгоритм вычисления входной мощности шума, порожденного ошибкой округления, отношения сигнал-шум на выходе фильтра и положения нулей цепи об-
ратной связи по данным значениям неквантованных коэффициентов фильтра, коэффициентов обратной связи и длины слова системы В;
программу MATLAB, реализующую алгоритм Б. 1.
Используйте написанную программу MATLAB плюс другие утилиты MATLAB, чтобы исследовать влияние схемы обратной связи по ошибке на уровень шума округления произведений для каждого из указанных ниже фильтров (задачу следует повторить для двух ситуаций : В = 16 бит и В = 24 бит) [9].
Режекторный фильтр для обработки аудиосигналов, который характеризуется
следующими параметрами:
коэффициенты фильтра
60 = 0,996 450 761 790, б! = -1,992 821 454 486, 62 = 0,996 443 656 208, di = -1,992 821 454 486, a2 = 0,992 894 417 998;
частота дискретизации
48 кГц.
2. “Усиливающий” фильтр для обработки аудиосигналов, который характеризу
ется следующими параметрами:
коэффициенты фильтра Ьо = 0,996 450 761 790, 61 = -1,992 821 454 486, 62 = 0,996 443 656 208, аг = 1,992 821 454 486, а2 =-0,992 894 417 998;
частота дискретизации48 кГц;
центральная частота15 кГц.
Фильтр верхних частот, который характеризуется следующими параметрами: коэффициенты фильтра 60 = 0,292 893, 61 = —0,585 786, 62 = 0,292 893, а1 = 0, а2 = 0,171 572 8;
частота дискретизации 8 кГц;
граница полосы подавления 500 кГц;
граница полосы пропускания 2 кГц.
Г. Исследование должно включать следующие элементы:
для каждого фильтра и длины слова В следует рассчитать и занести в таблицу выходную мощность шума, отношение сигнал-шум и положение нулей цепи обратной связи для каждой пары коэффициентов обратной связи, приведенной в табл. 14.2;
расчет пары коэффициентов обратной связи, которая дает наименьшую выходную мощность шума (из всех возможных пар и разрешенных коэффициентов обратной связи, указанных в п. А);
графики частотной характеристики, соответствующей передаточной функции шума для каждой пары коэффициентов обратной связи в табл. 14.2 и для лучшей пары коэффициентов, найденной в п. 2;
Таблица 14.2. Значение коэффициентов обратной связи по ошибке
№
kV
к2'
1
0
-1
2
0
1
3
-1
0
4
-1
-1
5
-1
1
6
1
0
7
1
-1
8
-2
-1
9
2
-1
10
0
0
краткий отчет (максимум 3-4 страницы, включая диаграммы и программы) об исследовании и полученных результатах. Ниже перечислены необходимые элементы отчета.
Вступление с формулировкой проблемы шума округления в системах ЦОС.
Детали ответов по п. А-Г.
Критическое обсуждение полученных результатов и рекомендации по выбору коэффициентов обратной связи по ошибке на практике.
Критическое обсуждение ограничений схем обратной связи по ошибке при использовании для снижения шума округления.
Обсуждение других преимуществ схем обратной связи по ошибке помимо снижения шума округления.
Резюме по оценке специфических параметров, выполненной в ходе решения задачи.
Использованные программы MATLAB.
Пример разработки фильтра с обработкой при нескольких скоростях Исходные данные
Данный пример основан на одной из тем фильтрации на базе MATLAB, разработанной одним из наших бывших студентов, Ником Отрамом [28], для одного из наших курсов. Ставятся такие обучающие цели:
глубже понять концепции обработки сигналов при нескольких скоростях;
продемонстрировать некоторые ограничения КИХ-фильтров в случаях, когда требуется узкая амплитудная характеристика;
разобраться на собственном опыте, как создаются и внедряются фильтры с обработкой на нескольких скоростях.
В данном примере, чтобы облегчить процесс обучения, используется электрокардиограмма (ЭКГ) плода. Форма ЭКГ плода, представляющая медицинский интерес, искажается низкочастотным артефактом, известным как смещение базовой линии (baseline shift) (см. рис. 14.21). Смещения базовой линии препятствуют точному измерению и анализу
Рис. 14.21. Острые смещения базовой линии
особенностей ЭКГ плода. Сложность состоит в том, что очистка сигнала не должна искажать низкочастотную информацию, представляющую медицинский интерес. К сожалению, значительная часть энергии артефакта приходится на область ниже 3 Гц.
В данном исследовании даны два набора данных: good.ecg, содержащий качественные записи ЭКГ плода практически без смещения базовой линии, и poor. ecg, содержащий ЭКГ плода со значительными смещениями базовой линии. Наборы состоят из 12-битовых значений, дискретизованных с частотой 500 Гц.
Задача
Основная задача состоит в разработке схемы обработки сигналов с помощью КИХ- фильтров с линейной фазовой характеристикой, устраняющей смещение базовой линии без искажения формы ЭКГ.
Для решения основной задачи используются такие подзадачи:
написать программу MATLAB для считывания файлов данных ЭКГ в два отдельных массива и отображения на некоторой оси первых 4000 выборок каждого сигнала;
оценить, используя функцию MATLAB remezord, число коэффициентов, требуемых для соответствия спецификациям, приведенным на рис. 14.22; прокомментируйте полученные результаты и задачу разработки узкополосных КИХ-фильтров;
разработать и реализовать фильтр с обработкой при нескольких скоростях в MATLAB, используя при необходимости методы децимации и интерполяции;
протестировать фильтр, используя данные, проверить, не искажается ли сигнал ЭКГ, и определить задержку прохождения сигнала через систему с обработкой при нескольких скоростях;
составить краткий отчет о выполненном задании, в котором должны быть описаны разработка и тестирование фильтра с обработкой при нескольких скоростях.
Полоса подавления 0—1 ГЦЗатухание в полосе подавления50 дБ
Полоса пропускания 3—250 П1 Неравномерность в полосе пропускания0,1 дБ
Рис. 14.22. Спецификация фильтра для устранения смещений базовой линии
Разработка и реализация цифрового фильтра с использованием MATLAB и процессора DSP56002
Исходные данные
Цель данной задачи — позволить студенту самому получить необходимые навыки разработки и реализации КИХ-фильтров с помощью MATLAB и процессора ЦОС с фиксированной запятой. Задача основана на лабораторной работе наших студентов Брагима Хамадичарефа (Brahim Hamadicharef), Робина Кларка (Robin Clark) и Эдди Риддингтона (Eddie Riddington) в одном из наших курсов по ЦОС.
Специальные обучающие цели:
использовать MATLAB для
расчета коэффициентов и частотной характеристики КИХ-фильтров для данного набора спецификаций;
исследования влияния квантования коэффициентов на частотную характеристику;
реализовать КИХ-фильтры на базе процессора ЦОС с фиксированной запятой для
ознакомления со средствами разработки ЦОС;
разработки простой программы на языке ассемблера для КИХ-фильтра с фиксированной запятой;
тестирования и демонстрации фильтрации в реальном времени.
Задача
Требуется КИХ-фильтр с линейной фазовой характеристикой, устраняющий помеху с частотой 1 кГц из аудиосигнала. Фильтр должен удовлетворять следующим требованиям:
неравномерность в полосе пропускания 0,5 дБ,
затухание в полосе подавления25 дБ,
полоса пропускания900-1100 Гц,
границы полосы подавления990 и 1010 Гц,
частота дискретизации8 кГц.
Фильтр требуется разработать и реализовать, используя MATLAB и процессор ЦОС с фиксированной запятой Motorola DSP56002. Ниже перечислены основные подзадачи.
Вычислить коэффициенты подходящего КИХ-фильтра, используя MATLAB и оптимальный метод. Примечание: нужно использовать функцию remesord для оценки длины фильтра N, рассчитать коэффициенты фильтра, используя функцию remez, и нарисовать частотную характеристику фильтра, применяя функцию freqz. При определении параметров неравномерности могут быть полезны следующие соотно
шения:
Rp = —201g р — неравномерность в полосе пропускания в дБ,
1 + Ор
Rs = —201g ■ —затухание в полосе подавления в дБ,
1 + os
где
6р — неравномерность в полосе пропускания
6S — неравномерность в полосе подавления
Б. Определить подходящие длины слов коэффициентов фильтра, проанализировав эффекты квантования коэффициентов до 4, 8, 16 и 24 бит на частотную характеристику фильтра. Примечание: для квантования коэффициентов фильтра до В-битовых чисел в арифметике с дополнением до двух с фиксированной запятой каждый коэффициент просто умножается на 2s-1, а затем округляется до ближайшего целого. Разность между реальными коэффициентами и представлением в форме с плавающей запятой является мерой ошибки квантования коэффициентов.
Реализовать фильтр на демонстрационном модуле DSP56002 и проверить корректность его работы. Примечание: в качестве введения в цифровую КИХ-фильтрацию с использованием DSP56002 рассмотрите простой трехточечный КИХ-фильтр, изображенный на рис. 14.23. КИХ-фильтр характеризуется следующим уравнением:
у(п) = Д(0)т(п0 + Д(1)т(п — 1) + h^x^n — 2).
В табл. 14.3 представлена исходная карта памяти с коэффициентами и данными фильтра. Регистры г0 и г4 используются как указатели на коэффициенты и ячейки памяти соответственно. Используется круговая адресация. В программе 14.1 приведен код DSP 56002 для реализации простого фильтра. В столбце комментариев объясняется действие программы 14.1.
Для КИХ-фильтра с большим числом коэффициентов эффективнее использовать команду повтора DSP56002 вместе с командой mac. Ниже приводится фрагмент соответствующего кода DSP560002.
гер mac macr moveгер mac macr movea x(rO)+, #N-1 xO, yO, a xO, yO, a a, у:Outputa x(rO)+, #N-1 xO, yO, a xO, yO, a a, у:OutputхО у(г4)+, уОхО у(г4)+, уОx(rO)+, хО y(r4)+, уО (rO)-x(rO)+, хО y(r4)+, уО (rO)-
гер mac macr move
гер mac macr move
a x(rO)+, #N-1 xO, yO, a xO, yO, a a, у:Output
a x(rO)+, #N-1 xO, yO, a xO, yO, a a, у:Output
хО у(г4)+, уО
хО у(г4)+, уО
x(rO)+, хО y(r4)+, уО (rO)-
x(rO)+, хО y(r4)+, уО (rO)-
Г. Напишите краткий отчет по разработке и реализации фильтра, включая листинги программ MATLAB и DSP56002.
Таблица 14.3. Исходная карта памяти
Рис. 14.23. Простой трехточечный КИХ-фильтрРис. 14.23. Простой трехточечный КИХ-фильтр
Рис. 14.23. Простой трехточечный КИХ-фильтр
Рис. 14.23. Простой трехточечный КИХ-фильтр
Программа 14.1. Код DSP56002 для простого трехточечного КИХ-фильтра
move
x: (r0)+, xO ; скопировать h(2) в регистр xO ; и увеличить указатель rO.
move
у: (г4)+, уО ; скопировать х(п-1) в регистр уО ; и увеличить указатель г4.
mpy
хО, уО, а х: (г0)+, хО у: (г4)+, уО ; перемножить h(2) и х(п-2), ; результат занести в накопитель а.
; скопировать h(l) в регистр хО и увеличить гО.
; скопировать х(п-1) в регистр уО и увеличить г4.
mac
хО, уО, а х: (г0)+, хО у: (г4)+, уО ; перемножить h(l) и х(п-1), ; результат прибавить к значению в накопителе а. ; скопировать аО в регистр хО и увеличить гО.
; скопировать х(п) в регистр уО и увеличить г4.
mac
хО, уО, a yl, у: (г4)+ ; перемножить h(0) и х(п),
; результат прибавить к значению в накопителе а.
; накопитель а содержит выходную выборку у(п).
; х(п-2), х(п-1) и х(п) теперь можно рассматривать
; как x(n-3), x(n-2) and х(п-1). Поверх х(п-З)
; записывается следующая входная выборка, которая
; хранится в у(1).
Вопросы по ЦОС для компьютерных тестов
В данном разделе описан подход, который авторы нашли полезным для быстрой оценки знаний большой группы студентов и определения областей, требующих дополнительного изучения. Важной особенностью данного подхода является то, что он позволяет студентам пересмотреть материалы по ЦОС и проверить их понимание специфических вопросов.
По сути, мы разработали две группы вопросов с вариантами ответов, охватывающих основные и углубленные (прикладные) темы ЦОС. Каждый год группы вопросов обновлялись и увеличивались. Группа с вопросами по базовым темам ЦОС используется для тестирования студентов в первом семестре, а группа с вопросами углубленной (практической) направленности — во втором. В каждом случае примерно за две недели до тестирования студентам раздавались копии всех возможных вопросов без ответов. Никакая прямая помощь при подготовке студентам не предоставлялась. Для проверки и автоматической оценки теста использовалось средство Questionmark. Каждый тест рассчитан на полчаса (при запуске теста автоматически запускается таймер) и состоит примерно из 30 вопросов, которые случайным образом выбираются из группы.
Все вопросы относятся к классу выбора одного или нескольких правильных ответов из предложенных. При оценке результатов тестирования использовалась следующая балльная система (которую, впрочем, легко изменить):
Выбор одного ответа Правильный ответ +1 Неправильный ответ -1 Без ответа0
Выбор нескольких ответов Правильный ответ+1
Неправильный ответ -1 Без ответа0
Ниже приводятся примеры вопросов с одним правильным ответом. Более подробно все вопросы рассмотрены в книге [20] (подробности см. в предисловии).
Примеры вопросов по базовым темам ЦОС
Вопрос 1
Аналоговый сигнал с целью анализа спектра дискретизуется с частотой 125 Гц и получаются 1024 выборки данных. Чему равно расстояние по частоте между спектральными выборками?
0,04142 Гц.
0,12207 Гц.
0,00098 Гц.
0,0080 Гц.
Вопрос 2
Цифровой фильтр называется БИХ-фильтром, если 1) его полюса располагаются вне единичной окружности;
один или несколько коэффициентов знаменателя не равны нулю;
текущий выход зависит от предыдущего выхода;
его выход осциллирует.
Вопрос 3
Передаточная функция фильтра дискретного времени Н(z) равна
Н(г) = 1/(1 + 0,454456г"1 + 0,269259г"2).
Найдите полюса фильтра.
Полюса: 0,45 + 0,75г и 0,45 — 0,75г.
Полюса: -0,2272 + 064664i и -0,2272 - 0,4664г.
Полюса: -0,9452 + 0,5г и —0,9452 - 0,5г
Вопрос 4
Цифровой полосовой фильтр можно разработать, преобразовав подходящий аналоговый фильтр-прототип нижних частот в полосовой фильтр. Данное преобразование 1) в два раза уменьшает порядок аналогового фильтра нижних частот;
удваивает порядок аналогового фильтра нижних частот;
отображает частоты среза фильтра нижних частот Fc и —Fc в частоты среза полосового фильтра Fc2 и Fcv,
отображает частоты среза фильтра нижних частот Fc и — Fc в центральную частоту полосового фильтра.
Вопрос 5
Полюса дискретного фильтра расположены в точках г = 0,75г и г — —0,75г, а нули — в точках г = — 1 и г = 1. Чему равна амплитудная характеристика на четверти частоты дискретизации?
1,52.
4,57.
7,15.
Вопрос 6
Квантование коэффициента —0,1743 до 8 бит дает
-22;7
-23;
+22;
23 х 10"7.
Вопрос 7
Какое из приведенных утверждение справедливо в сфере ЦОС?
Частота Найквиста равна половине частоты дискретизации.
Частота Найквиста равна частоте дискретизации.
Частота Найквиста равна максимальной частоте сигнала.
Частота Найквиста равна половине частоты передискретизации.
Вопрос 8
Передаточная функция фильтра дискретного времени Я(z) равна
Н^) = (1 - 1,6г-1 + г~2)/(1 - 1,5г"1 +0,8z~2).
Чему равна амплитудная характеристика на 0 Гц?
0.
1,33.
1.
1,6.
Вопрос 9
Передаточная функция фильтра дискретного времени Я(z) равна
Я(г) = (1 - l,6z^ +z~2)/(l - 1,5г”1 + 0,8z-2).
Чему равны радиусы полюсов и нулей?
0,9; 1.
0,81; 1.'
1;0,81.
1; 1.
0,5; 0,5.
Вопрос 10
Какое из приведенных ниже высказываний справедливо для разработки БИХ-филь- тров методом билинейного z-преобразования (BZn)?
Деформирующий эффект BZH проявляется сильнее по мере приближения к частоте Найквиста.
Предварительная деформация компенсирует искажение, которое вводит Б7П, во всей полосе частот.
Предварительная деформация компенсирует искажение, которое вводит BZn, на определенных частотах.
Частотное масштабирование устраняет искажающие влияние BZn на частотную характеристику.
978Глава 14. Приложения и разобранные примеры
Вопрос 11
Требуется, чтобы цифровой БИХ-фильтр верхних частот удовлетворял следующим
спецификациям:
граница полосы подавления1 кГц,
граница полосы пропускания2 кГц,
частота дискретизации16 кГц,
неравномерность в полосе пропускания 3 дБ, затухание в полосе подавления30 дБ.
Чему равны частоты полосы пропускания и подавления подходящего НЧ-фильтра- прототипа? Предполагается, что используется метод билинейного z-преобразования. 1. 0,0414; 0,0198.
1; 2.
1; 2,0813.
2; 1.
0,0198; 0,0414.
Вопрос 12
Аналоговый сигнал на входе системы ЦОС ограничивается по полосе фильтром Баттерворта четвертого порядка с частотой среза 10 кГц, после чего дискретизуется с частотой 50 кГц. Предполагается, что сигнал широкополосный. Чему равен уровень ошибки наложения на 10 кГц?
0,156.
0,026.
0,04.
0,707.
Вопрос 13
Аналоговый сигнал на входе системы ЦОС ограничивается по полосе фильтром Баттерворта четвертого порядка с частотой среза 10 кГц, после чего дискретизуется. Предполагается, что сигнал широкополосный. Определите минимальную частоту дискретизации, при которой на 10 кГц отношение сигнала к ошибке наложения составляет 20 дБ.
10 кГц.
20 кГц.
29,39 кГц.
19,39 кГц.'
50 кГц.
Вопрос 14
Компоненты аналогового аудиосигнала принадлежат диапазону 0-24 кГц. Сигнал дискретизуется с частотой 3,072 МГц. Чему равен коэффициент передискретизации? 1. 32.
64.
128.
256.
Вопрос 15
Аналоговый полосовой сигнал дискретизуется согласно теореме о дискретном представлении. Пусть сигнал занимает полосу 48-52 кГц. Чему равна минимальная теоретическая частота дискретизации, позволяющая избежать наложения?
104 кГц.
96 кГц.
8 кГц.
16 кГц.
Вопрос 16
Последовательность данных, состоящая из 32 выборок, записана в памяти в естественном порядке. Если последовательность данных последовательно скремблируется с помощью стандартного алгоритма обращения битов, какими будут новые индексы выборок х(7) и ж(13)? Предполагается, что используется 32-точечный процессор БПФ.
i(ll) и а:(14).
i(22) и а:(28).
i(7) и i(13).
Ничего из вышеперечисленного.
Вопрос 17
Даны коэффициенты 4-точечного ДПФ.
Х(0) = 1,5.
Х(1) = 1 — 0,5г.
Х(2) =0,5.
Х(3) = 1 + 0,5г.
Чему равна эквивалентная последовательность дискретного времени?
i(0) = 1, i(l) = 0, ж(2) = 1, а:(3) = 0.
i(0) = 0,5, i(l) = 1, i(2) = 0, i(3) = 0.
i(0) = 1, i(l) = 0,5, i(2) = 0, a:(3) = 0.
i(0) = 0,5, i(l) = 0,5, i(2) = 0, 1(3) = 0,5.
Ничего из вышеперечисленного.
Вопрос 18
Дано четыре первых выходных выборок 8-точечного двоичного БПФ.
Х(0) =27.
Х(1) = -4 + Зг.
Х(2) = 4 + Г
Х(3) = 0 - 5г.
Какое из приведенных ниже выражений справедливо?
Значение Х(7) = 0 + 5г.
Значение Х(7) = —4 — г.
Значение Х(7) =—Зг.
Значение выходной последовательности на 0 Гц равно 27.
Ничего из вышеперечисленного.
Примеры вопросов по углубленным (практическим) темам ЦОС
Вопрос 1
Какое из приведенных ниже утверждений справедливо? В цифровой связи минимально устойчивые БИХ-фильтры используются для восстановления тактовой частоты, потому что
их полюса и нули близки к единичной окружности;
их импульсная характеристика медленно затухает со временем;
при этом тактовый сигнал присутствует даже при отсутствии переходов во входном потоке данных в течение относительно длительных периодов времени;
их характеристики не искажаются при старении или изменении температуры;
они подходят для приложений, включающих пакетную передачу.
Вопрос 2
Скорость передачи данных системы цифровой связи равна 56 Кбод, а частота дискретизации — 444 000 выборок/с. В системе используется БИХ-фильтр с полосой 25 Гц, задача которого — восстановление тактовой частоты. Какое из приведенных ниже утверждений справедливо?
Полюса фильтра расположены в точках с координатами г = 0,9998, ф = ±45°.
Полюса фильтра расположены в точках с координатами г = 0,9998, ф = 45°.
Полюса фильтра расположены в точках с координатами г = 0,9998, ф = ±0,785°.
Полюса фильтра описываются коэффициентами а^ = -1,413965, а2 = 0,999825.
Полюса фильтра описываются коэффициентами а.! = —1,413965, а2 = 0,999649.
Фильтр восстановления тактовой частоты — полосовой.
Фильтр восстановления тактовой частоты — фильтр нижних частот.
Вопрос 3
Скорость передачи данных системы цифровой связи равна 28 Кбод, а частота дискретизации — 224 000 выборок/с. В системе используется БИХ-фильтр с полосой 100 Гц и коэффициентами знаменателя а^ = —1,412230, а2 = 0,997196, задача которого — восстановление тактовой частоты. Какое из приведенных ниже утверждений справедливо, если коэффициенты фильтра квантованы до 8-битовых чисел с фиксированной запятой?
Коэффициенты с фиксированной запятой равны а^ = —90, а'2 = 63.
Коэффициенты с фиксированной запятой равны а'г = —181, а2 = 127.
В дробной форме записи квантованные коэффициенты равны а'х = —1,40625 и а^ = 0,984375.
В дробной форме записи квантованные коэффициенты равны а'х = -1,414062 и а' = 0,992187.
Ничего из вышеперечисленного.
Вопрос 4
БИХ-фильтры с фиксированной запятой реализуются с использованием канонических звеньев второго порядка. Укажите истинные выражения.
Ошибки переполнения возникают из-за того, что результат сложения превышает разрешенную длину слова.
Ошибки переполнения могут привести к самоподдерживающимся осцилляциям.
В общем случае масштабирование в частотной области (норма Чебышева) устраняет ошибки переполнения.
Методы обратной связи по ошибке или формирования спектра шума позволяют уменьшить ошибки переполнения.
Масштабирование для предотвращения переполнения улучшает отношение сигнал- шум на выходе фильтра.
Вопрос 5
Цифровой узкополосный режекгорный БИХ-фильтр с частотой режекции, равной четверти частоты дискретизации, имеет следующие коэффициенты: Ьо = 1,ЬХ = 0, Ь2 = 1; ах = 0, а2 = 0,81. Каким должен быть коэффициент масштабирования в частотной области на входе фильтра? Предполагается, что фильтр реализован с использованием звеньев второго порядка.
1,81.
0,55.
5,26.
0,19.
Ничего из вышеперечисленного.
Вопрос 6
Какие из приведенных ниже выражений справедливы? В декодировании ДТМЧ для каждого фильтра Горцеля требуется только один действительный коэффициент, потому что
для декодирования сигналов ДТМЧ требуются только амплитуды тональных частот;
в декодировании ДТМЧ не требуется информация о фазе;
фильтр Горцеля обрабатывает каждую выборку данных при ее поступлении и не ждет набора из N выборок, как к БПФ;
фильтр Горцеля, адаптированный для декодирования ДТМЧ, работает быстро и требует мало памяти;
алгоритм Горцеля состоит из ряда БИХ-фильтров второго порядка.
Вопрос 7
Схема детектирования тонов ДТМЧ для цифрового телефона использует ряд фильтров Горцеля второго порядка для извлечения тонов ДТМЧ и их вторых гармоник. Предположим, что тоны ДТМЧ для цифры “0” — 941 Гц и 1336 Гц. Определите значения коэффициентов в тракте обратной связи двух фильтров для низкочастотного тона (941 Гц), если для основной и второй гармоник использованы длины последовательности N = 205 и -V = 210, а соответствующие дискретные частотные каналы — 24 и 47. 1. Для низкочастотного тона (т.е. 941 Гц) значения коэффициентов обратной связи — аг = 0,99971, а2 = -1.
Для низкочастотного тона (т.е. 941 Гц) значения коэффициентов обратной связи — си = 1,482867, а2 = -1.
Для низкочастотного тона (т.е. 941 Гц) значения коэффициентов обратной связи — Qj = 1,345621, а2 = — 1.
Для второй гармоники низкочастотного тона (т.е. 2x941 Гц) значения коэффициентов обратной связи — со = 0,463812, a2 = -1.
Для второй гармоники низкочастотного тона (т.е. 2 х 941 Гц) значения коэффициентов обратной связи — со = 0,488851, a2 = —1.
Для второй гармоники низкочастотного тона (т.е. 2 х 941 Гц) значения коэффициентов обратной связи — со = 0,327635, a2 = — 1.
Вопрос 8
Какие из приведенных ниже утверждений справедливы?
Чтобы различить речь и тоны ДТМЧ, требуется знать амплитуды вторых гармоник, а также амплитуды основных частот.
Чтобы различить речь и тоны ДТМЧ, не требуется знать амплитуды вторых гармоник.
Частотная характеристика телефонной системы такова, что высокочастотные тоны ДТМЧ поглощаются сильнее низкочастотных.
Частотная характеристика телефонной системы такова, что низкочастотные тоны ДТМЧ поглощаются сильнее высокочастотных.
Речь имеет значительные гармоники четного порядка, а сигналы ДТМЧ — нет.
Сигналы ДТМЧ имеют значительные гармоники четного порядка, а речь — нет.
Вопрос 9
Двухкаскадный дециматор используется для снижения частоты дискретизации с 240 000 до 8 000 выборок/с. Коэффициенты децимации каскадов — М\ = 15 и М2 = 2, а длины фильтров — М = 45 и N2 = 43. Какие из приведенных ниже выражений справедливы?
Частоты дискретизации на выходах двух каскадов равны 16 000 и 8 000 выборок/с. 2. Частоты дискретизации на выходах двух каскадов равны 8 000 и 16 000 выборок/с.
Меры сложности дециматора: УВС = 1 064 000, ОТП = 88.
Меры сложности дециматора: УВС = 1 064, ОТП = 88.
Ничего из вышеперечисленного.
Вопрос 10
Двухкаскадный дециматор используется для снижения частоты дискретизации с 500 до 12,5 Гц. Коэффициенты децимации каскадов — 10 и 4, а длины фильтров — ^ = 55 и = 97. Чему равны индексы сложности дециматора?
УВС = 32 350,5, ОТП = 152.
УВС = 3962,5, ОТП = 152.
УВС = 500, ОТП = 55.
УВС = 28 712,5, ОТП = 152.
Ничего из вышеперечисленного.
Вопрос 11
Двухкаскадный дециматор используется для снижения частоты дискретизации с 500 до 12,5 Гц. Коэффициенты децимации каскадов — 10 и 4. Интерес представляет полоса частот 0-4 Гц. Чему равны граничные частоты фильтра защиты от наложения спектров первого каскада?
0; 4; 6,25 Гц.
0; 4; 43,75 Гц.
0; 4; 12,5 Гц.
0; 4; 50; 6,25 Гц.
Ничего из вышеперечисленного.
Резюме
В данной главе рассмотрено несколько примеров и плат, которые можно использовать для реализации алгоритмов ЦОС, изложенных в книге. Разобраны реальные приложения ЦОС, что позволяет читателю получить представление о практической ценности описанных концепций. Кроме того, приводится пример тестов, которые авторы используют для быстрой оценки знаний по курсу ЦОС.
Задачи
Покажите, указав сделанные предположения, что автокорреляционная функция сигнала, загрязненного случайным шумом, равна АКФ чистого сигнала. Объясните, как этот результат можно использовать для детектирования скрытой периодичности.
Докажите в рамках разумных предположений, что максимальное отношение сигнал-шум на выходе цифрового согласованного фильтра не зависит от формы входного сигнала.
Периодический сигнал, скрытый в шуме, требуется детектировать с помощью цифровой согласованной фильтрации. Даны последовательные выборки чистого и зашумленных сигналов.
чистый сигнал {—0,51; —0,35; —0,29; —0,25; —0,29; —0,39; —0,47} зашумленный сигнал {—0,18; —0,06; 0,27; 0,69; — 0,50; — 0,44; —0,20;
-1,46; 0,93; -1,46; -0,91; -0,39; -1,70} Определите
коэффициенты цифрового согласованного фильтра;
выход цифрового согласованного фильтра;
улучшение отношения сигнал-шум, выраженное в децибелах, получаемое за счет согласованного фильтра.
Примечание', дисперсия ст2 шума на выходе фильтре записывается следующим образом:
^ = ^ £ ^2(т),т=0
где ст2 — дисперсия шума на входе фильтра, (/z(m)} — коэффициенты фильтра.
Литература
Azevedo S. and Longini R. L. (1980) Abdominal-lead fetal electrocardiographic R-wave enhancement for heart rate determination. IEEE Trans. Biomedical Engineering, 27(5), 255-260.
Bajpai, A. C., Caius I. M. and Fairley J. A. (1973) Mathematics for Engineers and Scientists, Volume 2. New York: Wiley.
Barlow J. S. and Remond A. (1981) Eye movement artifact nulling in EEGs by multichannel on-line EOG subtraction. Electroencephalography and Clinical Neurophysiology, 52, 418-423.
Bierman G. J. (1976) Measurement updating using the U-D factorization. Automatica, 12, 375-382.
Bierman G. J. (1977) Factorization Methods for Discrete Sequential Estimation. New York: Academic Press.
Clark R. J., Ifeachor E. C., Van Eetvelt P. W. J. and Rogers G. M. (2000) Techniques for generating digital equalizer coefficients. J. Audio Eng. Soc., 48(4), April, 281-298.
Clarke D. W. (1981) Implementation of self-tuning controllers. In Self-Tuning and Adaptive Control (Harris C. J. and Billings S. A. (eds)), pp. 144-165. Stevenage, UK: Peter Peregrinus.
Cowan C. F. N. and Grant P. M. (1984) Adaptive processing — an overview. In IEE Colloq. Adaptive Processing and Biomedical Applications, October 1984, paper 1.
Dattorro J. (1988) The implementation of recursive digital filters for high-fidelity audio. J. Audio Eng. Soc., 36(11), 851-878.
Favret A. G. (1968) Computer matched filter location of fetal R-waves. Medical and Biological Engineering, 6, 467-475.
Flores I. (1963) The Logic of Computer Arithmetic. Englewood Cliffs NJ: Prentice-Hall.
Fortgens C. and De Bruin M. P. (1983) Removal of eye movement and ECG artifacts from the non-cephalic reference EEG. Electroencephalography and Clinical Neurophysiology, 56, 90-96.
Girton D. G. and Kamiya A. J. (1973) A simple on-line technique for removing eye movement artifacts from the EEG. Electroencephalography and Clinical Neurophysiology, 34, 212-218.
Goodman G. C. and Sin K. S. (1984) Adaptive Filtering, Prediction and Control. Englewood Cliffs NJ: Prentice-Hall.
Gotman J., Gloor P. and Ray W. F. (1975) A quantitative comparison of traditional reading of the EEG and interpretation of computer-extracted features in patients with supratentorial brain lesions. Electroencephalography and Clinical Neurophysiology, 38, 623-639.
Greene K. R. (1987) The ECG waveform. In Balliere’s Clinical Obstetrics and Gynaecology (Whittle M. (ed.)), Volume l,pp. 131-155.
Hamer C. F., Ifeachor E. C. and Jervis B. W. (1985) Digital filtering of physiological signals with minimal distortion. Medical and Biological Engineering and Computation, 23, 274-278.
Harris C. J. (1983) Brainwaves appear on T. V. in real-time. Electronics, February, 47-48.
IEEE (1985) IEEE Standard for Binary Floating Point Arithmetic. SIGPLAN Notices, 22(2), 9-25.
Ifeachor E. C. (2001) A Practical Guide for MATLAB and C Language Implementations of DSP Algorithms. Harlow: Pearson Education.
Ifeachor E. C., Jervis B. W., Morris E. L., Allen E. M. and Hudson N. R. (1986) A new microcomputer-based online ocular artefact removal (OAR) system. Proc. IEE, 133(5), 291-300.
Ifeachor E. C., Keith R. D. F., Westgate J. and Greene K. R. (1991) An expert system to assist in the management of labour. In Proc. World Congress on Expert Systems (Liebowitz J. (ed.)), Volume 4, pp. 2615-2622. New York: Pergamon.
Jervis B. W., Allen E., Johnson T. E., Nichols M. J. and Hudson N. R. (1984) The application of pattern recognition techniques to the contingent negative variation for the differentiation of subject categories. IEEE Trans. Biomedical Engineering, 31, 342-349.
Jervis B. W., Nichols M. J., Allen E., Hudson N. R. and Johnson T. E. (1985) The assessment of two methods for removing eye movement artefact from the EEG. Electroencephalography and Clinical Neurophysiology, 61, 444-452.
Lindecrantz K. G., Lilja H. and Rosen K. G. (1988) New software QRS detector algorithm suitable for realtime applications with low signal to noise ratios. J. Biomedical Engineering, 10, 280-283.
Motorola (1995) DSP56000 Digital Signal Processor Family Manual. Austin TX: Motorola.
Motorola (1996) DSP56302 Evaluation Module. Motorola Inc. wwwl.motoroladsp.com/docs/ docs.html
Outram N. J., Ifeachor E. C., Van Eetvelt P. W. J. and Curnow J. S. H. (1995) Techniques for optimal enhancement and feature extraction of the fetal electrocardiogram. IEE Proc.-Sci. Meas. Technol., 142(6), 482-489.
Patterson D. A. and Hennessy J. L. (1990) Computer Architecture: A Quantitative Approach. San Mateo CA: Morgan Kaufmann.
Peterka V. (1975) A square root filter for real-time multivariate regression. Kybernetika, 11, 53-67.
Quilter P. M., Macgillivray В. B. and Wadbrook D. G. (1977) The removal of eye movement artefact from EEG signals using correlation techniques. IEE Conf. Publ., 159, 93-100.
Rabiner L. R. and Gold B. (1975) Theory and Application of Digital Signal Processing. Englewood Cliffs NJ: Prentice-Hall.
Takeda H. and Hata S. (1985) Development of micro-computerized topographic EEG analyzer and its application to real time display. Electroencephalography and Clinical Neurophysiology, 61, 98.
Texas Instruments (1986) Digital Signal Processing Applications with the TMS320 Family: Theory, Algorithms and Implementations. Texas Instruments.
Texas Instruments (1995) TMS320C54x evaluation module technical reference. Texas Instruments, www.ti.com/sc/docs/psheets/abstract/apps/sprul35.html
Tome A. M., Principe J. C. and Da Silva A. M. (1985) Micro analysis of spike and wave bursts in children’s EEG. Electroencephalography and Clinical Neurophysiology, 61, 113.
Weitek (1984) High Speed Digital Arithmetic VLS Application Seminar Notes. Sunnyvale CA: Weitek.
Widrow B., Glover J. R., McCool J. M., Kaunitz J., Williams C. S., Hearn R. H., Zeidler J. R., Dong E. and Goodlin R. C. (1975) Adaptive noise cancelling: principles and applications. Proc. IEEE, 63, 1692-1716.
Young P. (1974) Recursive approaches to time series analysis. Bull. IMA, 10, 209-224.
Дополнительная литература
Clarke D. W. (1980) Some implementation considerations of self-tuning controllers. In Numerical Techniques for Stochastic Systems (Archetti F. and Cugiani M. (eds)), pp. 81-101. Amsterdam: North-Holland.
Clarke D. W., Cope S. N. and Gawthrop P. J. (1975) Feasibility Study of the Application of Microprocessors to Self-tuning Controllers. OUEL Report 1137y75.
Dattorro J. (1988) The implementation of recursive digital filters for high fidelity audio. J. Audio Eng. Soc., 36(11), 851-878.
Kay S. M. (1987) Modern Spectrum Estimation. Englewood Cliffs NJ: Prentice-Hall.
Marple S. L. Jr (1987) Digital Spectral Analysis with Applications. Englewood Cliffs, NJ: Prentice-Hall.
Motorola (1980) 16-bit Microprocessor User’s Manual. Austin TX: Motorola Semiconductor
Otnes R. K. and Enochson L. (1978) Applied Time Series Analysis, Volume 1. New York: Wiley.
Rosen K. G. and Lindecrantz K. G. (1989) STAN, the Gothenburg model for fetal surveillance during labour by ST analysis of the fetal electrocardiogram. Clinical Physiology and Physiological Measurement, Suppl. B, 10, 51-56.
Stanley W. D., Dougherty G. R. and Dougherty R. (1984) Digital Signal Processing, 2nd edn. Reston VA: Reston Publications.
Verleger R., Gasser T. and Mocks J. (1982) Correction of EOG artifacts in event-related potentials of the EEG: aspects of reliability and validity. Psychophysiology, 19, 472-480.
Приложение
14.A. Модифицированный алгоритм UD-факторизации
Этап 1: v = UT(m)x.
Этап 2: bi = d^m'jVi, г = 1,..., n.
Этап 3:= 7 + rziVj.
Этап 4: d^m + 1) = (/Дт)/^.
Для j = 2,..., n рекурсивно проводятся вычисления по формулам (14.9)-(14.13).
Этап 5: а3 =+ и3Ь3.
Этап 6: pj = —Vjla^x-
Для j = 2,..., п рекурсивно проводятся вычисления по формуле (14.11).
Этап 7: Ukj^m +1) = Ukj^m^ + Ькр3.
Этап 8: bk = bk + Ь^^т).
Этап 9: d^m + 1) = dj{m)aj-.x/ajy.
Этап 10: G = b/an(gi = bi/an,i, 1,..., n) Следует отметить два момента.
Величина ап на этапе 10 — это значение а3 (этап 5) после n-й итерации. Это значение также равно а в формуле (14.9) алгоритма наименьших квадратов. '
Элементы D (т.е. d, на этапах 4 и 9) можно хранить в ячейках памяти, выделенных для диагональных элементов U, поскольку Ujj = 1. Кроме того, для экономии памяти и облегчения программирования элементы U, включая элементы D, можно записать как вектор, хотя из индексов (к, 7) следует, что U — двумерный массив.
П ред м етн ы й у казател ь
Символы
п-е гармоники, 137
G
GSM 900, 49
S
SIMD, 799
V
VLIW, 852
А
Автокорреляционная функция, 33
Адаптивный процесс, 846
Амплитудный спектр, 141; 740
Анализ влияния конечной разрядности,
373, 388
Апертурное искажение, 111
Апертурный эффект, 80
Аппаратная реализация, 573
Арифметическое переполнение, 451
Архитектурные особенности, 818
В
Вейвлет Морле, 174
Взаимно-корреляционная функция, 33
Взвешивание, 319
Воспроизводимость, 28
Выигрыш от обработки, 747
Вычет, 217; 223
Вычисление с замещением, 839
д
Дельта-функция, 150
Децимация, 630
Диаграмма нулей и полюсов, 501
Диаграмма реализации, 248
Дискретное преобразование Фурье, 32, 150
Дискретный сигнал, 65
Дисперсия, 305
Дифференцирование, 230
Длина слова, 819
Доказательство теоремы о корреляции, 306
Долгоиграющая пластинка, 45
3
Заграждающий фильтр, 542
Закон ассоциативности, 320
Закон дистрибутивности, 320
Закон коммутативности, 319
Звонковый фильтр, 964
И
Идентификация системы, 282; 320
Импульсный отклик, 312
Инвариантное преобразование импульсной характеристики, 511
Интеграл Фурье, 141
Интеграл свертки, 314
Интегрирующий фильтр, НО
Интерполяция, 112; 630; 636
Искажение по закону sinz/z, 111
К
Канал, 49
Каноническое звено, 562
Кардиотокограмма, 56
Каскадная реализация, 830
Квантование после накопления, 909
Компакт-диск, 45
Компандирование, 94
Корреляция, 32; 282
Коэффициент забывания, 952
Коэффициент перевыборки, 96
Коэффициентами передачи, 949
Коэффициент забывания, 718
Кратномасштабный анализ, 176
Круговая корреляция, 151
Л
Линейность, 229
Линия задержки с отводами, 366
Линия максимумов, 179
М
Масштабные граничные циклы переполнения, 890
Метод взвешивания, 438
Метод размещения нулей и полюсов, 504
Метод частной выборки, 438
Методы устранения окулярных артефактов, 948
Многофазная структура, 663
Многофазный фильтр, 664
Модулирующий сигнал, 38
н
Наложение, 745
Наложением-сложением, 447
Наложение, 67
Несущая частота, 38
Нормировка краевых частот, 412
Норма Lx, 892
Норма L2, 893
Нуль (функции), 212; 232; 574
О
Область сходимости, 210
Обработка с избыточностью, 747
Обращение свертки, 282; 322
Ограничение скорости, 357
Окулярный артефакт, 720
Оптимизационные методы, 439
Отбеливание, 324
Отношение T/QRS, 57
Ошибка квантования коэффициентов, 450; 872
Ошибка округления, 369; 899; 924
П
Параллельная реализация, 834
Положительная определенность, 954
Полосовой фильтр, 540
Полочный фильтр, 965
Полюса, 574
Потери при обработке в наихудшем случае, 748
Потоковая обработка, 783
Проблема раздувания 955
Прореживание, 630
Просачивание спектральных составляющих, 745
Р
Раздувание, 952
Размывание, 745
Разрешение по частоте, 740
Реостат, 965
С
Свертка, 31;229; 311
Сверточная сумма, 314
Свойство цикличности, 147
Сигнал, 27
Система дискретного времени, 208
Система инициализации, 827
Скорость выполнения, 818
Слепое обращение свертки, 282
Смещение базовой линии, 970
Соты, 49
Спектр, 740
Статическая суперскалярная архитектура, 852
Субгармонический отклик, 923
Т
Теорема вычетов, 223
Теорема Котельникова, 67
Теорема Найквиста, 67
Теорема о корреляции, 151
Теорема о свертке, 325
Теорема отсчетов, 67
Теорема Парсеваля, 150
Тип арифметики, 819
Точность, 28
Трансверсальный фильтр, 35; 366
У
Упорядочение по Уолшу, 168
Условие фазового искажения, 70
Ф
Фазовый спектр, 740
Фильтр верхних частот, 521; 538
Фильтр нижних частот, 520; 535
Фильтр сглаживания, ПО
Фильтрация, 32
Формирование спектра ошибки, 910
Функции Уолша, 168
Функция отсчетов (sine), 140
Фурье-образ, 141
ц
Целополосной фильтр, 677
Циклическая частота, 137
Цифровая согласованная фильтрация, 945
Цифровая фильтрация, 845
Цифровой сигнал z(n)(n = 0,1,...), 65
Цифровой фильтр, 377
Ч
Частота Найквиста, 68; 70; 143
Ш
Ширина полосы, 424
Ширина полосы минимального разрешения, 748
Ширина полосы шумового (прямоугольного) эквивалента, 746
Шум АЦП, 450
э
Электроокулограмма, 720
Эффект Гиббса, 391
Эффект Найквиста, 555
Эффекты конечной разрядности, 450
Я
Явление скачка, 923
Ядро Дирихле, 745
Ячейка, 49
1 00
сперва разложим эту функцию с помощью метода разложения на элементарные
дроби. Итак,
9
1402^ = 1’424. Пусть N = 2.
3 Полюса фильтра-прототипа (из уравнения (8.26)) расположены в точках
(2 + 2 — 1)тг]. . Г(2 + 2 — 1)тг
1+ zsin 1-'—
44
s2 + V2sw'p + ш£
1) граничные частоты полосы пропускания и полосы подавления для подходящего аналогового фильтра-прототипа нижних частот;
2) порядок N фильтра-прототипа;
3) коэффициенты, а следовательно, передаточную функцию фильтра дискретного времени, используя билинейное z-преобразование.
1 + 0,0923 - 0,4172г
1(! - аг) - а1 С1 - аг)/(1 + Дг)'