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

📄 test.m

📁 该文件夹给出了卷积编码、交织及维特比软译码仿真程序
💻 M
字号:
clc
clear all
N_subcarrier=64;
n_symbols=10;
map_flag=4;
code_rate=3/4;
inf_bits = randn(1,N_subcarrier*n_symbols*map_flag) > 0;

%以下为发送端卷积码编码和交织操作
% Convolutional encoding
coded_bit_stream = tx_conv_encoder(inf_bits);
   
%Puncturing   
tx_bits = tx_puncture(coded_bit_stream,code_rate);

rdy_to_mod_bits = tx_make_int_num_ofdm_syms(tx_bits,N_subcarrier,map_flag);


rdy_to_mod_bits1 =tx_interleaver(rdy_to_mod_bits,N_subcarrier,map_flag);
rdy_to_mod_bits2 = reshape(rdy_to_mod_bits1,N_subcarrier*map_flag,length(rdy_to_mod_bits1)/(N_subcarrier*map_flag));%串行比特流转变成比特矩阵

%以下完成BPSK调制
%rdy_to_mod_bits1=2*rdy_to_mod_bits1-1+0.7*randn(1,length(rdy_to_mod_bits1));
mod_symbol=map_module(rdy_to_mod_bits2,map_flag);
%以下加高斯噪声
[m,n]=size(mod_symbol);
aa=0.2;
noise=aa*randn(m,n)+j*aa*randn(m,n);
receive=mod_symbol+noise;

%% We make 'soft' bit estimation for viterbi.
demod_symbol=de_map_module(receive,map_flag);%mod_symbol为矩阵形式,输出为串行符号序列
%以下为接收端解交织和卷积码译码操作
deint_bits = rx_deinterleave(demod_symbol,N_subcarrier,map_flag);

depunc_bits = rx_depuncture(deint_bits,code_rate);
viterbi_input = depunc_bits(1:(N_subcarrier*n_symbols*map_flag+6)*2);
% Vitervi decoding
data_bits = rx_viterbi_decode(viterbi_input);
data_bits=data_bits(1:N_subcarrier*n_symbols*map_flag);

⌨️ 快捷键说明

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