На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: RaD, nsh
Страницы: (3) 1 2 [3]  все  ( Перейти к последнему сообщению )  
> Обратное преобразование?
    Цитата Pavia @
    Лично я пока играюсь с Гаусовым фильтром

    лично я пока балуюсь методами Монте-Карло, ну и конечно распределением Гауса, и результаты (промежуточные) вначале были такие же. Моё отношение к ним -не тот результат, который я хотел бы получить в итоге. Вы пробовали восстановить исходный сигнал из сглаженного спектра? Совпадает он с исходным? и наконец я пытаюсь работать с сигналом, в котором и полезный сигнал то едва различим. Но раз человек его различает, то и машина его должна различать. и если этого добиться - это и будет тот результат, который мне интересен.
      Цитата olegfamus @
      Моё отношение к ним -не тот результат, который я хотел бы получить в итоге.

      Вот и у меня так же. Пэтому я пока отложил потом вернусь перепроверю.

      Цитата olegfamus @
      Вы пробовали восстановить исходный сигнал из сглаженного спектра?

      После вычитания это уже не обратимый процесс. Однако на слух я разницы не заметил. Хотя по идеи должна. И плюс спектры ведут себя странно.
      Правильный обед должен состоять из 5 блюд приготовленных из 33 ингредиентов.
        Цитата Pavia @
        Можно сделать локальную бинаризацию. Берём окно 25 мс удаляет постоянную составляющую, затем переводим в частоты находим среднее и используем в качестве порога: всё что выше среднего 1 всё что ниже 0

        1. попробовал этот вариант, только со своими входными данными: входной сигнал выложен выше, окно 2,5 мс, 45 дискретных частот (хотелось бы уложиться в 32, иначе придётся перестраивать всю архитектуру вычислений (шутка), может 45 это предел?), ну и несколько иной от среднего порог (подобрал по чёткости на выходе)

        получил собранный выходной сигнал:
        Прикреплённый файлПрикреплённый файл20x600_pavia.rar (9,45 Кбайт, скачиваний: 28)

        2. тот же сигнал на входе, тот же алгоритм разложения по частотам и тд (символ в символ), кроме "Во временной области рассчитываете среднее и вычитаете из сигнала." вместо этого применил несколько другой способ избавиться от постоянной составляющей, но тоже из математики 5 или 6 класса (пока не буду писать какое, тайны никакой нет все его прекрасно знают, сначала нужно проанализировать, может этот эффект только с моими входными данными)

        второй собранный вариант (естественно и второй и первый без последующей обработки, кроме порога о котором писалось выше и который в обоих случаях одинаков)
        Прикреплённый файлПрикреплённый файл20x600_olegfamus.rar (6,34 Кбайт, скачиваний: 25)

        что касаемо распознавания собранных сигналов, тут вы совершенно правы, если не обращать внимание на некоторые траблы, то с моей точки зрения вероятность распознавания очень высокая, несмотря на примитивность алгоритма)

        Добавлено
        Цитата olegfamus @
        И плюс спектры ведут себя странно

        если вы о том что набор и амплитуды в этих двух спектрах совершенно не однозначные?
        В соседней теме Mikle писал:" строгий однополосный спектр имеет только бесконечная синусоида, если взять её кусок, то он уже имеет непрерывный спектр, чем короче кусок - тем меньше в спектре исходной частоты"-полностью согласен кроме последней фразы (вернее её несомненно будет всё меньше, но её энергия будет всегда больше остальных составляющих). С моей точки зрения если взять из бесконечного спектра с высокой долей вероятности значимую часть и сделать обратное преобразование, то с весьма высокой вероятностью на выходе мы получим ту самую синусоиду (по крайней мере на практике именно так и выходит)
        sorry)) понятно если в куске только 2 или 1 значение результат будет равен 0, но уже при 3 значениях (хотя решений и бесконечное множество), ответ однозначный)
        Сообщение отредактировано: olegfamus -
          Цитата Pavia @
          получаем пик/горку вблизи 0 частот. Вот его надо убрать. Вычитание среднего отлично с этим справляется.
          Собственно частота 0 это и есть среднее. Правда можно не обрабатывать сигнал перед DFT, а подчистить нижнее частоты уже в результате DFT.

          Добавлено
          Цитата Pavia @
          осле вычитания это уже не обратимый процесс. Однако на слух я разницы не заметил. Хотя по идеи должна. И плюс спектры ведут себя странно.
          Человеческое ухо начинает воспринимать звук только на частотах порядка 15 Гц. Всё, что ниже, воспринимается кожей как вибрация. На частоту 6-7 Гц приходится резонанс колебаний внутренних органов в теле.
          В реальности звуки с частотами ниже 100 Гц в природе почти не возникают или имеют слишком низкую мощность.
          Всё написанное выше это всего лишь моё мнение, возможно ошибочное.
            Цитата olegfamus @
            В реальности звуки с частотами ниже 100 Гц в природе почти не возникают или имеют слишком низкую мощность

            Не совсем понял что вы имеете в виду под "в реальности", но если сделать частотный анализ выложенного мной выше сигнала 20х600, то увидите что там присутствуют частоты и 99 и значительно ниже, и даже менее 1Гц. Мало этого, на долю частот менее 100 приходиться под 80% и более мощности всего сигнала)

            Добавлено
            Правда в этих 80% нет полезного сигнала, но это уже другая тема)
            Сообщение отредактировано: olegfamus -
              Неправильно выразился. У уха на нижних частотах довольно существенно падает чувствительность. Кроме того, ухо чувствительно не к мощности звука, а к звуковому давлению. Хотя давление пропорционально мощности.
              Снижение чувствительности вызывается несколькими факторами, вот пара из них:
              Внутреннему уху не хватает размера, чтобы обеспечить нужный резонанс на низких частотах, получается, как говорят в радиотехнике, плохое согласование приёмника.
              На низких частотах звуковое давление достигает перепонки не только через слуховой канал, но и через носоглотку (там есть ещё один канал, ведущий на внутреннюю сторону перепонки).
              Из-за этого естественным звукам даже мощным, их мощности не хватает, чтобы обеспечить сравнимый со средними частотами отклик. В результате получается, что для уха названные 80% мощности превращаются в жалкие 20% (а то и меньше). В наушниках, кстати, низкие частоты слышны лучше, чем из колонок, часто даже капли-вкладыши умудряются выдать в ухо басы, несмотря на ужасное рассогласование на этот раз уже излучателей.
              Всё написанное выше это всего лишь моё мнение, возможно ошибочное.
                Цитата olegfamus @
                При обратном преобразовании с различной величиной окна наилучшими в части разборчивости оказался диапазон от 20 до 40

                Боюсь что это слишком скоропалительные и ничем не обоснованные выводы с моей стороны, поскольку, как мне кажется, противоречат и физике и математике), скорее всего человеческий фактор накладывает свой неповторимый отпечаток), попытаюсь с этим разобраться
                Сообщение отредактировано: olegfamus -
                  Цитата olegfamus @
                  Боюсь что это слишком скоропалительные и ничем не обоснованные выводы

                  Для тех кому интересны альтернативные речевые технологии готов поделиться своими исследованиями)
                  Стояла задача: определиться с оптимальной шириной выборки (окна) с точки зрения цена-качество (производительность-наилучшая точность выходного сигнала, по отношению к входному)… при условии непрерывного потока и естественно непрерывного анализа на лету без потери данных.
                  Основные входные данные: изменение ширины входного окна - от 3 значений до 100, изменение выходного окна - от 3 значений до 100 (у меня это от 0,000375с до 0,0125с).
                  Результаты различных вариаций:
                  1. При слишком малых значениях входного окна:
                  а. точность обратного преобразования наиболее высокая. Это относится исключительно к моему способу определения спектра, возможно у других соскобов преобразования будут другие результаты (требует проверки), но...
                  б. с уменьшением окна пропадает часть данных находящихся между окнами (естественно окна без зазоров), приводить факты не буду, думаю многие поймут о чём я говорю. Решить эту проблему возможно при помощи перекрытия окон (много литературы по этому способу). Затратил какое то время на проверку и быстро успокоился - вроде есть эффект, но значительно усложняет код и производительность падает в геометрической последовательности (не мой вариант поэтому быстро забыл о нём))
                  в. с уменьшением окна частота окон начинает совпадать с частотами несущими основную информацию о сигнале, результат - появление в выходном сигнале огромного количества помех (а у меня их в полевых испытаниях и так выше крыши), которые значительно снижают вероятность слухового распознавания (возможно с точки зрения распознавания в коде это и не будет иметь какого либо значения, не знаю, но думаю наше идеальное устройство работает по тем же законам математики, физики, акустики и тд и следовательно если мы не сможем опознать, то и машина (моё субъективное мнение дилетанта, потому как есть достаточно много и обратных примеров))
                  2. При слишком больших значениях входного окна:
                  а. в выбору начинают попадать значения уже не 1, а 2 и более сигналов (особенно если в слове много рядом стоящих согласных), что при обратном преобразовании приводит к бубнящему сигналу (доказательства выложу позже)
                  б. Приводит к значительному удорожанию анализа. Например при выборке в 100 значений производительность по отношению к 20 значениям падает ВДВОЕ!!!! (возможно это только при моём способе, возможно это связано с организацией структуры буферизации данных - надо проверять)
                  3. При слишком малых значения выходного окна
                  а. как я ни старался подогнать код и получить хоть сколько приличный сигнал на выходе получить не удалось. Моё субъективное мнение дилетанта в анатомических возможностях человека - на таких высоких частотах наш мозг не воспринимает полезную информацию, хотя возможно я просто не верно прописал код в части вывода звука)
                  4. При слишком больших значениях выходного окна: такие же проблемы как и со входным окном

                  Наиболее оптимальными результатами оказались окна (и вх и вых) в диапазоне 20-40 значений, как и писалось выше. Лично я отдаю предпочтение 20 значениям, что соответствует 0,0025с (подтверждение предположения выложу позже)
                    Хотелось бы ещё добавить что на качество частотного анализа дополнительно влияет сам код вычисления (искажения порядка 1-2%) связанных с особенностями работы машин с вещественными числами (а в анализе почти 100% вещественные данные), результатом которых является подъём одних частот и понижением других. По цифрам или по графикам это весьма трудно определить (лично я предпочитаю работать с цифрами), но на слух различие в сигналах если в коде на одни данные ссылаются разные переменные могут хорошо прослушиваться.
                    С таким поведением столкнулся впервые, но после http://www.delphikingdom.com/asp/viewitem....=374&mode=print всё стало понятно)
                    Сообщение отредактировано: olegfamus -
                      Цитата olegfamus @
                      Хотелось бы ещё добавить что на качество частотного анализа дополнительно влияет сам код вычисления (искажения порядка 1-2%) связанных с особенностями работы машин с вещественными числами

                      :no: 1-3% это эффект Гиббса, связанный с тем что для Фурье анализа нужен бесконечный сигнал, а в компьютере он у нас усечённый, т.е окно всегда имеет некоторый размер.
                      http://www.dsplib.ru/content/filters/firwin/firwin.html

                      А вот числах то что точность чисел тоже ограничено влияет, но не на 1-2%, а на 0,001-0,1%.
                      Правильный обед должен состоять из 5 блюд приготовленных из 33 ингредиентов.
                        Цитата Pavia @
                        бесконечный сигнал

                        Если я вас правильно понял - бесконечная размерность мгновенного значения?
                          Цитата Pavia @
                          а в компьютере он у нас усечённый

                          Вообще то я писал не про это, а о том что если в коде есть частое пере присваивание одних и тех же значений разным переменным или переход с глобальных переменных к локальным возникают такие неприятные особенности как "размытый спектр" (здесь я спорить не буду, я неважный программист и всех тонкостей Delphi не знаю, возможно правильный программист изначально не допускал бы таких ошибок)

                          что касается величины окон) как и обещал выкладываю наглядный кусочек спектра с цифрами той фразы 20х600 (кто не прослушивал, вряд ли поймёт о чём идёт речь :o )
                          Прикреплённый файлПрикреплённый файл_______________________________________20__600.png (42,03 Кбайт, скачиваний: 26)
                          Сообщение отредактировано: olegfamus -
                          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                          0 пользователей:
                          Страницы: (3) 1 2 [3]  все


                          Рейтинг@Mail.ru
                          [ Script Execution time: 0,1225 ]   [ 18 queries used ]   [ Generated: 3.04.20, 09:08 GMT ]