represents a telegraph process with rate μ.
TelegraphProcess
represents a telegraph process with rate μ.
Details
- TelegraphProcess is a continuous-time and discrete-state random process.
- TelegraphProcess at time t takes the value 1 if the number of events in the interval 0 to t is even and -1 otherwise.
- The number of events in the interval 0 to t follows PoissonDistribution[μ t].
- The times between events are independent and follow ExponentialDistribution[μ].
- TelegraphProcess allows μ to be any positive real number.
- TelegraphProcess can be used with such functions as Mean, PDF, Probability, and RandomFunction.
Examples
open all close allBasic Examples (3)
Simulate the telegraph process:
data = RandomFunction[TelegraphProcess[1.3], {0, 15}]ListStepPlot[data, Filling -> Axis]Mean[TelegraphProcess[λ][t]]Variance[TelegraphProcess[λ][t]]CovarianceFunction[TelegraphProcess[λ], s, t]Plot3D[CovarianceFunction[TelegraphProcess[.3], s, t], {s, 0, 5}, {t, 0, 5}, ColorFunction -> "Rainbow"]Scope (12)
Basic Uses (6)
Simulate an ensemble of paths:
data = RandomFunction[TelegraphProcess[1.7], {0, 15}, 2];ListStepPlot[data, Filling -> Axis]Simulate with arbitrary precision:
RandomFunction[TelegraphProcess[3], {3}, WorkingPrecision -> 20]["Path"]Compare paths for different values of the process parameter:
sample[λ_] := (SeedRandom[3];RandomFunction[TelegraphProcess[λ], {0, 20}])pars = {.6, 1, 3.5};ListStepPlot[sample[#], Filling -> Axis, PlotLabel -> StringJoin["λ = ", ToString[#]]]& /@ parsProcess parameter estimation from sample data:
sample = RandomFunction[TelegraphProcess[.3], {1, 10 ^ 3}];edist = EstimatedProcess[sample, TelegraphProcess[λ]]CorrelationFunction[TelegraphProcess[λ], s, t]Absolute correlation function:
AbsoluteCorrelationFunction[TelegraphProcess[λ], s, t]Process Slice Properties (6)
Telegraph process assumes only two values:
PDF[TelegraphProcess[λ][t], x]Compare the first-order PDFs in time for the two values:
Plot[Evaluate@Table[PDF[TelegraphProcess[2.3][t], x], {x, {-1, 1}}], {t, 0, 1}, Filling -> Axis, PlotLegends -> {"x = -1", "x = 1"}]The limiting value is the same for both values:
Limit[PDF[TelegraphProcess[λ][t], -1], t -> ∞, Assumptions -> λ > 0]Limit[PDF[TelegraphProcess[λ][t], 1], t -> ∞, Assumptions -> λ > 0]PDF[TelegraphProcess[λ][{s, t}], {x, y}]//PiecewiseExpandSum[ PDF[TelegraphProcess[λ][{s, t}], {x, y}], {x, -1, 1}, {y, -1, 1}]//FullSimplifyCompute an expectation of an expression:
Expectation[x[t] ^ 3, xTelegraphProcess[λ]]//FullSimplifyCalculate the probability of an event:
Probability[x[t] > .5, xTelegraphProcess[λ]]Plot[Evaluate@Table[Skewness[TelegraphProcess[λ][t]], {λ, pars = {.3, .5, 2}}], {t, 0, 2}, PlotLegends -> (StringJoin["λ = ", ToString[#]]& /@ pars)]Skewness[TelegraphProcess[λ][t]]Limit[Skewness[TelegraphProcess[λ][t]], t -> ∞, Assumptions -> λ > 0]Limit[Skewness[TelegraphProcess[λ][t]], t -> 0, Assumptions -> λ > 0, Direction -> -1]Plot[Evaluate@Table[Kurtosis[TelegraphProcess[λ][t]], {λ, pars = {.3, .5, 2}}], {t, 0, 2}, PlotLegends -> (StringJoin["λ = ", ToString[#]]& /@ pars)]Kurtosis[TelegraphProcess[λ][t]]Limit[Kurtosis[TelegraphProcess[λ][t]], t -> ∞, Assumptions -> λ > 0]Limit[Kurtosis[TelegraphProcess[λ][t]], t -> 0, Assumptions -> λ > 0, Direction -> -1]Moment[TelegraphProcess[λ][t], r]MomentGeneratingFunction[TelegraphProcess[λ][t], w]CharacteristicFunction[TelegraphProcess[λ][t], w]CentralMoment and its generating function:
CentralMoment[TelegraphProcess[λ][t], r]CentralMomentGeneratingFunction[TelegraphProcess[λ][t], w]FactorialMoment and its generating function:
FactorialMoment[TelegraphProcess[λ][t], r]FactorialMomentGeneratingFunction[TelegraphProcess[λ][t], w]Cumulant[TelegraphProcess[λ][t], 3]CumulantGeneratingFunction[TelegraphProcess[λ][t], w]Applications (1)
The collision times for a particle moving between two barriers are distributed exponentially, with a mean of 3 microseconds. If the particle starts at the right-hand barrier (
) and moves towards the left-hand barrier (
), then simulate the collision process for 100 microseconds:
collisionProcess = TelegraphProcess[1 / 3];sample = RandomFunction[collisionProcess, {0, 100}];ListStepPlot[sample]Variance for the slice distribution:
Variance[collisionProcess[100]]N[%, 60]Compare with the variance of a random sample:
Variance[RandomVariate[collisionProcess[100], 10 ^ 4]]N[%, 60]Properties & Relations (6)
TelegraphProcess is a jump process:
path = RandomFunction[TelegraphProcess[2], {0, 10}];
f = path["PathFunction"];
jumps = path["Times"];Plot[f[t], {t, 0, 10}, Exclusions -> jumps, ExclusionsStyle -> Red]The telegraph process is not weakly stationary:
WeakStationarity[TelegraphProcess[λ]]The absolute correlation depends only on time differences:
AbsoluteCorrelationFunction[TelegraphProcess[λ], t, t + h]But the mean function is not constant:
Mean[TelegraphProcess[λ][t]]It is, however, asymptotically weakly stationary:
Limit[Mean[TelegraphProcess[λ][t]], t -> ∞, Assumptions -> λ > 0]The number of jumps at time t follows a PoissonDistribution:
𝒟[λ_, t_] = PoissonDistribution[λ t];Generate a random sample of paths from a telegraph process and record their lengths:
data[λ_, t_] := Length /@ Table[RandomFunction[TelegraphProcess[λ], {t}]["Times"], {10 ^ 3}]Block[{λ = 1.3, t = 150}, Show[Histogram[data[λ, t], 40, "PDF"], DiscretePlot[PDF[𝒟[λ, t], x], {x, 140, 260}]]]The times between jumps follow an ExponentialDistribution:
𝒟[λ_] = ExponentialDistribution[λ];Generate a random sample of paths from a telegraph process:
data[λ_] := Differences[RandomFunction[TelegraphProcess[λ], {10 ^ 3}]["Times"]]Block[{λ = 1.3}, Show[Histogram[data[λ], 40, "PDF"], Plot[PDF[𝒟[λ], x], {x, 0, 6}, PlotRange -> All]]]Table[DiscretePlot[Probability[(x[1.4] == Subscript[x, 2])(x[.3] == Subscript[x, 1]), xTelegraphProcess[.7]], {Subscript[x, 2], -2, 2}, ExtentSize -> 1 / 2, PlotLabel -> Row[{"SubscriptBox[x, 1] = ", Subscript[x, 1]}]], {Subscript[x, 1], {1, -1}}]Probability[(x[Subscript[t, 2]] == Subscript[x, 2])(x[Subscript[t, 1]] == Subscript[x, 1]), xTelegraphProcess[p], Assumptions -> 0 < Subscript[t, 1] < Subscript[t, 2] && (Subscript[x, 1] == -1 || Subscript[x, 1] == 1)]//FullSimplifyTelegraphProcess is a transformation of a PoissonProcess:
proc = TransformedProcess[(-1)^x[t], xPoissonProcess[3], t];data = RandomFunction[proc, {0, 20}];ListStepPlot[data]Probability density function for a time slice of the process:
PDF[proc[t], x]Compare with the PDF for TelegraphProcess:
PDF[TelegraphProcess[3][t], x]% == %%Compare CovarianceFunction:
CovarianceFunction[proc, s, t]CovarianceFunction[TelegraphProcess[3], s, t]% == %%Neat Examples (1)
Simulate paths from a telegraph process:
data = RandomFunction[TelegraphProcess[.7], {20}, 300];Take a slice at 20 and visualize its distribution:
sd = data["SliceData", 20];cf = ColorData["DarkBands"];
sliced = BarChart[Last[#], Axes -> False, BarOrigin -> Left, AspectRatio -> 4, ChartStyle -> (cf /@ First[#]), ImageSize -> 60]&[HistogramList[sd, {-1.5, 1.5, 1}]];Plot paths and histogram distribution of the slice distribution at 20:
ListStepPlot[data, ImageSize -> 400, PlotRange -> All,
AspectRatio -> 3 / 4, Epilog -> Inset[sliced, {20.5, 0}, {0, 2}], PlotStyle -> (cf /@ sd), BaseStyle -> Directive[Thin, Opacity[0.5]], PlotRangePadding -> {{0, 10}, {.5, 1}}]Related Guides
History
Text
Wolfram Research (2012), TelegraphProcess, Wolfram Language function, https://reference.wolfram.com/language/ref/TelegraphProcess.html.
CMS
Wolfram Language. 2012. "TelegraphProcess." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/TelegraphProcess.html.
APA
Wolfram Language. (2012). TelegraphProcess. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TelegraphProcess.html
BibTeX
@misc{reference.wolfram_2026_telegraphprocess, author="Wolfram Research", title="{TelegraphProcess}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/TelegraphProcess.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_telegraphprocess, organization={Wolfram Research}, title={TelegraphProcess}, year={2012}, url={https://reference.wolfram.com/language/ref/TelegraphProcess.html}, note=[Accessed: 13-June-2026]}