MATLAB — новые возможности в технологии осциллографии

№ 10’2009
PDF версия
Стоимость цифрового осциллографа среднего класса примерно в 20 раз превосходит стоимость современного персонального компьютера (ПК) с 4-ядерным микропроцессором и большим дисплеем. А между тем, ПК с установленной на нем системой компьютерной математики (СКМ) способен обрабатывать теоретические данные бóльшим числом методов, подчас уникальных и до сих пор не реализованных даже в самых дорогих осциллографах. Поэтому весьма актуально повышение возможностей осциллографов с помощью систем компьютерной математики.

Осциллограф и MATLAB

Осциллограф имеет качество, делающее его уникальным и незаменимым прибором: он позволяет исследовать и отображать графически реальные сигналы. Крупнейшие производители измерительных приборов (Tektronix, Agilent Techologies, LeCroy и др.), осознав ценность СКМ, стали внедрять такие системы в виде опций в современные модели своих приборов — прежде всего, в осциллографы. Однако материалов по практическому применению СКМ совместно с конкретными измерительными приборами в литературе и в Интернете очень мало.

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

В статье подробно и на большом числе примеров описана технология применения популярной матричной СКМ MATLAB [ 1-4] c современными цифровыми осциллографами [5-7]. При этом отражена техника обработки реальных осциллограмм, с которыми работают инженеры и исследователи. Использована новейшая реализация матричной СКМ MATLAB R2009a. Все положения этой статьи справедливы и для ряда предшествующих реализаций СКМ MATLAB и измерительных приборов различных фирм.

Основной материал статьи относится к осциллографу закрытой архитектуры Tektronix DPO/MSO 4101 (рис. 1). Это лучший из приборов фирмы Tektronix данного класса: он имеет 4 канала с памятью до 10 Мточек/канал и полосой частот до 1 ГГц при частоте дискретизации 5 Гвыб/с. У этого прибора есть порты последовательной шины для подключения к ПК и картам флэш-памяти. Серия MSO 4000 — это осциллографы смешанных сигналов (они имеют дополнительно 16 логических входов). Приборы оснащены фирменным средством Wave Inspector для детального просмотра и исследования длинных осциллограмм. Сейчас удобным средством Wave Inspector оснащены все последние модели осциллографов серий 2000/3000/4000 компании Tektronix.

 Внешний вид цифрового запоминающего осциллографа DPO 4101

Рис. 1. Внешний вид цифрового запоминающего осциллографа DPO 4101

Объектом обработки являются реальные осциллограммы цифрового осциллографа, полученные от генератора произвольных функций и функционального генератора Tektronix AFG 3101 [8]. Экран осциллографа показан на рис. 2. На нем видны осциллограмма прямоугольных импульсов с коэффициентом заполнения 20%, частотой 1 МГц и размахом (двойной амплитудой) 4 В и осциллограмма прямоугольных ТТЛ-импульсов с выхода синхронизации генератора. Под ними показан (красными пиками) спектр импульсов канала CH1, построенный осциллографом в режиме БПФ (быстрое преобразование Фурье) с прямоугольным окном. Меню БПФ представлено справа.

Осциллограммы прямоугольных импульсов и спектр сигнала канала CH1

Рис. 2. Осциллограммы прямоугольных импульсов и спектр сигнала канала CH1

 

Стыковка осциллографа с ПК и с СКМ MATLAB

Для обработки осциллограмм на ПК нужно ввести массив точек каждого канала в рабочее пространство системы MATLAB и обеспечить аппаратную и программную совместимость осциллографа с ПК. Для аппаратной совместимости в данном случае используется подключение осциллографа к ПК через наиболее удобный порт шины USB. Программная стыковка обеспечивается набором программ (Open Choice, TekVISA и др.), поставляемых с осциллографом. Однако эти программы не поддерживают прямо СКМ MATLAB и позволяют лишь наблюдать копию экрана осциллографа на экране дисплея ПК.

Возможности осциллографов DPO/MSO 4000 фирмы Tektronix довольно велики. Осциллографы позволяют наблюдать осциллограммы 4 каналов, строить опорные и расчетные осциллограммы, проводить до 29 автоматических измерений, вычислять и строить спектры, полученные методом БПФ с выбором одного из четырех окон, выполнять с осциллограммами математические операции и т. д. Но возможности современных СКМ (MATLAB, Mathcad, Mathematica, Maple и др.) в области обработки данных намного выше. Например, в MATLAB спектральный анализ выполняется не только методом БПФ, но и с помощью десятка других методов, причем с большим числом окон. Есть и принципиально новые возможности — выполнение короткого оконного Фурье-преобразования и вейвлет-преобразований [11]. Задание математической обработки массивов данных в MATLAB более удобно и совершенно.

 

Пакет расширения Instrument Control Toolbox

Входящий в MATLAB пакет расширения для поддержки инструментальных средств (Instrument Control Toolbox) поддерживает работу с измерительными приборами фирм Tektronix, Agilent Technologies, Hewlett Packard, LeCroy и др. Кроме того, MATLAB имеет около сотни профессионально-ориентированных пакетов расширения в различных областях науки и техники. Например, средства пакетов Signal Processing Toolbox и Wavelet Toolbox обеспечивают многочисленные методы обработки сигналов.

После подключения приборов к USB-пор-ту и их включения нужно обеспечить программную совместимость приборов с ПК. Для этого можно использовать команду tmtool и вызываемое ею окно утилиты тестирования измерительных приборов (рис. 3). Эта утилита построена на основе применения графического интерфейса пользователя (GUI), окна которого зачастую избавляют пользователей от решения многих довольно сложных задач, хотя применение программирования вовсе не исключается (что будет ясно впоследствии).

Применение инструмента Test&Measuring Tool для подготовки приборов фирмы Tektronix для работы с системой MATLAB R2009a

Рис. 3. Применение инструмента Test&Measuring Tool для подготовки приборов фирмы Tektronix для работы с системой MATLAB R2009a

В «дереве» левой части окна нужно последовательно обеспечить выбор USB-уст-ройств, создание интерфейсного (interface) и приборного (device) объектов и установку драйверов. При отсутствии драйверов их можно скачать бесплатно из Интернета. В данном случае обеспечена работа с цифровым осциллографом DPO 4101 и генератором произвольных функций AFG 3101.

 

Программа ввода осциллограммы канала CH1 в MATLAB

Для ввода осциллограмм осциллографа DPO 4101 в рабочее пространство MATLAB (место хранения поименованных переменных и массивов) была подготовлена специальная согласующая программа на языке программирования MATLAB. Она считывает осциллограмму с учетом ее реального размещения, сдвига по оси времени и по оси уровня сигнала, с учетом считываемых масштабных коэффициентов по времени и по уровню. Листинг программы os (файл os.m) на языке программирования системы MATLAB вводится в окно редактора программ системы MATLAB (рис. 4). Программа запускается из командной строки командой os и вводит в рабочее пространство MATLAB данные одного канала CH1 с длиной до 10 000 точек. Назначение команд в программе нетрудно понять из подробных комментариев.

Рис. 4. Программа для работы с осциллографом DPO 4101 в окне редактора программ системы MATLAB R2009a

Рис. 4. Программа для работы с осциллографом DPO 4101 в окне редактора программ системы MATLAB R2009a

Теперь можно проверить данные идентификации осциллографа, выведя значение переменной id:

>> id
id =
TEKTRONIX, DP04101,C020348,CF:91.1CT FV:v2.28

Для работы с осциллографом другого типа (в том числе и другой фирмы) достаточно заменить во второй строке программы идентификатор осциллографа DPO 4101 на идентификатор, соответствующий примененному осциллографу. В состав идентификатора входит серийный номер прибора. Например, при использовании осциллографа Tektronix TDS 2024B (4 канала по 200 МГц) вторая строка должна иметь вид [9]:

vu = visa ('tek', 'USB0: 1689: 874: C010511: INSTR');

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

Файл программы os.m размещается в директории WORK системы MATLAB. Программа os должна запускаться перед каждым циклом измерений. Она определяет длину исходной осциллограммы и создает векторы частот xdata и уровней канала CH1, а также строит график осциллограммы первого канала CH1 в графическом окне системы MATLAB (рис. 5).

Пример переноса данных в рабочем пространстве MATLAB и построения осциллограммы в графическом окне MATLAB

Рис. 5. Пример переноса данных в рабочем пространстве MATLAB и построения осциллограммы в графическом окне MATLAB

Реальная осциллограмма на экране осциллографа дважды квантована — аналого-цифровым преобразователем (АЦП) соответствующего канала и системой вывода осциллограмм на экран жидкокристаллического дисплея с конечным разрешением. Это означает наличие заметных шумов квантования, отсутствующих в сигнале. Поэтому абсолютно точной копией видимой осциллограммы график программы os не является: это кадр осциллограммы, взятый из памяти осциллографа.

 

Спектральный анализ осциллограмм средствами MATLAB

Как известно [5-7, 10, 11], теоретически представление сигналов возможно в виде суммы составляющих — базисных функций ψ lit), помноженных на коэффициенты Q:

Формула

Так как базисные функции ψ4(ή предполагаются заданными как функции вполне определенного вида, то только коэффициенты Ck содержат информацию о конкретном сигнале.

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

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

Формула

где j — мнимая единица, n — номер гармоники, k — индекс отчетов сигнала (от 0 до N-1). Обычно выражение (2) нормируется путем задания периода T = 1. Кроме того, вводится множитель Wk, учитывающий действие окна, применяемого в оконном преобразовании Фурье:

Формула

При обычном Фурье-преобразовании по существу используется прямоугольное окно с Wk = 1, то есть множитель Wk не нужен. Для ускорения вычислений всегда используется алгоритм быстрого Фурье-преобразования (БПФ, или FFT). Он резко ускоряет вычисления, но ничего нового в результат Фурье-преобразования не вносит.

При проведении спектрального анализа средствами MATLAB можно пользоваться его программными функциями, включенными в ядро системы и в соответствующие пакеты расширения. Приведенный ниже набор команд иллюстрирует применение функции БФП ffft для построения графика спектра сигнала CH1 в линейном масштабе:

NFFT = 1024; figure-------------------------------------%Задание NFFT и объекта - фигуры
Y = fft (CH1,NFFT) /L; ---------------------------------%Задание БПФ
f = Fs/2.*linspace (0,1,NFFT/2); -----------------------%Создание вектора частот
plot (f, 2*abs (Y (1:NFFT/2))) -------------------------%Построение графика спектра
title ('Спектр сигнала CH1')--------------------------- %Нащиси на рисунке
xlabel ('Частота (Гц) ')
ylabel ('Уровень (В) ')

Этот набор команд можно оформить в виде программы — от-файла с каким-либо именем, или набрать построчно после приглашения к вводу >>. На рис. 6 показан результат выполнения программы os и этого фрагмента в окне командного режима работы MATLAB. Нетрудно заметить, что полученный в MATLAB спектр практически идентичен спектру осциллографа (рис. 2).

Построение спектра реальной осциллограммы прямоугольного импульса

Рис. 6. Построение спектра реальной осциллограммы прямоугольного импульса

Есть ли польза от такого результата, коль он почти повторяет полученный осциллографом? Несомненно, есть! Во-первых, нужно отметить, что у многих осциллографов (например, серии 2000 компании Tektronix) спектр строится только в логарифмическом масштабе, так что эта простая программа дает таким осциллограммам новое качество. Теоретические спектры часто даются именно в линейном масштабе. Во-вторых, спектр строится в окне системы MATLAB, которое можно менять в размерах и перемещать по большому экрану дисплея ПК. А в-третьих, все данные о сигнале и его спектре уже имеются в рабочем пространстве MATLAB и доступны для дальнейшей глубокой обработки.

Пакет расширения Signal Processing Toolbox имеет функцию построения периодограмм — по существу тех же спектров в виде зависимости спектральной плотности мощности сигнала от частоты. Покажем это на следующем примере:

>> periodogram (CH1, [], 1024,Fs)

Эта функция строит спектр сигнала канала CH1 в логарифмическом масштабе по вертикали с использованием прямоугольного окна (рис. 7). Параметр функции 1024 — это число отсчетов сигнала. Если на самом деле отсчетов меньше, недостающие отсчеты заменяются нулями. Вместо пустых квадратных скобок, означающих применение прямоугольного окна, можно задать массив с элементами Wk с описанием любого окна.

Пример построения периодограммы сигнала CH1 при прямоугольном окне

Рис. 7. Пример построения периодограммы сигнала CH1 при прямоугольном окне

Тут уместно отметить, что просто БПФ выполняется в прямоугольном окне. Если начальные и конечные значения сигнала не равны, то по существу анализируется разрывный сигнал, спектр которого резко отличается от спектра непрерывного периодического сигнала. Именно поэтому применяются окна, сводящие начальные и конечные значения сигнала к близкому к нулю уровню. Это исключает разрывы, но неизбежно искажает спектр сигналов. Техника оконного анализа достаточно подробно описана в [7, 10]. В осциллографах применяется до 3-6 типов окон, в MATLAB их полтора десятка.

Следующий набор команд обеспечивает построение периодограммы для массива сигнала с комплексными элементами, при задании указанного в конце первой строки окна Хэмминга:

h = spectrum. periodogram ('hamming'); hopts = psdopts (h, CH1);
set (hopts, 'Fs', Fs, 'SpectrumType', 'twosided', 'centerdc', true); msspectrum (h, CH1,hopts);

Периодограмма в этом случае строится в двух полуплоскостях — с отрицательными и положительными частотами (рис. 8).

Периодограмма общего вида для сигнала канала CH1

Рис. 8. Периодограмма общего вида для сигнала канала CH1

Если массив сигнала содержит только действительные элементы (как в нашем случае), то принято строить периодограмму только для положительных частот. Следующий набор команд обеспечивает это:

h = spectrum. periodogram ('hamming');
hopts = psdopts (h, CH1);
set (hopts, 'Fs', Fs, 'SpectrumType', 'onesided');
msspectrum (h, CH1,hopts);

Построенная в результате периодограмма показана на рис. 9.

Периодограмма сигнала CH1 для положительных частот

Рис. 9. Периодограмма сигнала CH1 для положительных частот

К сожалению, нет окна, приемлемого на все случаи жизни. Умелый выбор окна и характеризует профессиональное качество использования спектрального анализа. СКМ MATLAB имеет прекрасные средства для задания и просмотра множества окон, их сравнения и применения и даже для конструирования новых окон.

 

Анализ спектра средствами SPTool

Пакет расширения Signal Processing Toolbox имеет профессиональный инструмент спектрального анализа SPTool, реализованный средствами GUI. Для примера работы с этим пакетом воспользуемся осциллограммой треугольного импульса с частотой 1 МГц и двойной амплитудой 4 В (рис. 10). В окне осциллографа дан вывод автоматических измерений частоты и периода треугольного сигнала канала CH1.

Осциллограмма треугольного импульса в канале CH1

Рис. 10. Осциллограмма треугольного импульса в канале CH1

Запуск инструмента SPTool производится командой sptool. Это приводит к появлению окна (рис. 11), имеющего три панели: Signals (браузер сигналов), Filters (браузер фильтров — в рамках данной статьи не рассматривается) и Spectra (браузер спектров). Для работы с SPTool нужно загрузить в него (с помощью позиции Import меню File) созданный программой osc вектор данных осциллограммы и значение частоты дискретизации Fs = 1/xmult. Это делается с помощью окна импорта данных, показанного на рис. 11 внизу и справа. Загрузка возможна из рабочего пространства Workspace или с диска. В данном случае из Workspace загружается вектор CH1 и частота дискретизации Fs.

Окна инструмента SPTool, загрузки CH1 и Fs = 1/xmult и просмотра сигнала

Рис. 11. Окна инструмента SPTool, загрузки CH1 и Fs = 1/xmult и просмотра сигнала

Для просмотра графика загруженного сигнала достаточно в разделе Signals выбрать загруженные данные и активизировать кнопку View («Просмотр»). Появится окно с графиком сигнала, которое в полностью открытом виде показано на рис. 12. В окне возможны полноценные курсорные измерения и вывод линии наклона, проведенной через две точки, указанные курсорами. Возможен и поиск всех пиков и впадин кривой, представляющей временную зависимость сигнала.

Рис. 12. График исследуемого сигнала с курсорами и линией наклона

Рис. 12. График исследуемого сигнала с курсорами и линией наклона

Если при реализации метода спектрального анализа (оценивания) не использована информация о статистике шума и сигнала, то реализующие это методы СКМ MATLAB относятся к непараметрическим. Как правило, они не способны сильно подавлять шумы в нижней части спектра, зато хорошо выделяют его пики. К таким методам относятся метод Уэлча (Welch) и обычный метод БФП (FFT).

По умолчанию строится спектр по методу Уэлча. Можно выбрать одно из восьми окон. На рис. 13 показан пример спектрального анализа этим методом треугольного сигнала (его окно показано внутри вьювера спектра). Спектр имеет один большой пик, соответствующий частоте синусоидального сигнала 1 МГц, и затем пики на частотах 3, 5, 7 МГц и более (треугольный сигнал, будучи симметричным, теоретически имеет только нечетные гармоники). Есть возможность курсорных измерений. Спектр строится в реальном (а не нормированном) масштабе по частоте и уровню (в децибелах мощности).

Спектр треугольного сигнала, полученный методом Уэлча с окном Кайзера

Рис. 13. Спектр треугольного сигнала, полученный методом Уэлча с окном Кайзера

Для спектрального анализа особый интерес представляет сигнал вида sin(x)/x, при x = 2π/ί/τ. На рис. 14 показана реальная осциллограмма такого сигнала и его спектр, полученные осциллографом DPO 4101. Этот сигнал уникален: он дает гармоники с равной амплитудой в диапазоне частот до 1/τ.

Осциллограмма сигнала sin(x)/x и его спектр, полученные осциллографом DPO 4101

Рис. 14. Осциллограмма сигнала sin(x)/x и его спектр, полученные осциллографом DPO 4101

На рис. 15 показан спектр этого сигнала, полученный с помощью СКМ MATLAB, а также отсутствующего у осциллографа многооконного метода (МТМ). Число окон задается параметром NW. Метод использует ортогональные окна на основе сфероидальных последовательностей Слепиана. Общее окно имеет почти прямоугольную форму и хорошо подходит для оценки амплитуды пиков спектров. Но ввиду плоской верхушки пиков он хуже оценивает частоту пиков. Равномерность спектра в определенной полосе частот отчетливо видна, и каждая составляющая спектра четко фиксируется. Увеличив значение NW, можно получить сплошную линию огибающей спектра без сильных колебаний.

Спектр сигнала, полученный методом MTM

Рис. 15. Спектр сигнала, полученный методом MTM

Для шумоподобных сигналов разработаны специальные методы спектрального анализа, позволяющие сглаживать спектры и очищать их от шума. Это параметрические методы, основанные на учете статистики шума. Некоторые из них основаны на идее авторегрессии (AR). К таким методам относятся ковариационный и модифицированный ковариационный методы. Близкие результаты дают методы Берга и Юла-Уокера, а также метод классификации множественных сигналов — MUSIC. Все эти методы сильно ослабляют шумы. Тонкие детали спектров при этом сглаживаются, пики превращаются в волнообразные линии огибающей спектра. Все эти методы нетрудно опробовать и реализовать в SPTool.

 

Периодограммы и спектр модулированных сигналов

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

На рис. 16 показана осциллограмма ЧМ-сигнала со средней частотой 1 МГц, девиацией 0,5 МГц и частотой модуляции пилообразного сигнала 10 кГц. Показан также спектр такого сигнала. Он позволяет грубо оценить диапазон частот перестройки сигнала по частоте. Сама осциллограмма создает ложное впечатление об амплитудной модуляции сигнала. Этот эффект связан с дискретизацией и малым количеством ее точек.

Осциллограмма и спектр частотно-модулированного сигнала

Рис. 16. Осциллограмма и спектр частотно-модулированного сигнала

Построенная в MATLAB осциллограмма и периодограмма данного ЧМ-сигнала показаны на рис. 17. Нетрудно заметить, что в принципе они не отличаются от показанных на рис. 16, хотя спектр получается явно более четким. И это говорит о несовершенстве спектрального анализа обычным БПФ независимо от того, как он реализуется — осциллографом или в СКМ MATLAB.

MATLAB-осциллограмма и спектр ЧМ-сигнала

Рис. 17. MATLAB-осциллограмма и спектр ЧМ-сигнала

 

Короткое оконное преобразование Фурье и спектрограммы

Частично недостатки обычного (в том числе с глобальным окном) преобразования Фурье устраняются применением короткого оконного БПФ. При нем осциллограмма просматривается от начала до конца скользящим окном малого размера c разверткой во времени. В каждом окне осуществляется обычное БПФ. Таким образом, получается множество спектров для разных фрагментов осциллограммы. Каждый фрагмент спектра относится к определенной временной области. Это позволяет строить так называемые спектрограммы — зависимости спектральной плотности сигнала от времени и частоты. Они позволяют, с точностью до размеров короткого окна, анализировать даже нестационарные сигналы, например модулированные. Для этого в пакете Signal Processing системы MATLAB используются функции specgram (старая функция) и spectrogram (новая функция).

Для получения спектрограмм ЧМ-сигнала можно воспользоваться командой, введенной в командном режиме:

>> spectrogram (CH1,128,125,125,1/xmult);

Она позволяет вывести спектрограмму, применяя 128 коротких окон, показанную на рис. 18. Спектрограмма четко выделяет пилообразный закон изменения частоты ЧМ-сигнала, начальную и конечную частоту сигнала, значения времени, соответствующие тем или иным частотам. Правда, разрешение спектрограммы зависит от параметров функции и главное — от числа окон.На рис. 18 видно, что частота сигнала меняется от 0,5 до 1,5 МГц по линейному закону.

Спектрограмма частотно-модулированного сигнала

Рис. 18. Спектрограмма частотно-модулированного сигнала

Пока короткого оконного преобразования Фурье нет даже в самых дорогих осциллографах. Но оно уже есть в некоторых моделях радиочастотных анализаторов спектра, в частности в анализаторах спектра реального времени компании Tektronix [7, 10].

 

Ослабление шума в одном кадре осциллограммы

У современных цифровых осциллографов в памяти хранится множество осциллограмм, а на экране видна лишь одна осциллограмма — кадр. Одна из важных задач обработки сигналов — их очистка от шума. Тут уместно отметить, что современные цифровые осциллографы имеют достаточно эффективные средства для этого. Простейшим и очень эффективным является метод усреднения N осциллограмм (кадров), хотя это ведет к увеличению времени просмотра осциллограмм также в N раз. Но главный недостаток этого метода — невозможность применения для одного кадра.

Между тем, нередко требуется ослабить шум даже одного кадра. Для этого можно использовать различные методы, которые предлагает пакет расширения Curve Fitting Toolbox. Например, для уменьшения шума в кадре можно использовать статистический метод скользящего среднего. При нем берется N точек кадра, они усредняются, и результат берется за первую точку. Затем берутся N следующих точек со сдвигом, вычисляется вторая точка и т. д. Начальные и конечные точки обрабатываются особо. Все это реализуется функцией сглаживания smooth. Но в пакете есть и более удобный в работе инструмент cftool, окно графического интерфейса пользователя (GUI) которого показано на рис. 19 — для примера очистки от шума зашумленной синусоиды.

Пример построения сглаженного массива сложного сигнала (зеленые точки) из данных исходного массива CH1 методом скользящего среднего при N = 11

Рис. 19. Пример построения сглаженного массива сложного сигнала (зеленые точки) из данных исходного массива CH1 методом скользящего среднего при N = 11

В окне Data вначале на вкладке Data Set нужно указать массивы xdata и CH1, генерируемые программой os, и создать массив сглаженных точек CH1. Затем в окне Smooth («Сглаживание») нужно задать один из ряда видов сглаживания данных и указать массив сглаженных точек. На рис. 19 дан пример для сглаживания методом скользящего среднего с использованием в окне сглаживания 11 точек. Пользователь может опробовать и другие методы сглаживания, выбрав наиболее подходящие.

 

Аппроксимация и приближение осциллограмм

Часто, особенно при научных исследованиях, возникает необходимость описания осциллограммы некоторой аналитической зависимостью, то есть аппроксимации (или приближения) ею осциллограммы. Этой операции нет даже у осциллографов высшего класса. В MATLAB многие средства приближения функций сосредоточены в пакете расширения Curve Fitting Toolbox. Ими можно воспользоваться для аппроксимации осциллограмм. Для этого удобно использовать инструмент cftool. Пример аппроксимации пачки из одного периода синусоиды в окне этого инструмента показан на рис. 20. Как и ранее, осциллограмма загружается из рабочего пространства после исполнения программы os.

Пример аппроксимации осциллограммы -пачки из одного периода синусоиды

Рис. 20. Пример аппроксимации осциллограммы -пачки из одного периода синусоиды

В данном примере для аппроксимации использован ряд в виде суммы из трех синусоид, амплитуда, частота и фаза которых подбираются с минимизацией среднеквадрати-ческой погрешности приближения сигнала. Приближение исходных точек (они фиолетового цвета) таким рядом (линия красного цвета) очень хорошее даже за пределами пачки и становится превосходным при увеличении числа синусоид в ряде. Эта аппроксимация — альтернатива приближению рядом Фурье. Инструмент Curve Fitting Toolbox позволяет аппроксимировать данные и множеством других методов: полиномами, наборами степенных и экспоненциальных функций и т. д.

 

MATLAB-программа ввода осциллограмм с двух каналов

По образцу программы os можно составить программы для ввода в рабочее пространство MATLAB большего числа осциллограмм. Для примера на рис. 21 представлено окно редактора от-файлов системы MATLAB с листингом программы os2, обеспечивающей ввод двух каналов CH1 и CH2 осциллографа DPO 4101.

Окно редактора m-файлов MATLAB с листингом программы os2

Рис. 21. Окно редактора m-файлов MATLAB с листингом программы os2

 

Математические операции с сигналами

Современные осциллографы, включая DPO 4101, имеют ограниченные средства для выполнения математических операций с сигналами одного или двух каналов. Такие операции в MATLAB выполняются куда проще и удобнее, благодаря вводу математических операций с клавиатуры. Кроме того, по числу и возможностям таких операций MATLAB, будучи математической системой, намного превосходит осциллографы.

Программа os2 позволяет осуществлять математические операции с реальными сигналами одного или двух каналов осциллографа, применяя стандартные средства системы MATLAB. Простые операции можно задавать прямо в командном режиме работы, совмещая их с построением графиков осциллограмм и результатов их обработки. Покажем это на примере двух осциллограмм — синусоиды и прямоугольных импульсов.

Следующие команды

>> os2; figure;
>> plot (xdata, (CH1.*3+CH2). /5,xdata, CH1.*CH2)

вводят сигналы каналов CH1 и CH2, а затем строят в отдельном окне графики суммы сигнала первого канала в кубе и второго канала с делением их на 5, а также произведения сигналов первого и второго канала. Точка перед знаками возведения в степень, деления и умножения связана со спецификой матричных операций: она означает поэлементные действия. На рис. 22 показан пример выполнения этих операций.

Первый пример выполнения операций с сигналами двух каналов осциллографа

Рис. 22. Первый пример выполнения операций с сигналами двух каналов осциллографа

В другом примере (рис. 23) строятся графики сигналов первого и второго каналов с удаленным сдвигом по вертикали, а также график интеграла от сигнала второго канала, поделенного (для масштабирования) на 500:

>> os2; figure;
>> plot (xdata, abs (CH1-Yoff1), xdata, CH2-Yoff2, xdata, cumtrapz (CH2-Yoff2) /500)
Второй пример выполнения операций с сигналами двух каналов осциллографа

Рис. 23. Второй пример выполнения операций с сигналами двух каналов осциллографа

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

 

Короткий оконный спектральный анализ сложного сигнала

Рассмотрим пример короткого оконного спектрального анализа сложного сигнала (рис. 24). Команда os2 вводит сигналы каналов CH1 и СН2 осциллографа в рабочее пространство MATLAB. Сигнал СH1 — это за-шумленная сумма трех синусоид с разными кратными частотами, а сигнал CH2 — прямоугольные импульсы. Затем создается массив S = CH1+CH2 (сумма сигналов каналов) и строится график такого сигнала. Он показан справа под графиком сигналов каналов. Наконец, с помощью функции

>> figure;spectrogram (S, 128,100,100,Fs);

строится спектрограмма сигнала. Команда figure выводит спектрограмму в отдельном окне, показанном на рис. 24 в левой части экрана. Хотя спектрограмма и выделяет что-то, это выделение (в отличие от закона модуляции ЧМ-сигнала) настолько нечетко, что пользы от такой спектрограммы мало. К сожалению, это характерно для сложных сигналов.

Примеры создания и обработки сложного сигнала

Рис. 24. Примеры создания и обработки сложного сигнала

 

Вейвлет-анализ сложного сигнала

Ряды Фурье используют единственную базовую функцию — синусоиду. Уже в силу этого для нестационарных сигналов классический спектральный анализ просто неприменим. Причины этого детально описаны в [10, 11]. Они наглядно проявились и при Фурье-анализе сложного сигнала (рис. 24), где спектральный анализ не показал нужных результатов.

Около четверти века назад математики открыли новые базисные функции в виде коротких «волн» — вейвлетов, которые способны перемещаться по оси времени (параметр b) и меняться по ширине (параметр a):

Формула

Разумеется, чтобы точно представлять сигналы, вейвлеты должны соответствовать особым условиям, которые указаны в специальной литературе по вейвлетам, например в [11]. В частности — условиям ортогональности. Прямым вейвлет-преобразованием (Continuous Wavelet Transform, CWT) называют вычисление вейвлет-коэффициентов в области определения R:

Формула

Интегральное преобразование (5), применяемое для разных видов вейвлетов, называют непрерывным, если параметры масштаба a и сдвига b в ходе обработки сигнала принимают любые действительные значения. Оно избыточно по затратам времени на вычисления, но зато позволяет добиться наибольшей детализации при анализе сигналов. Она ограничена лишь принципом неопределенности. Практически на современных персональных компьютерах (ПК) время такого анализа составляет доли (единицы) секунды. То есть оно того же порядка (а часто намного меньше), что и у современных анализаторов спектра с аппаратной реализаций Фурье-анализа [7]. Для прямого вейвлет-преобразования и получения вейвлет-спектрограмм не обязательно применение ортогональных вейвлетов.

Вейвлетов оказалось великое множество: только в пакете расширения Wavelet Toolbox системы MATLAB их десятки, что позволяет подобрать наиболее удачные для анализа сигналы вейвлетов. Список всех классов вей-влетов выводит команда wavemngr (‘read’), а команда help wavelet выводит список всех функций пакета.

Реализуется CWT функцией

COEF= cwt (ydata, start:step:end, 'W', 'opt')

Здесь ydata — вектор сигнала, start и end — начальный и конечный уровни разложения, W — тип вейвлета и opt — опция, задающая тип окраски вейвлет-спектрограммы, которую строит эта функция. Функция возвращает вектор вейвлет-коэффициентов COEF.

Перейдем к анализу сигнала S с помощью прямого вейвлет-преобразования. Выполним команду:

>> cwt (S, 1:128,'db4', 'abslvl', [100,400]);

Она выводит график сигнала (массива S) и вейвлет-спектрограмму. Они показаны на рис. 25. Параметр ‘abslvl’ задает вывод абсолютных значений вейвлет-коэффициентов.

Сложный сигнал и его вейвлет-спектрограмма

Рис. 25. Сложный сигнал и его вейвлет-спектрограмма

Обратите внимание на детальность вейвлет-спектрограммы сложного сигнала: она выявляет массу тонких и явных особенностей сигнала. Например, при малых масштабах отчетливо виден хаотический шум сигнала. При больших a (порядка 100 и выше) заметна явная периодичность сигнала. При промежуточных a выделяются синусоидальные компоненты сигнала в канале CH1. Особенно отчетливо выделяются быстрые перепады сигнала: они выглядят как «зубы с корнями». Плоские части сигнала выделяются широкими пространствами светлого оттенка цвета. В общем, вейвлет-спект-рограмма прекрасно подходит для выделения тонких особенностей сложных сигналов и может быть положена в основу их идентификации. При этом все особенности сигналов строго привязаны ко времени (номерам точек сигнала). И это важное достоинство вейвлет-спектрограмм.

 

Средства GUI для работы с вейвлетами

Пакет Wavelet Toolbox обладает средствами на основе графического интерфейса пользователя (GUI), которые заметно облегчают работу со столь сложной материей, как вей-влеты. Для вызова этих средств достаточно исполнить команду wavemenu. Она приведет к появлению окна с обширным списком указанных средств (на рис. 26 внизу слева).

Вызов окна работы с вейвлетами на основе GUI со списком разделов применения вейвлетов, окна для работы с непрерывными вейвлетами и окна загрузки массива из рабочего пространства MATLAB

Рис. 26. Вызов окна работы с вейвлетами на основе GUI со списком разделов применения вейвлетов, окна для работы с непрерывными вейвлетами и окна загрузки массива из рабочего пространства MATLAB

Теперь, вооружившись этим новым инструментом, можно продолжить наш эксперимент по вейвлет-анализу реальных осциллограмм и сложных сигналов на их основе. Выберем массив S суммарного сигнала и откроем полностью окно анализа (рис. 27).

Окно непрерывного вейвлет-анализа сложного сигнала

Рис. 27. Окно непрерывного вейвлет-анализа сложного сигнала

Помимо выбора типа вейвлета для анализа (в данном случае это простейший вейв-лет Хаара), в окне GUI можно выбрать одну из множества цветовых схем вейвлет-спектрограмм. Так, на рис. 27 выбрана схема hsv. Нетрудно заметить, что на этой красочной схеме четко выделены детали вейвлет-спектрограммы, она обеспечивает построение вейвлет-спектрограмм с множеством цветов (преобладает красный).

Можно экспериментировать с выбором типа вейвлета и методами масштабирования. Так, на рис. 28 показан пример вейвлет-ана-лиза нашего сигнала с применением вейвлета Добеши db8. Теперь спектрограмма сигнала напоминает множество деревьев, что четко выявляет сложную структуру сигнала и позволяет определить тончайшие нюансы его формы. Как ни парадоксально, но вейвлет-спектрограмма явно выглядит более информативно, чем сама осциллограмма сигнала. И это не случайно: доказано (например, в [11]), что вейвлет-спектрограмма способна четко обнаруживать небольшие разрывы сигнала и его производных, которые невозможно разглядеть.

Вейвлет-анализ зашумленного сигнала с применением одномерного вейвлета Добеши db4

Рис. 28. Вейвлет-анализ зашумленного сигнала с применением одномерного вейвлета Добеши db4

 

Вейвлет-очистка сигнала от шума и компрессия сигнала

Важным применением вейвлетов стала очистка сигналов от шума и их сжатие (компрессия). Эти действия основаны на ограничении порогов используемых коэффициентов — жестком и мягком (адаптивном). Ограничимся применением одномерных вейвлетов. На рис. 28 показан пример анализа сигнала от канала CH1, довольно сильно зашумленного (среднеквадратичное значение уровня шума — 50% от амплитуды сигнала). Анализ выполняется с помощью вейвлета Добеши db4.

Не вникая в тонкости декомпозиции сигналов с помощью вейвлетов (см. [11] и другую литературу по вейвлетам), отметим, что вей-влеты имеют два типа функций — грубые аппроксимирующие функции aL и детализирующие dL, где L — уровень декомпозиции. На рис. 29 показана зависимость от номера отсчета уровней сигнала и его компонентов aL и dL. Над ними приведена простая формула для композиции сигнала, то есть его реставрации. Замечательно, что для ортогональных вейвлетов любая точность реставрации сигнала достигается при небольшом (до 6-8) числе уровней L. А при ограничении числа вейвлет-коэффициентов можно достичь вейвлет-фильтрации сигнала и его сжатия. И это не связано с частотной фильтрацией на основе ограничения числа гармоник ряда Фурье. Поэтому вейвлет-филь-трация возможна даже для нестационарных сигналов и отдельных кадров осциллограмм.

Иллюстрация вейвлет-декомпозиции сложного сигнала

Рис. 29. Иллюстрация вейвлет-декомпозиции сложного сигнала

Активизируя кнопку De-noise, можно вызвать окно очистки сигнала от шума. Оно показано на рис. 30. В этом окне можно задать вид ограничения порогов и, нажав снова кнопку De-noise, провести очистку сигнала от шума. Очищенный от шума сигнал появляется в виде тонкой синей линии в красной линии зашум-ленного сигнала. Активизация большой кнопки View Denoised Signal позволяет наблюдать большое окно с зашумленным сигналом и очищенным сигналом (на рис. 30 слева внизу).

Очистка сигнала от шума

Рис. 30. Очистка сигнала от шума

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

 

Очистка сигналов с помощью пакетных вейвлетов

Пакетные вейвлеты являются обобщением обычных вейвлетов и характеризуются более сложным деревом декомпозиции (рис. 31).

Окно работы с пакетными вейвлетами

Рис. 31. Окно работы с пакетными вейвлетами

Для них существуют понятия наилучшего дерева (Best Tree) и наилучшего порога (Best Level), при реализации которых удается уменьшить число уровней разложения и получить более высокую степень очистки сигналов от шума.

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

Пример очистки сигналов с применением пакетных вейвлетов

Рис. 32. Пример очистки сигналов с применением пакетных вейвлетов

 

Скейлингграммы в новых версиях Wavelet Toolbox

Учитывая особую роль непрерывных вейв-лет-преобразований в тонкой оценке свойств сигнала, в новые версии пакета расширения Wavelet Toolbox (например, Wavelet Toolbox системы MATLAB R2009a) было введено новое понятие — скейлингграммы. Рассмотрим его суть на примере сигнала с канала CH1. Выполнив команды

>> osc;
>> COEFS = cwt (ydata, 1:5:300,'cgau4', '3Dplot');

мы вычислим вейвлет-коэффициенты данного сигнала при использовании комплексного вейвлета Гаусса cgau4. Опция ‘3Dplot’ позволяет получить очень интересные данные о них с помощью трехмерного графика, показанного на рис. 33.

Трехмерные (3D) графики вейвлет-коэффициентов CWT

Рис. 33. Трехмерные (3D) графики вейвлет-коэффициентов CWT

Сами по себе эти графики прекрасно характеризуют детали сигнала. Однако, выполнив команду построения скейлингграммы с опцией ‘image’

>> ydata=CH1; figure; wscalogram ('image', COEFS, 'ydata', ydata);

мы получим рисунок исследуемого сигнала и скейлингграмму в виде цветного рисунка (рис. 34, слева). Последняя очень четко и наглядно характеризует сигнал.

А следующие команды

>>figure; wscalogram ('contour', COEFS, 'ydata', ydata);

позволяют построить скейлингграмму в виде цветного контурного графика (рис. 34, справа). Она выглядит проще, но тоже прекрасно выявляет особенности сигнала. Оба варианта скейлингграмм отличаются высокой наглядностью и позволяют выявлять детали анализируемого сигнала.

Скейлингграммы пачки из двух периодов синусоиды

Рис. 34. Скейлингграммы пачки из двух периодов синусоиды

 

Заключение

Описанные примеры — лишь небольшая часть того интересного, полезного и порою необычного, что дает технология совместного применения современных осциллографов с СКМ. Некоторые другие возможности, например, работа с изображениями, управление измерительными приборами с помощью СКМ и даже из Интернета, методы дискретного вейвлет-анализа и т. д., требуют дополнительного рассмотрения и выходят за рамки данной статьи. При использовании осциллографов с открытой архитектурой (на базе системной платы стандартного ПК) СКМ можно устанавливать на встроенный жесткий диск таких осциллографов. В ближайшее время можно ожидать дальнейшего встраивания средств СКМ в аппаратные решения цифровых осциллографов, что означает уже полную их интеграцию с СКМ.

Литература
  1. Дьяконов В. П. Компьютерная математика. Теория и практика. М.: Нолидж, 2001.
  2. Дьяконов В. П. MATLAB R2006/2007/2008 + Simulink 5/6/7. Основы применения. Изд-е 2-е, переработанное и дополненное. М.: СОЛОН-Пресс, 2009.
  3. Дьяконов В. П. MATLAB 6.5 SP1/7.0 + Simulink 5/6. Обработка сигналов и проектирование фильтров. М.: СОЛОН-Пресс, 2005.
  4. Дьяконов В. П. MATLAB 6.5 SP1/7.0 + Simulink 5/6 в математике и моделировании. М.: СОЛОН-Пресс, 2005.
  5. Дьяконов В. П. Современная осциллография и осциллографы. М.: СОЛОН-Пресс, 2005.
  6. Афонский А. А., Дьяконов В. П. Измерительные приборы и массовые электронные измерения. М.: СОЛОН-Пресс, 2007.
  7. Афонский А. А., Дьяконов В. П. Цифровые анализаторы спектра, сигналов и логики. М.: СОЛОН-Пресс, 2009.
  8. Дьяконов В. П. Генерация и генераторы импульсов. М.: ДМК-Пресс, 2009.
  9. Дьяконов В. П. Работа цифровых осциллографов TDS1000B/2000B с системой компьютерной математики MATLAB // Схемотехника. 2007. № 7.
  10. Дьяконов В. П. Современные методы Фурье-и вейвлет-анализа и синтеза сигналов // Контрольно-измерительные приборы и системы. 2009. № 2.
  11. Дьяконов В. П. Вейвлеты. От теории к практике. Изд-е 2-е, переработанное и дополненное. М.: СОЛОН-Пресс, 2009.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *