r2 = {
let f64buf = new Float64Array(mod.memory.buffer);
const nPoints = 512;
const nDoubles = 2 * nPoints;
const srcStart = 0;
const dstStart = nDoubles;
const eqStart = nDoubles * 2;
fill_qpsk_random(f64buf, srcStart, nDoubles);
bufAddNoise(f64buf, srcStart, nDoubles, noise);
f64buf[eqStart] = 1.0;
mod.cmul_vector(8 * srcStart, 8 * srcStart, channel[0], channel[1], nPoints);
mod.mmse_time_vector(8 * srcStart, 8 * dstStart, 8 * eqStart, nPoints);
return [{data: f64buf.slice(0, dstStart)}, {data: f64buf.slice(dstStart, eqStart)}];
}