На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: RaD, nsh
Страницы: (5) 1 [2] 3 4 ... Последняя » все  ( Перейти к последнему сообщению )  
> Вычисление мел-кепстра и распознавние DTW , Подробности реализации
    Внес небольшие изменения в алгоритм:
    Массив частот FHZ раньше был до 12000, а теперь до 150 (поскольку 150 отсчетов в БПФ/2). Кол-во элеметов сделал 20. Частоты в Герцах.

    FHZ = [7,15,22,30,37,45,52,60,67,75,82,90,97,105,112,120,127,135,142,150];

    Результат:
    Значительное улучшение распознавания приблизительно на 20..30%. У меня теперь слово "семь" распознает на 90% =) Также хорошо распознаются длинные команды: "наушники", "микрофон"
      Цитата mjpronin @
      А не могли ли Вы чуть подробней пояснить, какой вид имеет обычный ФВЧ первого порядка, у которого.....?

      читать здесь
        Цитата KoPoBuH @
        Интересно знать откуда берутся дополнительные шумы при линейной операции.

        Похоже опять вы не в теме.Нам еще на 3 курсе говорили, что умножение спектра на АЧХ часто более помехоустойчиво, чем фильтрация во временной области
          Это замечательно, что вы в курсе данного вопроса. Вот и обьясните откуда в данном случае могут возникать дополнительные шумы, если корректировать АЧХ во временной области
          Сообщение отредактировано: KoPoBuH -
            Цитата KoPoBuH @
            Цитата mjpronin @
            А не могли ли Вы чуть подробней пояснить, какой вид имеет обычный ФВЧ первого порядка, у которого.....?

            читать здесь


            Я имел ввиду, какую передаточную функцию (формулу,выражение) в контексте цифровой обработки данных, а не схемотехники.
              Цитата mjpronin @
              Я имел ввиду, какую передаточную функцию (формулу,выражение) в контексте цифровой обработки данных, а не схемотехники.

              Yt = A*(Xt - Xt-1) - B*Yt-1

              A = y/(1+y)
              B = (1-y)/(1+y)
              y = cos(w)/sin(w)
              w = PI*f/fc
                Цитата KoPoBuH @
                Вот и обьясните откуда в данном случае могут возникать дополнительные шумы, если корректировать АЧХ во временной области

                Дополнительных шумов никто и не обещал, а вот уменьшение шума наблюдается за счёт участия всех компонент окна анализа в получении спектра. Хотя судя по вашим предыдущим заявлениям, объяснить вам ничего невозможно

                Добавлено
                Цитата KoPoBuH @
                Yt = A*(Xt - Xt-1) - B*Yt-1

                A = y/(1+y)
                B = (1-y)/(1+y)
                y = cos(w)/sin(w)
                w = PI*f/fc




                А это уже напоминает высокомерное издевательство над неопытным человеком.

                АЧХ КИХ фильтра с одним нулем (y[i] = x[i] - a*x[i-1]):

                SQRT(1 + a*a - 2*a*cos(2*PI*f/F)), где F-частота квантования.

                Зачем было присобачивать полюс и делать фильтр рекурсивным надо бы объяснить.

                А для фильтра с полюсом АЧХ:

                SQRT((1 + a*a - 2*a*cos(2*PI*f/F))/(1 + b*b + 2*b*cos(2*PI*f/F))),
                а к половинному аргументу привести косинус поручить младшему брату.
                Сообщение отредактировано: antonsrv8 -
                  antonsrv8, То что написал Коровин - понятно.
                  А то, что Вы написали - непонятно. Какой-то корень, висящий в воздухе.
                    Цитата Анатоль @
                    antonsrv8, То что написал Коровин - понятно.
                    А то, что Вы написали - непонятно. Какой-то корень, висящий в воздухе.


                    корень из всего, что внутри (скобки вроде правильно поставил)

                    Ну, если
                    Цитата Анатоль @
                    То что написал Коровин - понятно.

                    скажите, зачем А умножать на Xt-Xt-1 - это полное дифференцирование с коэффициентом усиления А.
                    Исходя из формул, А и В зависят от частоты - это тоже объясните.

                    Понятно, что для фильтра
                    Yt = Xt - A*Xt-1 - B*Yt-1
                    наклон АЧХ можно эффективно регулировать дополнительным полюсом.
                    Непонятно только зачем это наворачивать, если и простой фильтр Yt = Xt - A*Xt-1 не особо нужен
                      Цитата antonsrv8,
                      корень из всего, что внутри

                      И что с этим корнем делать?

                      Из сообщения Коровина ясно как вычислять У зная Х и предыдуший У.
                      (У него есть формулы для А и В)

                      У Вас же для вчисления у нужен коэфициент а.
                      А как его найти - не понятно.
                      Он входит в какой-то корень. Ну и что?
                      Как его можно вычислить, если корень ни к чему не приравнен, а просто висит себе в воздухе?
                        Цитата antonsrv8 @
                        Дополнительных шумов никто и не обещал, а вот уменьшение шума наблюдается за счёт участия всех компонент окна анализа в получении спектра. Хотя судя по вашим предыдущим заявлениям, объяснить вам ничего невозможно

                        Т.е. тем самым вы утверждаете, что если я хочу уменьшить шум в сигнале, то мне достаточно перевести сигнал из временного представления в спектральное и обратно. Звучит очень революционно. У меня только один вопрос - сколько раз я должен проделать эти преобразования, чтобы уменьшить шум на 10дБ?

                        antonsrv8, мне почему-то кажется что прична несколько в другом. При линейной обработке сигнала шумам просто неоткуда взяться. На то она и линейная обработка. Все шумы появляются от нелинейности. В случае цифровой фильтрации источником шума является усечение результата из-за ограничений на разрядность аккумулятора и элементов задержки фильтра. Если говорим об устойчивости фильтра, то нужно сюда добавить разрядность коэффициентов. Фильтры бывают КИХ и БИХ. БИХ фильтры наиболее чувствительны к величине разрядности, но это совершенно пустая фраза, потому как устойчивость фильтра зависит как от его архитектуры так и от его параметров. Т.е. устойчивость понятие частное. При одной и той же архитектуре, при одной и той же разрядности БИХ фильтр может быть устойчивым, малошумящим, а может и нет. Это зависит от характера фильтра. В частности насколько шумит БИХ фильтр зависит от его частоты среза. КИХ фильтры этим не грешат. В данном конкретном случае мы имеем КИХ фильтр, поэтому совет iitta, что коррекция АЧХ в спектральной области якобы меньше шумит, чем во временной, совершенно не поделу и по сути является еще одной религиозной догмой от науки. Даже если предположить, что результат после дифференциатора усекается до 16 бит, мы имеем шум на выходе на уровне половины младшего разряда. Если при этом учесть, что динамический диапазон реального речевого сигнала в самом лучшем случае составляет порядка 50дБ (что нужно еще постараться получить), что есть в свою очередь 8 старших разрядов из 16, то получается шум КИХ фильтра лежит на уровне порядка -50дБ от уровня шумов речевого сигнала. Так с чем же идет пресловутая борьба? Все это было актуально в прошлом веке. Сегодня вычисления с плавающей точкой быстрее по сравнению с целочисленными и поэтому проблем с ограниченной разрядностью порождающей шумы по сути не существует

                        Цитата antonsrv8 @
                        Непонятно только зачем это наворачивать, если и простой фильтр Yt = Xt - A*Xt-1 не особо нужен

                        Что значит не особо нужен? Кто-то делает CMN, кто-то нет, в любом случае не будет лишним, а речь шла о постоянной составляющей, которая полностью не убирается этим мягким дифференцированием из-за требований к корректирующей АЧХ
                        Сообщение отредактировано: KoPoBuH -
                          Цитата Анатоль @
                          И что с этим корнем делать?

                          Вы что, модуль комплексного числа никогда не вычисляли - извлекать его, если хотите амплитудную характеристику.
                          Коэффициент 'а' находится из ваших же требований к АЧХ.
                          Цитата Анатоль @
                          Из сообщения Коровина ясно как вычислять У зная Х и предыдуший У.
                          (У него есть формулы для А и В)

                          Прошу все таки объяснить - А и В зависят от f? вы сами-то понимаете, что там написано?

                          Цитата KoPoBuH @
                          Звучит очень революционно. У меня только один вопрос - сколько раз я должен проделать эти преобразования, чтобы уменьшить шум на 10дБ?

                          Какая там революционность - студентам преподают. что же мне - слушать вашу ахинею про разрядности и забыть чему учили? Один раз уже послушал - оказалось полная чушь
                            Цитата antonsrv8,
                            А это уже напоминает высокомерное издевательство над неопытным человеком


                            Я о чём?
                            Вот я неопытный человек.
                            Я знаю, что фильтр должен что-то пропускать, а что-то задерживать (ослаблять).
                            И чем Ваш пост помог мне? Чем он не "высокомерное издевательство"?
                            Тем что Вы говорите про какие-то полюса, нули...?

                            Если уж Вы критикуете кого-то за "высокомерное издевательство над неопытным человеком", то хотелось бы ожидать от Вас снисхождения к объекту Вашей заботы и понятного объяснения.
                              Цитата Анатоль @
                              И чем Ваш пост помог мне? Чем он не "высокомерное издевательство"?

                              я дал формулы АЧХ как функции частоты f. Постройте и увидите, что это фильтр, усиливающий высокие.Если А=1, то это просто 2*sin(PI*f/F), 0<f<F/2.

                              А теперь постройте АЧХ по этим формулам:

                              Цитата KoPoBuH @

                              Yt = A*(Xt - Xt-1) - B*Yt-1

                              A = y/(1+y)
                              B = (1-y)/(1+y)
                              y = cos(w)/sin(w)
                              w = PI*f/fc


                              ваще не понятно - А и В - это коэффициенты фильтра или функции частоты?
                              Когда же объясните - я уже 3 раза прошу.

                              Если бы А и В были константы, то всё понятно, только А бестолково усиливает, надо:

                              Yt = Xt - А*Xt-1 - B*Yt-1

                              Про полюса, раз не знаете:

                              Z преобразование от этого фильтра будет:

                              Y = X - AX/Z - BY/Z,

                              отсюда АЧХ в Z представлении:

                              H(z) = Y/X = (1-A/z)/(1+B/z), то есть фильтр имеет ноль в z=A и полюс в z=-B. Оба действительные.
                              Если А около 1, то будут давиться низкие частоты, около -1 - высокие (понятно, фильтр Yt = Xt + Xt-1 зануляет частоты около Найквиста).
                              Если В стремится к 1, то будет пик на частоте Найквиста (без нуля фильтр будет
                              Yt = Xt - Yt-1 - неустойчивый фильтр, усиливающий высокие)

                              Ну, выложил все как на духу. Может теперь все таки объясните мне, что вы поняли в формулах Коровина - он не снисходит. Может iitta выскажется - он тоже заваривал эту кашу, в том числе про фильтрацию в частотной области
                                Любой цифровой фильтр имеет вид Yt = A0Xt + A1Xt-1 + ... + B1Yt-1 + B2Yt-2 + ...
                                Aj и Bj некие костанты, вычисляются один раз исходя из требований частоты среза фильтра
                                f - частота среза, fc - тактовая частота
                                Сообщение отредактировано: KoPoBuH -
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,1058 ]   [ 14 queries used ]   [ Generated: 17.05.24, 10:20 GMT ]