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

📄 vitdec_test.m

📁 放大转发协同通信的有关仿真代码
💻 M
字号:
source_code_data = randint(1,100);
SNR_dB = 5;
SNR = 10^(SNR_dB/10);
constraintlength = [7];
codegenerator = [133, 165, 171];     %r=1/3,生成多项式G1=133(8),G2=165(8),G3=171(8)
code_data = convenc(source_code_data, poly2trellis(constraintlength, codegenerator));  %内码卷积编码
code_data;
puncture_code_data = zeros(1, length(code_data)*2/3);
puncture_code_data(1:2:end) = code_data(1:3:end);
puncture_code_data(2:2:end) = code_data(3:3:end);


%function decode_data = viterbi_decoder(coded_data, tblen)
tblen = 5;
ucode_data = 1 - 2*puncture_code_data;
%ucode_data = puncture_code_data;
signal_pwr = sum(ucode_data.^2)./length(ucode_data);
noise_pwr = signal_pwr/SNR;
noise = sqrt(noise_pwr).*randn(1,length(ucode_data));
ucoded_data = ucode_data + noise;

insert_code_data = zeros(1, length(code_data));
insert_code_data(1:3:end) = ucoded_data(1:2:end);
insert_code_data(2:3:end) = 0;
insert_code_data(3:3:end) = ucoded_data(2:2:end);
insert_code_data;

%coded_data为输入的码, tblen是跟深
%constraintlength = [7];
%codegenerator = [133, 165, 171];     %r=1/3,生成多项式G1=133(8),G2=165(8),G3=171(8)
opmode = 'trunc';     %操作模式
decode_data = vitdec(insert_code_data, poly2trellis(constraintlength, codegenerator), tblen, opmode, 'unquant');   %维特比译码

error_count = sum(abs(source_code_data-decode_data))

⌨️ 快捷键说明

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