MIMO 系统的容量和 S 参数
Capacity of MIMO System and S-Parameters
使用信道建模软件 (Quadriga),我正在计算 2x2 MIMO 系统 A 的频谱效率 (bps/Hz) 高于固定频率的 2x2 MIMO 系统 B 的相应容量。然而,系统 A 的隔离度(互耦-S21)低于系统 B。这是为什么呢?该软件将已实现增益模式作为输入。它还将耦合矩阵作为输入,我分别使用了每个系统的 S 参数。
给定频率s21=-20dB的系统A||
给定频率的系统 B s21=-40dB
MIMO 系统的容量取决于两个因素:总体 SNR(所有 MIMO 子链路的平均值)和信道矩阵的 "orthogonality"。后者可以通过矩阵的奇异值分解来确定。如果所有奇异值都相等,则矩阵是正交的。
在 2x2 的情况下,您将能够并行传输 2 个数据流,即容量与流的数量成线性比例(与 SNR 成对数)。然而,很少能实现完美的正交性。如果您使用相同的信道模型设置(多路径结构、频率、带宽、功率等)并且仅调整天线端口之间的耦合,则由于信道系数的相关性较高,较低的隔离度会导致较低的容量。这可以在以下代码示例中看到(使用 QuaDRiGa v2.2):
clear all
iso = 0:5:40
for n = 1:numel(iso)
% Keep identical random ssed
RandStream.setGlobalStream(RandStream('mt19937ar','seed',1));
l = qd_layout; % Quadriga Layout
l.randomize_rx_positions(100,1.5,1.5,0); % Random receiver position
l.tx_array = qd_arrayant('ula2'); % ULA antenna
l.tx_array.coupling = [ 1,sqrt( 10^(-iso(n)/10) ); 0,1 ];
l.rx_array = l.tx_array.copy;
l.set_scenario('3GPP_38.901_UMi_NLOS');
c = l.get_channels; % Channel coefficients
H = c.fr(1e9,1); % MIMO matrix
P = mean(abs(H(:).^2)); % Average Power
H = H./sqrt(P); % Normalize Power
C(n) = log2(abs(det( eye(2) + 10/2 * (H*H') ))); % MIMO Capacity @ 10 dB SNR
end
plot(iso,C,'-o')
使用信道建模软件 (Quadriga),我正在计算 2x2 MIMO 系统 A 的频谱效率 (bps/Hz) 高于固定频率的 2x2 MIMO 系统 B 的相应容量。然而,系统 A 的隔离度(互耦-S21)低于系统 B。这是为什么呢?该软件将已实现增益模式作为输入。它还将耦合矩阵作为输入,我分别使用了每个系统的 S 参数。
给定频率s21=-20dB的系统A|| 给定频率的系统 B s21=-40dB
MIMO 系统的容量取决于两个因素:总体 SNR(所有 MIMO 子链路的平均值)和信道矩阵的 "orthogonality"。后者可以通过矩阵的奇异值分解来确定。如果所有奇异值都相等,则矩阵是正交的。
在 2x2 的情况下,您将能够并行传输 2 个数据流,即容量与流的数量成线性比例(与 SNR 成对数)。然而,很少能实现完美的正交性。如果您使用相同的信道模型设置(多路径结构、频率、带宽、功率等)并且仅调整天线端口之间的耦合,则由于信道系数的相关性较高,较低的隔离度会导致较低的容量。这可以在以下代码示例中看到(使用 QuaDRiGa v2.2):
clear all
iso = 0:5:40
for n = 1:numel(iso)
% Keep identical random ssed
RandStream.setGlobalStream(RandStream('mt19937ar','seed',1));
l = qd_layout; % Quadriga Layout
l.randomize_rx_positions(100,1.5,1.5,0); % Random receiver position
l.tx_array = qd_arrayant('ula2'); % ULA antenna
l.tx_array.coupling = [ 1,sqrt( 10^(-iso(n)/10) ); 0,1 ];
l.rx_array = l.tx_array.copy;
l.set_scenario('3GPP_38.901_UMi_NLOS');
c = l.get_channels; % Channel coefficients
H = c.fr(1e9,1); % MIMO matrix
P = mean(abs(H(:).^2)); % Average Power
H = H./sqrt(P); % Normalize Power
C(n) = log2(abs(det( eye(2) + 10/2 * (H*H') ))); % MIMO Capacity @ 10 dB SNR
end
plot(iso,C,'-o')