import numpy as np from codebook import construct_codebook from utils import char_to_index, normalize_energy def text_to_signal(text, r=9, Eb=4): assert len(text) == 40, "Message must be exactly 40 characters." codebook, n, m, alpha = construct_codebook(r, Eb) msg_indices = [char_to_index[c] for c in text] signal = np.concatenate([codebook[i] for i in msg_indices]) signal = normalize_energy(signal, energy_limit=2000) return signal, codebook