⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.asv

📁 20072010.rar:tubor,LDPC,convolution的部分代码
💻 ASV
字号:
clc
clear all;


system_info.uncoded_frame_length = 1000;

% Generator matrix

    generator_matrix = [1 0 1; 1 1 1];
[system_info.n, system_info.constraint_length] = size(generator_matrix); 
system_info.coded_frame_length = system_info.uncoded_frame_length * system_info.n;


    EbNodB_start = 1;
    EbNodB_end = 4;

    EbNodB_step = 1;

trellis = convolutional_trellis(generator_matrix, system_info);

counter = 0;
for EbNodB = EbNodB_start:EbNodB_step:EbNodB_end
    counter = counter + 1;
    system_info.EbNo = 10 .^ (EbNodB ./ 10);
    system_info.noise_variance = 1 ./ (2 .* system_info.EbNo ./ system_info.n);
    errors = 0;
    loops = 0;
    
    while loops < 100
        loops = loops + 1;
        data_bits = round(rand(1, system_info.uncoded_frame_length)); 
        encoded_bits = convolutional_encoder(data_bits, trellis, system_info);
        modulated_bits = qpsk_modul(encoded_bits);
        noise = sqrt(system_info.noise_variance) .* randn(1,0.5*system_info.coded_frame_length);
        received_signal_temp = modulated_bits + noise;
         received_signal=ydqpsk(received_signal_temp);
      
            received_signal = 2 .* received_signal ./ system_info.noise_variance;
            [LLR, temp] = convolutional_map_decoder(received_signal, trellis, system_info);
            decoded_bits = (sign(LLR) + 1) ./ 2;
        
        errors = errors + xor(decoded_bits, data_bits) * ones(system_info.uncoded_frame_length,1);
        
        disp(sprintf('Uncoded errors so far for %g dB in %g loops : %g', EbNodB, loops, errors))
    end
    BER(counter) = errors/(loops * system_info.uncoded_frame_length);
end
similogy

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -