Untitled

 avatar
unknown
python
2 years ago
1.2 kB
2
Indexable
# Su respuesta aquí
from scidQPSK import make_QPSK, encode_QPSK_waveform, add_noise
from scipy.signal import remez
from PIL import Image


fs = 8 #
fc = 1 #
N = 120
fw = 1.5
M = 14 #
Ex = 4 #
SNR = 15 #

# Leemos los bits de la imagen cat.png
with open('cat.png', 'rb') as f:
    cat_bs = BitStream(f.read())
    
# Codificamos con QPSK
x = encode_QPSK_waveform(cat_bs, M , Ex)
# Añadimos el delay 
yd = delay_QPSK_waveform(x, N/2)
# Modulamos la señal (yd= x con ruido con delay)
xm = modulate_IQ(yd, fc, fs)
# Añadimos ruido
yr = add_noise(xm, SNR)
# Demodulamos la señal
xd = demodulate_IQ(yr, fc, fs, N, fw)
# Decodificamos QPSK
cat_rx = decode_QPSK_waveform(xd, M, Ex)
# cat_bytes = cat_rx.tobytes()
# # Escribimos los bits recibidos en cat_rx.png
# with open('cat_rx.png', 'wb') as f:
#      f.write(cat_rx.read(bytes))

# Obtener los bytes del bitstream recibido
bytes_data = cat_rx.tobytes()

# Crear un objeto BytesIO y escribir los bytes en él
bytes_io = io.BytesIO()
bytes_io.write(bytes_data)
bytes_io.seek(0)

# Abrir la imagen desde BytesIO
image = Image.open(bytes_io)

# Guardar la imagen en formato PNG
image.save('cat_rx.png')

# Modulamos la señal