11 lines
No EOL
469 B
Python
11 lines
No EOL
469 B
Python
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 |