f



group delay equalizer

Hi,

  Matlab has a function called iirgrpdelay which helps
  in designing iir group delay equalizer filters.

  Any idea as to how this function can be re-written
  for people who are not using matlab?

Bharat Pathak
0
bharat310 (236)
1/13/2008 8:35:32 AM
comp.dsp 20333 articles. 1 followers. allnor (8509) is leader. Post Follow

22 Replies
704 Views

Similar Articles

[PageSpeed] 48

"bharat pathak" <bharat@arithos.com> wrote in message
news:fs-dnX5z64XJUBTanZ2dnUVZ_hCdnZ2d@giganews.com...
> Hi,
>
>   Matlab has a function called iirgrpdelay which helps
>   in designing iir group delay equalizer filters.

This is a shamanistic optimization which tries to match the group delay
profile by the brute force tweaking of an allpass function.

>   Any idea as to how this function can be re-written
>   for people who are not using matlab?

I am glad to see that there are still some real people who dare to live
without MatLab.

Vladimir Vassilevsky
DSP and Mixed Signal Consultant
www.abvolt.com


0
1/13/2008 3:20:48 PM
On Jan 13, 3:35 am, "bharat pathak" <bha...@arithos.com> wrote:
>
>   Matlab has a function called iirgrpdelay which helps
>   in designing iir group delay equalizer filters.
>
>   Any idea as to how this function can be re-written
>   for people who are not using matlab?
>

i can only suggest to start with the MATLAB source code (i might have
an old copy) for iirgrpdelay() and all functions that it depends on,
and translate to C or whatever language you like.  remember the stupid
MATLAB indexing origin property.  you might be adjusting some indices
by 1.

you know, probably everyone here has some C++ programming enviroment:
VC++, Objective-C, GNU.  they already have C++ classes for math using
complex variables and matrices.  probably, there exists some nice
utilities to plot functions of one or two variables and to input and
output audio to/from hardware or files.  someone should add the simple
functionality of most of the SP Toolbox to these classes in C++.
lot'sa work.  i can't do it.

r b-j
0
rbj (4086)
1/15/2008 12:48:17 AM
"bharat pathak" <bharat@arithos.com> writes:

> Hi,
>
>   Matlab has a function called iirgrpdelay which helps
>   in designing iir group delay equalizer filters.
>
>   Any idea as to how this function can be re-written
>   for people who are not using matlab?
>
> Bharat Pathak

You check to see if it's available in gnu octave.
-- 
%  Randy Yates                  % "Remember the good old 1980's, when 
%% Fuquay-Varina, NC            %  things were so uncomplicated?"
%%% 919-577-9882                % 'Ticket To The Moon' 
%%%% <yates@ieee.org>           % *Time*, Electric Light Orchestra
http://www.digitalsignallabs.com
0
yates (3949)
1/15/2008 1:30:40 AM
>
>You check to see if it's available in gnu octave.

 Randy, I have checked in gnu octave and this is one
 of the prime reasons for looking out. I have my own
 library of dsp functions in octave, which help me
 to do good amount of dsp design work. So I am always
 on lookout on which functions are missing, and this
 function happens to be one of them.

 Bharat Pathak
 www.arithos.com
 ~dsp Simplified.
0
bharat310 (236)
1/15/2008 2:39:03 AM
On 13 Jan., 09:35, "bharat pathak" <bha...@arithos.com> wrote:
> Hi,
>
> =A0 Matlab has a function called iirgrpdelay which helps
> =A0 in designing iir group delay equalizer filters.
>
> =A0 Any idea as to how this function can be re-written
> =A0 for people who are not using matlab?

Hi Bharat

You can use the FDLS method:

http://apollo.ee.columbia.edu/spm/external/tipsandtricks/files/TandT_Jan2007=
..zip

Regards,
Andor
0
andor.bariska (1307)
1/15/2008 8:56:17 AM
>Hi Bharat
>
>You can use the FDLS method:
>
>http://apollo.ee.columbia.edu/spm/external/tipsandtricks/files/TandT_Jan2007=
>.zip
>
>Regards,
>Andor

Andor,

   Sorry I do not have access to SPM.

Regards
Bharat Pathak
0
bharat310 (236)
1/15/2008 1:37:24 PM
On 15 Jan., 14:37, "bharat pathak" <bha...@arithos.com> wrote:
> >Hi Bharat
>
> >You can use the FDLS method:
>
> >http://apollo.ee.columbia.edu/spm/external/tipsandtricks/files/TandT_...
> >.zip
>
> >Regards,
> >Andor
>
> Andor,
>
> =A0 =A0Sorry I do not have access to SPM.

The link should be available to everybody (did you try?). I'm sure
Greg can send you a copy of the article (else drop me an e-mail).
0
andor.bariska (1307)
1/15/2008 2:08:23 PM
On Jan 15, 3:56=A0am, Andor <andor.bari...@gmail.com> wrote:

> You can use the FDLS method:

I have an old C-language implementation of FDLS that I could polish-up
and make available, if there is enough interest.

I've never tried FDLS for phase manipulation, but it should work.

Greg Berchin
0
gberchin6039 (152)
1/15/2008 2:16:18 PM
Greg Berchin <gberchin@sentientscience.com> wrote in news:91018b6d-0980-
4a7e-aab3-b6816ad7f21c@m34g2000hsb.googlegroups.com:

> On Jan 15, 3:56�am, Andor <andor.bari...@gmail.com> wrote:
> 
>> You can use the FDLS method:
> 
> I have an old C-language implementation of FDLS that I could polish-up
> and make available, if there is enough interest.
> 
> I've never tried FDLS for phase manipulation, but it should work.
> 
> Greg Berchin
> 

Greg, you're a bit modest. Your FDLS method is very cool. 

It's described in detail in Streamlining Digital Signal Processing (Rick 
Lyons new tricks book). 

I'm sure people would like a polished up C version.   
I would be glad to include it (or a link) on Danville's signal processing 
resource page.

Al Clark
Danville Signal
0
aclark1 (206)
1/15/2008 3:06:27 PM
On Jan 15, 10:06=A0am, Al Clark <acl...@danvillesignal.com> wrote:

> Greg, you're a bit modest. Your FDLS method is very cool.

Thank you.

> I'm sure people would like a polished up C version. =A0
> I would be glad to include it (or a link) on Danville's signal
> processing resource page.

Al, you were actually the first person to receive the C version of the
algorithm, many many years ago.  I believe that I later found a bug in
the code that I sent to you, but I never updated it because the Matlab
version became available.

I'll try to update the C version in my "copious" free time, and make
it available to all.  Thanks for the hosting offer; if I get the C
version working I'll certainly take you up on that.

Greg
0
gberchin6039 (152)
1/15/2008 3:14:44 PM
bharat pathak wrote:
>> Hi Bharat
>>
>> You can use the FDLS method:
>>
>> http://apollo.ee.columbia.edu/spm/external/tipsandtricks/files/TandT_Jan2007=
>> .zip
>>
>> Regards,
>> Andor
> 
> Andor,
> 
>    Sorry I do not have access to SPM.

It works for me. I have no special privileges.

Jerry
-- 
Engineering is the art of making what you want from things you can get.
�����������������������������������������������������������������������
0
jya (12871)
1/15/2008 3:51:33 PM
Greg Berchin <gberchin@sentientscience.com> wrote in news:bd94b073-f10b-
4ddc-8d14-c9887068c16b@e32g2000prn.googlegroups.com:

> On Jan 15, 10:06�am, Al Clark <acl...@danvillesignal.com> wrote:
> 
>> Greg, you're a bit modest. Your FDLS method is very cool.
> 
> Thank you.
> 
>> I'm sure people would like a polished up C version. �
>> I would be glad to include it (or a link) on Danville's signal
>> processing resource page.
> 
> Al, you were actually the first person to receive the C version of the
> algorithm, many many years ago.  I believe that I later found a bug in
> the code that I sent to you, but I never updated it because the Matlab
> version became available.
> 
> I'll try to update the C version in my "copious" free time, and make
> it available to all.  Thanks for the hosting offer; if I get the C
> version working I'll certainly take you up on that.
> 
> Greg
> 

I know you sent me the program before you were so famous. The big 
difference is now I actually understand how the process works.

If anyone else has resources to share, we would be glad to post it since 
the old dspguru has been static for so long.

Al Clark
Danville Signal Processing
 
0
aclark1 (206)
1/15/2008 6:57:38 PM
On Jan 15, 1:57=A0pm, Al Clark <acl...@danvillesignal.com> wrote:

> I know you sent me the program before you were so famous.

Famous?  If I'm so famous then how come I'm not rich?  Or even good
looking?  :-)

Greg
0
gberchin6039 (152)
1/15/2008 7:01:37 PM
Greg Berchin <gberchin@sentientscience.com> wrote in news:1e5b79ac-8aa8-
4ac8-81b3-7fe9d6181717@m34g2000hsb.googlegroups.com:

> On Jan 15, 1:57�pm, Al Clark <acl...@danvillesignal.com> wrote:
> 
>> I know you sent me the program before you were so famous.
> 
> Famous?  If I'm so famous then how come I'm not rich?

Wrong profession? bad agent?



  Or even good
> looking?  :-)

Talk to your parents....




> 
> Greg
> 

0
aclark1 (206)
1/15/2008 11:36:26 PM
On Tue, 15 Jan 2008 18:57:38 GMT, Al Clark <aclark@danvillesignal.com> wrote:

>If anyone else has resources to share, we would be glad to post it since 
>the old dspguru has been static for so long.

I have a "C+" version of FDLS working.  I call it "C+" because it was
originally written in Fortran, then converted to C, and now it's somewhere
between C and C++.  You'll need a C++ compiler.  I tried to structure it as
similarly as I could to the Matlab 2.00 version.  Because it uses a different
method to compute the pseudoinverse, it produces results that are comparable
to, but not identical to, the Matlab version.

Any volunteers for beta testing?  Contact me by removing the "i" from
"comicast".

Greg Berchin
0
gberchin (81)
1/19/2008 1:58:46 PM
Greg Berchin wrote:
> On Tue, 15 Jan 2008 18:57:38 GMT, Al Clark <aclark@danvillesignal.com> wrote:
> 
>> If anyone else has resources to share, we would be glad to post it since 
>> the old dspguru has been static for so long.
> 
> I have a "C+" version of FDLS working.  I call it "C+" because it was
> originally written in Fortran, then converted to C, and now it's somewhere
> between C and C++.  You'll need a C++ compiler.  I tried to structure it as
> similarly as I could to the Matlab 2.00 version.  Because it uses a different
> method to compute the pseudoinverse, it produces results that are comparable
> to, but not identical to, the Matlab version.
> 
> Any volunteers for beta testing?  Contact me by removing the "i" from
> "comicast".

Watch out! Some yahoo in the gummint will see it as code for 
"commiecast" and come looking for you.

Jerry
-- 
Engineering is the art of making what you want from things you can get.
�����������������������������������������������������������������������
0
jya (12871)
1/19/2008 6:28:56 PM
On Sat, 19 Jan 2008 13:28:56 -0500, Jerry Avins <jya@ieee.org> wrote:

>Watch out! Some yahoo in the gummint will see it as code for 
>"commiecast" and come looking for you.

"When everyone is out to get you, paranoid is just good thinking." 
	~Dr. Johnny Fever
0
gberchin (81)
1/19/2008 7:01:28 PM
Hi Folks,

I came across this thread while searching for an alternative to the Matlab
function iirgrpdelay. I don't have MATLAB, but use Octave instead.
Unfortunately, iirgrpdelay uses a compiled MATLAB MEX file for its guts.

I tried Greg's cool function (which is 100% Octave compatible!), but it
doesn't give me quite what I need. I need a true allpass filter (numerator
coefficients same as reversed denominator coefficients), like iirgrpdelay
produces. Putting in all 1's for magnitude does not yield this.

I've already attempted to use Markus Lang's old MATLAB program,
ap_lgs_z.m, whose method is decribed in his IEEE papers "Allpass Filter
Design and Applications" and "Simple and Robust Method for the Design of
Allpass Filters Using Least-Squares Phase Error Criterion." But this
required some changes to get it to run at all (his variable names are in
German, so I had to do some guessing!). While it converges, I don't seem to
get the right filter coefficients. And Marcus is working back in Germany
and on one of those extended summer vacations that Europeans get, so I
can't contact him.

Any help on a finding working all-pass filter design code would be greatly
appreciated! If it is in pretty much any other computer language and
well-commented (with examples), I can translate it to MATLAB/Octave.

Thanks,
Terry Montlick
(acoustics and occasional signal processing stuff)


0
terry6565 (3)
7/20/2009 12:06:19 PM
On 20 Jul., 14:06, Terry wrote:
> Hi Folks,
>
> I came across this thread while searching for an alternative to the Matlab
> function iirgrpdelay. I don't have MATLAB, but use Octave instead.
> Unfortunately, iirgrpdelay uses a compiled MATLAB MEX file for its guts.
>
> I tried Greg's cool function (which is 100% Octave compatible!), but it
> doesn't give me quite what I need. I need a true allpass filter (numerator
> coefficients same as reversed denominator coefficients), like iirgrpdelay
> produces. Putting in all 1's for magnitude does not yield this.

Hi Terry

It is quite easy to modify Greg's FDLS to design proper allpass
filters. Remember that the underlying equations are of the form

A_m cos(w_m + phi_m) = - A_m sum_{k=1}^p a_k cos(-w_m*k + phi_m) + sum_
{k=0}^z b_k cos(-w_m*k)

where w_m, m=1,2,...M, are the frequencies where you sample the
allpass frequncy response, A_m the amplitude and phi_m the phase at
that frequency (p is the order of the recursive part, z the order of
the transversal part). For an allpass filter of order p, the above
equation becomes

cos(w_m + phi_m) = -sum_{k=1}^p a_k cos(-w_m*k + phi_m) + sum_{k=0}^p
a_{p-k} cos(-w_m*k),

so you get

cos(w_m + phi_m) - cos(-w_m*p) = sum_{k=1}^p a_k ( cos(-w_m*k + phi_m)
+ cos(-w_k*(p-k)) )

and now solve for the allpass coefficients a_k.

Regards,
Andor

>
> I've already attempted to use Markus Lang's old MATLAB program,
> ap_lgs_z.m, whose method is decribed in his IEEE papers "Allpass Filter
> Design and Applications" and "Simple and Robust Method for the Design of
> Allpass Filters Using Least-Squares Phase Error Criterion." But this
> required some changes to get it to run at all (his variable names are in
> German, so I had to do some guessing!). While it converges, I don't seem to
> get the right filter coefficients. And Marcus is working back in Germany
> and on one of those extended summer vacations that Europeans get, so I
> can't contact him.

Don't know about those extended summer vacations :-). But then,
Switzerland aint Europe.
0
andor.bariska (1307)
7/20/2009 8:19:37 PM
Thank you for your reply, Andor.

>On 20 Jul., 14:06, Terry wrote:
>> Hi Folks,
>>
>> I came across this thread while searching for an alternative to the
Matlab
>> function iirgrpdelay. I don't have MATLAB, but use Octave instead.
>> Unfortunately, iirgrpdelay uses a compiled MATLAB MEX file for its
guts.
>>
>> I tried Greg's cool function (which is 100% Octave compatible!), but
it
>> doesn't give me quite what I need. I need a true allpass filter
(numerator
>> coefficients same as reversed denominator coefficients), like
iirgrpdelay
>> produces. Putting in all 1's for magnitude does not yield this.
>
>Hi Terry
>
>It is quite easy to modify Greg's FDLS to design proper allpass
>filters. Remember that the underlying equations are of the form
>
>A_m cos(w_m + phi_m) = - A_m sum_{k=1}^p a_k cos(-w_m*k + phi_m) + sum_
>{k=0}^z b_k cos(-w_m*k)
>
>where w_m, m=1,2,...M, are the frequencies where you sample the
>allpass frequncy response, A_m the amplitude and phi_m the phase at
>that frequency (p is the order of the recursive part, z the order of
>the transversal part). For an allpass filter of order p, the above
>equation becomes
>
>cos(w_m + phi_m) = -sum_{k=1}^p a_k cos(-w_m*k + phi_m) + sum_{k=0}^p
>a_{p-k} cos(-w_m*k),
>
>so you get
>
>cos(w_m + phi_m) - cos(-w_m*p) = sum_{k=1}^p a_k ( cos(-w_m*k + phi_m)
>+ cos(-w_k*(p-k)) )
>
>and now solve for the allpass coefficients a_k.
>
>Regards,
>Andor

Isn't this the same as setting all the A_m coefficients to 1, which can be
done without modifying the program? Or am I not understanding something
fundamental here? I have already tried this, and got no phase match and
unrelated numerator and denominator coefficients.

Also, I am confused about the proper usage of the argument "artificial
delay" (the variable named "delta") in this program. I used the M=8 FDLS
Example written up by Greg Berchin and Richard Lyons. I found that the
accuracy of the result was very dependent on the value of delta. A value of
0.001 seemed to give reasonably good accuracy. But other values did not.
How does one choose the correct value a priori?

Thanks,
Terry

0
terry6565 (3)
7/21/2009 2:45:23 PM
On Tue, 21 Jul 2009 09:45:23 -0500, "montlick"
<terry@tmlaboratories.com> wrote:

>Isn't this the same as setting all the A_m coefficients to 1, which can be
>done without modifying the program? Or am I not understanding something
>fundamental here? I have already tried this, and got no phase match and
>unrelated numerator and denominator coefficients.

I didn't quite follow Andor's explanation because of nomenclature
problems in this fixed text format.  But basically, you should be able
to start with the fundamental FDLS transfer function,

                      -1            -n
               b + b z   + ... + b z
        y(z)    0   1             n
        ---- = -----------------------
        u(z)          -1            -d
                1 + a z  + ... + a z
                     1            d

and CONSTRAIN the coefficients to be of the form you desire (numerator
coefficients the same as denominator coefficients, but in reverse
order):

                        -1          -n
               a + a   z   + ... + z
        y(z)    d   d-1
        ---- = -----------------------
        u(z)          -1            -d
                1 + a z  + ... + a z
                     1            d

Then just follow the rest of the procedure exactly as described in the
article, except instead of there being "a" and "b" coefficients, there
will just be "a" coefficients used in both the denominator and the
numerator.

I suspect that this is what Andor was trying to say.

>Also, I am confused about the proper usage of the argument "artificial
>delay" (the variable named "delta") in this program. I used the M=8 FDLS
>Example written up by Greg Berchin and Richard Lyons. I found that the
>accuracy of the result was very dependent on the value of delta. A value of
>0.001 seemed to give reasonably good accuracy. But other values did not.
>How does one choose the correct value a priori?

First, make certain that you have version 2.00 of the Matlab code.
Earlier versions implemented the delay in a slightly different manner
that can lead to unstable models being created from stable transfer
functions.

Now as to the "artificial delay"; when formulated using cosine waves,
as in the magazine article and the Matlab code, the algorithm only
models the real part of the frequency response.  Similarly, if
formulated using sine waves instead of cosine waves, it only models
the imaginary part.  (Unfortunately, a sine formulation has some
stability problems related to the fact that sine waves whose frequency
is close to half the sampling frequency are sampled very close to the
zero crossings, so creating a sine formulation is a nontrivial task.)
The easiest way to make some of the imaginary part of the frequency
response real (and some of the real part imaginary) is to add a small
amount of delay to the transfer function.  That's what the "artificial
delay" parameter is for.  Many times you'll get a good fit without it.
Other times one or two samples of delay will give you a better fit. If
you need more than a few samples of delay, then something else is
probably wrong.

By the way, the value of "delta" was intended to be an integer (a
value of "1" representing a delay of one sample period, for example),
but now that you mention it there is no mathematical reason that it
HAS to be.

Greg
0
7/21/2009 7:55:17 PM
>Now as to the "artificial delay"; when formulated using cosine waves,
>as in the magazine article and the Matlab code, the algorithm only
>models the real part of the frequency response.  Similarly, if
>formulated using sine waves instead of cosine waves, it only models
>the imaginary part.  (Unfortunately, a sine formulation has some
>stability problems related to the fact that sine waves whose frequency
>is close to half the sampling frequency are sampled very close to the
>zero crossings, so creating a sine formulation is a nontrivial task.)
>The easiest way to make some of the imaginary part of the frequency
>response real (and some of the real part imaginary) is to add a small
>amount of delay to the transfer function.  That's what the "artificial
>delay" parameter is for.  Many times you'll get a good fit without it.
>Other times one or two samples of delay will give you a better fit. If
>you need more than a few samples of delay, then something else is
>probably wrong.
>
Ah, this explains a great deal, Greg. Thank you!

- Terry
0
terry6565 (3)
7/21/2009 9:55:21 PM
Reply:

Similar Artilces:

DSP Group TeakLite DSP Board
I've pulled a DSP Group Teak Lite DSP development board out of the bin at work. It's about 3-4 years old. Their web site asks you to login before you can look at docs an support S/W etc. Does anyone have an old support login for this site? Cheers, Alfie. ...

equal and not equal
how translate = and /= for pointer use? and := ? > how translate = and /= for pointer use? > and := ? What do you mean by "for pointer use"? Florian Weimer wrote: >>how translate = and /= for pointer use? >>and := ? > > What do you mean by "for pointer use"? And what do you want to translate from, and what do you want to translate to? -- Bj�rn Persson PGP key A88682FD omb jor ers @sv ge. r o.b n.p son eri nu TC a �crit : > how translate = and /= for pointer use? > and := ? I bet you have a pointer to a data structure and want to use = or /= on the content (and not on the pointer itself). Use .all. type PA is access String; A, B : PA := new String'("azerty"); if A.all = B.all then ... Also to assign a value to the pointer : A.all := (others => ' '); -- All char of A.all are set to space Note that A.all := "qw"; Will raise Constraint_Error as A.all is 6 chars long not 2. You can omit the .all if using a slice : A (1 .. 2) := "qw"; Pascal. -- --|------------------------------------------------------ --| Pascal Obry Team-Ada Member --| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE --|------------------------------------------------------ --| http://www.obry.net --| "The best way to travel is by means of imagination&quo...

Filter Group Delay
The Matlab command 'grpdelay' is restricted to digital filters only. Does there exist some counterpart to 'grpdelay' that operates in the analog domain? Some Matlab commands have separate versions for the analog and digital domains, and I wonder why 'grpdelay' does not. For example, the 'butter' command to generate Butterworth filter coefficients has digital and analog versions. The analog version is useful for understanding the stand-alone characteristics of a proposed filter, i.e., the characteristics that are independent of a particular sampled data record. ...

Google groups delay
Anyone noticed that google groups is not updating SAS-L ? Today the newest item is dated 2 days ago. R That's true, very unexpected delays both for new posts and also for replies. Hope will be fixed soon. On Oct 29, 12:33=A0am, Akshaya <akshaya.nathil...@gmail.com> wrote: > That's true, very unexpected delays both for new posts and also for > replies. Hope will be fixed soon. Seems to be back to normal now. R ...

Group delay in Matlab
Dear all I not very familiar with filter design in Matlab and I am probably missin something when it comes to "group delay". My problem comes as follows. From what I have understood, if I have a filter such that its group dela response (plotted with grpdelay[b,a] in matlab with a,b the filte coefficients) provides 17 as the group delay (in samples) at f=0.1 (normalized frequency so f=0.14*fs/2=0.14*500=70Hz, sampling frequenc being 1000 Hz) then passing a sinusoid whose frequency is 70Hz through th filter I should get at the output the same sinusoid (assuming gain is one delayed by...

Negative Group Delay ... again!
From a recent discussion here: > >if i could generate some coefficents that had a 'negative' group delay for > >a period of time, would you think that 'phase cloning' was new and > >intersting?? > > A time machine would be pretty revolutionary, yes. > > Negative group delay means that the output appears before the input > arrives. Fascinating concept, isn't it? I was curious enough to dig into the topic for a while and write up what I found out. You can read about it here: http://www.dsprelated.com/showarticle/54.php Regards, Andor On Mar 7, 5:18=A0pm, Andor <andor.bari...@gmail.com> wrote: > From a recent discussion here: > > > >if i could generate some coefficents that had a 'negative' group delay = for > > >a period of time, would you think that 'phase cloning' was new and > > >intersting?? > > > A time machine would be pretty revolutionary, yes. > > > Negative group delay means that the output appears before the input > > arrives. > > Fascinating concept, isn't it? I was curious enough to dig into the > topic for a while and write up what I found out. You can read about it > here: > > http://www.dsprelated.com/showarticle/54.php > > Regards, > Andor Hello Andor, Very well written article. Hopefully this will put a lot of the seeming paradoxes associated with group delay to bed. The previous threads must h...

group delay time?
It is known, that non-uniformity of the frequency response of the channel influences level of ISI. And what kind of distortions is characteristic for non-uniform group delay time? On Feb 5, 3:08=A0am, "alex65111" <alex65...@list.ru> wrote: > It is known, that non-uniformity of the frequency response of the channel > influences level of ISI. And what kind of distortions is characteristic f= or > non-uniform group delay time? A non-constant group delay vs frequency (non-linear phase vs frequency) distorts the pulse shape. This causes ISI. John >On Feb 5, 3:08=A0am, "alex65111" <alex65...@list.ru> wrote: >> It is known, that non-uniformity of the frequency response of the channel >> influences level of ISI. And what kind of distortions is characteristic f= >or >> non-uniform group delay time? > >A non-constant group delay vs frequency (non-linear phase vs >frequency) distorts the pulse shape. This causes ISI. > >John > As on level of pulsations group delay it is possible to estimate effective duration of the impulse response? On Feb 5, 3:47=A0pm, "alex65111" <alex65...@list.ru> wrote: > >On Feb 5, 3:08=3DA0am, "alex65111" <alex65...@list.ru> wrote: > >> It is known, that non-uniformity of the frequency response of the > channel > >> influences level of ISI. And what kind of distortions is characteristi= c > f=3D > >or >...

phase to group delay
I designed an algorithm to compute signal delay through an RF channel. I first verified the algorithm using a known IIR model. I managed to get groupdelay of this IIR spot on compared to that given by Matlab function grpdelay(num,den). The algorithm is based on sending frequency sweep chirp signal followed by fft then conversion of phase to groupdelay using the derivative of negative angular phase with respect to angular frequency. The algorithm has been released and is working well. I am now asked if I could apply it to the case when the available test signal is only single tone instead of frequency sweep. I tested my same algorithm on single tone. All looks ok but with a mystery factor of 2 needed to get IIR model groupdelay match that of matlab. I mean if I multiply the computed groupdelay based on fft by 2 then it gets correct with a small margin of error. Any idea what this factor of 2 might be. In both cases I use real only chirp signal or real only single tone and the fft is complex. Processing is identical throughout the algorithm for both cases in every step. Regards Kadhiem kaz <37480@dsprelated> wrote: > I designed an algorithm to compute signal delay through an RF channel. > I first verified the algorithm using a known IIR model. I managed to get > groupdelay of this IIR spot on compared to that given by Matlab function > grpdelay(num,den). The algorithm is based on sending frequency...

negative group delay
Hi, I am seeing some negative group delay at 1000, 2000, 3000, 4000, 5000 Hz. The example filter listed below with matlab/octave code. any clue why this is happening? interesting part is when I feed 1000 hz sine wave sampled at 10000 hz I don't see the behaviour of negative group delay. Regards Bharat %---------------------------------------------------------------- clear; close all; h1 = [10 9 8 7 6 5 4 3 2 1]/55; Fs = 10000; [gd, f] = grpdelay(h1, 1, 8192, Fs); figure; clf; plot(f, gd); On Mar 12, 5:58 pm, "bharat pathak" <bha...@arithos.com> wrote: > Hi, > > I am seeing some negative group delay at > 1000, 2000, 3000, 4000, 5000 Hz. The example > filter listed below with matlab/octave code. > > any clue why this is happening? interesting > part is when I feed 1000 hz sine wave sampled > at 10000 hz I don't see the behaviour of > negative group delay. Individual sine waves don't experience group delay, they experience phase delay. -- Oli On Mar 12, 11:04 am, Oli Charlesworth <ca...@olifilth.co.uk> wrote: > On Mar 12, 5:58 pm, "bharat pathak" <bha...@arithos.com> wrote: > > > Hi, > > > I am seeing some negative group delay at > > 1000, 2000, 3000, 4000, 5000 Hz. The example > > filter listed below with matlab/octave code. > > > any clue why this is happening? interesting >...

CIC Group Delay
I would like to know if I can predict what the group delay of a CIC filter is. I have an agressive FIR BPF where the sample rate is 2000 x the filter bandwidth. The group delay is longer than I would like it to be. Could a CIC filter offer a lower group delay? I'll need to interpolate back to the original sample rate, so I need to take that into consideration as part of the answer. Thanks, in advance. Jim jim_nospam_beasley@yahoo.com wrote: > I would like to know if I can predict what the group delay of a CIC > filter is. What is a CIC filter? Bob -- "Things should be described as simply as possible, but no simpler." A. Einstein "Bob Cain" <arcane@arcanemethods.com> wrote in message news:dii59h19o4@enews4.newsguy.com... > > jim_nospam_beasley@yahoo.com wrote: >> I would like to know if I can predict what the group delay of a CIC >> filter is. http://www.google.com/search?hl=en&q=%22cic+filter%22+%22group+delay%22 > > What is a CIC filter? > http://www.google.com/search?hl=en&q=cic+filter > > Bob > -- > > "Things should be described as simply as possible, but no simpler." > > A. Einstein Simple enough, Bob? ;-) Cheers, Syms. <jim_nospam_beasley@yahoo.com> wrote in message news:1129092761.120373.45800@z14g2000cwz.googlegroups.com... >I would like to know if...

delays: inertial delays vs. transport delays
Hello, I have some issues with delays which I would appreciate very much if someone could please clarify for me, as they are not clear to me right now. I would like to know what the difference between an inertial delay and a transport delay is and why VHDL would need to have these two distinct types of delay. Also, it seems to me that specifying delays in VHDL designs can only serve the purose of simulation since the delays inherent in the physical hardware cannot, as far as I know, be controlled with software: they certainly cannot be made smaller than what they are, but I'm not sur...

Linux Fails in Munich, Delays, Delays, Delays
The pipedream of Linux being used by Government is quickly fading. The first big deployment has been full of "snags" and "delays"... just like using Linux! We told everyone this, now the truth is known. - Munich announces delay in Linux migration into 2006 9/7/2005 4:55:02 PM, by Jeremy Reimer The municipal government of Munich, Germany released a statement yesterday that the migration of its office PCs to Linux and OpenOffice.org, which was scheduled to be completed in 2005, has slipped to at least next year. The original plan, which involved switching all 14,00...

group delay for type3 and type4
Hi, In the book "DSP a practical approach" 2nd Ed by Ifeachor, Jervis it is mentioned that group delay for type 3 and type 4 LPFIR filter is given by Tp = T*(N-1-pi)/2; eq 7.4b page 348 Is it correct to have pi inside the brackets for group delay calculation? Regards Bharat On Mar 25, 2:23=A0am, "bharat pathak" <bha...@arithos.com> wrote: > Hi, > > =A0 In the book "DSP a practical approach" 2nd Ed by Ifeachor, Jervis > =A0 it is mentioned that group delay for type 3 and type 4 LPFIR filter > =A0 is given by > > =A0 Tp =3D T*(N-1-pi)/2; eq 7.4b page 348 > > =A0 Is it correct to have pi inside the brackets for group delay > =A0 calculation? > > Regards > Bharat Hello Bharat, All FIR filters whose impulse responses have definite parity have a group delay of (N-1)/2 samples. By definite parity I mean the coefs are either symmetric or antisymmetric. And N is the length of the impulse response, i.e.,the number of filter taps. Clay >All FIR filters whose impulse responses have definite parity have a >group delay of (N-1)/2 samples. By definite parity I mean the coefs >are either symmetric or antisymmetric. >And N is the length of the impulse response, i.e.,the number of filter >taps. I understand that, my question is should pi appear in the equation for Type3 and Type4 LPFIR filters??? I understand the equation for Type1 and Type2. Regards Bharat On 25 Mrz., 07:...

Filter Design, group delay
Hello, I am looking for a way to obtain the lowest group delay. The specifications are; Lowpass filter fpass=1kHz with 3dB Ripple fstop=4kHz Attenuation 60dB (between 4kHz and 20kHz or between 4kHz and 97.5kHz) with sampling frequency: 195kHz up to 1kHz linear phase and constant group delay (needed) If I use Generalized Equiripple FIR filter of Matlab fda toolbox, th minimum order is 115 (so 57.5 Tabs delay) Is it possible to obtain a new filter which has a delay less than 57. Tabs for the given specifications? Best Regards Gokhan On 12 Okt, 04:58, "gapaydin" <apadi...@yahoo.com> wrote: > Hello, > > I am looking for a way to obtain the lowest group delay. > The specifications are; > > Lowpass filter > fpass=1kHz with 3dB Ripple > fstop=4kHz > Attenuation 60dB (between 4kHz and 20kHz or between 4kHz and 97.5kHz) > with sampling frequency: 195kHz > up to 1kHz linear phase and constant group delay (needed) > > If I use Generalized Equiripple FIR filter of Matlab fda toolbox, the > minimum order is 115 (so 57.5 Tabs delay) > > Is it possible to obtain a new filter which has a delay less than 57.5 > Tabs for the given specifications? I would be very surprised if you can reduce the group delay significantly. Since you require constant group delay you are commited to symmetric FIR filters. Which means that the task is to design the shortest symmetric FIR filter which attains the spec. You may be able to s...

Negative Group Delay Circuit
http://www.kuee.kyoto-u.ac.jp/~kitano/paper/slp2/slp2.pdf They appear to get an output before there is an input! Surely some mistake... Hardy HardySpicer wrote: > http://www.kuee.kyoto-u.ac.jp/~kitano/paper/slp2/slp2.pdf > > They appear to get an output before there is an input! Surely some > mistake... Unfortunately they found it had already been reported in last month's journal. ;) I once wasted an entire day trying to do that (back when I was 21 or so). These guys don't seem to have got the memo about causality. Love to see them build one that works. Cheers Phil Hobbs -- Dr Philip C D Hobbs Principal Consultant ElectroOptical Innovations LLC Optics, Electro-optics, Photonics, Analog Electronics 160 North State Road #203 Briarcliff Manor NY 10510 845-480-2058 email: hobbs (atsign) electrooptical (period) net http://electrooptical.net On Jul 8, 9:30=A0pm, HardySpicer <gyansor...@gmail.com> wrote: > http://www.kuee.kyoto-u.ac.jp/~kitano/paper/slp2/slp2.pdf > > They appear to get an output before there is an input! Surely some > mistake... No mistake. They really do appear to advance the signal. They don't actually advance it, but they do appear to. Jerry -- Engineering is the art of making what you want from things you can get. > HardySpicer wrote: >> http://www.kuee.kyoto-u.ac.jp/~kitano/paper/slp2/slp2.pdf >> >> They appear to get an output before there is an input! Surely some >> mi...

group delay DC filter
Dear all, My task is to implement a very narrow high pass filter to remove a DC offset of a signal. So the cut off frequency of the filter is very low. The filter must be linear phase. A first implementation was made using a double cascaded moving average filter. The filter seems to do its job very well. Unfortunately the group delay of the filter is too large. I have read some articles on multi rate filtering. Although I the feeling I could use this to find a filter with a shorter group delay most articles point out that multi rate filtering is not used to lessen the group delay. Let's say I have a signal X at sample rate Fs. 1. I split the signal in two new signals Xlowpass and Xhighpass by applying a low and high pass filter with a cutoff of about Fs/4. 2. Because Xlowpass does not contain any frequencies above Fs/4 I can downsample the signal Xlowpass without aliasing in a resulting signal Xdown. 3. Now I can find a low pass filter to do the original DC filtering at this lower rate on the signal Xdown. The DC filter will have to be less narrow resulting in a lower group delay. 4. After the DC filtering I can upsample the signal Xdown and add the high frequency part Xhighpass to get the final signal but now DC filtered. Maybe someone can point out why this will not work. An alternative idea to lessen the group delay of the DC filter would also be greatly appreciated. Regards, Dinne Dinne wrote: > Dear all, > > My task is to implement a very...

Channel-Group Groups
When configuring a T1 and setting up the timeslots you have an option to set the channel group group number. What exactly does the "channel-group" group number do? Normally, I plug in 1, but you can set it from 0-23. channel-group ?? timeslots 1-24 speed 64 (?? is where the group number would go.) Thanks Amy. On 16 Dec 2004 10:53:42 -0800, amyl@paxemail.com wrote: ~ When configuring a T1 and setting up the timeslots you have an option ~ to set the channel group group number. What exactly does the ~ "channel-group" group number do? Normally, I plug in 1, but you can ~ set it from 0-23. ~ ~ channel-group ?? timeslots 1-24 speed 64 ~ (?? is where the group number would go.) ~ ~ Thanks ~ Amy. The channel-group number becomes part of the name of the serial interface you create. For example, if you do this: controller T1 2 channel-group 3 timeslots 1-24 speed 64 then this creates an interface called "Serial 2:3" You can configure multiple channel-groups (and/or ds0-groups if your platform supports it), so pick a unique channel-group/ ds0-group ID for each such group ... e.g. controller t1 2 channel-group 0 timeslots 1-4 speed 64 channel-group 1 timestots 5-12 speed 64 ds0-group 2 timeslots 13-24 type e&m-fgb Aaron ...

[News] Windows Vista: Delays, Delays, More Delays and Doubt
Microsoft's Vista faces delays as public tests continue ,----[ Quote ] | David Bradshaw, principal analyst for Ovum, the technology research | group, said that delays to the full release of Vista remained a danger, | noting that such testing programmes are becoming increasingly normal. He | said that public testing programmes were useful in highlighting problems | of compatibility, where the software fails to work properly with certain | printers, software programs or hardware. | | Although the discovery of a problem could force a rewrite, Mr Bradshaw | said, "it would have to be a...

Re: Google groups delay
Indeed ... maybe 97000 is a magic number for them (96999 is the number of topics currently listed)? -Joe On Mon, Oct 27, 2008 at 6:41 PM, Richard <richard.hockey@gmail.com> wrote: > Anyone noticed that google groups is not updating SAS-L ? > Today the newest item is dated 2 days ago. > R > ...

Finding the group delay of a filter
Has anyone implemented a function to find the group delay (the time between= the filter's initial response and its peak response)of the different digit= al filters in LabVIEW?<br><br>I need to track the arrival of a certain part= of a signal. I know approx. when it is to arrive, however locating it gets= complicated due to the variable delay caused by the necessary filtering (d= elay depends on the frequencies, filter order, type etc.) .<br><br>I see th= at MatLAB / MatWorks has a group delay function, but perhaps someone has ma= de a G equivalent? <br><br>The digital filter design toolkit is said to hav= e analysis tools that can give you the group delay...but I'm not sure if th= at could be used to find the delay in any case programmatically? Even if it= can I'm a bit reluctant to buy the toolkit just for that functionality...<= br><br>I though I had solved it when I found a description of how to calcul= ate the delay of a Butterworth filter (at least) on: http://www.mathcad.com= /Library/LibraryContent/MathML/group_b.htm<br><br>The results are in the ri= ght ballpark...but sometimes it fails by more than 5 microseconds and that'= s not good enough for my application (could be an incorrect implementation = off course). <br><br>If I use correlation to find the delay I get extremely= good results, however that will not be robust enough (there could be other= strong features, e.g. due...

Group By, Limit only group?
Greetings. I'm looking to select data from a table and group by some values.. but I'm looking to limit the number of rows returned for each group, but not the entire query. Here's my table set up (Not from MySQL, just typed up.. but it'll give you the idea): CREATE TABLE bank_ident_all_t( ident_id INT(9) UNSIGNED ZEROFILL NOT NULL, ident_type ENUM('ach','cc') NOT NULL, bank_id INT UNSIGNED NOT NULL, ref_count INT UNSIGNED NOT NULL DEFAULT 1, last_updated INT UNSIGNED NOT NULL, PRIMARY KEY(ident_id, ident_type, bank_id), INDEX(ident_id, ident_type) )...

group delay of FIR filter
Hi all, Consider a FIR filter with coefficients [1 2 3 2 1] I know the group delay is 2, (5-1)/2. Can anyone tell how to deduce the group delay of 2 without going through the d(theta)/d(omega) mathematics? Is there an easy way to find the group delay? cfy30 cfy30 wrote: > Hi all, > > Consider a FIR filter with coefficients [1 2 3 2 1] > > I know the group delay is 2, (5-1)/2. Can anyone tell how to deduce the > group delay of 2 without going through the d(theta)/d(omega) mathematics? > Is there an easy way to find the group delay? You just found it. What more do you want? (5-1)/2 bypasses d(theta)/d(omega). Jerry -- Engineering is the art of making what you want from things you can get. ����������������������������������������������������������������������� On 21 Mar, 20:02, "cfy30" <cf...@yahoo.com> wrote: > Hi all, > > Consider a FIR filter with coefficients [1 2 3 2 1] > > I know the group delay is 2, (5-1)/2. Can anyone tell how to deduce the > group delay of 2 without going through the d(theta)/d(omega) mathematics? > Is there an easy way to find the group delay? Well, there is the difference between *deriving* the group delay (that is, finding the formula), and *computing* the group delay. You can do the computation in two ways: - Observe that the filter's impulse response is symmetric, so the filter is linear phase and thus the group delay is constant (N-1)/2 = 2. I can't imagine any...

grouping data to equalize mean
hi all, i have some objects that, over the course of my experiment, will be growing larger. in an effort to minimize any initial bias, i want to sort the objects before my experiment begins, such that the average size of the objects is nearly the same across my experimental groups. for example, if my objects were plants, and i wanted to monitor the rate at which the plants grow across a set of 4 experimental conditions, i might start with 40 seedlings. i want to measure the lengths of the seedlings, and then assign them into 4 groups such that the starting lengths are approxim...

Delay when sending to queue grouped
Dear group, I am currently setting up queue groups by using the following macros in my sendmail.mc file: define(`QUEUE_DIR', `/var/spool/mqueue')dnl QUEUE_GROUP(`autohandled', `P=/var/spool/mqueue/autohandled, I=5m, R=5')dnl define(`LOCAL_PROG_QGRP', `autohandled')dnl However, when sending through the 'prog' mailer, the message is not delivered instantly, but rather queued FIRST, and then delievered after the first queue run (within 5 minutes). Note that this behaviour only occurs when sending through the Mail Submission Program (MSP), and not directly to sendmail using the "-Am" switch. Why isn't my message being sent to the mailer first, and then queued later, if necessary? Am I missing something? I know that this doesn't happen if I don't specify queue groups, but is this a result of a misconfiguration, or is this how queue groups act by default? Thanks in advance, - Anthony ...

Web resources about - group delay equalizer - comp.dsp

Equalizer: Parallel Rendering
Equalizer is the standard middleware to create and deploy parallel OpenGL-based applications.

GAU-12 Equalizer - Wikipedia, the free encyclopedia
The General Dynamics GAU-12/U Equalizer is a five-barrel 25 mm Gatling-type rotary cannon . The GAU-12/U is used by the United States , Italy ...

The Radio Equalizer: Brian Maloney
LIZZY'S LIES ARE OK! Esquire's Pierce Blames Herald For Warren Mess Now we know why the Boston Globe is so reluctant to cover Elizabeth Warren's ...

Equalizer PRO™ on the App Store on iTunes
Get Equalizer PRO™ on the App Store. See screenshots and ratings, and read customer reviews.

The Equalizer Official Trailer (2014) Denzel Washington, Chloe Grace Moretz HD - YouTube
http://www.joblo.com - "The Equalizer" Official Trailer (2014) Denzel Washington, Chloe Grace Moretz HD A former black ops commando who faked ...


The Equalizer review: Denzel Washington anchors action thriller with a big schtick
Denzel Washington provides the calm heart of this outlandish but stylish action thriller from his Training Day director Anton Fuqua.

Apple releases iTunes 11.1.3 with performance, equalizer and other bug fixes
... Apple has updated iTunes to version 11.1.3. The new update includes multiple bug fixes surrounding performance for large libraries, the equalizer, ...

The Great Equalizer Part 2: Surface Pro vs. Android Devices in 3DMark
While we're still waiting for Windows RT and iOS versions of the latest 3DMark, there is one cross-platform comparison we can make: Ivy Bridge/Clover ...

The 10 Best Equalizers for Android! (video)
/ Over the years, Android’s problems with music quality have been pretty much fixed, but a lot of people still use equalizers to get that extra ...

Resources last updated: 3/29/2016 11:40:09 PM