<sb0>
it seems they're sending 10mW on one side of a beam splitter, single photons on the other side, and then a photodiode is supposed to detect the fluctuations induced by the single photons? how could that work?
<rjo>
oh the furusawa stuff. yeah that is always nice. their labs are also cool. very different from ours.
<rjo>
what don't you like about it.
<rjo>
?
<rjo>
even a single photon is just a field.
<rjo>
they even send half a photon onto that beam splitter.
<rjo>
monochromatic (narrowband) single photons are very long. they interfere nicely. but getting single photons and knowing when one is on its way and where it is, is the tricky bit. this is why you need to split photons in an opo first and use half of them as trigger and the other half in your experiment.
<sb0>
yes, but they also send 10mW into the same beam splitter (and half of it comes out) - wouldn't that drown that half-photon?
<sb0>
eg by saturating the photodiode
<sb0>
my question was about the homodyne mixer, not the heralding stuff
<sb0>
which afaict gets a constant 10mW from the LO
<sb0>
same wavelength, coherent with the photon even. and then the photodiode is supposed to detect a 1-photon variation in a constant 5mW beam?!
<sb0>
ysionneau, or simply - if one of the header file produces a compilation warning
<sb0>
that will break.
* sb0
thinks we should maybe replace makefiles with python or similar
<sb0>
hmm... how can I error if the $(shell ...) command yields a non-zero return code
<rjo_>
sb0: even at 5mW you can do relatively easily do photodetection down to the shotnoise level. differencing gives removes the LO leakage feedthrough (in RF mixer terms). your electrical signal is not limited by electroca noise but by the incoming photons.
<rjo_>
for artiq-soc, we should keep the comms-cpu lm32 and the kernel-cpu or1k ;)
<sb0>
5mW is 1e16 photons per second at 600nm
<sb0>
and during that 500ns integration time you get a ~100k photon count rms fluctuation from Poisson statistics
<sb0>
ah and they repeat the experiment 200k times
<sb0>
well, maybe that works. how hard is it to remove other sources of noise from the photodiode system?
<sb0>
the statistics of this thing are pretty tricky
<rjo_>
the thing that helps here is the 2*a*b interference term. the interference signal is not constant but scales with lo power.
<sb0>
is there some nonlinear mixing involved?
<sb0>
linearly, you get Acos(p1) + Bcos(p2) = 2Acos((p1+p2)/2)cos((p1-p2)/2) + (B-A)cos(p2)
<sb0>
and the interference term 2Acos... doesn't scale with B
<rjo_>
the lo is A**2 in power/photon number, the signal is B**2 << A**2, the intereference is (A*exp(1j*p) + B)**2 = A**2 + 2*A*B*cos(p) + B**2. the differencing kills the first term, the last one is irrelevant and you only need to look at the 2*A*B*cos(p)
<rjo_>
A is field strength, A**2 is power/photon number, homodyne interference happens in field amplitude, the detectors detect power/photon number.
fengling_ has quit [Ping timeout: 245 seconds]
rjo_ has quit [Quit: leaving]
fengling_ has joined #m-labs
fengling_ has quit [Ping timeout: 265 seconds]
fengling_ has joined #m-labs
<ysionneau>
06:43 < sb0> ysionneau, or simply - if one of the header file produces a compilation warning < you can add a |grep "your #warning message" to be more robust, but indeed it's not the perfect solution :/
<ysionneau>
ah, seen your other solution
<ysionneau>
I think make does not check the return value of the command in $(shell ) command. but you could test $? in shell in the $(shell ) command and then return some string value (with echo) which would mean a failure
<ysionneau>
and then check that from the makefile and then generate a $(error <message>)
<ysionneau>
which will stop the makefile from processing further
<ysionneau>
it's a bit ugly but :/
early has quit [Ping timeout: 256 seconds]
early has joined #m-labs
<GitHub85>
[migen] sbourdeauducq pushed 1 new commit to master: http://git.io/vesRk
<GitHub85>
migen/master 1d11895 Sebastien Bourdeauducq: mibuild: support multiple specifications of include file and sources
<GitHub197>
[migen] sbourdeauducq pushed 3 new commits to master: http://git.io/vesRo
<GitHub197>
migen/master 4522956 Robert Jordens: vivado: make _build_files() a method and rename
<GitHub197>
migen/master 9506f69 Robert Jordens: vivado: add support for pre_synthesis_commands
<GitHub197>
migen/master aac953d Robert Jordens: vivado: support phys_opt
<ccube>
I found some FT2232H classes in misoc dir. Can I create a Soc with them which behaves like an FT2232H device? Or what are they are for?
<GitHub81>
[migen] sbourdeauducq pushed 3 new commits to master: http://git.io/vesXm
<GitHub81>
migen/master 4091af6 Robert Jordens: fhdl/decorators: make the transform logic more idiomatic...
<GitHub81>
migen/master e702fb7 Robert Jordens: decorators: fix class/instance logic