
- •1. Общая характеристика цифровых фильтров
- •1.1. Свойства цифровых фильтров
- •1.2. Представление цифрового фильтра в виде разностного уравнения
- •2. Ких-фильтры. Методы синтеза
- •2.1. Прямоугольное окно
- •2.2. Обобщенное окно Хэмминга
- •2.3. Окно Блэкмана
- •2.4. Окно Кайзера
- •3. Бих-фильтры. Методы синтеза
- •3.1. Аналоговые фильтры-прототипы
- •3.1.1. Фильтры Баттерворта
- •3.1.2. Фильтры Чебышева
- •3.1.3. Эллиптические фильтры
- •3.1.4. Фильтры Бесселя
- •3.2. Методы дискретизации аналогового фильтра
- •3.2.1. Метод инвариантного преобразования импульсной характеристики
- •3.2.2. Метод билинейного преобразования
- •3.3. Преобразования полосы частот для аналоговых фильтров
- •3.4. Преобразование полосы для цифровых фильтров
- •4. Методы реализации цифровых фильтров
- •4.1. Прямая форма
- •4.2. Прямая каноническая форма
- •4.3. Каскадная форма
- •4.4. Параллельная форма
- •5. Работа в среде matlab
- •5.1. Ввод матриц
- •5.2. Матричные операции
- •5.3. Операторы, выражения и переменные
- •5.4. Функции построения матриц
- •5.5. Операторы for, while, if
- •5.6. Скалярные функции
- •5.7. Векторные функции
- •5.8. Mатричные функции
- •5.9. Подматрицы и форма записи с двоеточием
- •5.10. M-файлы
- •5.11. Текстовые строки, сообщения об ошибках, ввод данных
- •5.12. Сравнение эффективности алгоритмов
- •5.13. Формат вывода
- •5.14. Протокол
- •5.15. Графика
- •6. Записная книжка matlab для Microsoft Word
- •6.1. Начало работы
- •6.2. Краткий пример использования Записной книжки
- •7. Проектирование цифровых фильтров в среде matlab
- •Filtic – cоздание начального состояния для функции filter:
- •Freqs – частотная характеристика аналогового фильтра:
- •Freqspace – формирование последовательности отсчетов частоты:
- •Freqz – частотная характеристика цифрового фильтра.
- •Grpdelay – групповая задержка цифрового фильтра:
- •Impz – импульсный отклик цифрового фильтра:
- •Unwrap – корректировка фазовых углов:
- •Zplane – отображение нулей и полюсов цифрового фильтра:
- •7.2. Проектирование цифровых бих-фильтров besself – проектирование аналогового фильтра Бесселя:
- •Butter – проектирование цифрового и аналогового фильтров Баттерворта:
- •Cheby1 – проектирование цифрового и аналогового фильтров Чебышева – первого типа:
- •Cheby2 – проектирование цифрового и аналогового фильтров Чебышева второго типа:
- •Ellip – проектирование эллиптического цифрового и аналогового фильтров:
- •Yulewalk – проектирование рекурсивного фильтра с использованием метода наименьших квадратов по заданной амплитудно-частотной характеристике:
- •7.3. Выбор порядка бих-фильтра buttord – выбор порядка фильтра Баттерворта:
- •Cheb1ord – выбор порядка для фильтра Чебышева первого порядка:
- •Cheb2ord– выбор порядка для фильтра Чебышева первого порядка:
- •Ellipord – выбор порядка эллиптического фильтра:
- •7.4. Проектирование ких-фильтров fir1 – фильтр fir проектируется с использованием метода окна:
- •Fir2– проектирование фильтра fir с использованием оконного метода для произвольной формы фильтра:
- •Firls – проектирование ких-фильтра с использованием минимизации ошибок методом наименьших квадратов (мнк):
- •Intfilt – расчет интерполирующего ких-фильтра:
- •Remez – синтез оптимального fir-фильтра с равномерной (чебышевской) аппроксимацией на основе алгоритма Паркса – Мак-Клелана:
- •7.5. Преобразования czt–z-преобразование по спиральному контуру:
- •Dct– дискретное косинусное преобразование:
- •Impinvar – метод инвариантной импульсной характеристики для перевода аналогового фильтра в цифровой:
- •8. Примеры проектирования цифровых фильтров
- •8.1. Генерация входной последовательности сигнала
- •8.2. Реализация спектрального анализа с использованием бпф
- •8.3. Синтез цифрового ких-фильтра
- •8.4. Реализация цифровой фильтрации
- •Список литературы
- •Содержание
- •197376, С.-Петербург, ул. Проф. Попова, 5
5.11. Текстовые строки, сообщения об ошибках, ввод данных
Текстовые строки вводятся в MATLAB в апострофах. Например, S='This is a text' назначает данную строку переменной S.
Текстовые строки могут быть напечатаны с помощью функции disp. Например,
disp('This message is hereby displayed')
Сообщение об ошибках лучше выводить с помощью функции error:
error('Sorry, the matrix must be symmetric')
так как эта функция вызовет выход из M-файла.
С помощью М-файла можно обеспечить ввод данных в интерактивном режиме. Это делается функцией input. Например,
iter=input('введите число итераций: ')
выдаст подсказывающее сообщение, а затем будет ожидать, пока пользователь не введет требуемые данные. После нажатия <BK> введенные данные будут присвоены переменной iter и выполнение М-файла возобновится.
Команда MATLAB dir выдает на экран содержимое текущей директории, тогда как команда what выдает только М-файлы из этой директории. Команды MATLAB delete и type используются для удаления или отображения файла на экран соответственно. Команда chdir меняет текущую рабочую директорию.
5.12. Сравнение эффективности алгоритмов
Два основных показателя, по которым можно определить эффективность алгоритмов (количество операций с плавающей точкой и время их выполнения), определяются с помощью команд MATLAB flops и etime.
Функция flops ведет общий подсчет количества операций с плавающей точкой. Команда flops(0) установит счетчик в нулевое состояние. Следовательно, если подать команду flops(0) перед началом выполнения некоторого алгоритма и команду flops сразу после окончания вычислений, можно получить количество операций с плавающей точкой для этого алгоритма.
Функция MATLAB clock определяет текущее время с точностью до сотых секунды. Имея два показателя времени t1 и t2 и подав команду etime(t2,t1), получим время, прошедшее с момента t1 до момента t2. Например, можно измерить время, необходимое для решения данной линейной системы A*x=b, используя исключения по Гауссу, следующим образом:
time=clock;
x=A\b;
time=etime(clock,time)
Вы можете сравнить время и число операций с плавающей точкой для этого способа решения систем и, например, для операции x = inv(A)*b.
5.13. Формат вывода
Хотя все вычисления в MATLAB выполнятся с двойной точностью, результаты на экране могут быть представлены по-разному. Форматом вывода можно управлять следующими командами:
format short – формат с фиксированной точкой; 4 значащих цифры после десятичной точки (установлен по умолчанию);
format long – формат с фиксированной точкой; 14 знаков после точки;
format short e – формат с плавающей точкой; 4 значащих цифры в мантиссе;
format long e – формат с плавающей точкой; 15 значащих цифр в мантиссе.
Выбранный однажды формат остается в силе до следующего изменения.
Команда format compact подавит большинство пустых строк, разместив на странице или на экране максимум полезной информации. Она независима от остальных команд установки формата.
5.14. Протокол
Проще всего получить протокол, используя команду diary. Подача команды diary <имя файла> повлечет запись в указанный файл всего, что появляется на экране (кроме графики). Если имя файла опущено, то запись производится в стандартный файл с именем diary. Команда diary off прекращает запись, diary on возобновляет ее. Таким образом, можно протоколировать наиболее интересные моменты работы. По окончании работы файл-протокол может быть отредактирован и распечатан.