📄 encoder4psk.m
字号:
function out_codes = encoder4psk(Branch_coef,Input_stream)
%4-PSK Trellis codes for two transmit antennas
Size = size(Input_stream);
len_stream = Size(2);
len_codes = len_stream/2; % divide the stream into two parts
sizeBc = size(Branch_coef);
mem_order = sizeBc(1)-2; % the memory order
states = 2^mem_order; % n states
upper_codes(1) = 0;
lower_codes(1) = 0;
Upper_stream(1) = 0;
Lower_stream(1) = 0;
upper_order = mem_order/2 - mod(mem_order/2,1); % the memory order of the upper and lower branches
lower_order = (mem_order+1)/2 - mod((mem_order+1)/2,1);
k = 1;
for i = upper_order+1:upper_order+len_codes
Upper_stream(i) = Input_stream(2*k-1); % the upper branch's stream
k = k+1;
end
k = 1;
for i = lower_order+1:lower_order+len_codes
Lower_stream(i) = Input_stream(2*k); % the lower branch's stream
k = k+1;
end
for t = 1:len_codes % the output of the encoder
upper_codes(t) = 0;
lower_codes(t) = 0;
for p = 1:upper_order+1
upper_codes(t) = upper_codes(t)+Upper_stream(t+upper_order+1-p)*Branch_coef(p,1);
lower_codes(t) = lower_codes(t)+Upper_stream(t+upper_order+1-p)*Branch_coef(p,2);
end
for q = 1:lower_order+1
upper_codes(t) = upper_codes(t)+Lower_stream(t+lower_order+1-q)*Branch_coef(upper_order+1+q,1);
lower_codes(t) = lower_codes(t)+Lower_stream(t+lower_order+1-q)*Branch_coef(upper_order+1+q,2);
end
upper_codes(t) = mod(upper_codes(t),4);
lower_codes(t) = mod(lower_codes(t),4);
end
out_codes(1,:) = upper_codes;
out_codes(2,:) = lower_codes;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -