Fred:
Your problem is related to Alberto's statement that you must do "overlap
save".
An FIR is a linear convolution of the incoming signal with the filter
taps. An FFT with the FFT of the filter applied to it IS NOT a linear
convolution, it is a circular convolution. That means the "end" of
your filter wraps back around and the final samples get mixed up with
the first samples. You must "Save" some of the samples and use them
in OVERLAP fashion,
NNNNNNNOOOOOOO
FFFFFFFFFFFFFFFFFFF
O is the overlap saved sample from the "last time"
F is the FFT of the filter.
N is the new samples read in.
The size of O is FFT Size - Filter size -1.
You can prove or just do experiments to prove to your satisfaction that
the linear convolution of the FIR filter and the overlap save algorithm
now produce identical results (up to floating number tiny errors).
This seems to do repeated work but it is not repeated, it is
necessary. Even though you have this extra overhead, the FFT way of
doing the filter is still a huge savings over the linear convolution way.
73's
Bob
N4HY
Fred Krom wrote:
> Hello Alberto,
>
> Your richt, there are (much?) more ways to build the SDR.
> Your approach and software is perfect and the change of sample rate to avoid
> under / overruns is very nice!
>
> For me it more the exercise than building software that every one will use.
> In my approach I take the FTT also for the display so I had a frequence
> domain signal with a high sample rate and try to take a small reverse FTT to
> down sample (fix 2^n), the program generated strange audio.
> I was thinking that my approach was not correct and checked it with some test
> programs. It seems that the phase of the signal is not the same anymore. I
> can not explain it mathematical that a FTT with high sample rate can be down
> sampled by a smaller reverse FTT (shifting the negative frequence down in the
> fft array), maybe someone can tell me if it is mathematical possible (or I
> made a error in my software ;-).
>
> 73,
> Fred, PE0FKO
>
>
>
--
AMSAT VP Engineering. Member: ARRL, AMSAT-DL, TAPR, Packrats,
NJQRP/AMQRP, QRP ARCI, QCWA, FRC. ARRL SDR Wrk Grp Chairman
"You see, wire telegraph is a kind of a very, very long cat.
You pull his tail in New York and his head is meowing in Los
Angeles. Do you understand this? And radio operates exactly
the same way: you send signals here, they receive them there.
The only difference is that there is no cat." - Einstein
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/soft_radio/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/soft_radio/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:[EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/