modulation algorithm