- •1. Спектральный анализ периодических сигналов
- •2. Спектральный анализ импульсных непериодических сигналов
- •3. Аналоговые фильтры
- •3. Аналоговые фильтры
- •4. Рекурсивные цифровые фильтры
- •5. Нерекурсивные цифровые фильтры
- •6. Линейная фильтрация реальных цифровых сигналов
- •7. Передискретизация сигналов с понижением частоты
- •8. Передискретизация сигналов с повышением частоты
- •9. Обработка реальных сигналов с помощью цифрового фильтра Гаусса
- •Приложение 1. Задание периодического сигнала в MathCad
- •Приложение 2. Сигналы
- •Приложение 3. Передаточные функции аналоговых фильтров
- •Приложение 4. Расчет рекурсивного ЦФ методом билинейного преобразования
- •Приложение 5. Данные для рекурсивного ЦФ
- •Приложение 6. Оконные функции
- •Приложение 7. Варианты для нерекурсивного ЦФ
- •Приложение 8. Некоторые функции в MATLAB
- •Приложение 9. Данные для рекурсивного ЦФ
8. Передискретизация сигналов с повышением частоты
Цель работы: Познакомиться с особенностями передискретизации сигналов, требующих проведение интерполяции, оценить минимальные требования к интерполирующим фильтрам, а также изучить, какие искажения могут вносить такие фильтры.
Интерполяция и прореживание
В лабораторной работе 7 мы уже познакомились с общим алгоритмом передискретизации сигналов, когда отношение целевой частоты ft к
исходной частоте f0 представляет собой рациональное число p
q (формула
(7.1)). Данный алгоритм функционально можно разделить на две части, называющиеся интерполяция и прореживание. Интерполяция включает в себя добавление ( p −1) нулевых отсчетов с последующим сглаживанием
последовательности интерполирующим фильтром, а прореживание – это выбор из получившейся выборки каждого q-го отсчета с предварительной фильтрацией для устранения алиасинга. Понижение частоты всегда включает в себя операцию прореживания, а повышение частоты сигнала всегда включает в себя интерполяцию. Хотя и интерполирующий фильтр, и фильтра устраняющий алиасинг являются фильтрами нижних частот, требования к ним сильно отличаются, как и оптимальный выбор тип фильтра. В частности, увеличение порядка фильтра, устраняющего алиасинг, позволяет нам улучшить компромисс между более полным устранением алиасинга и наименьшими искажениями сигнала в рабочей области частот. При этом оптимальный порядок слабо зависит от q, особенно при q 1. В случае же
интерполирующего фильтра его минимальный порядок практически прямо пропорционален числу p. В некоторых приложениях, где существенными частотными искажениями сигнала можно пренебречь, используют близкие к оптимальным с точки зрения порядка интерполирующие фильтры, имеющие порядок не сильно превышающий p. К таким приложениям в определенных ситуациях может относится компьютерная графика. Например, ступенчатая интерполяция обеспечивается нерекурсивным фильтром порядка ровно p и является оптимальной в этом смысле. Более часто использующаяся линейная интерполяция осуществляется нерекурсивным фильтром порядка (2 p −1) с
треугольной импульсной характеристикой. Таким образом, интерполяция принципиально невозможна фильтром порядка ниже p. В большинстве же
44
приложений, связанных с цифровой обработкой сигналов, сильные частотные искажения при передискретизации недопустимы. В этом случае разумный результат передискретизации достигается при значениях порядка интерполирующего фильтра в несколько раз превышающего p.
Если и p, и q не равны единице, при передискретизации по сути используется только один фильтр нижних частот, так как последовательно соединенные фильтры нижних частот также образуют фильтр нижних частот более высокого порядка. Поэтому и рассчитывать отдельно интерполирующий фильтр и фильтр, устраняющий алиасинг, нецелесообразно. Рассчитывается только один фильтр, который и выполняет обе роли. При этом, если p достаточно велико, то именно оно будет определять порядок такого фильтра.
Программа работы
1) Задайте сигнал в виде последовательности дискретизованных прямоугольных импульсов, используя следующий код:
syms t; x=piecewise(t-floor(t)<1-ff,0,1); tsampled=0:ts:tmax; xsampled=double(subs(x,t,tsampled));
Здесь команда syms указывает на то, что переменная t – скалярная и символьная, x – это символьная функция, описывающая сигнал x(t), а xsampled – набор дискретных отсчетов сигнала x(n), соответствующих дискретным отсчетам времени tsampled. С функционалом команд subs и double ознакомьтесь в справке MATLAB самостоятельно. Значение tmax подберите самостоятельно из соображений наглядности последующих графиков (не меньше 2 периодов сигнала). Период дискретизации ts и коэффициент заполнения ff возьмите из вашего варианта в Приложении 9. Период дискретизации в Приложении 9 приведен в предположении, что частота прямоугольного сигнала равна 1 кГц (при написании кода переведите ts в нужную систему единиц). Также в Приложении 9 приведены значения p и q для передискретизации (см. формулу (7.1)). Используя данные из Приложения 9 рассчитайте исходную и целевую частоту дискретизации в Гц.
45
2) Рассчитайте фильтр для передискретизации, используя метод взвешивания (функция fir1) с любым окном на ваше усмотрение. Задайте частоту среза, равную частоте Найквиста исходного сигнала (учтите, что фильтр применяется к сигналу с уже добавленными нулевыми отсчетами, т.е. к сигналу, имеющему частоту дискретизации в p раз больше, чем исходный сигнал). Порядок фильтра подберите таким, чтобы передискретизация (с помощью функции upfirdn) давала результат с наименьшими визуальными искажениями. Для этого изобразите результат передискретизации на одном графике с исходным сигналом. Покажите в отчете оптимальность подобранного вами порядка фильтра, вставив график передискретизованного сигнала, соответствующего оптимальному порядку фильтра, меньше оптимального и больше оптимального. Также постройте график АЧХ рассчитанного вами фильтра (с оптимальным порядком).
Примечание: Значение АЧХ интерполирующего фильтра при низких частотах нормируется не на единицу, а на число p. Поэтому для передискретизации умножьте на p импульсную характеристику, которую выдает функция fir1.
3)Повторите пункт 2, задав такую частоту среза фильтра, чтобы частота Найквиста исходного сигнала соответствовала границе полосы пропускания фильтра. Сравните результат передискретизации с пунктом 2.
4)Проведите передискретизацию, используя линейный интерполятор. Для этого воспользуется фильтром с треугольной импульсной характеристикой, заданной функцией:
h=triang(2*p-1);
Постройте график результата передискретизации.
5)Сравните АЧХ фильтров, использованных в пунктах 2, 3 и 4. Сделайте выводы о преимуществах и недостатках каждого из них применительно к передискретизации сигналов.
6)Повторите процесс передискретизации из пунктов 2, 3 и 4 для гладкого синусоидального сигнала, заменив прямоугольную функцию в пункте 1 на следующую:
x=sin(pi*t);
Для передискретизации используйте те же значения p и q, что и для прямоугольного сигнала, т.е. увеличивая частоту в такое же количество раз.
46
Постройте графики передискретизованной синусоиды и сравните их с результатами для прямоугольного сигнала.
Контрольные вопросы
1)Что такое интерполяция и прореживание?
2)Объясните назначение фильтра при передискретизации.
3)Что такое полифазная фильтрация? Где и зачем она применяется?
4)Что такое тождества Нобла?
47
