Random Channels
Measurements
Juqst.fidelity
— Functionreturns the fidelity of the channel (in PauliLiouville basis)
Juqst.unitarity
— Functionreturns the unitarity of the channel (PauliLiouville basis)
Juqst.unitarityPercent
— FunctionA given fidelity has a minimum unitarity that it can have
(so perfect fidelity = 1 = unitarity)
This shows as a percentage how much the unitarity of the channel
lies between the minimum and the maximum (always 1)
Creation
Juqst.genChannel
— FunctiongenChannel(r1,sm,sv,r2)
Rotate the sigma channel randomly to generate an arbitrary channel
r1 represents a rotation. The elements of a vector of three normally distributed elements are multiplied by this and used as an XZX rotation. For high fidelity channels this will be small.
sm, represents the diagonal channel. This is the mean. High fidelity channels will have this close to 1.
sv, represents the variance in the diagonal channel.
r2, like r1.
For example randomFidelityNoise is defined as genChannel(0.06,0.998,0.04,0.06)
whereas the noisier randomMeasureNoise is genChannel(0.05,0.98,0.15,0.05)
Juqst.randomFidelityNoise
— FunctionHelper function to generate typical, high fidelity channel.
Juqst.randomPrepNoise
— FunctionHelper function to generate typical, lower fidelity channel.
I use it to simulate a state preparation channel.
Juqst.randomMeasureNoise
— FunctionHelper function to generate typical, lower fidelity channel.
I typically use it to simulate measurement error.
Juqst.genChannelMap
— Functionfunction genChannelMap(f)
Simple helper function - designed to help generate a map of a specific fidelity (supplied parameter).
Just generates random channels until you get one of the correct fidelity $\pm 0.0001$.
In general though you would want to rewrite this to give genChannel
parameters that will result in random channels that often bracket the desired fidelity
May take a long time if the parameters are far from the types of channels generated
by randomFidelityNoise.