Giter VIP home page Giter VIP logo

goran's Introduction

goran

goran is 5G NR radio access network packages that commonly used in the workflow of telecom RF engineers for simulations and calculations. Visit goran project landing page here -> go.dev///goran.

CI Go Reference



Documentations

Static Badge

Visit official documentations page here.

Force official documentations re-indexing to update to latest version: Click Link1 and Link2 and wait for a moment.

Supported Packages

Static Badge

| Technology | Package       | Function                      | Purpose                                          |
|------------|---------------|-------------------------------|--------------------------------------------------|
| 5G NR      | nrConversion  | BandwidthToRB()               | Converts Bandwidth (MHz) to RB (Count)           |
| 5G NR      | nrConversion  | McsToQm()                     | Converts MCS to Modulation Order (bits/Symbol)   |
| 5G NR      | nrConversion  | McsToR()                      | Converts MCS to Target Code Rate (R)             |
| 5G NR      | nrConversion  | McsToSe()                     | Converts MCS to Spectral Efficiency (bps/Hz)     |
| 5G NR      | nrConversion  | NumerologyToScs()             | Converts Numerology (µ) to SCS (kHz)             |
| 5G NR      | nrConversion  | NumerologyToSlotPerFrame()    | Converts Numerology (µ) to Slot/Frame (Count)    |
| 5G NR      | nrConversion  | NumerologyToSlotPerSubframe() | Converts Numerology (µ) to Slot/Subframe (Count) |
| 5G NR      | nrConversion  | NumerologyToSymbolPerSlot()   | Converts Numerology (µ) to Symbol/Slot (Count)   |
| 5G NR      | nrConversion  | QCIToPacketDelay()            | Converts 5QI to Packet Delay (ms)                |
| 5G NR      | nrConversion  | QCIToPacketLoss()             | Converts 5QI to Packet Loss Rate (%)             |
| 5G NR      | nrConversion  | QCIToPriority()               | Converts 5QI to Priority                         |
| 5G NR      | nrConversion  | QCIToType()                   | Converts 5QI to Bit Rate Type                    |
| 5G NR      | nrDownlink    | Tbs()                         | Calculates Transport Block Size (Bytes)          |
| 5G NR      | nrMeasurement | SsRsrp()                      | Calculates SS-RSRP (dBm)                         |
| 5G NR      | nrMeasurement | SsRsrq()                      | Calculates SS-RSRQ (dB)                          |
| 5G NR      | nrMeasurement | SsSinr()                      | Calculates SS-SINR (dB)                          |
| 5G NR      | nrMeasurement | SsRssi()                      | Calculates SS-RSSI (dBm)                         |
| 5G NR      | nrPathloss    | FreeSpace()                   | Generates Free Space Path Loss (dB)              |

Getting Started

Static Badge

# Go to project directory.
cd <project-directory> 

# Initialize Go modules.
go mod init <module-name> 

# Download `goran` package.
go get github.com/zulfadlizainal/goran 

# Get updated package. (Optional)
go get -u github.com/zulfadlizainal/goran

Static Badge

package main

import (
	"fmt"
	"log"

	// Import goran package
	"github.com/zulfadlizainal/goran/pkg/nrConversion"
)

func main() {

	bandwidth := 20
	freqrange := "Sub6" 
	scs := 30 

	// Call the function
	rbCount, err := nrConversion.BandwidthToRB(bandwidth, freqrange, scs)

	if err != nil {
		log.Fatalf("Error: %v", err)
	}

	fmt.Printf("RB count = %vRB\n", rbCount)

}

Verification

Static Badge

git clone github.com/zulfadlizainal/goran.git # Clone repository.
cd goran/pkg/<package-name> # Go to test directory.
go test # Run Go test.

Contribution

Static Badge

# What to Build

1. Flexible. No explicit roadmap. 
2. Build functions to address common RF engineers workflow.
3. Avoid functions creation for non-existing problems.
# Wish List

1. Generate urban and rural path loss.
2. Calculate PRACH power control, PUSCH power control. 
3. Calculate impact of measurement gap to downlink throughput.
4. Examples of goran packages usage.

Static Badge

# Guidelines

1. No dependencies outside Go standard library.
2. Include comprehensive comments for the codes. Documentation is automated based on the comments.
3. Include test for each functions with desired and undesired input.
4. Include error control. Return value for error is flexible but need to specify.


Buy Me A Coffee

Licenses

GNU AFFERO GPL Version 3

goran's People

Contributors

zulfadlizainal avatar

Watchers

 avatar  avatar

goran's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.