Автор |
Сообщение |
|
Дата: 16 Мар 2009 11:37:35 · Поправил: DVE (16 Мар 2009 11:38:40)
#
Пишу программу обработки данных со звуковой карты.
Алгоритм следующий:
- звук приходит в виде блоков по 4096 байт
- для каждого буфера делаю БПФ, получаю спектр
- в спектре забиваю нулями те области, в которых фильтр не должен пропускать
- делаю обратное БПФ, получаю обработанный сигнал
Все в принципе даже работает, проблема с искажениями на краях каждого буфера.
Выглядит оно так:
Увеличить
(буфер до и после обработки)
Соответственно, при выводе этих обработанных буферов в местах стыков получаются звуковые артефакты.
Пробовал формировать ядро и потом использовать свертку, результат в принципе тот же самый - все работает, но на краях буфера проблемы.
Что ещё можно сделать?
tnx |
|
Дата: 16 Мар 2009 14:24:58 · Поправил: Mesh (16 Мар 2009 14:28:02)
#
DVE Что ещё можно сделать? Как это ни грубо и банально, почитать. Узнать про overlap и накопление. Шляясь по сети, наблюдаю буквально простыни по этой теме, в то время как написано в любом учебнике у тогоже Сергиенко. Тема раскрыта дальше некуда. Но у нас читать любят в последнюю очередь, всё велосипеды изобресть охота. Не в ваш камень огород, просто тедненция такая, да и тут на форме с этими нулями уже было как-то, и чего так всех тянет на такие примитивы? Искать темы в лом, но они точно были.
|
Реклама Google
|
|
|
Дата: 16 Мар 2009 14:52:46 · Поправил: sergo2007 (16 Мар 2009 14:53:27)
#
|
|
Дата: 16 Мар 2009 15:17:36
#
sergo2007 Да нет, само fft чем плохо-то? Юзается оно вовсю, но не так примитивно как многим хочется. В статье конечно написано интересно, но суть проблем не выясняется и от того некоторые выводы слегка ошибочны. Проблемы стыков лечатся, и это не тайна, и есть два метода и они расписаны во всех книгах по dsp. Проблемы нулей, так любимых по совершенно непонятным причинам описаны и тут на форуме и в куче литры. Желание счелчком пальца чего-то там сотворить, утопичны по сути, но понимание этого приходит к еденицам, десятки тысяч мусолят темы плохих стыков и кривой фильтрации через fft при нулевом заплнении ненужных частот, даже не утруждая себя глянуть, что вообще предлагает отработанная практика и теория. Ну так где-то.
|
|
Дата: 18 Мар 2009 19:29:38
#
Я бы сделал на Reaktor'e... Native Instruments Reaktor. Сейчас есть версия 5.
Это модульный синтезатор. Модули можно делать самому.
|
|
Дата: 08 Окт 2009 14:06:43
#
привет. вышлите пожалуйста, алгоритм цифрового полосового фильтра. на основе этого алгоритма я должен составить программу
|
|
Дата: 09 Окт 2009 16:49:26
#
подскажите пожалуйста упрощенный вариант алгоритма чифрового полосового филтьра.
|
|
Дата: 09 Окт 2009 17:06:57
#
brendi
Здесь Вы найдете всё что нужно. |
|
Дата: 15 Фев 2010 10:44:47
#
Подскажите пожалуйста. У меня есть сигнал с прямоугольными импульсами и импульсная характеристика фильтра приподнятый косинус. Я делаю свертку, после чего получается сигнал в десяток раз больше исходного. Может я свертку не правильно делаю? Или еще нужно что-то сделать? Вроде как форма полученного сигнала похожа на то, что должно получиться, но усиливаться то он не должен в фильтре.
|
|
Дата: 15 Фев 2010 12:48:52
#
komandirjdv
приведите описание сигнала и импульсной характеристики фильтра (можно графически или в виде отсчетов), а также требуемые характеристики фильтра (частота дискретизации сигнала, частота среза, коэффициент скругления фильтра)
|
|
Дата: 16 Фев 2010 13:56:51
#
|
|
Дата: 16 Фев 2010 19:15:38
#
komandirjdv
Исходя из приведенных описаний сигнала и ИХ я склоняюсь к выводу что скорее всего вы неправильно производите операцию свертки. на первый взгляд с ИХ вроде все в порядке (нет матлаба под рукой поэтому точные коэффициенты рассчитать не могу). так что думаю ищите ошибку в коде операции свертки.
|
|
Дата: 16 Фев 2010 19:41:54
#
mikasa76
Хорошо, спасибо! Буду думать в этом напрвлении.
|