discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] NTSC Demo


From: Martin Dvh
Subject: Re: [Discuss-gnuradio] NTSC Demo
Date: Fri, 17 Jun 2005 04:07:16 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5b) Gecko/20030823

Hi,
I am trying to understand the matlab code right now.
(I hardly ever use matlab so I don't now the syntax, most of the time if I want 
to do some math I just program it in C++)

If I understand it well you do the following to get rid of the audio_carrier:
interpolate 2x to avoid aliasing
downconvert audio-carrier to zero
highpass to get rid of audio-carrier
downconvert video-carrier to zero
get absolute value(get envelope)
decimate 2x

The above steps can be done in gnuradio with the components which are already 
there
interpolator
freq_translating_fir_filter  (which you feed  high_pass fir filter taps)
multiplication (or another freq_translating_fir_filter with low_pass filter 
taps, this way you get a band_filter)
abs
decimator

I think you could also just use a fir notch filter to get rid of the 
audio-carrier in one step.

I need to study matlab more to understand the correlators you are using.

I also think that using a PLL for the downconversion of video and a PLL for the 
color subcarrier is indeed essential for correct working.

I think there are already some pll implementations in gnuradio_blocks (HDTV) 
floating around.
I just tried to think of my own gnuradio pll implementation and my idea is the 
following (in pseudocode):
pll:
src_c=input_c
osc_c=sig_source_c(freq,sinus,ampl,phaseoffset)

lowpass1settings:
can be hight cutoff and width transfer, maybe even leave away completely

lowpass2settings:
should be quite low cutoff, transferwidth ??
probably use IIR here.
this filter and gainfactor2 determine the loop stability and phasenoise
But also the lock-in range

loop:
/*the congruent is not really needed because the loop will adjust it away)
/*otherwise we can just use -freq */
prod_c=mult(src,congruent(osc))
envelope_method1_f=lowpass1(abs(prod_c),lowpass1settings)
/*less accurate envelope_method2_f=lowpass2(realpart(prod_c),lowpass2settings)*/
phasediff_f=abs(lowpass(imagepart(prod_c))
freq+=phasediff*gainfactor2
/*or is it -= */

The loop would continuously adjust the downconversion frequency and output the 
video baseband envelope signal.

(Notice this is all pseudocode)

greetings,
Martin







reply via email to

[Prev in Thread] Current Thread [Next in Thread]