unsafe public void DoIQCorrection(float* real, float* imag, Receiver state)
        {
            for (int i = 0; i < this.size; i++)
            {
                imag[i] += real[i] * state.IQPhaseValue;
                real[i] *= (1.0F + state.IQGainValue);
            }
        }


On 11/21/05, Jeff Anderson <[EMAIL PROTECTED]> wrote:


Thanks, Alberto.  I didn't realize that adjusting phase when there's a
time-shift error gives the same response as adjusting time-delay when
there's a phase-shift error.  Thanks for pointing out an interesting
duality!

I'm curious how you adjusted phase - it seems to me this should be done with
an all-pass filter, but perhaps there are better/different techniques?
Could you describe what you did in more detail?

Also - anyone know how PowerSDR compensates for phase?  Or could point me to
the appropriate source-code modules?

Thanks,

= Jeff, WA6AHL

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto: [EMAIL PROTECTED]]On Behalf Of Gollum
Sent: Sunday, November 20, 2005 1:53 PM
To: flexRadio@flex-radio.biz
Subject: Re: [Flexradio] Observations on Image Rejection...


Jeff Anderson wrote:

> The results surprised me. As I moved the generator off of 19 MHz by *only*
1
> KHz, the image returned, and it became larger and larger the further I
moved
> the generator off frequency (by only a few KHz) in either direction.
> If I renulled the image manually (keeping the receiver at 19.02205 MHz), I
> had to change the phase by larger and larger amounts (and these were
> significant amounts!) as I moved the image further and further off
frequency
> in either direction.

Jeff,
  I know almost nothing about the SDR1K, but I want to report to you and to
the
group what I observed about one year ago when writing my program SDRadio.
I had coded an amplitude and phase compensating routine which nulled
beautifully
the image response. The hardware used was an home made QSD mixer with 2 x
ADG704.
Then I received a couple of reports from users that told me that they had a
behavior
like that you report, i.e. a good null at a single frequency, then a
progressive
worsening moving away from that.
Luckily one of them was a skilled guy, with good instrumentation, and what
turned
out was that the two channels of his sound card had a fixed time skew
between them !
This of course caused that the phase imbalance changed with the frequency,
making
the image nulling possible just at a single spot.
The solution was to implement not a phase correction, but an adjustable time
delay
between the channels, and this needed to write a fractional delay routine,
as the
differential delay value had to be adjusted to values lower than the
sampling period.

Apparently only cheap sound cards have this problem, but I learned a lesson
then...

73  Alberto  I2PHD


_______________________________________________
FlexRadio mailing list
FlexRadio@flex-radio.biz
http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz


_______________________________________________
FlexRadio mailing list
FlexRadio@flex-radio.biz
http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz



--
Philip A Covington
http://www.philcovington.com

Reply via email to