• 大小: 11KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: massive  mimo  

资源简介

转载自github This repository contains all the needed code to perform the bachelor thesis called "Pilot Precoding For Massive MIMO With Multiple Antenna Terminals"

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 

using namespace itpp;
using std::cout;
using std::endl;

namespace itpp {
    template Num_T* begin(Vec &v) {
        return &v[0];
    }

    template Num_T* end(Vec &v) {
        return &v[v.size()];
    }
};

int main(int argc char *argv[]){
int iter=100;   // No. of iterations
int C=3;   // # of cells in a network
int U=12;       // # of active users in each cell (worst case)
int N=20;          // # of maximum transmitting antennas at each base station
int P=19;        // total length of past samples of y/h_bcu used (Samples for operating)
it_file ff;
Real_Timer tt; 
tt.tic();
if (argc > 1) {
iter = atoi(argv[1]);
cout << “No. of iterations = “ << iter << “\n“;
}
if (argc > 2) {
C = atoi(argv[2]);
cout << “C = “ << C << “\n“;
}
if (argc > 3) {
U = atoi(argv[3]);
cout << “U = “ << U << “\n“;
}
if (argc > 4) {
N = atoi(argv[4]);
cout << “N = “ << N << “\n“;
}
if (argc > 5) {
P = atoi(argv[5]);
cout << “P = “ << P << “\n“;
}
int l=3;        // # of past samples considered
vec final_sum_rate=“0.0“; // stores the total sum
vec avg_sum_rate=“0.0“;   // average of data rates for U users
ivec Nt_vals = linspace_fixed_step(20 N 10);
int Nt;
int no_iterations_in_antenna;
no_iterations_in_antenna=((N-Nt_vals[0])/10)+1;
vec Data_Rate[no_iterations_in_antenna];
int count=0;
//Nt=N; // look here loop terminating guy

QPSK qpsk;                     //The QPSK modulator class   
AWGN_Channel awgn_channel;     //The AWGN channel class

/* Generation of H_bc/h_bcu  which is coming from cell to base station */
RNG_randomize();
double Ec=1.0;
double Eb=Ec/2.0;
vec EbN0dBN0EbN0;

EbN0dB=linspace(0.02010);
EbN0=inv_dB(EbN0dB);
N0=Eb/EbN0;   //This will also work

cout<<“No. of Cells Selected =“< cout<<“No. of Users Selected =“<

for (int Nt : Nt_vals) {
         final_sum_rate=“0.0“;
         cout<<“No. of antennas at each base station =“<         for (int it = 0; it < iter; ++it) {
cout<<“The iteration number is =“<
/* QPSK Symbol generation */
int Number_of_bits;
bvec transmitted_bits;
cvec transmitted_symbols;
Number_of_bits=2*U;  // Focusing on one cell only & others will follow
transmitted_bits = randb(Number_of_bits);
transmitted_symbols = qpsk.modulate_bits(transmitted_bits);

    // Corr matrix of the channel coefficients
    cmat R_bcu[C][C][U];
    cmat Rsqr_bcu[C][C][U];  // Rsqr_bcu represents the square root of the corresponding complex matrix

    for(int i=0;i     for(int j=0;j         for(int k=0;k             cmat unsymmetricR_bcu = randn_c(NtNt);  //dummy cmat to construct correlation mat
                R_bcu[i][j][k]= unsymmetricR_bcu*hermitian_transpose(unsymmetricR_bcu);
                Rsqr_bcu[i][j][k]= sqrtm(R_bcu[i][j][k]); 
}
}
}

    // Declaring channel coeff.
   

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-04-05 02:42  Pilot_Contamination_Precoding-master\
     文件         124  2018-04-05 02:42  Pilot_Contamination_Precoding-master\README.md
     文件       12658  2018-04-05 02:42  Pilot_Contamination_Precoding-master\downlink_precoding.cpp
     文件       12946  2018-04-05 02:42  Pilot_Contamination_Precoding-master\optimizing_lambda.ipynb
     文件        1382  2018-04-05 02:42  Pilot_Contamination_Precoding-master\pilot_contamination_data.txt
     文件       12056  2018-04-05 02:42  Pilot_Contamination_Precoding-master\prev_downlink_kalman.cpp

评论

共有 条评论