Чего-то меня сегодня дернуло посмотреть ради прикола, отличается ли результат при прямой свертке в лоб и традиционный для конволюционных реверов FFT.
Открыл питон и набросал схему:
То есть, прохожусь вложенным циклом по каждому сэмплу источника, умножая его на каждый сэмпл IR и суммируя по смещению с тем, что лежит в результате.
кастую @belovw @Andrew_S.
Открыл питон и набросал схему:
Код:
ir_l[] = массив сэмплов левого канала IR сэмпла, нормализованных 0 - 1
ir_r[] = массив сэмплов правого канала IR сэмпла, нормализованных 0 - 1
scr[] = массив моно источника
ну и дальше просто:
length = len(src) + len(ir_l)
r_l = [0] * length
r_r = [0] * length
for idx, s_frm in enumerate(src[0:100]):
for i in range(len(ir_l)):
v_l = ir_l[i] * s_frm
r_l[idx + i] += v_l
v_r = ir_r[i] * s_frm
r_r[idx + i] += v_r
max_ = 0
for t in zip(r_l, r_r):
for val in t:
if max_ < abs(val):
max_ = abs(val)
То есть, прохожусь вложенным циклом по каждому сэмплу источника, умножая его на каждый сэмпл IR и суммируя по смещению с тем, что лежит в результате.
- Получается много громче, чем оригинальный источник
- даже при нормализации (делю все это хозяйство на максимальный пик, чтобы привести в границы 0-1), получается просто шум
кастую @belovw @Andrew_S.