Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИНТЕЗ ЦИФРОВЫХ ФИЛЬТРОВ С ИСПОЛЬЗОВАНИЕМ ПАКЕТА ПРОГРАММ MATLAB.DOC
Скачиваний:
211
Добавлен:
01.05.2014
Размер:
1.41 Mб
Скачать

4.3. Каскадная форма

Записав формулу (4.1) в виде

, (4.2)

получим третью структуру построения цифрового фильтра. Множители Hi(z) соответствуют либо блокам второго порядка, т. е.

,

либо блокам первого порядка, т. е.

,

а K равно целой части числа . Схему, реализующую формулу (4.2), называют каскадной (или последовательной) формой (рис. 4.4).

Рис. 4.4

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

4.4. Параллельная форма

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

, (4.3)

где слагаемые Hi(z) соответствуют или блокам второго порядка:

,

или блокам первого порядка:

,

причем К равно целой части от и.

Рис. 4.5

На рис. 4.5 приведена структурная схема, реализующая соотношение (4.3). Ее называют параллельной формой. Блоки 1-го и 2-го порядка строятся по схеме одной из прямых форм.

5. Работа в среде matlab

MATLAB (сокращение от MATrix LABoratory – "матричная лаборатория") – это интерактивная матрично-ориентированная система для научных и инженерных расчетов. MATLAB дает возможность решать сложные численные задачи без непосредственного написания программ.

Изложенный материал предназначен для начинающих пользователей MATLAB. Для получения детальной информации о функциях системы используйте системную помощь (команда help). После входа в MATLAB команда help вызовет появление списка функций, о которых можно получить информацию; команда help <имя функции> даст сведения об этой функции. Вы можете получить представление о некоторых возможностях MATLAB при помощи команды demo.

5.1. Ввод матриц

Основной тип объектов, с которыми оперирует MATLAB, – это прямоугольные матрицы с возможными комплексными элементами. Матрицы 11 интерпретируются как скаляры, а матрицы-столбцы и матрицы-строки – как векторы.

Ввести матрицу можно следующими способами:

  • ввести полный список элементов;

  • сгенерировать с помощью встроенной функции;

  • создать в М-файле (см. 5.13);

  • загрузить из внешнего файла данных.

Например, операторы А = [1 2 3; 4 5 6; 7 8 9] и А = создают матрицуА(3, 3).

Элементы строки матрицы разделяются запятыми или пробелами. Числа в экспоненциальной форме вводятся без пробелов (например, 2.39е-4). Ввод больших матриц лучше осуществлять в М-файлах, где проще исправить ошибки ввода (см. 5.8).

Встроенные функции rand, magic и hilb позволяют создавать матрицы для экспериментов. Команда rand(n) или rand(n, m) генерирует матрицу размером nn или nm с равномерно распределенными элементами; magic(n) (магический квадрат) генерирует целочисленную матрицу, у которой сумма элементов строк равна сумме элементов столбцов; hilb(n) создает гильбертову матрицу размером nn, важнейшую среди плохообусловленных матриц. Матрицы также могут быть сгенерированы циклом for (см. 5.6).

К отдельным элементам матриц и векторов можно обращаться при помощи индексов, заключенных в круглые скобки. Например А(2, 3) – элемент 2-й строки 3-го столбца матрицы А.

5.2. Матричные операции

К матрицам можно применять следующие матричные операции:

  • +– сложение;

  • – – вычитание;

  • – умножение;

  • ^– возведение в степень;

  • '– транспонирование;

  • \– левое деление;

  • /– правое деление.

Эти операции можно применять и к скалярам (матрицам 11). Если размеры матриц несовместимы при данной матричной операции, то будет выдано сообщение об ошибке, (за исключением случая скалярно-матричных операций). Матричное деление заслуживает особого комментария. Если А – обратимая квадратная матрица, а b – вектор-столбец (cтрока) соответствующей длины, то х = А\b – решение уравнения А*х = b (х = b/A – решение уравнения х*A = b).

В левом делении если А – квадратная, она факторизуется при помощи гауссовского исключения, если же А – не квадратная, то она факторизуется при помощи ортогонализации по Хаусхолдеру с вращением столбца.

Правое деление определяется в терминах левого следующим образом: b/A = (A'\b')'.

Важно заметить, что операции *, ^, /, \ выполняются ПОЭЛЕМЕНТНО, если перед ними поставить точку. Например, [1, 2, 3, 4]*[1, 2, 3, 4] и [1, 2, 3, 4]^2 дадут одинаковый результат [1, 4, 9, 16].