Linear phase eq using overlap add problem
- From: "jungledmnc" <jungledmnc@xxxxxxxxx>
- Date: Mon, 05 Jan 2009 15:46:25 -0600
Hi there again with the linear phase eq.
I did it, but ran into a pretty big problem. This is gonna be a little bit
complicated to specify, so I hope someone will make it to the end :).
I tried two little modifications of overlap-add.
1) First method works like this:
I'm processing 8192 sample blocks at a time assuming that first 1024 and
last 1024 are overlapping. Let's say this is our source signal:
AAAAAABBBBBBCCCCCCDDDDDD
Each letter means 1024 samples, thus AAAAAA is first block of processing
1024 * 6 samples etc. To each side is then added block of 1024 zeros so
before eq it looks like:
0AAAAAA0
The normal direction eq is then performed (r-b-j's cookbook as usual ;-))
and it fades out in the end, so it becomes:
0AAAAAA\
The reverse direction eq is applied afterwards with similar effect to the
beginning:
/AAAAAA\
Incoming blocks are then added like this:
/AAAAAA\
/BBBBBB\
/CCCCCC\
It worked, but unfortunately it has a little flaw - when I pumped it with
a 100Hz sine and used some +24dB high-Q lowpass, which has that nasty hill
over the cut-off frequency it started "pulsing" (but it worked with high-Q
peak filter too). I don't know for sure, but I think it was caused by the
fact, that when such sine is amplified so heavily, it creates too long
"fade out". Or it might have been caused by the "stair" (discontinuity) in
the beginning, which teoretically contained all frequencies, which got
amplified. I suspect this one, because it did not happen using bandpass or
notches with any Q.
2) I tried method 2, suspected that it takes some time for the filter to
"adjust" to the incoming signal:
Instead of placing zeros to the beginning and end, use the real incoming
signal. These are the processing blocks then:
0AAAAAAB, ABBBBBBC, BCCCCCCD ...
After the bidirectional filtering the overlapping parts are simply cutoff,
because it should generate the same signal - assuming it is a compound of
sines, each is modified in power but not phase, it should generate (almost)
the same signal. The filters truly got adapted after about 80 samples and
become perfectly in-phase.
And then comes the problem again - +24dB high-Q lowpass (or peak) starts
creating crackles and also frequencies that really were not in the signal!
I pumped 1000Hz into it, set cutoff to 200Hz (so 200Hz was very very
amplified) and it generated 200Hz. But only in lower frequencies. So I
found out it must be because of the discontinuity in the beginning. I
applied a hann window to the beginning and end and it stopped generating
those nasty frequencies, but the crackling did not disappear.
It is probably caused by discontinuities. So does it mean that the filter
was not able to "adapt" in those 1024 samples? But it does this even for
higher frequencies like 1000Hz.
Desperate question: What am I doing wrong???
Thanks a lot!
dmnc
.
- Follow-Ups:
- Re: Linear phase eq using overlap add problem
- From: banton
- Re: Linear phase eq using overlap add problem
- From: VelociChicken
- Re: Linear phase eq using overlap add problem
- From: jungledmnc
- Re: Linear phase eq using overlap add problem
- Prev by Date: Re: How to test the dynamic range of FFT?
- Next by Date: Re: Interpolation with specified end derivatives
- Previous by thread: Re: Christmas Greetings?
- Next by thread: Re: Linear phase eq using overlap add problem
- Index(es):
Relevant Pages
|
Loading