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

📄 mmse_mimo.m

📁 two path fading(qpsk) 这个是我写的关于qpsk的MIMO信道mmse的计算方法,站长帮帮忙,我现在很需要一篇<信道估计算法>(基于瑞利衰落信道的LS算法的Matla
💻 M
字号:
% simulate the BER of a QPSK signal using Rayleigh fading channel
% with sigma = fading_sigma
% pxq MIMO 
clear;
N_loop = 10^4;
N_sym = 64;
N_bit = 2*N_sym;
noise_sigma = sqrt(0.5);
Eb_dB = 4:4:28;
Eb = 10.^(Eb_dB/10);
sqrt_Es = sqrt(2*Eb);
BER = zeros(1, length(Eb));
normalized = 1/sqrt(2);
p = 3;
q = 3;

for n = 1:N_loop;
    H = randn(q,p)+j*randn(q,p);
    h = normalized*H/(sqrt(p));
    
    for i = 1:7;       %SNR 
        for k = 1:p;
            D = floor(2*rand(1,N_sym))+j*floor(2*rand(1,N_sym));
            Tx_data(k,:) = 2*D-(1+j);
            Tx_D(k,:) = D; 
        end;
        Tx_data = normalized*Tx_data;
        for k = 1:q;
            Noise(k,:) = noise_sigma*(randn(1,N_sym)+j*randn(1,N_sym));
        end;
        Rx_data = h*Tx_data*sqrt_Es(1,i) + Noise;
        load('gaussian')

%--------------Parameter Initilization---------
kernel='gaussian';
%c=-20:10;
c=0;
%sigma=-3:1:3;
sigma=sqrt(0.5);

%---------------SVM Training Procedure----------
for jj=1:length(c)
    for ii=1:length(sigma)
        kerneloption=10^sigma(ii);  
        regoption=10^c(ii);
        flen=size(tr_data,2);
        tic    
        [errorsvm(ii),fval]=SVM(tr_data,tr_target,te_data,te_target,'diagc',kernel,kerneloption,regoption);
        toc    
    end
end
        
      %  r = conj(h)*transpose(h)+(1/Eb(1,i))*eye(q);
      %  for k = 1:p;
      %      w1(:,k) = inv(r)*conj(h(:,k));
      %  end;
      %  w = transpose(w1);
      %  y = w*Rx_data;
      %  Recov_data = 0.5*(1+j+sign(real(y))+j*sign(imag(y)));
      %  BER(1,i) = BER(1,i)+sum(sum((abs(Recov_data-Tx_D)).^2))/(N_bit*p);
    end;
end;
BER = BER/N_loop;

save mimo_fading_qpsk_parameter Eb_dB BER;
semilogy(Eb_dB, BER, 'k--');
xlabel('Eb/N0 (dB)');
ylabel('BER');

⌨️ 快捷键说明

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