На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование звука"
0) Данный раздел предназначен для обсуждения проблем, возникающих при программировании задач, связанных с записью, обработкой, воспроизведением звука. Перед созданием темы подумайте, не будет ли она уместнее в разделах Разработка и тестирование программ, Наши исходники, а особенно Разовые заказы и подработки
1) На Раздел распространяются все Правила форума.Огромная просьба с ними внимательно ознакомиться.
2) Запрещается давать бессмысленные ответы вроде: "Снеси Мастдай", "ХП рулит", "Поставь Линукс" и т.д.
3) Запрещается создавать темы, в которых Вы намереваетесь получить ссылку на кряки, серийники и т.п. Также запрещено любое обсуждение p2p (peer-to-peer) сетей (BitTorrent, eDonkey и т.д.).
4) Реклама всякого рода пресекается беспощадно.
5) Используйте тэг [CODE] для выделения кода программы (непременно с указанием языка программирования - выбрать из списка. В противном случае бессмысленно!). Уважайте тех, кто будет читать ваш код!
6) Если решение вашей проблемы найдено, то не забываем помечать тему специальной функцией "Вопрос решён". Вам всего лишь требуется при написании последнего ответа поставить одну единственную галочку прямо над формой ответа.
7) Если вы хотите получить совет для конкретной платформы/языка программирования, обязательно укажите их в вопросе

8) Если не прикрепляются/не скачиваются файлы, читаем Не прикрепляется / не скачивается файл. Любые обсуждения в данном разделе проблем с приложением файлов считаются оффтопиком! Со всеми вытекающими.

9) NEW! Уважаемые новички! Мы приветствуем Ваше желание научить всех посетителей раздела правильному программированию. Но огромная просьба, перед тем, как писать поучения в старых (последний ответ - "старее" месяца, а особенно, если вопрошавший не появляется на форуме уже не первый месяц, в чем можно убедиться в его профиле) темах, хорошо подумать, будет ли кому-нибудь, кроме Вас cамих, это интересно. Попытки накрутки количества тематических сообщений за счёт поднятия древних неактуальных тем ("некрофилия") будут наказываться по велению левой пятки модераторского состава (см. пп.12, 13 Правил)



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



user posted imageFAQ Раздела user posted imageПоиск в Разделе user posted imageMSDN Library Online | Ваше мнение о модераторах: user posted imageBarazuk user posted imageRikkie
  
> Передескритизация.
    Требуется провести передесктизацию сигнала в диапазон звуковых частот для воспроизведения. Исходная частота может произвольной, как ниже и выше.
    Алгоритм в принципе известен.
    При повышение частоты сигнала требуется КИХ фильтр. Но так как требуется большое подавление, большая полоса пропускания и крутизна то порядок такого фильтра получается очень большим, что меня настораживает. Подскажи пути решения данной проблемы.
      1. Линейная или нелинейная интерполяция
      2. Интерполяция сплайнами(Фильтрация сплайнами)
      3. БИХ
      4. Рекурсивный КИХ фильтр.(По этапное повышение частоты).
        1-5 я это всё знаю
        1. Линейная или нелинейная интерполяция. Можно использовать только для сигналов с низкой частотой, иначе искажения слышно
          rodion
          А что вы ещё хотите услышать?
          Можете использовать глубокое обучение там за счёт правильно подобранного датасета можно получить более качественные результаты чем sinc.
            Цитата Pavia @
            Можете использовать глубокое обучение там за счёт правильно подобранного датасета можно получить более качественные результаты чем sinc.
            по крайней мере на сигналах, сходных с сигналами из этого
            датасета.
            Цитата rodion @
            порядок такого фильтра получается очень большим, что меня настораживает.
            Насколько сильно надо менять частоту дискретизации? Не забывай, на большинстве входов сумматора передискретизирующего КИХ-фильтра оказываются нули. А если частоты не кратные, а просто в рациональном соотношении, то ещё и не все выходные отсчёты этого фильтра нужно вычислять.
            КИХ-фильтр, кстати, просто выполняет интерполирование сигнала.
              А что вы ещё хотите услышать?
              Ну явно же я тут велосипед изобретаю, и хотелось бы услышать советы, что бы он был как можно менее костыльным
                Цитата rodion @
                хотелось бы услышать советы, что бы он был как можно менее костыльным
                Так ты проблему не написал. Написал только, что тебе передискретизация нужна. Тебе несколько вариантов, первых пришедших на ум назвали.

                Что я понял из первого поста. У тебя есть сигнал - не звуковой. Может ультразвук, может механические колебания. Ты хочешь по нему сгенерировать сигнал в слышимой области. Возможно в реальном масштабе времени.
                Обычно для этого производят сдвиг частоты. При этом может потребоваться ещё и изменение частоты дискретизации.
                Иногда исходная полоса частот слишком узкая или наоборот слишком широкая. В таком случае понадобится ещё и масштабирование частот - это уже нелинейное преобразование, с этим сложнее (я вообще не знаю, как это сделать, кроме как гребёнкой фильтров, да и то не уверен, что так работает).
                  Сдвиг частоты мне не нужен. Только изменение частоты дискретизации, но так что бы искажения не были заметны на слух. А это оказалось жёсткие требования. Что бы их выполнить нужно ли городить большой интерполиующий фильтр или дополнительно фильтровать. И если фильтровать то чем.
                  P.S.
                  масштабирование частот - можно выполнить возведение в степень.
                    Цитата rodion @
                    масштабирование частот - можно выполнить возведение в степень.
                    Это работает только для чистых гармоник. Для сложных сигналов, на выходе появляются сигналы с разностной и суммарной частотой.

                    У тебя в исходном сигнале с редкой дискретизацией уже искажения. Передискретизация ничего не изменит. Если сигнал допускает задержку, то меньше всего искажений вносит фильтр Ланцоша (из относительно простых фильтров). Чем шире окно, тем лучше. Если соотношение исходной частоты дискретизации и конечной рациональное, лучше предвычислить веса.

                    Вместо Ланцоша в качестве весовой функции можно попробовать произведение окна Блэкмана (или другого) на sinc-функцию, искажений должно стать ещё меньше.
                    Сообщение отредактировано: amk -
                      фильтр Ланцоша вполне ничего получилось. Эквалайзером подравнять только
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0309 ]   [ 16 queries used ]   [ Generated: 28.03.24, 18:35 GMT ]