Documentation ¶
Overview ¶
Implements a simple phase delay from different n-Antenna elements
Index ¶
- Constants
- Variables
- func BSPatternDb(theta, phi float64) (az, el, Ag float64)
- func BSPatternIndoorHS_Db(theta, phi float64) (az, el, Ag float64)
- func ElementGainDb(theta, phi float64, ant SettingAAS) (az, el, Ag float64)
- func GetEJtheta(degree float64) complex128
- func GetLamda(freq float64) float64
- func Radian(degree float64) float64
- func RunAAS(params SettingAAS)
- func RunJSON(jstring string)
- func UEPatternDb(theta, phi float64) (az, el, Ag float64)
- func UEPatternOmniDb(theta, phi float64) float64
- func Wrap0To180(degree float64) float64
- func Wrap180To180(degree float64) float64
- type ArrayType
- type SettingAAS
- func (params *SettingAAS) AASGain(dest vlib.Location3D) (gain float64, effectiveThetaH, effectiveThetaV float64)
- func (params *SettingAAS) AASGain2(thetaH, thetaV float64) (gaindB float64)
- func (ant SettingAAS) CombPatternDb(theta, phi float64) (aag map[int]map[int]vlib.MatrixF, bestPanelID, bestBeamID int, Az, El float64)
- func (params *SettingAAS) CreateCircularElements(centre vlib.Location3D)
- func (params *SettingAAS) CreateElements(centre vlib.Location3D)
- func (params *SettingAAS) CreateLinearElements(centre vlib.Location3D)
- func (s SettingAAS) ElementDirectionGain(theta float64) float64
- func (s SettingAAS) ElementDirectionHGain(degree float64) float64
- func (s SettingAAS) ElementDirectionVGain(degree float64) float64
- func (s SettingAAS) ElementEffectiveGain(thetaH, thetaV float64) float64
- func (params *SettingAAS) FindWeights(theta float64) vlib.VectorC
- func (s *SettingAAS) Get() string
- func (params *SettingAAS) GetElements() []vlib.Location3D
- func (params *SettingAAS) GetLamda() float64
- func (params *SettingAAS) GetRxPhase(dest vlib.Location3D) []complex128
- func (s *SettingAAS) Set(str string)
- func (s *SettingAAS) SetDefault()
Constants ¶
const ( LinearPhaseArray = iota CircularPhaseArray )
Variables ¶
var ArrayTypes = [...]string{
"LinearPhaseArray",
"CircularPhaseArray",
}
var Bobwriter io.Writer
var Nodes = 360
var Radius float64 = 1
Functions ¶
func BSPatternDb ¶
func BSPatternIndoorHS_Db ¶
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 RunAAS ¶
func RunAAS(params SettingAAS)
func UEPatternDb ¶
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 ¶
UEPatternDb generates the antenna gain for given theta,phi based OMNI Directional gain..
func Wrap0To180 ¶
Wrap0To180 wraps the input angle to 0 to 180
func Wrap180To180 ¶
Wrap180To180 wraps the input angle to -180 to 180
Types ¶
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 (*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()