# Group Delay of Mulitrate system

how do I find the group delay of multirate system.(sample rate converter) , IIR non-linear phase filter

Say decimation by 2 (with lpf) = tf1(num,den)

then again decimation by 2 (with lpf) = tf2(num,den)

In total decimation by 4.

i can do the inidividual stages

gd1 = grpdelay(tf1,fvec,Fs)

gd2 = grpdelay(tf2,fvec,Fs/2)

but how do i find the combined one of the entire system

can two group delays be added ?

Edited :

Assuming the can be added, is the following scaling inside and outside the grpdelay function correct ?

gd1 = grpdelay(tf1,fvec,Fs)/Fs/2 % converting from samples to seconds

gd2 = grpdelay(tf2,fvec,Fs/2)/Fs/4

Then we can plot it

plot(fvec/,gd1+gd2);

xlabel('Freq MHz');

ylabel('Group Delay (s)');

• dsp.stackexchange.com/a/38676/8202 Yes, I believe you can sum them. – jojek Dec 11 '20 at 16:28
• is there some way to extract system group delay from time domain simulation to confirm this .. ? – BandW Dec 11 '20 at 18:08
• To answer your last comment/question please see this: dsp.stackexchange.com/questions/63141/… – Dan Boschen Dec 13 '20 at 14:18
• @DanBoschen thanks for your comment. Is there a way we can combine two tfs which are at different sampling rates, the matlab series function doesn't work if the fs is different. – BandW Dec 14 '20 at 16:47
• @DanBoschen can you please also comment on my edited portion . Thanks – BandW Dec 14 '20 at 17:03

• @BandW Yes, I believe this is correct. For the first filter, it is applied at the sampling rate $Fs$ and the you calculate the delay for the down sampled output by multiplying by Fs/2. The same process for the 2nd filter - so I believe what you have is correct. To check it - you could try it with some simple linear phase FIR filters. – David Dec 14 '20 at 19:22