- •БАЗОВЫЕ СИГНАЛЫ В ЦИФРОВОЙ ОБРАБОТКЕ СИГНАЛОВ
- •Пакет Matlab
- •Файлы-сценарии
- •Файлы процедуры-функции
- •Данные в системе Matlab
- •Доступ к массивам и его элементам
- •Арифметические операторы
- •Оператор цикла с неопределенным числом операций
- •Условное выражение
- •Графические возможности языка Matlab
- •Функция plot
- •Функция stem
- •Функция figure
- •Функция subplot
- •Базовые сигналы ЦОС
- •РАЗНОСТНЫЕ УРАВНЕНИЯ
- •ДИСКРЕТНОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ
- •Определение дискретного преобразования Фурье
- •Свойства ДПФ
- •Вычисление ДПФ в Matlab
- •БЫСТРОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ
- •Основы быстрого преобразования Фурье
- •Алгоритм БПФ с прореживанием по времени
- •Свойства БПФ с основанием 2 и прореживанием по времени
- •Алгоритм БПФ с прореживанием по частоте
- •Перестановка данных в алгоритмах БПФ по основанию 2
- •Вычисление обратного ДПФ с помощью алгоритма прямого ДПФ
- •РАСЧЕТ ЦИФРОВЫХ ФИЛЬТРОВ С БЕСКОНЕЧНЫМИ ИМПУЛЬСНЫМИ ХАРАКТЕРИСТИКАМИ
- •Основные свойства цифровых фильтров с бесконечными импульсными характеристиками
- •Методы расчета коэффициентов БИХ-фильтра
- •Расчет аналоговых фильтров-прототипов
- •Преобразование полосы частот для аналоговых фильтров
- •Расчет цифровых фильтров по фильтрам непрерывного времени
- •Расчет цифровых фильтров в пакете Matlab
- •РАСЧЕТ ЦИФРОВЫХ КИХ-ФИЛЬТРОВ С ЛИНЕЙНОЙ ФАЗОВОЙ ХАРАКТЕРИСТИКОЙ МЕТОДОМ ВЗВЕШИВАНИЯ
- •Основные свойства цифровых КИХ-фильтров с линейной фазовой характеристикой
- •Расчет КИХ-фильтров с линейной фазой методом взвешивания
- •Временные окна, используемые в методе взвешивания
j := j + k; end;
В данном алгоритме n – размер преобразования; массивы x и y содержат действительные и мнимые компоненты переставляемой последовательности.
Вычисление обратного ДПФ с помощью алгоритма прямого ДПФ
Для вычисления обратного ДПФ можно без каких-либо изменений использовать алгоритм прямого БПФ. Обратное ДПФ N-точечной последовательности X(k), k = 0, 1, …, N-1, определяется следующим образом:
1 N −1
x(n)= N ∑k =0 X (k )W −nk .
Взяв комплексно сопряженное выражение и умножив его на N, получим
N −1
Nx* (n)= ∑X * (k )W nk .
k =0
Правая часть формулы представляет собой ДПФ последовательности X*(k) и может быть вычислена с использованием одного из алгоритмов БПФ. Искомую последовательность x(n) можно получить, взяв комплексно сопряженное с предыдущим выражение и разделив его на N:
1 N −1
Nx* (n)= N ∑k =0 X * (k )W nk .
Таким образом, алгоритм БПФ обеспечивает вычисление и прямого, и обратного ДПФ.
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1. Разработайте функцию, вычисляющую ДПФ от входного вектора длиной N, вызывая функцию Matlab FFT для векторов длиной N/2 с использованием прореживания по времени. Проверьте ее работу.
2. Разработайте функцию, вычисляющую ДПФ от входного вектора длиной N, вызывая функцию Matlab FFT для векторов длиной N/2 с использованием прореживания по частоте. Проверьте ее работу.
3. Для случая, когда N является степенью 2, модифицируйте функцию из задания 1, заменив вызов FFT рекурсивным вызовом, и предусмотрев останов, когда текущий размер преобразования достигнет 2.
4.Реализуйте функцию двоично-инверсной перестановки данных.
5.Скомбинируйте функции, реализованные в пп. 3 и 4.
6.Модифицируйте функцию из задания 5, заменив рекурсивные вызовы
циклом.
35