alamouti.m
来自「一个教你如何用matlab写mimo系统的程序」· M 代码 · 共 53 行
M
53 行
function [s_antenna1, s_antenna2]=alamouti(symbol_block,set)% [s_antenna1, s_antenna2]=alamouti(symbol_block,set)%% Output:% s_antenna1 - Symbolstream to be put on antenna 1. (symbol-vector)% s_antenna2 - Symbolstream to be put on antenna 2. (symbol-vector)% % Input:% symbol_block - block of symbols to be alamouti-coded (REAL VALUED SYMBOLS!) (symbol-vector)% set - if set to 0, no alamouti coding is performed. (int 0,1)% if set to 1, alamouti coding is performed.%% Short Theoretical Background for the Function:%% Space-Time coding for two antennas, using the alamouti algorithm.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Function part of simulation for Space-Time%%% coding project, group Grey-2001.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Author: Stefan Uppg錼d% Date: 2001-03-19% Version: 1.1% Revision (Name & Date): FH 2001-03-28 see line 40% 2.0 FH 2001-04-01 clever vector implementation%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% set = 0, put all data in antenna nr.1if(set==0) s_antenna1 = symbol_block; s_antenna2 = zeros(1,length(symbol_block));elseif(set==1) a = ones(1,length(symbol_block)); a(2:2:end) = -1*a(2:2:end); %s_antenna1 = (diag(symbol_block)*a')'; % [s0 -s1 s2 -s3 ...] s_antenna1 = a.*symbol_block; % should be the same as with diag s_antenna2 = []; odd = zeros(1,length(symbol_block)); even = odd; odd(1:2:end) = symbol_block(2:2:end); even(2:2:end) = symbol_block(1:2:end); s_antenna2 = odd + even; else s_antenna1 = symbol_block; s_antenna2 = [];end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?