ESP8266 Analog Broadcast Television Interface
github.com
github.com
For anyone interested this is called aliasing.
If you've ever noticed wheels going backwards in racing or train footage, this is exactly what's happening: the wheel's angular velocity is above half the sampling rate (i.e. the camera's FPS), producing a mirrored version which in turn appears to rotate backwards.
See also Fabrice Bellard's DVB-T broadcast using XWindows: http://www.bellard.org/dvbt/
It's a kind of reverse "TEMPEST": rather than detecting a computer's accidentally radiated emissions, deliberately radiate emissions in a particular pattern to produce a radio signal.
https://www.kickstarter.com/projects/214379695/micropython-o...
This is really impressive.
Should we suggest an extra milestone for the Kickstarter for `import 3Dtv` ?
However I thought there was already a micropython firmware for it [1]. What extra does this kickstarter bring in?
[1] https://learn.adafruit.com/building-and-running-micropython-...
Furthermore cnlohr doesn't use a fixed square-wave but a variable sequence of pulses. And a single pulse of (1/80Mhz)=12.5ns will have a sinc spectrum. sinc f=(sin f)/f. For an infinitely sharp-edged pulse, this sinc-spectrum basically extends to infinity, for real-world pulses you can expect to see a few harmonics.
https://www.wolframalpha.com/input/?i=fourier+transform+box+...
cnlohr basically uses the synchronous serial i2s interface, running at 80Mbits/s as a 1bit DAC with a zero-order hold (stretching out a constant voltage over the bit time), so this DAC will recreate anything between 0..40MHz correctly (within the capabilities of its pretty poor quantisation noise and within the first lobe of the sinc-spectrum).
https://en.wikipedia.org/wiki/Zero-order_hold
http://www.ee.ic.ac.uk/pcheung/teaching/ee2_signals/Lecture%... (last slide)
But, any signal you recreate will, because it's made up of the single pulses with the sinc spectrum, not only have energy between 0...+Fs/2 but also between N-1/2 and N+1/2 times the sampling frequency. There's a obvious trick involving the fact that convolution in the time domain corresponds to multiplication in the frequency domain, but unfortunately I can't really recall it correctly now... so you have to just take my word for it ;)
And that's why, if this "DAC" outputs 1MHz, you also get 79 and 81.
http://www.analog.com/media/en/training-seminars/tutorials/M... (here's a nice graph)
Conversely, when you try to output a sharp pulse on your soundcard, e.g. an audiofile consisting of {zeroes, one sample of 32000, zeroes...}, the output to your headphones will be something like a sinc pulse. The Fourier transform of this since pulse in the time domain will be a box function from 0..half the sample rate in the frequency domain, and hence no higher harmonics will be output.