AMAZON

Showing posts with label LTE simulator. Show all posts
Showing posts with label LTE simulator. Show all posts

Saturday, September 1, 2012

simulation suite including link-level (LTE PHY Lab) and system-level (LTE MAC Lab) LTE simulators running under MATLAB environmen

LTE LAB™



banner
LTE LAB™ is a complete simulation suite including link-level (LTE PHY Lab) and system-level (LTE MAC Lab) LTE simulators running under MATLAB environment. LTE PHY Lab is a comprehensive implementation of the 3GPP Release 8, 9 and 10 E-UTRA physical layer. LTE MAC Lab truly reflects the dynamic behavior of a modeled radio access network focusing on Radio Resource Management features such as scheduling and link adaptation and including implementation of propagation and mobility models.

Downlink E-UTRA processing chain

Downlink channels and signals

Transport channels
and control information
Physical channels and signals
Rel. 8, 9
and 10
DL-SCH, BCH, CFI, HI, DCI PDSCH, PBCH, PDCCH, PCFICH,
RS, P-SS, S-SS
Rel. 9 and 10 CRS, PRS, CSI-RS, UE RS

Uplink E-UTRA processing chain

http://is-wireless.com/images/images/LTE_MAC.png

Uplink channels and signals

Transport channels
and control information
Physical channels and signals
Rel. 8, 9 and 10 DL-SCH, BCH, CFI, HI, DCI PRACH, PUSCH, PUCCH, DRS for PUSCH,
DRS for PUCCH, SRS
Rel. 9 and 10 PUCCH format 3

3GPP Rel. 8 Features (LTE PHY Lab)

  • 3GPP Release 8 E-UTRA physical layer implementation according to TS 36.211-870, TS 36.212-870, and TS 36.213-870
  • Downlink and uplink (including RACH) support available from day one
  • FDD duplexing, TDD – available on request
  • Support for MIMO (2 and 4 antennas SM (SU-MIMO), TX diversity), OFDMA and SC-FDMA
  • Support for all the LTE bandwidths: 1.4MHz, 3MHz, 5MHz, 10MHz, 15MHz, 20MHz
  • Flexible control of all the necessary parameters
  • Channel models included (AWGN, SUI, E-UTRA 3GPP TS 36.101)
  • Test files included

3GPP Rel. 9 and 10 Features (LTE PHY Lab)

  • Support for Carrier Aggregation for up to 5 Carrier in Downlink and 5 Carriers in Uplink
  • Extended Downlink SU-MIMO (with up to 8 antennas)
  • Uplink SU-MIMO (with up to 4 antennas)
  • Uplink Spatial Diversity for PUCCH
  • New PUCCH format 3 for Carrier Aggregation
  • Support for Normal and Extended Cyclic Prefix
  • Release 9 positioning reference signals
  • Release 10 extended UE specific reference signals
  • CSI Reference signals
  • Clustered SC-FDMA
  • Possibility for simultaneous transmission of PUCCH and PUSCH in the same component carrier
  • Flexible control of all the necessary parameters, including: number of Component Carriers, MIMO configuration for Downlink and Uplink, RS configuration, PUCCH format selection

System-level Simulator Features (LTE MAC Lab)

  • Environments: Rural, Urban, Suburban;
  • Pathloss models : Modified Okumura – Hata model, 3GPP TS 36.942 Model, Winner Model, COST 231 Model;
  • Multipath models: 3GPP TS 36.942 Model, Winner Model, Random Distribution Model;
  • Users Mobility Models: Random Direction Model, Random Way Point Model;
  • Antenas Characteristic Model; Omnidirectional Characteristic, 1 or 3 Sectors Characteristic
  • RRM Functionalities: scheduling (PF, RR, max CQI), link adaptation
  • LTE channel bands: 900MHz, 1800MHz, 2100MHz, 2500MHz
  • All LTE bandwidths: 1.4MHz, 3MHz, 5MHz, 10MHz, 15MHz, 20MHz
  • Dedicated functions for user defined algorithms (i.e. open API)
  • Flexible control of all the necessary parameters

  • R&D, prototyping and design of PHY layer baseband functions and algorithms including proprietary implementations and IPR, where LTE LAB™ shortens the development time
  • Development of RF processing and of higher layers (e.g., MAC) and protocols, where LTE LAB™ serves as a reference model
  • Testing and verification of the developed algorithms or complete equipment elements, where LTE LAB™ provides test and reference signal vectors
  • Education, including specialized technical trainings, as well as university classes, where LTE LAB™ can be used to demonstrate LTE system behaviour and make those events more practical

Sunday, August 19, 2012

NS3 (Compile and run the simulator) on linux (ubuntu, fedora, redhat)

NS3 (Compile and Run Simulator Program)


On the previous article I wrote how to deploy NS3 on Ubuntu 10.10. Now I would like to share how to build and to run your network simulator program into NS3.

Development Tools

As we know, NS3 support development programming C++ and Python.  There are many C++/Python development tools so you choice a tool you have experiences about development.

Getting Started

We start to create folder test on NS3 build folder
n3
Create file hello-world-ns3.cc and write code below ( this code I copy paste from NS3 sample codes, main-simple.cc)
#include <iostream>
 
#include "ns3/core-module.h"
#include "ns3/helper-module.h"
#include "ns3/node-module.h"
#include "ns3/simulator-module.h"
 
using namespace ns3;
 
static void
GenerateTraffic (Ptr<Socket> socket, uint32_t size)
{
  std::cout << "at=" << Simulator::Now ().GetSeconds () << "s, tx bytes=" << size << std::endl;
  socket->Send (Create<Packet> (size));
  if (size > 0)
    {
      Simulator::Schedule (Seconds (0.5), &GenerateTraffic, socket, size - 50);
    }
  else
    {
      socket->Close ();
    }
}
 
static void
SocketPrinter (Ptr<Socket> socket)
{
  Ptr<Packet> packet;
  while (packet = socket->Recv ())
    { 
      std::cout << "at=" << Simulator::Now ().GetSeconds () << "s, rx bytes=" << packet->GetSize () << std::endl;
    }
}
 
static void
PrintTraffic (Ptr<Socket> socket)
{
  socket->SetRecvCallback (MakeCallback (&SocketPrinter));
}
 
void
RunSimulation (void)
{
  NodeContainer c;
  c.Create (1);
 
  InternetStackHelper internet;
  internet.Install (c);
 
 
  TypeId tid = TypeId::LookupByName ("ns3::UdpSocketFactory");
  Ptr<Socket> sink = Socket::CreateSocket (c.Get (0), tid);
  InetSocketAddress local = InetSocketAddress (Ipv4Address::GetAny (), 80);
  sink->Bind (local);
 
  Ptr<Socket> source = Socket::CreateSocket (c.Get (0), tid);
  InetSocketAddress remote = InetSocketAddress (Ipv4Address::GetLoopback (), 80);
  source->Connect (remote);
 
  GenerateTraffic (source, 500);
  PrintTraffic (sink);
 
 
  Simulator::Run ();
 
  Simulator::Destroy ();
}
 
int main (int argc, char *argv[])
{
  RunSimulation ();
 
  return 0;
}
Create wscript file and write this script
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 
def build(bld):
    env = bld.env_of_name('default')
    if not env['ENABLE_EXAMPLES']:
        return;
    
    obj = bld.create_ns3_program('hello-world-ns3',
                                 ['core', 'simulator'])
    obj.source = 'hello-world-ns3.cc'
 
Create waf file and write this script
exec "`dirname "$0"`"/../waf "$@"

Compile and Run

You can compile and run using ./waf . Make sure you ‘re in test folder and run this script
./waf --run "hello-world-ns3"
Sample of output program you can see picture below
n4
Done. This is a simple program for NS3