Что произойдет с окном кайзера с увеличением параметра сглаживания бета при фиксированной длине окна

Что произойдет с окном кайзера с увеличением параметра сглаживания бета при фиксированной длине окна

Задача расчета хороших окон фактически сводится к математической задаче отыскания ограниченных во времени функций, преобразования Фурье которых наилучшим образом аппроксимируют функции, ограниченные по частоте, т. е. имеют минимальную энергию за пределами заданного интервала частот. При решении этой задачи в замкнутой форме для непрерывных функций времени был введен класс так называемых вытянутых сфероидальных волновых функций. Эти функции имеют достаточно сложный вид. Поэтому Кайзер в качестве наилучшего окна предложил относительно простую аппроксимацию этих функций. Эта аппроксимация, названная окном Кайзера, записывается в виде

image001(3.54)

где image002— константа, определяющая компромисс между максимальным уровнем боковых лепестков и шириной главного лепестка (или долей общей энергии в главном лепестке) частотной характеристики окна, a image003— функция Бесселя нулевого порядка. Как именно величина image002оказывает влияние на этот компромисс, будет проиллюстрировано ниже с помощью табл. 3.1.

Частотная характеристика дискретного окна Кайзера в замкнутой форме не получена, но Кайзер показал, что для непрерывной функции окна частотная характеристика пропорциональна

image004

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

image006

Окно Кайзера является по существу оптимальным окном в том смысле, что оно представляет последовательность конечной длины, которая имеет минимум энергии спектра за пределами некоторой заданной частоты. Еще одним оптимальным окном является окно Дольфа—Чебышева, обеспечивающее минимальную ширину главного лепестка частотной характеристики при фиксированном уровне боковых лепестков. Все боковые лепестки в спектре этого окна имеют одинаковый уровень. Однако, как уже говорилось, ни одно из этих окон не позволяет получить оптимальную в минимаксном смысле аппроксимацию произвольной идеальной частотной характеристики, поскольку в действительности характеристика фильтра является результатом свертки частотных характеристик окна и идеального фильтра. Таким образом, несмотря на наличие оптимальных окон, оптимальных фильтров, которые рассчитывались бы с их помощью, не существует.

© 2021 Научная библиотека

Копирование информации со страницы разрешается только с указанием ссылки на данный сайт

Источник

image070.

Matlab Script (labrab107.m)

title(‘АЧХ спроектированного фильтра’)

image071

Рис.11. АЧХ спроектированного КИХ-фильтра с окном Ханна

image072

Рис.12. Пульсации в полосе пропускания

image073

Рис.13. Пульсации в полосе задерживания

Таблица.7. Проверка соответствия спроектированного фильтра заданным требованиям

image059

image060

image061

image062

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

9. Фильтрация сигнала image025спроектированным фильтром.

Matlab Script (labrab108.m)

title (‘Амплитудный спектр исходного сигнала’)

title (‘Амплитудный спектр сигнала после фильтрации спроектированным фильтром’)

image074

Рис.14. Графики амплитудных спектров исходного сигнала и сигнала после пропускания его через КИХ-фильтр нижних частот с окном Ханна с частотой среза image075

Комментарий: Качество звучания исходного сигнала и сигнала, прошедшего через спроектированный фильтр, велико. В исходном сигнале голос зашумлён и имеет слабый, нечёткий звук. В отфильтрованном сигнале шума не слышно и голос звучит достаточно отчётливо. Если сравнивать амплитудный спектр данного выходного сигнала с амплитудными спектрами в п.3, то нетрудно заметить, что в данном случае пульсации в высокочастотной области отсутствуют. Это связано с тем, что, во-первых, граничная частота полосы задерживания у спроектированного фильтра ниже, чем у фильтров из п.3: в данном случае image076, а у фильтра из п.3 для image004image077, во-вторых, уровень пульсаций в полосах пропускания и задерживания меньше. Всё это говорит о том, что спроектированный фильтр достаточно хорош для фильтрации аддитивной смеси низкочастотного полезного сигнала с высокочастотным шумом.

Вывод по работе: В данной работе были изучены методы анализа и синтеза КИХ-фильтров с использованием сглаживающих оконных функций. В данной работе были рассмотрены пять видов различных окон:

В данной работе так же была произведена фильтрация аддитивной смеси сигнала с шумом с помощью трёх различных КИХ-фильтров: первые два фильтра с прямоугольным окном для image003и image004, а второй с окном Ханна. Самые лучшие результаты фильтрации показал последний фильтр, так как полностью погасил высокочастотный шум, т.о. очистив полезный сигнал. Если сравнивать графики амплитудных спектров для выходных сигналов трёх фильтров (рис.4 и рис.14), то видно, что в последнем случае никаких всплесков в высокочастотной области не наблюдается в отличие от двух других фильтров. Это связано с тем, что, во-первых, граничная частота полосы задерживания у последнего фильтра ниже, чем у фильтров из п.3: в данном случае image076, а у фильтра из п.3 для image004image077, во-вторых, уровень пульсаций в полосах пропускания и задерживания меньше.

Чтобы распечатать файл, скачайте его (в формате Word).

Источник

Оконные функции своими руками

В цифровой обработке сигналов оконные функции широко используются для ограничения сигнала во времени и их названия хорошо известны всем, кто так или иначе сталкивался с дискретным преобразованием Фурье: Ханна, Хэмминга, Блэкмана, Харриса и прочие. Но являются ли они достаточными, можно ли придумать что-то новое и есть ли в этом смысл?

В этой статье мы рассмотрим вывод оконной функции с новыми свойствами, используя Wolfram Mathematica. Предполагается также, что читатель имеет общие представления о цифровой обработке сигналов в контексте обсуждаемого вопроса и как минимум знаком со статьёй из википедии.

image loader

Введение

Исторически первые оконные функции появлялись в процессе попыток улучшить их спектральные свойства снижением амплитуды боковых лепестков — поскольку при умножении сигнала на оконную функции происходит свёртка их спектров, что вносит некоторые ограничения для анализа. В то время, 50-ые года 20 века, вычислительные мощности не позволяли легко и непринужденно манипулировать символьными вычислениями, и подбор оптимальных параметров представлял достаточную сложность. Это одна из причин, по которой функции названы разными именами — они, а точнее, их спектральные свойства, изучались разными исследователями в течении достаточно длительного времени. Побочным эффектом от этого стало то, что сложившийся набор именованных оконных функций воспринимается как некоторый «стандартный набор», за пределами которого ничего найти уже не возможно; при этом названия этих окон не несут никакой информации о свойствах и предполагают их отдельное изучение и зазубривание.

Классификация

Все оконные функции получаются произведением некоторой функции на прямоугольную, что гарантированно обеспечивает её ограничение во времени. Поэтому в первую очередь их можно классифицировать по функциям, которые в них используются:

Реверс инжиниринг

Посмотрим на определения функций Блэкмана и Наттела:

d92a009779be03be994a34343c82672d\frac<1> <2>\\ \end \right.$» data-tex=»display»/>

102ce9e0bf00a374c3c773beb8e3609d\frac<1> <2>\\ \end \right.$» data-tex=»display»/>

Они представляют из себя суммы из 3-х и 4-х косинусоид с чётными частотами (начиная с нуля) и некоторыми коэффициентами. Откуда взялись эти коэффициенты? Вряд ли они были подобраны вручную, по крайней мере, каждый по отдельности — ведь существуют граничные условия, которым окна должны соответствовать вне зависимости от их спектральных свойств — как минимум, равенство единице в центре.

Попробуем «изобрести» функцию Блэкмана самостоятельно. Для этого определим функцию с пока ещё неизвестными коэффициентами

и составим систему уравнений, определяющих граничные условия — равенства единице в центре, нулю на краях, и равенства нулю производных на краях:


image loader

fde1d8a488e90aeba454b293a46f12d7

Решение нашлось, но не одно, а множество — в зависимости от коэффициента a, о чём Wolfram нас учтиво предупредил. Теперь из найденного решения зададим новую функцию, зависящую от неизвестного коэффициента:

Легко видеть, что при a=0.42 получим функцию Блэкмана. Но почему именно 0.42?

Для ответа на этот вопрос нам нужно построить её спектр. Аналитическое преобразование Фурье — не самая простая задача, но Wolfram справляется и с ней, избавляя нас от рутинной работы.


image loader

image loader

В таком виде график функции пока ещё мало информативен, поскольку спектр удобнее анализировать в логарифмическом масштабе. Добавив соответствующее преобразование в децибелы 2d8412dfa6ec1e66b0261efb9a216d6b, получим тот самый привычный график спектра оконных функций:

image loader

В процессе изменения параметра мы будем наблюдать нечто подобное:

image loader

В зависимости от параметра a меняется уровень боковых лепестков, и при a=0.42 он боле-менее минимальный и равномерный. При а=0.409 мы можем получить результат чуточку лучше, если под «лучше» понимать минимально возможный уровень боковых лепестков.

Развитие

Очевидно подобная микрооптимизация вовсе не стоила затраченных усилий. Можно ли качественно улучшить свойства этого окна, не изменяя исходных данных?

Ранее мы рассматривали вывод оконных функций, суммирующихся в единицу, что позволяет восстанавливать исходный сигнал. Попробуем применить эту технику для нашего окна и посмотрим, как она отразится на спектре.

image loader

Находим первообразную, смещаем её к центру координат и масштабируем к единице:

image loader

image loader

выводим её на график:

image loader

Как видим, Wolfram здесь тоже справился самостоятельно и нам не пришлось вручную задавать кусочно-непрерывное определение первообразной. Теперь вид нашего окна зависит не только от переменной a, но от степени перекрытия — и по мере его увеличения будет стремится к форме производной:

image loader

И последний штрих — найти аналитическую функцию для спектра, чтобы определить оптимальное значение параметра a.

Здесь, если мы попробуем вычислить преобразование непосредственно, как в прошлый раз — то вгоним Wolfram в глубокую задумчивость. Есть несколько способов ускорить этот процесс:

— использовать дискретное преобразование вместо аналитического — наиболее простое. Но настоящий математик не будет применять численные методы там, где можно найти чисто аналитическое решение — и мы (пока) не будем; к тому же у него есть очевидные ограничения (по разрешению и ограничению спектра);

— передавать в качестве параметра перекрытия конкретные значения и, глядя на результаты, попытаться увидеть закономерность и обобщить их. Вполне работающий вариант, но требующих дополнительных умственных и творческих усилий. Оставим его на крайний случай.

— производить вычисления непосредственно в частотном домене. Это возможно благодаря следующим свойствам преобразования Фурье:

1) оно линейно, т.е. сумма образов равно образу суммы;
2) интегрирование во временном домене равносильно делению на i w в частотном.
3) смещение во времени равносильно модуляцией комплексной синусоидой.
(подробнее в википедии или тут).

Таким образом, имея спектр hw произвольной оконной функции, мы можем получить из него спектр hwo суммирующейся в единицу функции с перекрытием t:

image loader

image loader

Теперь можно посмотреть, как меняется спектр в динамике:

image loader

Здесь изменение параметра перекрытия уже будет влиять на спектр окна несколько по-другому:

image loader

a2eb57cebfb59af39c0b406fc1c1576f\frac<1> <2>\\ \end \right.$» data-tex=»display»/>

Дальнейшее развитие

Что ещё можно сделать, чтобы ещё более снизить уровень боковых лепестков? Можно взять косинусы не с чётными, а с нечётными частотами (здесь для компактности решение системы уравнений внедрено непосредственно в определение функции):

ad471950c8ec6f1dec4ce5a0926e4d55

image loader

e267ef02b60501d2e061198d61af8685\frac<1> <2>\\ \end \right.$» data-tex=»display»/>

Можно добавить ещё один косинус и увеличить количество нулевых производных:

386954b2bf22655edcae7945cd9de0a0

image loader

9edb85e4a547cba903ecd60525a06737\frac<1> <2>\\ \end \right.$» data-tex=»display»/>

Ещё более значительного снижения уровня боковых лепестков можно добиться, возведя Фурье-образ в квадрат и тем самым снизив уровень боковых лепестков сразу в 2 раза. Это позволяет избавится от увеличения количества параметров для их ручного подбора, но добавляет сложности в вычислении свёртки во временном домене.

image loader

и здесь уже можно добиться подавления свыше 160 дБ:

image loader

Формулу в явном виде приводить не будем из-за её внушительного размера.

Гипергеометрические оконные функции

Для обеспечения нужного количества нулей на границах нашей функции мы использовали поиск через решение системы уравнений с последующим интегрированием. Это не очень удобно — ведь нужно каждый раз менять количество уравнений. Может, есть более просто и красивое решение? Есть! И поможет нам в этом гипергеометрическая функция.

f58c15111e04e76adae31eb59ca2f9af

где d6681f4a598885aa99b412b314c8fdb9

Она состоит из суммы двух частей: первообразная от функции a7d0eb42d403e696f9163caf8b4311ef, нормированной по амплитуде к точке (1,1) и функцией со свободными параметрами, помноженных на ту же a7d0eb42d403e696f9163caf8b4311efдля того, чтобы сохранить необходимое количество нулевых производных:

image loader

От того, какую именно функцию мы выберем для корректировки формы, будут зависеть точность настройки и их влияние на распределение боковых лепестков — тут возможны варианты, требующие отдельных исследований. В данном случае функция d8e12bf41b96ea049eb11af51baa7504даёт вполне приемлемый вариант — и за счёт двух параметров позволяет делать более точную настройку.

Сама же формула интересна (и удобна) тем, что при чётных n упрощается до полинома, а при нечётных — до суммы полинома с арксинусом и квадратным корнем — что делает итоговую формулу более компактной и более простой для вычислений.

Подбирать параметры здесь уже проще (и быстрее) через дискретное преобразование Фурье. Нам также потребуется дополнительное определение overlap-функции для работы с тремя параметрами:

image loader

image loader

image loader

image loader

В качестве примера, после подстановки параметров с картинки наша функция упростится до

fdec365fd07383d9c07b89567a6fcb6d

Инверсное окно Кайзера

Если задача суммирования окон в единицу не стоит, то наиболее оптимальным окном является окно Кайзера, позволяющее плавно регулировать ширину основного лепестка. Однако у него есть недостаток — поскольку оно выражается через функцию Бесселя, считать его за пределами математических пакетов несколько затруднительно. Можно, конечно, отдельно реализовать функцию Бесселя — а можно и поискать аппроксимацию через элементарные функции. И неожиданно оказалось, что используя для этого функцию спектра окна Кайзера (ограниченного во времени) можно получить результат даже чуточку лучше —

af559b1f64a06999a19e70ae38406cb3

Расплатой за такое хитрое решение оказалось невозможность выразить её спектр чисто аналитически — но это не так и важно, поскольку на практике мы в любом случае оперируем и анализируем данные в дискретном виде используя дискретное же преобразование Фурье. Ниже на графике можно сравнить их спектры, где красным — оригинальное окно Кайзера, зелёным — его аппроксимация:

image loader

При той же ширине основного лепестка уровень боковых лепестков получается несколько ниже. А для удобства использования можно составить таблицу с ориентировочными значениями параметра k для получения необходимого уровня подавления боковых лепестков:

1cd2d112e9728a2f7a4c47f5639810a7

Отдельной интересной задачей остаётся нахождение аппроксимации первообразной инверсного окна Кайзера. Пока что удалось только выразить его через степенной ряд, который довольно медленно сходится:

79e41e14fddbe0e94b628ae36bc6fd05

Возможно, специалисты в математике смогут подсказать более лучшее решение в комментариях.

Заключение

Несмотря на то, что цифровая обработка сигналов является вполне себе сформировавшейся дисциплиной, в ней есть ещё куда развиваться и находить что-то новое — как минимум в существующей специальной и научной литературе вопросы построения суммирующихся в единицу оконных функций не рассматривается; а возможности современных систем компьютерной алгебры позволяют переосмыслить накопленные знания на качественно новом уровне.

Исходный документ Wolfram Mathematica со всеми вычислениями доступен на GitHub.

Источник

6. Определение ширины главного лепестка и относительного уровня боковых лепестков амплитудных спектров окон

image012

Рис. 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’);

image013

Рис. 8. Окно Кайзера и его АЧХ при N=25, β=0

image014

Рис. 9. Окно Кайзера и его АЧХ при N=25, β=1

image015

Рис. 10. Окно Кайзера и его АЧХ при N=25, β=5

Ширина главного лепестка

Относительный уровень боковых лепестков, дБ

При увеличении параметра β окно спадает к нулю более плавно. Чем больше бета, тем большая энергия приходится на главный лепесток (главный лепесток шире) и тем меньше уровень боковых лепестков.

Из этого следует, что уменьшаются пульсации в полосе задерживания фильтра, но одновременно с этим увеличивается ширина переходной полосы (главный лепесток становится шире)

8. Синтез фильтра по заданным условиям

image016

image017

image018

image019

Произведем расчет фильтра, удовлетворяющего данным условиям:

1. Нормированные граничные частоты полосы пропускания и полосы задерживания составляют image020и image021.

Частота среза фильтра image022, следовательно image023

Ширина переходной полосы фильтра image024, image025

2. Допустимый уровень пульсаций image026

В децибелах image027

Такому уровню соответствует окно Ханна (A=-44 дБ)

3. Определим порядок фильтра: image028

4. Окно Ханна фильтра:

image029

5. Импульсная характеристика фильтра:

image030

С помощью MATLAB построим график АЧХ фильтра:

image031

Рис. 11. АЧХ спроектированного фильтра

image032

Рис. 12. Увеличенный фрагмент АЧХ

По увеличенному фрагменту на рис. 12 видно, что image033соответствуют заданному условию. Уровни пульсаций не превышают заданных значений.

9. Фильтрация сигнала спроектированным фильтром

С помощью следующего кода MATLAB проведем фильтрацию сигнала nspeech2 фильтром, спроектированным в пункте 8

subplot(211), plot(w,abs(Y)), grid

title (‘Амплитудный спектр исходного сигнала’);

subplot(212), plot(w,abs(Y1)), grid

title (‘Амплитудный спектр сигнала после фильтрации’);

image034

Рис. 13. АЧХ сигнала до и после фильтрации

10. Расчет КИХ-фильтра с помощью функции fir1

С помощью следующего кода MATLAB рассчитаем фильтр:

b=fir1(80, 0.55, hann(81));

image035

Рис. 14. АЧХ спроектированного фильтра

Видим, что АЧХ на рис. 11 и рис. 14 совпадают, значит функция fir1 была использована правильно. Путем масштабирования логарифмической АЧХ (рис. 15) видим, что спецификация фильтра соблюдена

image036

Рис. 15. Логарифмическая АЧХ фильтра

1. Для реализации идеального ФНЧ его аппроксимируют для физического проектирования КИХ – фильтра путём усечения импульсной характеристики до конечной длины N и сдвига на image037. Усеченную и сдвинутую импульсную характеристику можно определить по выражению

image038

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).

Источник

Моя дача
Adblock
detector