@@ -1584,6 +1584,26 class PulsePair_vRF(Operation): | |||||
1584 | ''' |
|
1584 | ''' | |
1585 | Return the PULSEPAIR and the profiles used in the operation |
|
1585 | Return the PULSEPAIR and the profiles used in the operation | |
1586 | Affected : self.__profileIndex |
|
1586 | Affected : self.__profileIndex | |
|
1587 | NOTA: | |||
|
1588 | 1.) Calculo de Potencia | |||
|
1589 | PdBm = 10 *log10(10*(I**2 + Q**2)) Unidades dBm | |||
|
1590 | self.__buffer = I + Qj | |||
|
1591 | ||||
|
1592 | 2.) Data decodificada | |||
|
1593 | Se toma como referencia el factor estimado en jrodata.py y se adiciona | |||
|
1594 | en PulsePair solo pwcode. | |||
|
1595 | if self.flagDecodeData: | |||
|
1596 | pwcode = numpy.sum(self.code[0]**2) | |||
|
1597 | normFactor = self.nProfiles * self.nIncohInt * self.nCohInt * pwcode * self.windowOfFilter | |||
|
1598 | 3.) hildebrand_sekhon | |||
|
1599 | Se pasa el arreglo de Potencia pair0 que contiene canales perfiles y altura dividiendole entre el | |||
|
1600 | factor pwcode. | |||
|
1601 | 4.) data_power | |||
|
1602 | Este parametro esta dividido por los factores: nro. perfiles, nro intCoh y pwcode | |||
|
1603 | 5.) lag_0 | |||
|
1604 | Este parametro esta dividido por los factores: nro. perfiles, nro intCoh y pwcode | |||
|
1605 | Igual a data_power | |||
|
1606 | ||||
1587 | ''' |
|
1607 | ''' | |
1588 | #----------------- Remove DC----------------------------------- |
|
1608 | #----------------- Remove DC----------------------------------- | |
1589 | if self.removeDC==True: |
|
1609 | if self.removeDC==True: | |
@@ -1592,16 +1612,20 class PulsePair_vRF(Operation): | |||||
1592 | dc= numpy.tile(tmp,[1,self.__nProf,1]) |
|
1612 | dc= numpy.tile(tmp,[1,self.__nProf,1]) | |
1593 | self.__buffer = self.__buffer - dc |
|
1613 | self.__buffer = self.__buffer - dc | |
1594 | #------------------Calculo de Potencia ------------------------ |
|
1614 | #------------------Calculo de Potencia ------------------------ | |
1595 | pair0 = self.__buffer*numpy.conj(self.__buffer) |
|
1615 | pair0 = self.__buffer*numpy.conj(self.__buffer) * 10.0 | |
1596 | pair0 = pair0.real |
|
1616 | pair0 = pair0.real | |
1597 | lag_0 = numpy.sum(pair0,1) |
|
1617 | lag_0 = numpy.sum(pair0,1) | |
1598 | #-----------------Calculo de Cscp------------------------------ New |
|
1618 | #-----------------Calculo de Cscp------------------------------ New | |
1599 | cspc_pair01 = self.__buffer[0]*self.__buffer[1] |
|
1619 | cspc_pair01 = self.__buffer[0]*self.__buffer[1] | |
|
1620 | #------------------ Data Decodificada------------------------ | |||
|
1621 | pwcode = 1 | |||
|
1622 | if dataOut.flagDecodeData == True: | |||
|
1623 | pwcode = numpy.sum(dataOut.code[0]**2) | |||
1600 | #------------------Calculo de Ruido x canal-------------------- |
|
1624 | #------------------Calculo de Ruido x canal-------------------- | |
1601 | self.noise = numpy.zeros(self.__nch) |
|
1625 | self.noise = numpy.zeros(self.__nch) | |
1602 | for i in range(self.__nch): |
|
1626 | for i in range(self.__nch): | |
1603 | daux = numpy.sort(pair0[i,:,:],axis= None) |
|
1627 | daux = numpy.sort(pair0[i,:,:],axis= None) | |
1604 | self.noise[i]=hildebrand_sekhon( daux ,self.nCohInt) |
|
1628 | self.noise[i]=hildebrand_sekhon( daux/pwcode ,self.nCohInt) | |
1605 |
|
1629 | |||
1606 | self.noise = self.noise.reshape(self.__nch,1) |
|
1630 | self.noise = self.noise.reshape(self.__nch,1) | |
1607 | self.noise = numpy.tile(self.noise,[1,self.__nHeis]) |
|
1631 | self.noise = numpy.tile(self.noise,[1,self.__nHeis]) | |
@@ -1610,7 +1634,7 class PulsePair_vRF(Operation): | |||||
1610 | #------------------ Potencia recibida= P , Potencia senal = S , Ruido= N-- |
|
1634 | #------------------ Potencia recibida= P , Potencia senal = S , Ruido= N-- | |
1611 | #------------------ P= S+N ,P=lag_0/N --------------------------------- |
|
1635 | #------------------ P= S+N ,P=lag_0/N --------------------------------- | |
1612 | #-------------------- Power -------------------------------------------------- |
|
1636 | #-------------------- Power -------------------------------------------------- | |
1613 | data_power = lag_0/(self.n*self.nCohInt) |
|
1637 | data_power = lag_0/(self.n*self.nCohInt*pwcode) | |
1614 | #--------------------CCF------------------------------------------------------ |
|
1638 | #--------------------CCF------------------------------------------------------ | |
1615 | data_ccf =numpy.sum(cspc_pair01,axis=0)/(self.n*self.nCohInt) |
|
1639 | data_ccf =numpy.sum(cspc_pair01,axis=0)/(self.n*self.nCohInt) | |
1616 | #------------------ Senal -------------------------------------------------- |
|
1640 | #------------------ Senal -------------------------------------------------- | |
@@ -1629,7 +1653,7 class PulsePair_vRF(Operation): | |||||
1629 | data_velocity = (self.lambda_/2.0)*data_freq |
|
1653 | data_velocity = (self.lambda_/2.0)*data_freq | |
1630 |
|
1654 | |||
1631 | #---------------- Potencia promedio estimada de la Senal----------- |
|
1655 | #---------------- Potencia promedio estimada de la Senal----------- | |
1632 |
lag_0 = |
|
1656 | lag_0 = data_power | |
1633 | S = lag_0-self.noise |
|
1657 | S = lag_0-self.noise | |
1634 |
|
1658 | |||
1635 | #---------------- Frecuencia Doppler promedio --------------------- |
|
1659 | #---------------- Frecuencia Doppler promedio --------------------- |
General Comments 0
You need to be logged in to leave comments.
Login now