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

📄 channel_enc.m

📁 GSM 物理层信道编码, 调制, 信道模拟, 同步搜索, 信道估计, 均衡解调, 信道译码
💻 M
字号:
function [tx_enc] = chan_enc(tx_block)%% chan_enc:   This function accepts a 260 bits long vector contaning the %             data sequence intended for transmission. The length of %             the vector is expanded by channel encoding to form a data%             block with a length of 456 bits as required in a normal %             GSM burst. %%             [ Class I | Class II ]%             [   182   |    78    ]%             %             [ Class Ia | Class Ib | Class II ]%             [    50    |    132   |    78    ]%   %             The Class Ia bits are separatly parity encoded whereby 3 error%             control bits are added. Subsequently, the Class Ia bits are%             combined with the Class Ib bits for convolutional encoding%             according to GSM 05.05. The Class II bits are left unprotected%% SYNTAX:     [tx_enc] = channel_enc(tx_block)% % INPUT:      tx_block   A 260 bits long vector contaning the data sequence %                        intended for transmission.%% OUTPUT:     tx_enc   A 456 bits long vector contaning the encoded data %                      sequence%% SUB_FUNC:   None%% WARNINGS:   None%% TEST(S):    Parity encoding - tested to operate correctly.%             Convolution encoding - tested to operate correctly. %% AUTHOR:   Jan H. Mikkelsen / Arne Norre Ekstr鴐% EMAIL:    hmi@kom.auc.dk / aneks@kom.auc.dk%% $Id: channel_enc.m,v 1.9 1998/02/12 10:48:31 aneks Exp $L = length(tx_block);% INPUT CHECK%if L ~= 260  disp(' ')  disp('Input data sequence size violation. Program terminated.')  disp(' ')   break;end% SEPARATE INPUT IN RESPECTIVE CLASSES%c1a = tx_block(1:50); c1b = tx_block(51:182);c2 = tx_block(183:260); % PARITY ENCODING. THREE CHECK BITS ARE ADDED%g = [1 0 1 1];d = [c1a 0 0 0];[q,r] = deconv(d,g);% ADJUST RESULT TO BINARY REPRESENTATION%L = length(r);out = abs(r(L-2:L));for n = 1:length(out),  if ceil(out(n)/2) ~= floor(out(n)/2)    out(n) = 1;  else    out(n) = 0;  endendc1a = [c1a out];% CLASS I BITS ARE COMBINED AND 4 TAIL BITS, {0000}, ARE ADDED AS % PRESCRIBED IN THE GSM RECOMMENDATION 05.03%c1 = [c1a c1b 0 0 0 0];% CONVOLUTIONAL ENCODING OF THE RANDOM DATA BITS. THE ENCODING IS% ACCORDING TO GSM 05.05%register = zeros(1,4);data_seq = [register c1];enc_a = zeros(1,189);enc_b = zeros(1,189);encoded = zeros(1,378);for n=1:189,    enc_a(n) = xor( xor( data_seq(n+4),data_seq(n+1) ), data_seq(n) );  enc_temp = xor( data_seq(n+4),data_seq(n+3) );  enc_b(n) = xor ( xor( enc_temp, data_seq(n+1) ), data_seq(n));    encoded(2*n-1) = enc_a(n);  encoded(2*n) = enc_b(n);  clear enc_tempend% PREPARE DATA FOR OUTPUT%tx_enc = [encoded c2];

⌨️ 快捷键说明

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