Главная страница

Учебное пособие для студентов высших учебных заведений


Скачать 5.41 Mb.
НазваниеУчебное пособие для студентов высших учебных заведений
Дата10.03.2022
Размер5.41 Mb.
Формат файлаpdf
Имя файлаmatlab.pdf
ТипУчебное пособие
#390741
страница28 из 44
1   ...   24   25   26   27   28   29   30   31   ...   44
5.5. Графические и интерактивные средства
245
„
opt.error - вектор значений ошибок на частотах вектора opt.grid;
„
opt.fextr - вектор, содержащий частоты с экстремальными ошибками
АЧХ.
На рис. 5.53 изображен результат применения процедуры cremez для расче- та параметров полосового КИХ-фильтра 30-го порядка.
b = cremez(30,[0 0.5 0.6 0.8 0.9 1],'bandpass'); freqz(b,1,512)
Рис. 5.53
5.5. Графические и интерактивные средства
5.5.1. Графические средства пакета SIGNAL
Некоторые графические средства пакета SIGNAL уже упоминались ранее.
Сюда относятся, прежде всего, процедуры freqs и freqz, применение которых без выходных параметров приводит к построению в графическом окне (фигуре) гра- фиков АЧХ и ФЧХ аналогового звена по заданным векторам коэффициентов числителя и знаменателя передаточной функции по Лапласу (для первой из них), либо цифрового фильтра (звена) по коэффициентам его дискретной передаточной функции (для второй процедуры). Напомним, что общая форма вызова этих функций при выведении графиков такова:
freqs(b, a, n) или freqz(b,a).
При этом 'b' и 'a' представляют собой векторы коэффициентов числителя и знаменателя передаточной функции, а 'n' задает число отсчетов в строящихся
АЧХ и ФЧХ.
Пример применения функции freqs приведен на рис. 5.16 (с. 247), а функ- ции freqz - на рис. 5.17 (с.248). Из рассмотрения графиков следует:
„
АЧХ первая процедура строит в логарифмическом масштабе, а вторая - в децибелах;
„
частоты в первом случае откладываются в радианах в секунду и в лога-

5.5. Графические и интерактивные средства
246
рифмическом масштабе, а во втором - в виде отношения к частоте Найк- виста, в равномерном масштабе и в диапазоне от 0 до 1;
„
форма оформления графиков достаточно жесткая и не предусматривает возможности изменения размеров графиков, надписей по осям и вывода заголовка.
Некоторые процедуры расчета фильтров, такие как fircls, fircls1, cremez и
maxflat предусматривают выведение соответствующих графических изображений некоторых параметров спроектированного фильтра, если в качестве последнего входного параметра при обращении к процедуре указан флаг 'plot'.
Так, функция maxflat в этом случае выводит три графические зависимости :
„
АЧХ в пределах до частоты Найквиста в равномерном масштабе;
„
карту расположения нулей и полюсов в комплексной Z-плоскости;
„
частотный график групповой задержки фильтра.
Например:
[b,a, b1,b2] = maxflat(10,2,0.5,'plots')
приводит к появлению в графическом окне изображения, показанного на рис.
5.54.
Рис. 5.54
При вызове функции fircls с этим флагом на график выводятся фрагменты
АЧХ с максимальными отклонениями от требуемой АЧХ (см. рис. 5.55):
n= 30; f = [0 0.2 0.6 0.8 1]; amp = [1 0 0.5 0];
up = [1.02 0.02 0.51 0.02]; lo = [0.98 -0.02 0.49 -0.02 ];
fircls(n,f,amp,up,lo,'plots');
Аналогичные графики строятся и при вызове функции fircls1. Отличие в том, что теперь графики не орнаментированы никаким текстом (рис. 5.56):
fircls1(n,0.5,0.01,0.01,'plots');

5.5. Графические и интерактивные средства
247
Рис. 5.55
Рис. 5.56
Процедура cremez при таком обращении выводит следующие графики (в одном графическом окне): АЧХ, ФЧХ, зависимость погрешности по амплитуде от частоты и зависимость погрешности по фазе от частоты. Это проиллюстрировано на рис. 5.57:
cremez(30,[0 0.5 0.6 0.8 0.9 1],'bandpass','plots');

5.5. Графические и интерактивные средства
248
Рис. 5.57
В пакете SIGNAL имеются еще две важные для инженера графические про- цедуры grpdelay, impz и zplane. Первая строит график группового времени за- держки (ГВЗ) от частоты, вторая - импульсную характеристику заданного фильт- ра, а третья отображает на комплексной Z-плоскости положение нулей и полюсов фильтра.
Рис. 5.58
Рассмотрим в качестве примера применение этих процедур к БИХ-фильтру, созданному процедурой maxflat:
[b,a] = maxflat(10,2,0.5) ; grpdelay(b,a,128)
Результат применения функции grpdelay приведен на рис. 5.58.
Применяя процедуру impz к тому же фильтру, получим график импульсной дискретной характеристики фильтра, изображенный на рис. 5.59:

5.5. Графические и интерактивные средства
249
impz(b,a) .
Рис. 5.59
Использование процедуры zplane для этого фильтра:
zplane(b,a)
приводит к построению графика рис. 5.60.
Рис. 5.60
Рассмотрим применение некоторых графических функций на примере двух коррелированных случайных процессов. Для этого вначале сформируем эти про- цессы:
Ts=0.01; T = 100; % Задание параметров процесса
t=0 : Ts : T; x1=randn(1,length(t)); %
Формирование белого шума
% Расчет параметров формирующего фильтра

5.5. Графические и интерактивные средства
250
om0=2*pi; dz=0.05; A=1; oms=om0*Ts;
a(1)= 1+2*dz*oms+oms^2; a(2)= - 2*(1+dz*oms); a(3)=1;
b(1)=A*oms^2;
% Формирование "профильтрованного" процесса
y1 =filter(b,a,x1);
% Построение графика процесса
subplot(3,1,1), plot(t,y1),grid, set(gca,'FontName','Arial Cyr','FontSize',8)
title('Процесс на выходе фильтра (T0=1; dz=0.05, Ts= 0.01)');
ylabel('Y1(t)')
% Расчет параметров первого звена
om0=2*pi*0.20; dz=0.05; A=1; oms=om0*Ts;
a1(1)= 1+2*dz*oms+oms^2; a1(2)= - 2*(1+dz*oms);
a1(3)=1; b1(1)=A*oms^2;
% Формирование "первого" процесса
x =filter(b1,a1,y1);
% Построение графика первого процесса
subplot(3,1,2), plot(t,x),grid, set(gca,'FontName','Arial Cyr','FontSize',8)
title('Первый случайный процесс (T0=5; dz=0.05, Ts= 0.01)');
ylabel('Х(t)')
% Расчет параметров второго звена
om0=2*pi*0.5; dz=0.05; A=1; oms=om0*Ts;
a2(1)= 1+2*dz*oms+oms^2; a2(2)= - 2*(1+dz*oms); a2(3)=1;
b2(1)=A*oms^2;
% Формирование "второго" процесса
y =filter(b2,a2,y1);
% Построение графика второго процесса
subplot(3,1,3), plot(t,y),grid, set(gca,'FontName','Arial Cyr','FontSize',8)
title('Второй случайный процесс (T0=2; dz=0.05, Ts= 0.01)');
xlabel('Время (с)'); ylabel('Y(t)')
Графики порождающего процесса и двух процессов, производных от него, приведены на рис. 5.61.
Рис. 5.61
Представление графика длинного процесса в виде совокупности нескольких

5.5. Графические и интерактивные средства
251
фрагментов меньшей длины по аргументу можно осуществить при помощи про- цедуры strips путем такого обращения к ней:
strips(x, sd, Fs, scale), где 'x' - вектор значений выводимой на график функции, 'sd' - параметр, задающий в секундах длину одного фрагмента по аргументу, 'Fs' - значение частоты дискре- тизации, 'scale' - масштаб по вертикальной оси.
В качестве примера, выведем график порождающего случайного процесса, разбивая его на отдельные фрагменты по 20 секунд и задавая диапазон изменеия значения функции в каждом фрагменте от -2 до 2:
strips(y1,20,100, 2)
grid; title ('Застосування процедури STRIPS для виведення Y1(t)');
xlabel('Час, с')
На рис. 5.62 представлен результат.
Рис. 5.62
Теперь познакомимся с графическими процедурами статистической обра- ботки процессов. Ранее (разд. 5.3) мы познакомились с применением функции psd, которая, если не указывать выходных параметров, выводит в графическое окно график спектральной плотности мощности (рис. 5.42). Аналогичный график зави- симости модуля взаимной спектральной плотности двух сигналов от частоты строит процедура csd, если обратиться к ней таким образом:
csd(x, y, nfft, Fs).
Здесь x и y заданные последовательности отсчетов двух сигналов, nfft - число отсчетов, по которым вычисляется взаимная спектральная плотность, Fs - частота дискретизации этих сигналов.
Применим функцию psd к случайному сигналу X(t), а процедуру сsd - для нахождения взаимной спектральной плотности сигналов X(t) и Y(t). Результаты приведены соответственно на рис. 5.63 и 5.64.
psd(x,10000,100); title (' Применение процедуры PSD к процессу X(t)');

5.5. Графические и интерактивные средства
252
ylabel('Спектральная плотность'); xlabel('Частота, Гц ')
csd(x,y,10000,100); title(' Применение процедуры CSD к процессам X(t) и Y(t)');
ylabel('Взаимная С П'); xlabel('Частота, Гц ')
Рис. 5.63
Рис. 5. 64
Процедура сohere при обращении
сohere(x, y, nfft, Fs) вычисляет и выводит график от частоты квадрата модуля функции когерентно- сти сигналов X(t) и Y(t), вычисленного по nfft точкам, заданным с частотой дис- кретизации Fs. Применяя эту процедуру к сформированным случайным процес- сам, получим картину, представленную на рис. 5.65:
cohere(x, y, 10000, 100)

5.5. Графические и интерактивные средства
253
Рис. 5.65
Ознакомимся с процедурой spectrum, которая выполняет спектральный анализ двух процессов X(t) и Y(t). Обращение
P = spectrum(x,y) приводит к вычислению матрицы Р, состоящей из восьми столбцов
P = [Pxx, Pyy, Pxy, Txy, Cxy, Pxxc, Pyyc, Pxyc], где Pxx - вектор-столбец, содержащий оценку СПМ процесса Х;
Pyy - вектор-столбец, содержащий оценку СПМ процесса Y;
Pxy - вектор взаимной спектральной плотности процессов X и Y;
Txy - комплексная передаточная функция : Txy = Pxy./Pxx;
Cxy - функция когерентности, Cxy =((abs(Pxy)).^2)./(Pxx.*Pyy);
Pxxc, Pyyс, Pxyc - векторы, содержащие доверительные интервалы для оце- нок Pxx, Pyy и Pxy.
Если эту функцию вызвать без выходных параметров
spectrum(x,y), то результатом ее работы будет поочередный вывод в одно графическое окно та- ких графиков:
1) зависимости СПМ первого сигнала от нормализованной частоты (рис.
5.66); на графике представляются три кривые - кривая оценки осреднен- ного значения СПМ на фиксированной частоте и две кривые с добавлени- ем и вычитанием доверительного интервала на этой частоте;
2) после нажатия клавиши прежние кривые исчезнут и на том же поле появятся три аналогичные кривые (рис. 5.67) для второго процесса
Y(t);
3) следующее нажатие приведет (рис. 5.68) к появлению кривой за- висимости модуля "передаточной функции" взаимной спектральной

5.5. Графические и интерактивные средства
254
плотности указанных процессов от частоты;
Рис. 5.66
Рис. 5.67
Рис. 5.68

5.5. Графические и интерактивные средства
255
Рис. 5.69
Рис. 5.70
4) дальнейшее нажатие приводит к появлению графика зависимости аргумента " передаточной функции" ВСП от частоты (рис. 5.69);
5) последнее нажатие вызовет появление в поле графика функции когерентности (рис. 5.70).
Для построения спектрограммы процесса в MatLAB предусмотрена проце- дура specgram. Спектрограммой называется зависимость амплитуды вычисленно- го в окне ДПФ (дискретного преобразования Фурье) от момента времени, опреде- ляющего положение этого окна. Для примера используем эту процедуру приме- нительно к ранее сформированному процессу X(t):
specgram(x, 10000,100)
В результате получаем в графическом окне картину, изображенную на рис.
5.71.
Общий вид обращения к процедуре specgram
напоминает обращение к процедуре psd:
specgram(x, nfft,Fs),

5.5. Графические и интерактивные средства
256
где x - вектор процесса, спектрограмма которого вычисляется, nfft количество точек этого процесса, участвующих в вычислениях и Fs - частота дискретизации процесса.
Рис. 5.71
Наконец, графическое представление имеет и процедура tfe, которая оце- нивает параметры и строит график АЧХ передаточной функции звена, на вход ко- торого подан процесс, представленный первым вектором в обращении к процеду- ре, а на выходе получен процесс, представленный вторым вектором. В целом об- ращение к процедуре с целью получить график АЧХ имеет вид:
tfe(x, y, nfft,Fs) где x - вектор значений входного процесса, y вектор выходного процесса, nfft - количество обрабатываемых точек (элементов указанных векторов), Fs - частота дискретизации.
Рис. 5.72
Применяя процедуру к ранее сформированным процессам X(t) и Y(t):

5.5. Графические и интерактивные средства
257
tfe(x, y, 10000,100)
получим график рис. 5.72.
5.5.2. Интерактивная оболочка SPTOOL
Процедура sptool активизирует графическую интерактивную оболочку па- кета SIGNAL, включающую:
„
средство поиска и просмотра сигналов - Signal Brouser:
„
проектировщик фильтров - Filter Designer;
„
средство просмотра характеристик фильтров - Filter Viewer;
„
средство просмотра спектра - Spectrum Viewer.
Оболочка активизируется путем набора в командном окне MatLAB коман- ды
sptool.
В результате на экране появляется окно, представленное на рис. 5.73.
Рис. 5.73
Как видим, окно SPTool состоит из трех частей-окошек - Signals (Cигналы),
Filters (Фильтры) и Spectra (Спектры), под каждым из которых имеются надпи- си-команды, говорящие о том, что можно сделать с объектами, расположенными над ними.
Так, под окошком Signals находится лишь надпись View. Это означает, что объекты (сигналы), имена которых расположены в этом окошке, могут быть только просмотрены. Под окошком Filters находятся четыре надписи, которые означают, что объекты (фильтры), имена которых размещаются внутри него, мо- гут быть:

5.5. Графические и интерактивные средства
258
„
созданы (надпись New Design - Спроектировать Новый);
„
отредактированы (надпись Edit Design - Отредактировать Проект);
„
просмотрены (надпись View);
„
применены к одному или нескольким объектам, выделенным в окошке
Signals (надпись Apply - Применить).
Аналогично, с объектами окошка Spectra - (спектрами) можно произво-дить такие действия:
„
создавать (команда Create - Создать);
„
просматривать ( команда View);
„
обновить (создать заново под тем же именем) - команда Update.
Внутри окошек обычно размещаются имена (идентификаторы) соответст- вующих переменных или процедур, входящих в открытый в sptool файл с расши- рением .SPT (имя этого файла находится в заголовке окна SPTool).
При первом обращении в заголовке окна находится имя untitled.spt, все три окошка - пустые, а из команд, расположенных ниже их, активной является только одна New Design. Таким образом непосредственно после вхождения в оболочку
sptool непосредственно исполнимой является только операция разработки нового фильтра. Чтобы активизировать остальные команды, необходимо откуда-то им- портировать данные о каком-то (или каких-то) сигналах. Такие данные должны быть сформированы другими средствами, нежели сама оболочка sptool, (напри- мер, являться результатом выполнения какой-то программы MatLAB, или резуль- татом моделирования в среде SimuLINK) и записаны как некоторые переменные либо в рабочем пространстве (Workspace), либо на диске в файле с расширением
МАТ.
Импорт сигналов
Для того, чтобы обрабатывать какие-либо сигналы с помощью sptool, необ- ходимо, прежде всего, сформировать эти сигналы с помощью некоторой про- граммы MatLAB, а затем импортировать полученные векторы значений этих сиг- налов в среду sptool.
Допустим, что мы сгенерировали случайные процессы X(t), Y(t) и Y1(t) в соответствии с программой, приведенной в разделе 5.5.1. В результате в рабочем пространстве MatLAB появились векторы x, y и y1, каждый из которых содер- жит по 10000 элементов. Импортируем их в среду sptool.
Войдя в среду (рис. 5.73), выберем "мышкой" раздел File меню окна sptool.
В результате появляется дополнительное подменю (рис. 5.74), одним из разделов которого является Import. "Нажатие" на него "мышкой" приведет к появлению но- вого окна Import to SPTool, представленного на рис. 5.75.

5.5. Графические и интерактивные средства
259
Рис. 5.74
В разделе Source (Источник) этого окна отмечен точкой внутри кружка раздел From Workspace (Из Рабочего Пространства). Поэтому все имена пере- менных рабочего пространства представлены во втором окошке Workspace
Contents (Содержимое Рабочего Пространства). Выбрав при помощи "мышки" необходимую переменную, необходимо затем "нажать" кнопку со стрелкой, ука- зывающей на окошко с надписью Data. После этого в окошке Data должно поя- виться имя выбранной переменной.
Рис. 5.75

5.5. Графические и интерактивные средства
260
Рис. 5.76
Затем в окошке Sampling Frequency (Частота Дискретизации) следует за- писать желаемое значение частоты дискретизации. Фактически этим параметром задается временной промежуток
1   ...   24   25   26   27   28   29   30   31   ...   44


написать администратору сайта