资源简介
TCM Trellis Code Modulation Based on Matlab 网格编码调制基于Matlab 含PPT讲解
并且与QPSK和8PSK做比较 两种TCM结构
代码片段和文件信息
clc
clear all;
%close all;
%System 1(1/2 convolutional encoder 2/3 TCM)
% 8PSK-TCM simulation
tx_num = 2000;
tx = randint(1tx_num);
%tx_num = 2000tx = randint(12000);% tx = [0 1 1 0 1 1 0 1 1 1 1 0 0 1 1 0];
Es = 1; Eb = Es/3;
Eb_dB = 10*log10(Eb);
SNR = (0:1:10);
SNR_lin = 10.^(SNR / 10);
BER = zeros(1length(SNR));
%%%%%%%%%%%%%%%%%%%%%%%%TCM%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
M = 8;
conv_input = tx(1:2:end);
uncode_data = tx(2:2:end);
% Convolutional encoder
trellis = poly2trellis(3[5 2][5]);
%trellis = poly2trellis(3[5 7][5]);
%trellis = poly2trellis(4[13 6][13]);
code_data = convenc(conv_inputtrellis);
% partitioning
partition=[pskmod(1M0‘gray‘) pskmod(7M0‘gray‘);
pskmod(2M0‘gray‘) pskmod(4M0‘gray‘);
pskmod(3M0‘gray‘) pskmod(5M0‘gray‘);
pskmod(0M0‘gray‘) pskmod(6M0‘gray‘)];
% TCM Modulation
txSig = zeros(1length(uncode_data));
for k = 1: length(uncode_data)
i = code_data(2*k-1)+code_data(2*k)*2;
txSig(1k)=partition(i+1uncode_data(k)+1);
end
for n = 1:length(SNR)
% Add Gaussian noise.
rxSig = awgn(txSigSNR(n)Eb_dB);
%rxSig = sqrt(Es/2) * txSig + sqrt(Eb/(2*SNR_lin(n))) * (randn(size(txSig)) + j * randn(size(txSig)));
%rxSig = awgn(txSigSNR(n));
% Demodulate.
rx = pskdemod(rxSig M0‘gray‘);
% Decode
r_code = zeros(1length(rx)*2);
r_uncode = zeros(1length(rx));
for i=1:length(rx)
switch rx(i)
case 0
r_code(12*i-1) = 1;
r_code(12*i) = 1;
r_uncode(1i) = 0;
case 1
r_code(12*i-1) = 0;
r_code(12*i) = 0;
r_uncode(1i) = 0;
case 2
r_code(12*i-1) = 1;
r_code(12*i) = 0;
r_uncode(1i) = 0;
case 3
r_code(12*i-1) = 0;
r_code(12*i) = 1;
r_uncode(1i) = 0;
case 4
r_code(12*i-1) = 1;
r_code(12*i) = 0;
r_uncode(1i) = 1;
case 5
r_code(12*i-1) = 0;
r_code(12*i) = 1;
r_uncode(1i) = 1;
case 6
r_code(12*i-1) = 1;
r_code(12*i) = 1;
r_uncode(1i) = 1;
case 7
r_code(12*i-1) = 0;
r_code(12*i) = 0;
r_uncode(1i) = 1;
otherwise
error(‘This is impossible‘)
end
%decrx1 = vitdec(r_codetrellis 2‘trunc‘ ‘hard‘);
decrx1 = vitdec(r_codetrellis length(r_code)/2‘trunc‘ ‘hard‘);
decrx(1:2:length(tx))= decrx1;
decrx(2:2:length(tx))= r_uncode;
end
[nErrors BER(1n)] = biterr(txdecrx);
end
figure(1)
semilogy(SNRBER‘r‘);grid on;
grid on;
xlabel(‘SNR (dB)‘); ylabel(‘BER‘);
title(‘TCM Modulation with a convolutional encoder in an AWGN channel‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-03-28 14:46 final\
文件 454144 2017-11-09 23:54 final\20MATLABTBER_TCM_QPSK_8PSK.ppt
文件 2422 2017-10-18 09:01 final\tcm_simulation12.m
文件 2414 2017-10-18 09:49 final\tcm_simulation12_bin.m
文件 2278 2017-09-20 10:04 final\tcm_simulation23.m
文件 1480 2017-11-08 12:03 final\tcm_unc8psk.m
文件 1821 2016-11-15 10:06 final\tcm_unqpsk.m
文件 1477 2015-11-22 14:53 final\theo_tcm_12.m
文件 1614 2015-11-22 15:05 final\theo_tcm_23.m
相关资源
- 基于matlab的三维重构
- 基于matlab的潮流计算PQ分解法4节点
-
基于matlab/simuli
nk的光伏电池仿真模 - 基于matlab的单相半波可控整流电路的
- 基于matlab的特征匹配的英文印刷字符
- 基于matlab的应用图像处理进行癌细胞
- 车牌号识别程序,基于matlab可直接运
- 基于matlab的PLL锁相环
- 基于MATLAB和FPGA的CIC滤波器.zip
- 基于matlab读取GPS中GPGGA信息(包含经纬
- 基于MATLAB的三相PWM整流
- 基于matlab的孔隙率检测
- 基于MATLAB的格拉布斯准则
- 基于MATLAB的滤波器设计
- 基于matlab的遍历文件夹中的所有子文
- 基于MATLAB的数字语音识别
- 基于MATLAB的LDPC编译码仿真程序
- 298496基于Matlab的m序列发生器的设计与
- 基于matlab的Boost变换器的有源功率因数
- 基于matlab的gui显示动态卷积,圆周卷
- 基于MATLAB的Prony方法实现
- 基于matlab的三维杆系有限元软件
- 基于MATLAB卫星姿态建模自适应PID仿真
- 基于MATLAB的窗函数法设计FIR数字滤波
- 基于matlab的指纹识别
- 基于MATLAB的车牌识别开题报告
- 基于MATLAB的拼图游戏
- 基于MATLAB实现的说话人识别程序,分
- 基于matlab的svpwm仿真
- 基于MATLAB_SIMULIN_省略_网型双馈风力发
评论
共有 条评论