antenna

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 14, 2020 License: Apache-2.0, LGPL-3.0 Imports: 7 Imported by: 4

Documentation

Overview

Implements a simple phase delay from different n-Antenna elements

Index

Constants

View Source
const (
	LinearPhaseArray = iota
	CircularPhaseArray
)

Variables

View Source
var ArrayTypes = [...]string{
	"LinearPhaseArray",
	"CircularPhaseArray",
}
View Source
var Bobwriter io.Writer
View Source
var Nodes = 360
View Source
var Radius float64 = 1

Functions

func BSPatternDb

func BSPatternDb(theta, phi float64) (az, el, Ag float64)

func BSPatternIndoorHS_Db

func BSPatternIndoorHS_Db(theta, phi float64) (az, el, Ag float64)

BSPatternIndoorHS_Db generates the antenna gain for given theta,phi based on Table 8-7 in Report ITU-R M.2412

func ElementGainDb

func ElementGainDb(theta, phi float64, ant SettingAAS) (az, el, Ag float64)

func GetEJtheta

func GetEJtheta(degree float64) complex128

func GetLamda

func GetLamda(freq float64) float64

func Radian

func Radian(degree float64) float64

func RunAAS

func RunAAS(params SettingAAS)

func RunJSON

func RunJSON(jstring string)

func UEPatternDb

func UEPatternDb(theta, phi float64) (az, el, Ag float64)

UEPatternDb generates the antenna gain for given theta,phi based Table 8-8 in Report ITU-R M.2412 for fGHZ > 4GHz i.e 30GHz & 70GHz

func UEPatternOmniDb

func UEPatternOmniDb(theta, phi float64) float64

UEPatternDb generates the antenna gain for given theta,phi based OMNI Directional gain..

func Wrap0To180

func Wrap0To180(degree float64) float64

Wrap0To180 wraps the input angle to 0 to 180

func Wrap180To180

func Wrap180To180(degree float64) float64

Wrap180To180 wraps the input angle to -180 to 180

Types

type ArrayType

type ArrayType int

func (ArrayType) String

func (c ArrayType) String() string

type SettingAAS

type SettingAAS struct {
	UID    string `datastore:"-" json:"uid"`
	NodeID int    // Associated Node ID where relevant

	FreqHz float64

	N                                int
	Nodes                            int
	Omni                             bool
	MfileName                        string
	VTiltAngle                       float64
	ElectronicTilt                   []float64
	Dscan                            []float64
	HTiltAngle                       float64
	BeamTilt                         float64
	DisableBeamTit                   bool
	HoldOn                           bool
	VBeamWidth, HBeamWidth           float64
	SLAV                             float64
	ESpacingVFactor, ESpacingHFactor float64
	Centre                           vlib.Location3D

	AASArrayType       ArrayType
	CurveWidthInDegree float64
	CurveRadius        float64
	GainDb             float64
	PanelAz            []float64
	PanelEl            []float64
	AntennaConfig      []int
	Polarization       []float64
	// contains filtered or unexported fields
}

func NewAAS

func NewAAS() *SettingAAS

func (*SettingAAS) AASGain

func (params *SettingAAS) AASGain(dest vlib.Location3D) (gain float64, effectiveThetaH, effectiveThetaV float64)

func (*SettingAAS) AASGain2

func (params *SettingAAS) AASGain2(thetaH, thetaV float64) (gaindB float64)

AASGain2 returns the AAS gain for the given azimuth and elevation angle (degrees), gain in dB

func (SettingAAS) CombPatternDb

func (ant SettingAAS) CombPatternDb(theta, phi float64) (aag map[int]map[int]vlib.MatrixF, bestPanelID, bestBeamID int, Az, El float64)

func (*SettingAAS) CreateCircularElements

func (params *SettingAAS) CreateCircularElements(centre vlib.Location3D)

func (*SettingAAS) CreateElements

func (params *SettingAAS) CreateElements(centre vlib.Location3D)

func (*SettingAAS) CreateLinearElements

func (params *SettingAAS) CreateLinearElements(centre vlib.Location3D)

func (SettingAAS) ElementDirectionGain

func (s SettingAAS) ElementDirectionGain(theta float64) float64

func (SettingAAS) ElementDirectionHGain

func (s SettingAAS) ElementDirectionHGain(degree float64) float64

Angle expected between -180 to 180 / in Linear Scale

func (SettingAAS) ElementDirectionVGain

func (s SettingAAS) ElementDirectionVGain(degree float64) float64

Angle expected between 0 to 180 / in Linear Scale

func (SettingAAS) ElementEffectiveGain

func (s SettingAAS) ElementEffectiveGain(thetaH, thetaV float64) float64

func (*SettingAAS) FindWeights

func (params *SettingAAS) FindWeights(theta float64) vlib.VectorC

func (*SettingAAS) Get

func (s *SettingAAS) Get() string

func (*SettingAAS) GetElements

func (params *SettingAAS) GetElements() []vlib.Location3D

func (*SettingAAS) GetLamda

func (params *SettingAAS) GetLamda() float64

func (*SettingAAS) GetRxPhase

func (params *SettingAAS) GetRxPhase(dest vlib.Location3D) []complex128

/ Returns the Phase of the Signal at the given location from all its elements after applying weights at its elements

func (*SettingAAS) Set

func (s *SettingAAS) Set(str string)

func (*SettingAAS) SetDefault

func (s *SettingAAS) SetDefault()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL