Файл: MATLAB. Довідник для користувача.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.05.2024

Просмотров: 153

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

подгонки, где меньшее значение нормы соответствует лучшему качеству. Норма рассчитывается при помощи функции norm(V,2), где V есть вектор невязок.

Numerical results (Численные результаты) – Данная панель позволяет изучать численные характеристики каждой отдельной подгонки для текущего набора данных, без построения графиков.

·Fit (Метод подгонки) – Выберите метод подгонки. Соответствующие результаты будут представлены в окне под меню выбора метода. Заметим, что выбор метода в данной панели не оказывает воздействия на панель Plot fits. Поэтому, если вы хотите получить графическое представление, следует выбрать соответствующую опцию в пане-

ли Plot fits.

·Coefficients and norm of residuals (Коэффициенты и норма невязок) – В данном окне выводятся численные выражения для уравнения подгонки, выбранного в Fit. Отметим, что при первом открытии панелиNumerical Results , в рассматриваемом окне выдаются результаты последней подгонки, выбранной вами в панели Plot fits.

·Save to workspace (Запомнить в рабочем пространстве) – Вызывает диалоговое окно, которое позволяет запомнить в рабочем пространстве результаты вашей подгонки.

Find Y = f(X) – Данная панель дает возможность произвести интерполяцию или экстраполяцию текущей подгонки.

·Enter value(s) (Введите данные) – Введите любое выражение, совместимое с системой MATLAB для оценки вашей текущей подгонки в промежуточных или выходящих за пределы заданных аргументов точек. Выражение будет вычислено после нажатия кнопки Evaluate (Вычислить), а результаты в табличной форме будут выведены в соответствующее окно ниже. Метод текущей подгонки при этом указан в ме-

ню Fit.

·Save to workspace (Запомнить в рабочем пространстве) – Вызывает диалоговое окно, которое позволяет запомнить в рабочем пространстве результаты вашей интерполяции.

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

Уравнения в конечных разностях и фильтрация

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

Функция

y = filter(b, a, x)

обрабатывает данные в векторе x посредством фильтра, описываемого векторами a и b, выдавая фильтрованные данные y. Функция filter может рассматриваться как эффективная реализация уравнения в конечных разностях. Структура функции filter является обобщенной структурой фильтра, образованного при помощи линий задержки, который описывается приведенными ниже уравнениями в конечных разностях, где n есть индекс (номер) текущей выборки, na есть порядок полинома, описываемого вектором a , а nb есть порядок полино-

63


ма,описываемого вектором b. Выход y(n) является линейной комбинацией текущего и пре-

дыдущих входов, то есть x(n) x(n-1) ..., и предыдущих выходов y(n-1) y(n-2) ...

a(1) y(n) = b(1) x(n) + b(2) x(n-1) + … + b(nb) x(n-nb+1) – - a(2) y(n-1) - … - a(na) y(n-na+1)

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

y(n) = (1/4) x(n) + (1/4) x(n-1) + (1/4) x(n-2) + (1/4) x(n-3)

Соответствующие векторы равны:

a = 1; b = [1/4 1/4 1/4 1/4];

Воспользуемся данными матрицы count из раздела Анализ данных и статистика. Для нашего примера, обозначим первый столбец матрицы count через вектор x :

x = count(:, 1);

Усредненные за 4 часа данные могут быть легко вычислены при помощи приведенной выше функции y = filter(b, a, x). Сравним исходные и сглаженные данные, построив их на одном графике.

t = 1:length(x) ;

plot(t, x, '-.', t, y, '-'); grid on legend('Original Data','Smoothed Data',2)

Исходные данные наблюдения представлены здесь штрих-пунктирной линией, а сглаженные за 4 часа данные – сплошной линией.

64


Для различных практических приложений, в специальном пакете Signal Processing Toolbox предусмотрены многочисленные функции для анализа сигналов и проектирования дискретных фильтров.

Многомерные Массивы

Многомерные массивы в системеMATLAB являются распространением обычных двумерных матриц. Как известно, матрицы имеют две размерности – строки (row) и столбцы

(column).

Вы можете выделить любой элемент двумерной матрицы при помощи двух индексов, где первый является индексом (номером) строки, а второй – индексом столбца. Многомерные массивы имеют дополнительную индексацию. Например, трехмерные массивы имеют три индекса:

·Первый индекс указывает размерность 1 , то есть строки.

·Второй индекс указывает размерность 2. то есть столбцы.

· Третий индекс указывает на размерность3. В данном пособии используется концепция страницы (page) для представления размерности 3 и выше.

Для обращения, например, к элементу второй строки и третьего столбца на странице 2 нужно воспользоваться индексацией (2,3,2) (см. рисунок ниже).

Если вы добавляете размерности к массиву, вы также добавляете индексы. Четырехмерный массив, например, имеет 4 индекса. Первые два из них указывают на пару строка-столбец, а следующие два характеризуют третью и четвертую размерности.

65


Отметиим, что общие функции обращения с многомерными массивами находятся в директории datatypes.

Создание Многомерных Массивов

При создании многомерных массивов можно воспользоваться теми же приемами, которые используются для двумерных матриц.

Создание массивов с использованием индексации

Один из способов формирования многомерного массива состоит в создании двумерного массива и соответствующего его расширения. Например, начнем с простого двумерного массива А.

A = [5 7 8; 0 1 9; 4 3 6];

А является массивом 3х3, то есть его

размерности

строк и столбцов равны .тремДля

добавления третьей размерности к А запишем

 

 

A(:,:,2) = [1

0

4; 3 5 6; 9

8 7].

MATLAB выдаст

 

 

 

 

A(:, : ,1) =

5

7

8

 

 

 

 

0

1

9

 

 

4

3

6

 

A(:, :, 2) =

1

0

4

 

 

 

 

3

5

6

 

 

9

8

7

 

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

·Увеличить или добавить соответствующий индекс и задать требуемые значения.

·Добавить такое же количество элементов к соответствующим размерностям массива. Так, для числовых массивов все строки должны иметь одинаковое число элементов, все страницы должны иметь одинаковое число строк и столбцов и т.д.

66