分别对比SVD和GMD非码本的预编码以及DFT和TxAA码本预编码的MIMO系统matlab误码率仿真

Posted fpga和matlab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分别对比SVD和GMD非码本的预编码以及DFT和TxAA码本预编码的MIMO系统matlab误码率仿真相关的知识,希望对你有一定的参考价值。

up目录

一、理论基础

二、核心程序

三、测试结果


一、理论基础

对比SVD和GMD非码本的预编码以及DFT和TxAA码本预编码的MIMO系统matlab误码率仿真

二、核心程序

function VV = func_GMD(h);
%GMD分解,按论文27页开始

%第一步:进行奇异值分解
[u0 s0 v0] = svd(h);
[m,n]      = size(s0);
R          = zeros(m, n) ;
P          = v0;
Q          = u0;
d          = diag(s0);
l          = min(m, n);
VV         = zeros(m, n);

for p = l : -1 : 1
    if ( d (p) >= 0.01 )
        break ;
    end
end
if ( p < 1 )
    return ;
end
if ( p < 2 )
    R (1, 1) = d (1) ;
    return ;
end

z         = zeros (p-1, 1) ;
large     = 2 ;           
small     = p ;           
perm      = [1 : p] ;     
invperm   = [ 1 : p ] ; 
sigma_bar = (prod (d (1:p)))^(1/p) ;
%第二步
for k = 1 : p-1
    flag = 0 ;
    if ( d (k) >= sigma_bar )    
        i = perm (small) ;
        small = small - 1 ;
        if ( d (i) >= sigma_bar )
            flag = 1 ;
        end
    else
        i = perm (large) ;
        large = large + 1 ;
        if ( d (i) <= sigma_bar )
            flag = 1 ;
        end
    end
        
    k1 = k + 1 ;
    if ( i ~= k1 )            
        t = d (k1) ;          
        d (k1) = d (i) ;
        d (i) = t ;
        j = invperm (k1) ;    
        perm (j) = i ;
        invperm (i) = j ;
        I = [ k1 i ] ;
        J = [ i k1 ] ;
        Q (:, I) = Q (:, J) ; 
        P (:, I) = P (:, J) ;
    end

    delta1 = d (k) ;
    delta2 = d (k1) ;
    t = delta1 + delta2 ;
    if ( flag )
        c = 1 ;
        s = 0 ;
    else
        f = (delta1 - sigma_bar)/(delta1 - delta2) ;
        s = sqrt (f*(delta1+sigma_bar)/t) ;
        c = sqrt(1-s^2) ;
    end
    d (k1) = delta1*delta2/sigma_bar ;          
    z (k) = s*c*(delta2 - delta1)*t/sigma_bar ; 
    R (k, k) = sigma_bar ;
    if ( k > 1 )
        R (1:k-1, k) = z (1:k-1)*c ;
        z (1:k-1) = -z (1:k-1)*s ;   
    end
   %第三步
    G1 = [ c -s
           s  c ] ;
    J = [ k k1 ] ;
    P (:, J) = P (:, J)*G1 ;        

    G2 = (1/sigma_bar)*[ c*delta1 -s*delta2
                         s*delta2  c*delta1 ] ;
    Q (:, J) = Q (:, J)*G2 ;       
end

%第四步
R (p, p) = sigma_bar ;
R (1:p-1, p) = z ;

VV = Q.*R.*P'; 
up55

三、测试结果

 

 

 

以上是关于分别对比SVD和GMD非码本的预编码以及DFT和TxAA码本预编码的MIMO系统matlab误码率仿真的主要内容,如果未能解决你的问题,请参考以下文章

svd,BD,ZF,SLNR,MMSE线性预编码性能对比MATLAB仿真

实时音频编解码之十七 Opus解码 SILK解码

OFDM信道估计误码率仿真,对比LS,Lmmse,Lrmmse,DCT以及DFT五种算法

OpenCV 前景检测慢

基于用户、基于项目和SVD的协同过滤Python代码

创新工场提出中文分词和词性标注模型,性能分别刷新五大数据集| ACL 2020