matteo wrote:
Hello Martin, I have just tested the tv receiver and what happens is
that I can see the tv stations, only i see the picture repeated twice
vertically (one picture over the other) and slowly shifting to the left.
The arrangement of the pictures is so that the first picture is not
complete, then there is a complete picture and in the end there is the
piece that is missing from the first picture.
Do you have any idea what is causing this?
Yes,
It is unfinished code.
You see two pictures because analog Tv consists of two interlaced fields
and I haven't written (or stolen) a de-interlacer yet.
The picture is slowly shifting left -to right or right to left and also
even more slowly down or up.
This is because the synchronisation is not there (vsync and hsync)
This is also the reason the picture is not nicely alighed with the screen
(you mis a bit on the top which is shown at the bottom)
I have been working on sync for some time now but I still haven't got it
right so I did't check it in.
(It really is not usable at the moment)
I am very busy right now but I plan on working on it some more after my
holiday (in juli)
I would also like to understand your beautiful code, so any additional
documentation you should have would be very nice to read.
I didn't use much documentation because I Just happen to know about how
TV-signals are build up.
For the details I used google a lot.
This site was very helpfull:
http://www.pembers.freeserve.co.uk/World-TV-Standards/
Once I have the synchronisation working I might document my own code some
more because I suspect interest on working on it will increase.
But feel free to ask questions about specific parts of the code.
A raw outline of the code is.
Build an am-receiver flowgraph with several MHz bandwidth
usrp ->channel filter -> amdetector (complex-to-mag)
build a videosink which shows the demodulated video as gray-scale image on
screen.
(first sample coming in goes top-left, last sample of a frame goes
bottom-right, then start-over)
video-signal -> image-buffer ->screen (using SDL)
I used a few timing tricks to keep the flowgraph running even if the
videosink is too slow or too fast.
for PAL TV the sink should output 25 frames (=two fields) per second.
If The sink is too slow I skip whole frames.
I don't remember exactly what the code does when the sink is too fast but
I think It just waits for new samples.
With a little work the video-sink should also be usable for digital TV
once the digital-TV demodulation works.
(Even HDTV should work)
A needed add-on is also color-decoding, color-video-sink and
audio-decoding.
Audio-decoding should be straight-forward because it is just a variation
on FM-radio (for PAL-TV)
The problem is that you need the full 6Mhz bandwidth to get the color and
audio sub-carriers and for most PC-s this is too much for realtime
decoding.
A quick-and-dirty solution could be to use a second channel in the usrp
tuned to the audio-carrier with smaller bandwidth.
(For color this will not work because you need exact phase-relationships.)
I hope this helps,
You might want to forward this to the mailing-list because other people
might be interested too.
Greetings,
Martin
best regards
Matteo Campanella iz2eeq