TUsignal¶
-
class
pylayers.signal.bsignal.
TUsignal
(x=array([], dtype=float64), y=array([], dtype=float64), label=[])[source]¶ Bases:
pylayers.signal.bsignal.TBsignal
,pylayers.signal.bsignal.Usignal
Uniform signal in time domain
This class inheritates from TBsignal and Usignal
The signal can either be complex or real
Methods Summary
Efirst_loc
(nint, E0)find the Efirst using the mean like
EnImpulse
(**kwargs)Create an energy normalized Gaussian impulse (Usignal)
MaskImpulse
(**kwargs)MaskImpulse : Create an Energy normalized Gaussian impulse (Usignal)
Yadd_zeros2l
(N)time domain extension on the left with N zeros
Yadd_zeros2r
(N)time domain extension on right with N zeros
align
(u2)align two TUsignal on a same base
convolve
(u)time domain convolution
correlate
(s[, normalized])correlates with an other TUsignal
corrgauss
(sigma)Correlate TUsignal with a normalized gaussian of standard deviation sigma
diff
()numerical differentiation TUsignal
esd
([mode])Calculate the energy spectral density of the U signal
fft
([shift])forward fast Fourier transform of TUsignal
fftsh
()returns an FHsignal
filter
([order, wp, ws, ftype])TUsignal filtering
ft
()return the associated FUsignal
ftshift
()return the associated FUsignal
info
()display information about TUsignal
psd
([Tpns, R, periodic])calculate TUsignal power spectral density
shift
(tau)shift the Usignal by tau (expressed in the same unit as Bsignal.x)
showpsd
([fig, ax, display, PRPns])show psd
Methods Documentation
-
EnImpulse
(**kwargs)[source]¶ Create an energy normalized Gaussian impulse (Usignal)
fcGHz : float WGHz : float threshdB : float feGHz : float
-
Yadd_zeros2l
(N)[source]¶ time domain extension on the left with N zeros
- Ninteger
number of additinal zero values
Yadd_zeros2r
Work only for single y
-
Yadd_zeros2r
(N)[source]¶ time domain extension on right with N zeros
- Ninteger
number of additinal zero values
Yadd_zeros2l
-
align
(u2)[source]¶ align two TUsignal on a same base
returns a list which contains the two aligned signals
It is assume that both signal u1 and u2 share the same dx This function can be improved regarding time granularity
u2 : TUsignal
TUsignal y extended TU signal, x bases are adjusted
>>> import matplotlib.pylab as plt >>> from pylayers.signal.bsignal import * >>> i1 = TUsignal() >>> i2 = TUsignal() >>> i1.EnImpulse() >>> i2.EnImpulse() >>> i2.translate(-10) >>> i3 = i1.align(i2) >>> fig,ax=i3.plot(typ=['v']) >>> plt.show()
-
correlate
(s, normalized=True)[source]¶ correlates with an other TUsignal
s : TUsignal normalized : boolean
default True
The time step dx should be the same
The chosen time reference is the one of the self signal This means that this function can be used to detect events appearing in the self signal by correlating with signal ..math:s, maximum of the correlation function appears in the proper time of the self signal history.
Interpretation of the correlation levels
We assume that s1 is the self signal and s2 is the correlating signal
s1 = a1 * sn(t-tau) where sn is normalized in energy s2 = a2 * sn(t) ” ” ” ” “
the maximum of correlation appears at time tau and its value is
max (s1.correlate(s2,True)) = a1*a2
- In the case of the propagation simulation we have
s1 : the time domain UWB received waveform s2 : the corresponding emitted waveform s2,
To determine the ratio a1/a2 or a2/a1 in order to evaluate the propagation Loss L = 20 log10(a2/a1)
This calculus assumes implicitely that the shape of the transmitted signal has not been modified during the propagation, which is a strong hypothesis. This calculus is then a minorant of the received energy.
L = max(s1.correlate(s2,True)/s1.Energy) with a1**2 = sum(s1**s1)*dx
-
corrgauss
(sigma)[source]¶ Correlate TUsignal with a normalized gaussian of standard deviation sigma
- sigmafloat
standard deviation of Gaussian
-
esd
(mode='bilateral')[source]¶ Calculate the energy spectral density of the U signal
- modestring
‘unilateral’ | ‘bilateral’
FHsignal : if mode == ‘bilateral’ FUsignal : if mode == ‘unilateral’
FHsignal.unrex
-
fft
(shift=False)[source]¶ forward fast Fourier transform of TUsignal
- shiftboolean
default False
This fft is a scaled fft and takes into account the value of the sampling period.
FHsignal
>>> from pylayers.signal.bsignal import * >>> e = TUsignal() >>> e.EnImpulse() >>> E = e.fft()
-
fftsh
()[source]¶ returns an FHsignal
This fft is a scaled fft and takes into account the value of the sampling period.
FHsignal : Frequency signal with enforced Hermitian symetry
-
filter
(order=4, wp=0.3, ws=0.4, ftype='butter')[source]¶ TUsignal filtering
order : int wp : float ws : float ftype : string
O : Output filtered TUsignal
-
ftshift
()[source]¶ return the associated FUsignal
H : FUsignal
pylayers.signal.bsignal.TUsignal.fftsh pylayers.signal.waveform.ip_generic
-
psd
(Tpns=100, R=50, periodic=True)[source]¶ calculate TUsignal power spectral density
R : Resistance (default 50 Ohms) Tpns : real
PRP (default 100 ns)
Note
If time is in ns the resulting PSD is expressed in dBm/MHz (~10-9)
-