资源简介
TCM Trellis Code Modulation Based on Matlab 网格编码调制基于Matlab 含PPT讲解
并且与QPSK和8PSK做比较 两种TCM结构
![](http://www.nz998.com/pic/64432.jpg)
代码片段和文件信息
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的快速傅里叶变换
- 基于matlab的图像处理源程序
- 基于matlab 的图像处理100实例
- 基于MATLAB的线性控制系统分析与设计
- 基于matlab的窗函数法FIR数字滤波器设
- 基于MATLAB的图像特征点匹配和筛选
- 基于MATLAB的OFDM系统仿真及分析
- 基于MATLAB的液压伺服控制系统分析与
- 基于matlab的判决反馈的均衡器
- 基于Matlab的OFDM系统仿真的设计
- 基于matlab的车牌识别系统论文
- 基于MATLAB的车牌定位源程序
- 基于MATLAB的OFDM系统仿真及性能分析
- 基于MATLAB的LTE系统的仿真
- 基于matlab的车牌识别资源整合16篇
- 基于MATLAB利用相关分析法辨识脉冲响
- 基于matlabGUI的小车倒立摆pid控制
- 基于MATLAB的N路信号频分复用系统的设
- 基于matlab的手势识别系统
- 基于MATLAB人民币识别系统.zip
- 基于matlab的BPSK调制解调
- 基于MATLAB的心电信号分析及滤波
- 基于matlab的灰度图像的多重分形谱
- 基于matlab的坐标变换程序,通过坐标
- 基于MATLAB的傅里叶级数可视化
- 基于MATLAB的倒谱程序
- 基于Matlab行人检测系统
- 基于matlab的扑克牌识别
- 基于MATLAB计算两平行线圈的互感
评论
共有 条评论