Constellation Knowledge Network - Conocimiento de adivinación - ¿Quién puede decirme el significado detallado de este programa matlab, que requiere comentar cada párrafo?

¿Quién puede decirme el significado detallado de este programa matlab, que requiere comentar cada párrafo?

Borrar todo;

clc

N_ofdm = 2048%Los puntos OFDM son 2048.

f _ delta = 15 E3; el % de espacio entre subportadoras es 15k, que en realidad no se utiliza en el código.

n_block = 1000; % volumen analógico máximo

n_subcarrier = 1320; Porcentaje de subportadoras disponibles

n_CP = 144;% longitud CP

symbol_number = 14; Porcentaje de símbolos OFDM por transmisión

conv_poly=;% código convolucional generando polinomio

k = 5 %Longitud de restricción del código convolucional

trel; =poly2trellis(K,conv_poly);%Generar diagrama de cuadrícula de código convolucional

tail = 0(1,K- 1); Agregar % de bits de cola para poner a cero el codificador de código convolucional

mod); _ grado = 4; modulación %16QAM

código _ tasa = 0,5% tasa de código

tb_len = 50% de longitud de rastreo del decodificador Viterbi

bit_length = mod_grado * code_rate * N_subcarrier * Symbol_number-K+1; %según La configuración de parámetros anterior puede obtener el número total de bits de información que puede transportar un bloque de datos.

SNR _ db = 0:1:10 % establece el rango de relación señal-ruido analógico.

Relación señal-ruido=10. ^(snr_db/10); %Convierte la relación señal-ruido a un valor natural.

ber = cero (1, longitud (SNR)); % de espacio de almacenamiento de tasa de error de inicialización

bler = cero (1, longitud (SNR));

h1=modem.qammod('m',2^mod_title,'inputtype','bit','symoblorder','gray'); %Generar objeto de modulación QAM, el tipo de entrada es entrada de bits , El orden de los símbolos es Mapa de grises.

h2=modem.qamdemod(h1,'OutputType','bit','DecisionType','approximatellr',...NoiseVariance',1); %Generar objeto de demodulación QAM y seleccionar demodulación de juicio suave. forma. Porque la posición de variación de ruido en este momento se establece temporalmente en 1.

Para loop_snr=1: longitud (snr)

err = 0;

err _ blk = 0

sigma = sqrt; (1/SNR(loop_SNR)/2);

Para loop_block=1:N_block%, el código omitido aquí es el proceso de procesamiento de cada marco de datos, que se describirá en detalle a continuación.

Fin

ber(loop _ SNR)= err/(bit _ length * loop _ block

bler(loop _ SNR)= err _); blk/loop_block;

Fin

for bloque de bucle=1:N bloque

fuente=randsrc(1, bit_length, [0, 1]) ;% Fuente generada

code=convenc([source, tail], trel); %Codificación convolucional, estado puesto a cero

symbol=modulate(h1, code'); modulado con el objeto de modulación h1.

Símbolo = símbolo/3.1622; % de normalización de la energía del símbolo de la subportadora

transmit_data = zero(1, Symbol_number *(N_CP+N_OFDM) % Enviar inicialización de muestra en el dominio del tiempo

for loop _ símbolo = 1:symbol _ % período de símbolo OFDM, cada período genera todas las muestras en el dominio del tiempo de un símbolo OFDM.

freq_domain=zeros(1,N_OFDM);% inicialización de datos en el dominio de frecuencia

freq_domain((N_OFDM-N_subcarrier)/2+1:(N _ OFDM-Nsubcarrier)/2+ N_subcarrier)= símbolo((loop_symbol-1)* N_subcarrier+1:loop_symbol * N_subcarrier % mapeo de subportadora, mapeado a la subportadora N_subcarrier en el medio superior.

time _ domain = IFFT(freq _ domain)* sqrt(N _ OFDM); %IFFT implementa la modulación OFDM y presta atención a la normalización de energía.

transmitir _ datos((bucle _ símbolo-1)*(N _ CP+N _ OFDM)+1:bucle _ símbolo *(N _ CP+N _ OFDM))=[tiempo_dominio (N_OFDM-N_CP+1:N_OFDM), dominio_tiempo];% más CP

Fin

datos_recibidos = datos_transmitir+(randn(1, longitud (datos-transmitir)) + j * randn (1, longitud (transmitir _ datos))) * sigma % agrega ruido para obtener una señal aceptable.

símbolo de bucle for=1: número de símbolo

de _ CP = datos _ recibidos((bucle _ símbolo-1)*(N _ CP+N _ OFDM)+N _ CP+1:loop_symbol *(N_CP+N_OFDM));%deleteCP

FFT_data = FFT(de_CP)/sqrt(N_OFDM);%FFT, Normalización de energía

de mapp_data ((bucle _ símbolo-1)* N _ subportadora+1:bucle _ símbolo * N _ subportadora)= FFT _ datos((N _ OFDM-N _ subportadora)/2+1:(N _ OFDM-N _ subportadora )/2+N _ subportadora); % desasignación

Fin

h2. varianza de ruido = sigma * sigma * 3.1622 * 3.1622 %Restablece el parámetro de varianza de ruido del objeto de demodulación.

data _ demodulation = demodulation (h2, de mapp _ data * 3.1622 % de demodulación suave, tenga en cuenta que antes de la demodulación, la señal debe volver a convertirse a la constelación original de acuerdo con los requisitos del objeto de demodulación.

temp 1 = size(data_demudulated);

data_demudulated=reshape(data_demudulated, 1, templ(1)* templ(2) % suavizará la matriz de la entrada demodulada; está organizado en vectores de fila.

decisión = vit dex(data_demod, trel, tb_len, 'term', 'un quant'); decodificación de Viterbi con % de descuantificación

decisión = decisión (1: longitud (fuente) )); % bits eliminados

err=err+sum (decisión~ = fuente % errores estadísticos

If(sum(decisión~=fuente)~=0)% cuenta); el número de bloques de error.

err_blk+err_blk+1;

Fin

if(err_blk>=10)% error 10 bloques detienen el mensaje Simulación bajo relación de ruido.

Pausa;

Fin

Fin

semilogía(SNR_dB,ber,'-^')

Cuadrícula en

xlabel(' SNR(dB)');

ylable(' BER ');

上篇: Introducción a Justin Bieber 下篇: ¿Quién puede darme un ensayo educativo de unas 300 palabras?
Artículos populares