Название: эхо фильтр Отправлено: Firefox от Ноябрь 10, 2010, 15:41 Здравствуйте. мне нужно сделать эхо фильтр. то есть прочитать файл исходный . wav, дойти до данных и далее считав их наложить их ещё раз на себя с задержкой по времени. считала в QByteArray data1 данные, а вот как сделать сдвиг и наложить не могу понять.
Название: Re: эхо фильтр Отправлено: kosya от Ноябрь 29, 2011, 20:47 а по какому алгоритму накладывать то?
Название: Re: эхо фильтр Отправлено: Rem Norton от Ноябрь 30, 2011, 01:35 Дело было давно, но кое что еще помню. Так, для обработки wav-файла надо:
1. Вычислить нулевую точку. Тут все зависит от количества бит на семпл. Для 8 бит нулевая точка = 127, для 16 бит = 32766 и т.д. 2. Преобразовать массив беззнаковых данных в знаковые: new = old - zero. old - то, что было в файле, zero - нулевая точка 3. Наложение 2-х и более сигналов производится путем арифметического сложения семплов: out = in1 + in2. 4. Регулировка громкости выполняется путем умножения семплов на какой-то коэффициент (<1 - еменьшить, > 1 - увеличить) Смещение вычисляется из частоты дискретизации (есть в заголовке). Например, если частота 44100 Гц, то для смещения на 0.5 сек. надо пропустить первые 44100*0.5 = 22050 семплов и начать обработку с 22051-го. Ну и перед выводом или записью в файл данные преобразовать обратно в беззнаковые: out += zero; Ну как то так. P.S. Ах да, еще момент: не упусти из виду, что семплы идут вперемешку (если стерео): правый, левый. |