Что произойдет с окном кайзера с увеличением параметра сглаживания бета при фиксированной длине окна
Задача расчета хороших окон фактически сводится к математической задаче отыскания ограниченных во времени функций, преобразования Фурье которых наилучшим образом аппроксимируют функции, ограниченные по частоте, т. е. имеют минимальную энергию за пределами заданного интервала частот. При решении этой задачи в замкнутой форме для непрерывных функций времени был введен класс так называемых вытянутых сфероидальных волновых функций. Эти функции имеют достаточно сложный вид. Поэтому Кайзер в качестве наилучшего окна предложил относительно простую аппроксимацию этих функций. Эта аппроксимация, названная окном Кайзера, записывается в виде
(3.54)
где — константа, определяющая компромисс между максимальным уровнем боковых лепестков и шириной главного лепестка (или долей общей энергии в главном лепестке) частотной характеристики окна, a
— функция Бесселя нулевого порядка. Как именно величина
оказывает влияние на этот компромисс, будет проиллюстрировано ниже с помощью табл. 3.1.
Частотная характеристика дискретного окна Кайзера в замкнутой форме не получена, но Кайзер показал, что для непрерывной функции окна частотная характеристика пропорциональна
где величина приблизительно равна ширине главного лепестка частотной характеристики. Поскольку нельзя найти аналитического выражения для частотной характеристики окна Кайзера, для иллюстрации его свойств будут использованы графики частотной характеристики.
Окно Кайзера является по существу оптимальным окном в том смысле, что оно представляет последовательность конечной длины, которая имеет минимум энергии спектра за пределами некоторой заданной частоты. Еще одним оптимальным окном является окно Дольфа—Чебышева, обеспечивающее минимальную ширину главного лепестка частотной характеристики при фиксированном уровне боковых лепестков. Все боковые лепестки в спектре этого окна имеют одинаковый уровень. Однако, как уже говорилось, ни одно из этих окон не позволяет получить оптимальную в минимаксном смысле аппроксимацию произвольной идеальной частотной характеристики, поскольку в действительности характеристика фильтра является результатом свертки частотных характеристик окна и идеального фильтра. Таким образом, несмотря на наличие оптимальных окон, оптимальных фильтров, которые рассчитывались бы с их помощью, не существует.
© 2021 Научная библиотека
Копирование информации со страницы разрешается только с указанием ссылки на данный сайт
.
Matlab Script (labrab107.m)
title(‘АЧХ спроектированного фильтра’)
Рис.11. АЧХ спроектированного КИХ-фильтра с окном Ханна
Рис.12. Пульсации в полосе пропускания
Рис.13. Пульсации в полосе задерживания
Таблица.7. Проверка соответствия спроектированного фильтра заданным требованиям
Исходя из приведённой таблицы, можно сделать вывод о том, что спроектированный фильтр удовлетворяет исходным требованиям.
9. Фильтрация сигнала спроектированным фильтром.
Matlab Script (labrab108.m)
title (‘Амплитудный спектр исходного сигнала’)
title (‘Амплитудный спектр сигнала после фильтрации спроектированным фильтром’)
Рис.14. Графики амплитудных спектров исходного сигнала и сигнала после пропускания его через КИХ-фильтр нижних частот с окном Ханна с частотой среза
Комментарий: Качество звучания исходного сигнала и сигнала, прошедшего через спроектированный фильтр, велико. В исходном сигнале голос зашумлён и имеет слабый, нечёткий звук. В отфильтрованном сигнале шума не слышно и голос звучит достаточно отчётливо. Если сравнивать амплитудный спектр данного выходного сигнала с амплитудными спектрами в п.3, то нетрудно заметить, что в данном случае пульсации в высокочастотной области отсутствуют. Это связано с тем, что, во-первых, граничная частота полосы задерживания у спроектированного фильтра ниже, чем у фильтров из п.3: в данном случае , а у фильтра из п.3 для
—
, во-вторых, уровень пульсаций в полосах пропускания и задерживания меньше. Всё это говорит о том, что спроектированный фильтр достаточно хорош для фильтрации аддитивной смеси низкочастотного полезного сигнала с высокочастотным шумом.
Вывод по работе: В данной работе были изучены методы анализа и синтеза КИХ-фильтров с использованием сглаживающих оконных функций. В данной работе были рассмотрены пять видов различных окон:
В данной работе так же была произведена фильтрация аддитивной смеси сигнала с шумом с помощью трёх различных КИХ-фильтров: первые два фильтра с прямоугольным окном для и
, а второй с окном Ханна. Самые лучшие результаты фильтрации показал последний фильтр, так как полностью погасил высокочастотный шум, т.о. очистив полезный сигнал. Если сравнивать графики амплитудных спектров для выходных сигналов трёх фильтров (рис.4 и рис.14), то видно, что в последнем случае никаких всплесков в высокочастотной области не наблюдается в отличие от двух других фильтров. Это связано с тем, что, во-первых, граничная частота полосы задерживания у последнего фильтра ниже, чем у фильтров из п.3: в данном случае
, а у фильтра из п.3 для
—
, во-вторых, уровень пульсаций в полосах пропускания и задерживания меньше.
Чтобы распечатать файл, скачайте его (в формате Word).
Оконные функции своими руками
В цифровой обработке сигналов оконные функции широко используются для ограничения сигнала во времени и их названия хорошо известны всем, кто так или иначе сталкивался с дискретным преобразованием Фурье: Ханна, Хэмминга, Блэкмана, Харриса и прочие. Но являются ли они достаточными, можно ли придумать что-то новое и есть ли в этом смысл?
В этой статье мы рассмотрим вывод оконной функции с новыми свойствами, используя Wolfram Mathematica. Предполагается также, что читатель имеет общие представления о цифровой обработке сигналов в контексте обсуждаемого вопроса и как минимум знаком со статьёй из википедии.
Введение
Исторически первые оконные функции появлялись в процессе попыток улучшить их спектральные свойства снижением амплитуды боковых лепестков — поскольку при умножении сигнала на оконную функции происходит свёртка их спектров, что вносит некоторые ограничения для анализа. В то время, 50-ые года 20 века, вычислительные мощности не позволяли легко и непринужденно манипулировать символьными вычислениями, и подбор оптимальных параметров представлял достаточную сложность. Это одна из причин, по которой функции названы разными именами — они, а точнее, их спектральные свойства, изучались разными исследователями в течении достаточно длительного времени. Побочным эффектом от этого стало то, что сложившийся набор именованных оконных функций воспринимается как некоторый «стандартный набор», за пределами которого ничего найти уже не возможно; при этом названия этих окон не несут никакой информации о свойствах и предполагают их отдельное изучение и зазубривание.
Классификация
Все оконные функции получаются произведением некоторой функции на прямоугольную, что гарантированно обеспечивает её ограничение во времени. Поэтому в первую очередь их можно классифицировать по функциям, которые в них используются:
Реверс инжиниринг
Посмотрим на определения функций Блэкмана и Наттела:
\frac<1> <2>\\ \end
\frac<1> <2>\\ \end
Они представляют из себя суммы из 3-х и 4-х косинусоид с чётными частотами (начиная с нуля) и некоторыми коэффициентами. Откуда взялись эти коэффициенты? Вряд ли они были подобраны вручную, по крайней мере, каждый по отдельности — ведь существуют граничные условия, которым окна должны соответствовать вне зависимости от их спектральных свойств — как минимум, равенство единице в центре.
Попробуем «изобрести» функцию Блэкмана самостоятельно. Для этого определим функцию с пока ещё неизвестными коэффициентами
и составим систему уравнений, определяющих граничные условия — равенства единице в центре, нулю на краях, и равенства нулю производных на краях:
↓
Решение нашлось, но не одно, а множество — в зависимости от коэффициента a, о чём Wolfram нас учтиво предупредил. Теперь из найденного решения зададим новую функцию, зависящую от неизвестного коэффициента:
Легко видеть, что при a=0.42 получим функцию Блэкмана. Но почему именно 0.42?
Для ответа на этот вопрос нам нужно построить её спектр. Аналитическое преобразование Фурье — не самая простая задача, но Wolfram справляется и с ней, избавляя нас от рутинной работы.
↓
В таком виде график функции пока ещё мало информативен, поскольку спектр удобнее анализировать в логарифмическом масштабе. Добавив соответствующее преобразование в децибелы , получим тот самый привычный график спектра оконных функций:
В процессе изменения параметра мы будем наблюдать нечто подобное:
В зависимости от параметра a меняется уровень боковых лепестков, и при a=0.42 он боле-менее минимальный и равномерный. При а=0.409 мы можем получить результат чуточку лучше, если под «лучше» понимать минимально возможный уровень боковых лепестков.
Развитие
Очевидно подобная микрооптимизация вовсе не стоила затраченных усилий. Можно ли качественно улучшить свойства этого окна, не изменяя исходных данных?
Ранее мы рассматривали вывод оконных функций, суммирующихся в единицу, что позволяет восстанавливать исходный сигнал. Попробуем применить эту технику для нашего окна и посмотрим, как она отразится на спектре.
Находим первообразную, смещаем её к центру координат и масштабируем к единице:
↓
выводим её на график:
Как видим, Wolfram здесь тоже справился самостоятельно и нам не пришлось вручную задавать кусочно-непрерывное определение первообразной. Теперь вид нашего окна зависит не только от переменной a, но от степени перекрытия — и по мере его увеличения будет стремится к форме производной:
И последний штрих — найти аналитическую функцию для спектра, чтобы определить оптимальное значение параметра a.
Здесь, если мы попробуем вычислить преобразование непосредственно, как в прошлый раз — то вгоним Wolfram в глубокую задумчивость. Есть несколько способов ускорить этот процесс:
— использовать дискретное преобразование вместо аналитического — наиболее простое. Но настоящий математик не будет применять численные методы там, где можно найти чисто аналитическое решение — и мы (пока) не будем; к тому же у него есть очевидные ограничения (по разрешению и ограничению спектра);
— передавать в качестве параметра перекрытия конкретные значения и, глядя на результаты, попытаться увидеть закономерность и обобщить их. Вполне работающий вариант, но требующих дополнительных умственных и творческих усилий. Оставим его на крайний случай.
— производить вычисления непосредственно в частотном домене. Это возможно благодаря следующим свойствам преобразования Фурье:
1) оно линейно, т.е. сумма образов равно образу суммы;
2) интегрирование во временном домене равносильно делению на i w в частотном.
3) смещение во времени равносильно модуляцией комплексной синусоидой.
(подробнее в википедии или тут).
Таким образом, имея спектр hw произвольной оконной функции, мы можем получить из него спектр hwo суммирующейся в единицу функции с перекрытием t:
↓
Теперь можно посмотреть, как меняется спектр в динамике:
Здесь изменение параметра перекрытия уже будет влиять на спектр окна несколько по-другому:
\frac<1> <2>\\ \end
Дальнейшее развитие
Что ещё можно сделать, чтобы ещё более снизить уровень боковых лепестков? Можно взять косинусы не с чётными, а с нечётными частотами (здесь для компактности решение системы уравнений внедрено непосредственно в определение функции):
\frac<1> <2>\\ \end
Можно добавить ещё один косинус и увеличить количество нулевых производных:
\frac<1> <2>\\ \end
Ещё более значительного снижения уровня боковых лепестков можно добиться, возведя Фурье-образ в квадрат и тем самым снизив уровень боковых лепестков сразу в 2 раза. Это позволяет избавится от увеличения количества параметров для их ручного подбора, но добавляет сложности в вычислении свёртки во временном домене.
и здесь уже можно добиться подавления свыше 160 дБ:
Формулу в явном виде приводить не будем из-за её внушительного размера.
Гипергеометрические оконные функции
Для обеспечения нужного количества нулей на границах нашей функции мы использовали поиск через решение системы уравнений с последующим интегрированием. Это не очень удобно — ведь нужно каждый раз менять количество уравнений. Может, есть более просто и красивое решение? Есть! И поможет нам в этом гипергеометрическая функция.
где
Она состоит из суммы двух частей: первообразная от функции , нормированной по амплитуде к точке (1,1) и функцией со свободными параметрами, помноженных на ту же
для того, чтобы сохранить необходимое количество нулевых производных:
От того, какую именно функцию мы выберем для корректировки формы, будут зависеть точность настройки и их влияние на распределение боковых лепестков — тут возможны варианты, требующие отдельных исследований. В данном случае функция даёт вполне приемлемый вариант — и за счёт двух параметров позволяет делать более точную настройку.
Сама же формула интересна (и удобна) тем, что при чётных n упрощается до полинома, а при нечётных — до суммы полинома с арксинусом и квадратным корнем — что делает итоговую формулу более компактной и более простой для вычислений.
Подбирать параметры здесь уже проще (и быстрее) через дискретное преобразование Фурье. Нам также потребуется дополнительное определение overlap-функции для работы с тремя параметрами:
В качестве примера, после подстановки параметров с картинки наша функция упростится до
Инверсное окно Кайзера
Если задача суммирования окон в единицу не стоит, то наиболее оптимальным окном является окно Кайзера, позволяющее плавно регулировать ширину основного лепестка. Однако у него есть недостаток — поскольку оно выражается через функцию Бесселя, считать его за пределами математических пакетов несколько затруднительно. Можно, конечно, отдельно реализовать функцию Бесселя — а можно и поискать аппроксимацию через элементарные функции. И неожиданно оказалось, что используя для этого функцию спектра окна Кайзера (ограниченного во времени) можно получить результат даже чуточку лучше —
Расплатой за такое хитрое решение оказалось невозможность выразить её спектр чисто аналитически — но это не так и важно, поскольку на практике мы в любом случае оперируем и анализируем данные в дискретном виде используя дискретное же преобразование Фурье. Ниже на графике можно сравнить их спектры, где красным — оригинальное окно Кайзера, зелёным — его аппроксимация:
При той же ширине основного лепестка уровень боковых лепестков получается несколько ниже. А для удобства использования можно составить таблицу с ориентировочными значениями параметра k для получения необходимого уровня подавления боковых лепестков:
Отдельной интересной задачей остаётся нахождение аппроксимации первообразной инверсного окна Кайзера. Пока что удалось только выразить его через степенной ряд, который довольно медленно сходится:
Возможно, специалисты в математике смогут подсказать более лучшее решение в комментариях.
Заключение
Несмотря на то, что цифровая обработка сигналов является вполне себе сформировавшейся дисциплиной, в ней есть ещё куда развиваться и находить что-то новое — как минимум в существующей специальной и научной литературе вопросы построения суммирующихся в единицу оконных функций не рассматривается; а возможности современных систем компьютерной алгебры позволяют переосмыслить накопленные знания на качественно новом уровне.
Исходный документ Wolfram Mathematica со всеми вычислениями доступен на GitHub.
6. Определение ширины главного лепестка и относительного уровня боковых лепестков амплитудных спектров окон
Рис. 7. Масштабированные АЧХ окон в логарифмическом масштабе
Ширина главного лепестка
Относительный уровень боковых лепестков, дБ
7. Построение графиков окна Кайзера и его АЧХ для N=25 и разных β
С помощью следующего кода MATLAB выполним построение графиков окна Кайзера и АЧХ этих окон для N=25, β=0, 1, 5.
figure(1), subplot(211), stem(k1)
title (‘Окно Кайзера при \beta= 0’)
title (‘Амплитудный спектр’), xlabel(‘w’);
figure(2), subplot(211), stem(k2)
title (‘Окно Кайзера при \beta = 1’)
title (‘Амплитудный спектр’), xlabel(‘w’);
figure(3), subplot(211), stem(k3)
title (‘Окно Кайзера при \beta = 5’)
title (‘Амплитудный спектр’), xlabel(‘w’);
Рис. 8. Окно Кайзера и его АЧХ при N=25, β=0
Рис. 9. Окно Кайзера и его АЧХ при N=25, β=1
Рис. 10. Окно Кайзера и его АЧХ при N=25, β=5
Ширина главного лепестка
Относительный уровень боковых лепестков, дБ
При увеличении параметра β окно спадает к нулю более плавно. Чем больше бета, тем большая энергия приходится на главный лепесток (главный лепесток шире) и тем меньше уровень боковых лепестков.
Из этого следует, что уменьшаются пульсации в полосе задерживания фильтра, но одновременно с этим увеличивается ширина переходной полосы (главный лепесток становится шире)
8. Синтез фильтра по заданным условиям
Произведем расчет фильтра, удовлетворяющего данным условиям:
1. Нормированные граничные частоты полосы пропускания и полосы задерживания составляют и
.
Частота среза фильтра , следовательно
Ширина переходной полосы фильтра ,
2. Допустимый уровень пульсаций
В децибелах
Такому уровню соответствует окно Ханна (A=-44 дБ)
3. Определим порядок фильтра:
4. Окно Ханна фильтра:
5. Импульсная характеристика фильтра:
С помощью MATLAB построим график АЧХ фильтра:
Рис. 11. АЧХ спроектированного фильтра
Рис. 12. Увеличенный фрагмент АЧХ
По увеличенному фрагменту на рис. 12 видно, что соответствуют заданному условию. Уровни пульсаций не превышают заданных значений.
9. Фильтрация сигнала спроектированным фильтром
С помощью следующего кода MATLAB проведем фильтрацию сигнала nspeech2 фильтром, спроектированным в пункте 8
subplot(211), plot(w,abs(Y)), grid
title (‘Амплитудный спектр исходного сигнала’);
subplot(212), plot(w,abs(Y1)), grid
title (‘Амплитудный спектр сигнала после фильтрации’);
Рис. 13. АЧХ сигнала до и после фильтрации
10. Расчет КИХ-фильтра с помощью функции fir1
С помощью следующего кода MATLAB рассчитаем фильтр:
b=fir1(80, 0.55, hann(81));
Рис. 14. АЧХ спроектированного фильтра
Видим, что АЧХ на рис. 11 и рис. 14 совпадают, значит функция fir1 была использована правильно. Путем масштабирования логарифмической АЧХ (рис. 15) видим, что спецификация фильтра соблюдена
Рис. 15. Логарифмическая АЧХ фильтра
1. Для реализации идеального ФНЧ его аппроксимируют для физического проектирования КИХ – фильтра путём усечения импульсной характеристики до конечной длины N и сдвига на . Усеченную и сдвинутую импульсную характеристику можно определить по выражению
2. В п. 2 (рис. 2 и 3) было показано, что в результате усечения ИХ у реального фильтра по сравнению с идеальным появляются переходная область и пульсации в полосе пропускания и задерживания, объясняющиеся явлением Гиббса. При увеличении N ширина переходной области уменьшается, амплитуда пульсаций не изменяется, но количество их возрастает (рис. 3 – 5).
3. Операцию усечения ИХ фильтра можно представить как умножение на оконную функцию. В данной работе были рассмотрены прямоугольное окно, окна Хэмминга, Ханна, Блэкмана (п. 4 – 6). В Matlab для генерации этих окон используются функции hamming, hann, blackman. По амплитудным спектрам окон (рис. 7) можно судить о параметрах фильтра, который можно получить, применив то или иное окно.
4. Чем шире главный лепесток спектра окна, тем шире переходная полоса фильтра. Амплитуды боковых лепестков влияют на величину пульсаций АЧХ фильтра в полосе пропускания и полосе задерживания.
5. Окно Кайзера (п. 7) предоставляет более гибкие возможности по сравнению с остальными рассмотренными окнами, т.к. имеет параметр β, с помощью которого можно уменьшать уровень боковых лепестков. На рис. 10 – 12 видно, что с увеличением β окно спадает к нулю более плавно, уровень боковых лепестков уменьшается, но одновременно с этим увеличивается ширина главного лепестка.
6. В п. 8 был произведён расчёт фильтра, используя окно Ханна. По графикам АЧХ фильтра (рис. 13 – 14) определены параметры полученного фильтра, которые удовлетворяют исходным требованиям. С помощью спроектированного фильтра отфильтрован сигнал speech и результат фильтрации (рис. 16) соответствует АЧХ фильтра (рис. 13).
1. Сайт http://www.dsplib.ru
2. Лекции по дисциплине «Теория и обработка сигналов» 6 семестр, лектор Щетинин Ю.И.
Чтобы распечатать файл, скачайте его (в формате Word).