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

0 |

9/30/2012 6:26:18 PM

>> Matlabi apparently messed phase unwrapping. sounds only too familiar. To -track- a phase from zero across the frequency axis, I need signal energy everywhere in-between. If the signal is bandpass-type - such as single tone - it's often not possible at all to resolve the phase ambiguity without side information. See the end of page here: http://www.dsprelated.com/showarticle/26.php section "phase unwrapping" for this particular problem.

0 |

10/1/2012 4:47:15 PM

>>> Matlabi apparently messed phase unwrapping. > >sounds only too familiar. >To -track- a phase from zero across the frequency axis, I need signal >energy everywhere in-between. >If the signal is bandpass-type - such as single tone - it's often not >possible at all to resolve the phase ambiguity without side information. > >See the end of page here: >http://www.dsprelated.com/showarticle/26.php >section "phase unwrapping" for this particular problem. > Just to add up more information. In my design I do ratio of output fft to input fft. Thus I have in effect two tones to compare(input and output). Then convert instantaneous phase difference of fft ratio to delay. I might as well look at time domain but it is rather inconsistent and less accurate.

0 |

10/1/2012 5:25:42 PM

but if you look only at a single frequency, how could you tell whether, say, 5 degrees phase difference are really 5 degrees, or 365 degrees, or 725 degrees?

0 |

10/1/2012 6:54:31 PM

>Not a single frequency. A burst of a sine wave, like in classic monopulse >radar. that would work, as it has a nice sinc-spectrum instead of one discrete line. But I understood "single tone" from the original post that it's about using a continuous-wave signal, steady-state, no transients.

0 |

10/1/2012 8:22:48 PM

>but if you look only at a single frequency, how could you tell whether, >say, 5 degrees phase difference are really 5 degrees, or 365 degrees, or >725 degrees? > > The algorithm looks at phase gradient of output tone/input tone and it works as expected as measure of absolute delay between input & output (in this case it matches groupdelay of given filter at the tone point but delay requires x2 factor for tone as opposed to frequency sweep)

0 |

10/2/2012 6:12:00 PM

>On 10/2/12 2:12 PM, kaz wrote: >>> but if you look only at a single frequency, how could you tell whether, >>> say, 5 degrees phase difference are really 5 degrees, or 365 degrees, or >>> 725 degrees? >>> >>> >> >> The algorithm looks at phase gradient of output tone/input tone and it >> works as expected as measure of absolute delay between input& output (in >> this case it matches groupdelay of given filter at the tone point but delay >> requires x2 factor for tone as opposed to frequency sweep) > > >okay kaz, > >is the driving swept tone like > > x(t) = exp( j*pi*beta*t^2 ) > >is the instantaneous frequency whatever multiplies the "t" (which is >pi*beta*t) or the derivative of the phase (which is 2*pi*beta*t)? > >what is the sweep rate of this? beta or beta/2? > >-- > >r b-j rbj@audioimagination.com > >"Imagination is more important than knowledge." > > > I generate a tone from the following equation: x_in = exp(j*2*pi*(0:1023)*fo/Fs); where fo is any chosen tone frequency and Fs is sampling rate. I then generate IF centre fc at same sampling frequency: IF = exp(j*2*pi*(0:1023)*fc/Fs); then upconvert the tone: y_in = real(x_in.*IF); then pass y_in through a known IIR model to get y_out. Do fft on both y_in & y_out. Take the ratio of fft_out/fft_in, get the phase of this ratio and convert it to groupdelay. Then compare the delay at the tone point for both the IIR model and this fft ratio computation. The time domain can also tell the delay in sample units in most but not all cases.

0 |

10/3/2012 1:12:26 AM

>On 10/2/12 9:12 PM, kaz wrote: >>> On 10/2/12 2:12 PM, kaz wrote: >>>>> but if you look only at a single frequency, how could you tell >> whether, >>>>> say, 5 degrees phase difference are really 5 degrees, or 365 degrees, >> or >>>>> 725 degrees? >>>>> >>>>> >>>> >>>> The algorithm looks at phase gradient of output tone/input tone and it >>>> works as expected as measure of absolute delay between input& output >> (in >>>> this case it matches groupdelay of given filter at the tone point but >> delay >>>> requires x2 factor for tone as opposed to frequency sweep) >>> >>> >>> okay kaz, >>> >>> is the driving swept tone like >>> >>> x(t) = exp( j*pi*beta*t^2 ) >>> >>> is the instantaneous frequency whatever multiplies the "t" (which is >>> pi*beta*t) or the derivative of the phase (which is 2*pi*beta*t)? >>> >>> what is the sweep rate of this? beta or beta/2? >>> >>> -- >>> >>> r b-j rbj@audioimagination.com >>> >>> "Imagination is more important than knowledge." >>> >>> >>> >> >> I generate a tone from the following equation: >> >> x_in = exp(j*2*pi*(0:1023)*fo/Fs); >> >> where fo is any chosen tone frequency and Fs is sampling rate. I then >> generate IF centre fc at same sampling frequency: >> >> IF = exp(j*2*pi*(0:1023)*fc/Fs); >> >> then upconvert the tone: >> >> y_in = real(x_in.*IF); >> > >okay, i see no reason why that isn't > > y_in = cos(2*pi*(0:1023)*(fo+fc)/Fs) > > You are right but I am doing that for setup purposes and to compare directly with chirp case. >> then pass y_in through a known IIR model to get y_out. Do fft on both y_in >> & y_out. Take the ratio of fft_out/fft_in, get the phase of this ratio and >> convert it to groupdelay. Then compare the delay at the tone point for both >> the IIR model and this fft ratio computation. The time domain can also tell >> the delay in sample units in most but not all cases. > >i think i misread your original problem. i thought that you were >driving it with a "chirp". > >since this is just a single sinusoid, the output of the IIR will have a >steady-state sinusoid that will be delayed by the *phase* delay of the >filter at frequency (fo+fc)/Fs. the group delay isn't really directly >measurable from passing a single sinusoid through a filter. not unless >you somehow construct the whole frequency response by inferring a filter >model from the transient response. from the model you can get an idea >what the group delay is. > > >-- > >r b-j rbj@audioimagination.com > >"Imagination is more important than knowledge." > > > As I mentioned I use same algorithm for both cases of chirp signal and single tone. I literally just comment out one input or the other and look at given passband range. In the case of chirp input I get the IIR groupdelay spot on with my computed delay at every point(may need some averaging). In the case of single tone I need to multiply by 2 no matter what (fo) I use or what fft resolution I use. It may not be groupdelay strictly speaking but it does follow the IIR groupdelay. The error is actually very small after x2 scaling and ranges from 0 ~ 10 ns for Fs of 120Msps but stays so if I lower Fs! Practically I am convinced it is going to work but just curious about the issue.

0 |

10/3/2012 2:21:17 AM

>> Take the ratio of fft_out/fft_in, get the phase of this ratio and convert it to groupdelay Sorry, your algorithm is broken. I suspect it works by accident on the chirp, that's what causes all the confusion. You need the *derivative* of phase with regard to frequency, and that you cannot get from a single exp(...) tone. Re-read RBW's post, especially this line >> the group delay isn't really directly measurable from passing a single sinusoid through a filter Attached the relevant lines from a piece of code I use sometimes. H1 and H2 are frequency responses evaluated with a frequency offset +/- deltaF_Hz relative to each other. q.f_Hz = linspace(0.1e6, q.rate_Hz * 1.1, nFreq); q.fMinusDelta = q.f_Hz - q.deltaF_Hz / 2; q.fPlusDelta = q.f_Hz + q.deltaF_Hz / 2; H1 = H_FIR(c.h, q.fMinusDelta / q.rate_Hz); % at minus deltaF H2 = H_FIR(c.h, q.fPlusDelta / q.rate_Hz); % at plus deltaF gd_s = calcEffGroupDelay_s(H1, H2, q.deltaF_Hz, q.wGrpDelay); function H = H_FIR(h, fnorm) zInv = exp(-2i * pi * fnorm); H = polyval(fliplr(h), zInv); end % ********************************************** % calculates the effective group delay for a signal % with a magnitude spectrum given by weight. % ********************************************** function grpDelay_s = calcEffGroupDelay_s(H1, H2, deltaF_Hz, weight) deltaOmega_rad = deltaF_Hz * 2 * pi; % determine angle delta between frequency responses at each freq. point deltaAngle_rad = unwrap(angle(H2) - angle(H1)); % calculate group delay at each freq. point grpDelay_s = -deltaAngle_rad / deltaOmega_rad; % weighted group delay (implicitly suppresses frequencies without % signal energy) grpDelay_s = sum(grpDelay_s .* weight); end PS if anybody wonders: it's meant for Laplace domain, non-uniform frequency grids, interpolated frequency reponses. For a known FIR, it's like carpet bombing to kill a sparrow, expensive _and_ inaccurate. Bomb at your own risk. -markus

0 |

10/3/2012 9:21:30 AM

>Sorry, your algorithm is broken. I suspect it works by accident on the >chirp, that's what causes all the confusion. No way, it is based on derivative of phase with respect to frequency. i.e. groupdelay = -diff(angle(fft_ratio))./(diff(freq)*2*pi); in samples. > >You need the *derivative* of phase with regard to frequency, and that you >cannot get from a single exp(...) tone. > true but equally one tone has phase change all along frequency domain and I do same above equation. Naturally stop band phase is meaningless but that small section of frequency domain at tone location is what I depend on. Not quite correct but still works.

0 |

10/3/2012 10:40:06 AM

>> Not quite correct but still works. Not quite correct and it does NOT work - that's what this is all about, after all. chirp: - The chirp has some signal energy at all FFT bins. - It may be small but that's enough in the absence of noise: fft_ratio HAS a valid angle - diff gives meaningful angle difference between adjacent bins single tone: - The single tone has energy only at a single FFT bin. - It does NOT have a valid angle at all other bins - including said bin's neighbors - therefore, diff() calculates the difference between said bin and garbage. - the resulting garbage happens to look like a valid result, and that seems to be the main problem.

0 |

10/3/2012 1:48:42 PM

>>> Not quite correct but still works. >Not quite correct and it does NOT work - that's what this is all about, >after all. > >chirp: >- The chirp has some signal energy at all FFT bins. >- It may be small but that's enough in the absence of noise: > fft_ratio HAS a valid angle >- diff gives meaningful angle difference between adjacent bins > >single tone: >- The single tone has energy only at a single FFT bin. >- It does NOT have a valid angle at all other bins >- including said bin's neighbors >- therefore, diff() calculates the difference between said bin and >garbage. >- the resulting garbage happens to look like a valid result, and that seems >to be the main problem. > > That is all true. The single tone that I see is never in one bin. In effect I am dependent on the side effect of leakage to adjacent bins to get some practical result. Thanks for the replies. It therefore explains somehow the odd thing about factor 2.

0 |

10/3/2012 5:36:25 PM

>what particular delay is spot on with the chirp? the delay of the >instantaneous frequency? group delay normally applies to the envelope >of a sinusoid. the apparent delay of the sinusoid itself is the "phase >delay" > >group delay t_d(w) = -(d/dw) arg{ H(e^(jw) } > >phase delay t_phi(w) = -1/w arg{ H(e^(jw) } > %example IIR modelling and groupdelay from Matlab num = fir1(22,.6); den = [1 .2 -.4]; [gd1,f] = grpdelay(num,den,2^16,'whole',1); %my computed version gd2 = -diff(unwrap(angle(fft_ratio)))./diff(f*2*pi); So it is groupdelay, not phase delay. The same algorithm is applied whether the input is chirp or single tone. Thus I use Matlab grpdelay function as my testbench. The frequency vector (f) is 0~1 and identical between Matlab function and fft resolution

0 |

10/4/2012 3:33:22 AM

> >now you haven't defined explicitly what "fft_ratio" is, but i can >imagine what it is. but it might be good to show the code that defines >fft_ratio. > >so what do you think this fft_ratio is going to be for the single tone? > what is going to be in the denominator of that fft_ratio for many >frequency bins? you will have serious numerical problems, because of >dividing by a near zero value, where the angle could become any random >angle. > > Well just fft ratio really. Thanks to matlab: fft_in = fft(x,2^16); fft_out = fft(filter(num,den,x),2^16); fft_ratio = fft1./fft2; I then avoid stop band problems by reducing vectors just to see the pass band of chirp or that of tone +/1 1MHz

0 |

10/4/2012 6:33:33 AM

> >> >>now you haven't defined explicitly what "fft_ratio" is, but i can >>imagine what it is. but it might be good to show the code that defines >>fft_ratio. >> >>so what do you think this fft_ratio is going to be for the single tone? >> what is going to be in the denominator of that fft_ratio for many >>frequency bins? you will have serious numerical problems, because of >>dividing by a near zero value, where the angle could become any random >>angle. >> >> > >Well just fft ratio really. Thanks to matlab: > >fft_in = fft(x,2^16); >fft_out = fft(filter(num,den,x),2^16); >fft_ratio = fft1./fft2; > >I then avoid stop band problems by reducing vectors just to see the pass typo: fft_ratio = fft_out./fft_in;

0 |

10/4/2012 6:44:47 AM

>On 10/4/12 2:33 AM, kaz wrote: >>> >>> now you haven't defined explicitly what "fft_ratio" is, but i can >>> imagine what it is. but it might be good to show the code that defines >>> fft_ratio. >>> >>> so what do you think this fft_ratio is going to be for the single tone? >>> what is going to be in the denominator of that fft_ratio for many >>> frequency bins? you will have serious numerical problems, because of >>> dividing by a near zero value, where the angle could become any random >>> angle. >>> >>> >> >> Well just fft ratio really. Thanks to matlab: >> >> fft_in = fft(x,2^16); >> fft_out = fft(filter(num,den,x),2^16); >> fft_ratio = fft_out./fft_in; >> > >now, with a single tone, what do you think some of the values of fft_in >are? have you looked at those values? > >normally, because of division-by-zero, you cannot get enough information >about your system to derive the full system response from a single >sinusoid. certainly not from the steady-state response. and you can't >get group delay without knowledge of the system at *multiple* frequencies. > >now, there *is* a possibility of getting some information from the >*transient* response. and what comes out of filter(num,den,x) will have >both steady-state and transient response because of the initial states >of your filter. but the steady-state response, which is where nearly >all of your energy is, cannot give you information about the LTI system >(or "filter") beyond that discrete frequency. you would do better if >"x" was an impulse. or some other broad-banded signal like a chirp. > > >-- > >r b-j rbj@audioimagination.com > >"Imagination is more important than knowledge." > > > division by zero would

0 |

10/4/2012 5:15:25 PM

>On 10/4/12 2:33 AM, kaz wrote: >>> >>> now you haven't defined explicitly what "fft_ratio" is, but i can >>> imagine what it is. but it might be good to show the code that defines >>> fft_ratio. >>> >>> so what do you think this fft_ratio is going to be for the single tone? >>> what is going to be in the denominator of that fft_ratio for many >>> frequency bins? you will have serious numerical problems, because of >>> dividing by a near zero value, where the angle could become any random >>> angle. >>> >>> >> >> Well just fft ratio really. Thanks to matlab: >> >> fft_in = fft(x,2^16); >> fft_out = fft(filter(num,den,x),2^16); >> fft_ratio = fft_out./fft_in; >> > >now, with a single tone, what do you think some of the values of fft_in >are? have you looked at those values? > >normally, because of division-by-zero, you cannot get enough information >about your system to derive the full system response from a single >sinusoid. certainly not from the steady-state response. and you can't >get group delay without knowledge of the system at *multiple* frequencies. > >now, there *is* a possibility of getting some information from the >*transient* response. and what comes out of filter(num,den,x) will have >both steady-state and transient response because of the initial states >of your filter. but the steady-state response, which is where nearly >all of your energy is, cannot give you information about the LTI system >(or "filter") beyond that discrete frequency. you would do better if >"x" was an impulse. or some other broad-banded signal like a chirp. > > >-- > >r b-j rbj@audioimagination.com > >"Imagination is more important than knowledge." > > > division by zero will be flagged by the tool. It doesn't actually happen. I agree that single tone is not best. The problem is we have some platforms that can't generate anything more than tone or impulse. The impulse does not work practically in our case because the side lobes of impulse response are too low and disappear in the RF noise.

0 |

10/4/2012 5:19:23 PM

>robert bristow-johnson <rbj@audioimagination.com> wrote: >> On 10/4/12 1:19 PM, kaz wrote: >(snip) >>> division by zero will be flagged by the tool. It doesn't actually happen. > >> come on, kaz. think about numerical issues. how about division by >> teeny-weeny numbers? and what if some teeny-weeny number is in the real >> part and another totally different (except they're both close to zero) >> teeny-weeny number in in the imaginary part? now, whether the numerator >> is teeny-weeny or not, the complex number that results could easily be >> pointing in random directions, and your group delay is derived from >> these directions (the arg{ X[k] }). > >I thought the question was theoretical, so that there are no >numerical issues. Now, if you actually want to build one, >then that is a different question. > >-- glen > The tone does not translate into a single line in one bin, may be due to truncation or incomplete cycles. I tried many values and many fft resolutions. What I get is that tone power is spread gently around +/- 0.1Mhz on either side of centre. I only zoom in on that area when I compute phase so I don't get numerical problems. It is somewhat similar to multiple tones with curvy amplitudes. What is going to happen in real platform is something I have to wait and see but I have the feel that it wouldn't be much different from theoretical case. I tried to centre the tone on bin centre plus adjusted vector to be complete cycles. It does not become one line either but the error increases to maximum of about 10ns. I know a single tone ideally can become single bin and I am not sure why I never get it in my current work.

0 |

10/4/2012 6:54:29 PM

>well that *is* in the bin center (if it's complete cycles in x[n]). if >it's an integer number of cycles of the tone in x[n], what goes to the >FFT and becomes "fft_in", there will be all but two bins that either >have zero in them or, because of the numerical issues of an FFT with >finite word width, some of those bins will have very, very small >non-zero values. > >but i am surpized to read: "division by zero ... doesn't actually >happen." you must be lucky, because all but two bins will have >*virtually* zero in them. you cannot use those frequency bins to >discover knowledge about your filter because of division-by-zero problems. > > Just to correct myself. If tone is complete cycles and in centre of a bin, yes you are right it is only one non zero sample and the algorithm fails badly then. There was a small error in samples/cycle that misled me first. Thanks for pointing to that. Now it is clear to me that the algorithm works always unless tone is really clean single sample after fft and this is something that can easily be avoided.

0 |

10/4/2012 8:15:50 PM

Yes two non zero samples (I only look at one). I just tried a random frequency (not single line), the values of real samples are of the range -0.3xx and imaginary samples of the range -0.9xx all along the section that I compute. All other values are thrown away. I know many of us will not use an algorithm based on exploiting ftt weakness but so far I am finding results very encouraging though with a fiddle factor of x2. The problem with our platforms is that some support playing chirp signal or any vector, others are limited to single tone only. Thanks

0 |

10/4/2012 8:44:58 PM

On Tue, 02 Oct 2012 20:12:26 -0500, "kaz" <37480@dsprelated> wrote: >>On 10/2/12 2:12 PM, kaz wrote: >>>> but if you look only at a single frequency, how could you tell >whether, >>>> say, 5 degrees phase difference are really 5 degrees, or 365 degrees, >or >>>> 725 degrees? >>>> >>>> >>> >>> The algorithm looks at phase gradient of output tone/input tone and it >>> works as expected as measure of absolute delay between input& output >(in >>> this case it matches groupdelay of given filter at the tone point but >delay >>> requires x2 factor for tone as opposed to frequency sweep) >> >> >>okay kaz, >> >>is the driving swept tone like >> >> x(t) = exp( j*pi*beta*t^2 ) >> >>is the instantaneous frequency whatever multiplies the "t" (which is >>pi*beta*t) or the derivative of the phase (which is 2*pi*beta*t)? >> >>what is the sweep rate of this? beta or beta/2? >> >>-- >> >>r b-j rbj@audioimagination.com >> >>"Imagination is more important than knowledge." >> >> >> > >I generate a tone from the following equation: > >x_in = exp(j*2*pi*(0:1023)*fo/Fs); > >where fo is any chosen tone frequency and Fs is sampling rate. I then >generate IF centre fc at same sampling frequency: > >IF = exp(j*2*pi*(0:1023)*fc/Fs); > >then upconvert the tone: > >y_in = real(x_in.*IF); > >then pass y_in through a known IIR model to get y_out. Do fft on both y_in >& y_out. Take the ratio of fft_out/fft_in, get the phase of this ratio and >convert it to groupdelay. Then compare the delay at the tone point for both >the IIR model and this fft ratio computation. The time domain can also tell >the delay in sample units in most but not all cases. Hi kaz, have you seen: http://www.dsprelated.com/showarticle/69.php [-Rick-]

0 |

10/23/2012 5:36:47 PM

Hi, Assume I have a constant group delay of 1 second for all frequencies then I can determine the phase response to be: phase(w)=C - tau*w where tau is the delay of 1 second. How do I determine the constant C which is the phase response at zero frequency? Using Group Delay or Phase Delay both can derive phase response however can group delay and phase delay be opposite of signs? For example if Group delay is -a*w can phase delay be a*w? For linear phase response this cannot be true since group delay and phase delay are the same but what about for non linear phase response how does the r...

Hi , I have a trivial question .Could anyone explain the concept of linear phase and group delay . I went throught the books but I cant visualize the concept . Symmetric impulse response => Linear Phase and Constant group delay . but Linear Phase does not imply constant group delay . ?? Thanks in Advance Regards Vijay pcvijay30@gmail.com writes: > Hi , > > I have a trivial question .Could anyone explain the concept of linear > phase and group delay . I went throught the books but I cant visualize > the concept . > > Symmetric impulse response => Linear Pha...

Dear all, I have a question about a MATLAB example. in the example of weighted moving average filter which I studied in the following link : http://www.mathworks.com/help/signal/examples/signal-smoothing.html?refresh=true In plotting the results plot(days, tempC, 'b', ... days-fDelay/24, binomialMA, 'g', ... days-1/24, exponentialMA,'r'); I found out that for the exponential moving average filter the group delay is put 1 (1/24 in days), but the group delay for this filter is not linear for all frequencies. Would you please explain me...

I was wondering if the grpdelay function of Matlab can be used for analog transfer functions.. ('s') Otherwise, how can I create my own function for analog filters? Is there any way of differentiating the phase vector? Maru ...

Hi, Say I'm measuring the phase and magnitude response of a plant, but the measured data has to go through a 8x decimating filter (that I designed) because my hardware doesn't allow me to measure at the high rate. The decimating filter is FIR (constant group delay), and has flat magnitude response in the passband. I also do not care much about the response of the plant above the passband. I wonder if it's correct to 'remove' the known group delay of my filter from the measured data of the plant. Thanks! On Feb 24, 8:38=A0am, "gretzteam" <gretzteam@n_o_s_p...

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. ...

Hi, I'm quite new with matlab and dsp.... and I would like to add a group delay on a digital signal with matlab. I have a vector representing the signal and I want to add a group delay (constant or not) without any effects on frequencies. Any ideas? Thanks a lot for your help. Stef <stephaneo@gmail.com> wrote in message news:1149670315.510742.140060@j55g2000cwa.googlegroups.com... > Hi, > > I'm quite new with matlab and dsp.... and I would like to add a group > delay on a digital signal with matlab. > > I have a vector representing the signal and I want...

I wanna simulate such a structure. I have two bandpass filters. I need the second filters phase response should be tracker of the first filter. exp. if the first filters phase response 0-500 degress, the second filters phase responses should be started 500 degrees. Thanks from now on Safak ...

hello i'm looking for an explenation about shpak algorithm for group delay computation. i know that matlab uses this algorithm in order to compute group delay of iir filters and uses smith algorithm for fir filters. also, can someone tell we where can i find a detailed explenation about the iirgrpdelay function. thanks. ...

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...

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. ...

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 ...

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 ...

Hello, I am trying to build a Simulink block for modifying the phase of a sinusoidal signal, A * sin(omega*t + phi). The amount by which the phase needs to be modified is variable and is given as an input. Any ideas for this? Any help would be very appreciated. Thanks, Mihai Mihai Virtosu wrote: > Hello, > > I am trying to build a Simulink block for modifying the phase of a > sinusoidal signal, A * sin(omega*t + phi). The amount by which the > phase needs to be modified is variable and is given as an input. Any > ideas for this? > > Any help would be very appreciated. > > Thanks, > > Mihai Hi make the "omega*t + phi" then connect its output to a FCN block. in FCN block, write 'sin(u[1])'. Hi, Thank you for your reply. The problem with connecting a "omega * t + phi" signal to a sin block is that Matlab consider that signal being in the form "omega1 * t", and in this way I am shown a totally different signal. Is there a way to explicitly give the "omega * t" and "phi" separate parts to a sin block? Thanks, Mihai Mohsen wrote: > > > Mihai Virtosu wrote: >> Hello, >> >> I am trying to build a Simulink block for modifying the phase of > a >> sinusoidal signal, A * sin(omega*t + phi). The amount by which > the >> phase needs to be modified is variable and is given as an input. > Any >> ideas for this? >> >> Any...

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 M...

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...@a...

Hi all, I'm in need of knocking up a simple delay mechanism for a beamformin project and have working delay and sum method in place at the momen although this is creating a small overhead with samples being stored. I' like to implement a phase delay algorithm to minimise this overhead and wa wondering if anyone can point me in the right direction. Is there a filte in the Intel IPP library that can handle this as I'd like to test th result against the current working system? Many thanks Flamingo ...

hello, i'm trying to compensate for group delay distortion (un-uniform group delay) of analog filters. i am working on matlab simulations. i am using iirgrpdelay. my test signal for correction is a qam signal. i see different and unconclusive results for different values of N-the order of the iir all pass filter which is the phase compensator. i would like to know what is the appropriate N for each case-each filter (low pass or band pass for example). i tried to understand the iirgrpdelay function but i can't see what is the iirgrpdelaymex function which is an important part of iirgrpdelay. i would appreciate it if someone can explain about iirgrpdelay or iirgrpdelaymex. Thanks,sam. ...

Hi, Hi, has enyone had done or seen a presentation of group and phase velocity of electromagnetic wave? Could You sed me a link to it? Regards, Dariusz Luczynski Dariusz Luczynskihotele wrote: <Summary: He's looking for information on group and phase velocity of EM waves> That's kind of off-topic for a Matlab newsgroup. You might have better luck in sci.optics. If that newsgroup is not available to you, try some of the links at http://www.engr.colostate.edu/ultrafast/, in particular the "Basic Optics" section. (I took the prof's "Ultrafast Optics" class last semester. Fascinating material; I just wish I had understood it better.) Bob Pownall ...

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=A0a...

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...

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...

Neural Network Controler Program (or ideas) for delay estimation or delay compensation of delay systems with MATLAB. thanks. jellabies wrote: > > > Neural Network Controler Program (or ideas) for delay estimation or > delay compensation of delay systems with MATLAB. > thanks. Dear jellabies, It is a filtering first and a command problem (second). Estimating delay in dynamic system:non linear filtering (hard...) and my approach is (with "small" delay) to expand in Taylor serie degre 1 : x(t-tau)=x(t)-tau x' (tau>0 is unknow delay), and we have tau as linear f...

It does not show up on gnews. In article <f10210d1-1b8b-4673-9f43-9cee22559e62@33g2000yqj.googlegroups.com>, Alan <alan.browne@gmail.com> wrote: > It does not show up on gnews. It's a proper Usenet news group. BTW: At least a few of the regular posters here filter out posts from Google Groups. -- Send responses to the relevant news group rather than email to me. E-mail sent to this address may be devoured by my very hungry SPAM filter. Due to Google's refusal to prevent spammers from posting messages through their servers, I often ignore posts f...

Text is available under the Creative Commons Attribution-ShareAlike License ;additional terms may apply. By using this site, you agree to the ...

Brazilian troops are taking to the streets at the start of a public action effort to educate the population on ways to eliminate the mosquito ...

Brazilian troops are taking to the streets at the start of a public action effort to educate the population on ways to eliminate the mosquito ...

... population on ways to eliminate the mosquito carrying the Zika virus. [ The Age ] The Age - Video Brazilian troops begin public action phase ...

Alberta has committed to kicking its coal habit by 2030. It is no easy task considering the province currently gets more than half of its electricity ...

Samsung Electronics showed off new Galaxy S7 smartphones featuring upgraded components and the return of a popular feature at the Mobile World ...

... Red Bull Media House comes a terrific new adventure in the mountains. Take to the slopes and prepare to shred in Snowboarding The Fourth Phase ...

Filed under: Green , Tesla , Sedan , Electric Tesla Motors has quietly discontinued it 85-kWh battery option, along with the rear-drive P90, ...

Samsung Electronics Co. showed off virtual reality hardware alongside its latest Galaxy S7 smartphones, in its latest attempt to breathe life ...

Latest report on this winter's powerful El Niño suggests we'll be seeing some changes soon

Resources last updated: 3/10/2016 3:35:38 PM