ptolemy.math
Class SignalProcessing.SqrtRaisedCosineSampleGenerator
java.lang.Object
ptolemy.math.SignalProcessing.SqrtRaisedCosineSampleGenerator
- All Implemented Interfaces:
- DoubleUnaryOperation
- Enclosing class:
- SignalProcessing
public static class SignalProcessing.SqrtRaisedCosineSampleGenerator
- extends java.lang.Object
- implements DoubleUnaryOperation
This class generates samples of a square-root raised cosine pulse.
The function computed is:
4 x(cos((1+x)PI t/T) + T sin((1-x)PI t/T)/(4x t/T))
h(t) = ---------------------------------------------------
PI sqrt(T)(1-(4 x t/T)2)
where x is the the excess bandwidth.
This pulse convolved with itself will, in principle, be equal
to a raised cosine pulse. However, because the pulse decays rather
slowly for low excess bandwidth, this ideal is not
closely approximated by short finite approximations of the pulse.
This implementation was ported from the Ptolemy 0.x implementation
by Joe Buck, Brian Evans, and Edward A. Lee.
Reference: E. A. Lee and D. G. Messerschmitt,
Digital Communication, Second Edition,
Kluwer Academic Publishers, Boston, 1994.
The implementation was then further optimized to cache computations
that are independent of time.
Method Summary |
double |
operate(double time)
Operate on the operand, returning a value of the same type. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
_oneOverFZC
private final double _oneOverFZC
_sqrtFZC
private final double _sqrtFZC
_squareFZC
private final double _squareFZC
_onePlus
private final double _onePlus
_oneMinus
private final double _oneMinus
_excess
private final double _excess
_fourExcess
private final double _fourExcess
_eightExcessPI
private final double _eightExcessPI
_sixteenExcessSquared
private final double _sixteenExcessSquared
_sampleAtZero
private final double _sampleAtZero
_fourExcessOverPISqrtFZC
private final double _fourExcessOverPISqrtFZC
_fzcSqrtFZCOverEightExcessPI
private final double _fzcSqrtFZCOverEightExcessPI
_fzcOverFourExcess
private final double _fzcOverFourExcess
_oneMinusFZCOverFourExcess
private final double _oneMinusFZCOverFourExcess
SignalProcessing.SqrtRaisedCosineSampleGenerator
public SignalProcessing.SqrtRaisedCosineSampleGenerator(double firstZeroCrossing,
double excess)
- Construct a SqrtRaisedCosineSampleGenerator.
- Parameters:
firstZeroCrossing
- The time of the first zero crossing of
the corresponding raised cosine pulse.excess
- The excess bandwidth of the corresponding raised
cosine pulse (also called the rolloff factor).
operate
public final double operate(double time)
- Description copied from interface:
DoubleUnaryOperation
- Operate on the operand, returning a value of the same type.
- Specified by:
operate
in interface DoubleUnaryOperation
- Parameters:
time
- The operand.
- Returns:
- The results of the operation.