El programa en lenguaje MATLAB de código de bucle (13, 9), le ruego a Dios que lo ejecute.
n = 2^m-1; %definir longitud del código k = n-m; información Longitud de bits
msg = randint(k*4, 1, 2 % % extrae aleatoriamente la señal y genera una matriz entera arbitraria uniformemente distribuida (2, 2, 1) madre (MSG).
Título ("Señal de entrada del codificador")
P = polinomio cíclico (n, k)% código cíclico que genera polinomio, n = 7, k = 4 código = codificar (msg, n, k, 'cíclico', p); % función de codificación, codificación de error de la señal. Subtrama (2, 2, 2) raíz (código).
Título("Señal de salida del codificador")
Decodificar = decodificar (código, n, k, 'cíclico', p)% decodificar la señal, decodificar la palabra clave recibida y restaurarla .
Para producir la información original, los parámetros y métodos de decodificación deben ser exactamente los mismos que los utilizados en la codificación.
Subtrama (2, 2, 3) raíz (recodificación)
Título('Señal de salida del decodificador')t =-1:0.01:1;
x = recodificar; % asignar recodificar a x, establecer la longitud y fft en N = longitud(x = FFT(x = 100/N); df
Gráfico de rama (2, 2, 4);
plot(f, ABS(FX(N+1))* 2/N; Título ("Sonido); espectrograma")
2. Esquema de la relación entre la tasa de error de bits y la relación señal-ruido (probado con código cíclico (3, 2)) m = 2;
n = 2^m-1; % de longitud del código de definición k = n-m; % de longitud de bits de información Fs = 40% de frecuencia de muestreo del sistema Fd = 1 % de tasa de código N = Fs/Fd; % número decimal
Para SNRpBit = 1:100; % SNR SNR = SNRpBit/log2(M);
% Crea 100 grupos de mensajes, cada grupo tiene k bits MSG = Randint ( 100, k, [0, 1]);
code = encode(msg, n, k, 'cyclo/binary'); %Agregar ruido
%A la modulación Agregar gaussiano. ruido blanco a la señal
noisycode=awgn(código, SNR-10 * log 10(0.5)-10 * log 10(N), 'medido', [], 'dB%'); El número de coma flotante se convierte a binario y el proceso de configuración de la forma de onda es I = 1: 100 es a = 1: k+1.
si código ruidoso(i, a)< 0.5 código ruidoso(i, a)= 0
código ruidoso(i, a)= 1
< p; >Fin final% decodificaciónnewmsg = decode(noisycode, n, k, ' cyclo '); % de tasa de error de bits calculada
[Número, relación] = biterr(newmsg, msg ); resultado (SNRpBit) = ratio;
disp(['tasa de error de bits', num 2 str(ratio)]); rendimiento de la tasa de error del canal de ruido blanco gaussiano aditivo bajo la relación señal-ruido (1);
Título ('Tasa de error de bits de códigos cíclicos bajo diferentes relaciones señal-ruido') Leyenda ('Bit tasa de error' ,' *') xlabel('relación señal-ruido');
Ylabel("tasa de error de bits bajo ruido blanco gaussiano aditivo");