## How to estimate Impulse Response from a frequency domain dataset

## How to estimate Impulse Response from a frequency domain dataset

(OP)

Through an old Spectrum Analyzer I have a frequency domain dataset (amplitude in dB and phase in degrees). I would like to estimate Impulse Response (IR). I must compare the obtained IR with the IR automatically measured through a newer Spectrum Analyzer. I will manage a huge dataset, moreover I know I have to apply a Kaiser Window somehow, so I don't think that System Identification Toolbox can work out for me.

My frequency domain dataset expands from 800 MHz to 3 GHz with a step of 5.5 MHz (so I have 401 samples and my Nyquist frequency is 3 GHz). What should I do from 0 to 800 MHz, and when do I apply the Kaiser Window?

I slightly modified this code I found online, but doesn't seem to work out for me (I previously modified the phase M(:,2) in radians):

frf = M(:,1)+1i*M(:,2); %form the complex frequency response function

fn = 3000000000; %Nyquist frequency

df = 5500000; % frequency spacing

freq = [800000000:df:fn]; % frequency vector

frf2 = [0 frf(2:end).' 0 frf(end:-1:2)']; % form 2-sided FRF

irf = ifft(frf2); % calculate IRF

dt = 1./2./fn; % sampling interval

time = 0:dt:801*dt; % vector of sampling times

plot(time,real(irf));

xlabel('Time (s)');

ylabel('IRF');

Any help would be greatly appreciated. Thank you for your patience.

My frequency domain dataset expands from 800 MHz to 3 GHz with a step of 5.5 MHz (so I have 401 samples and my Nyquist frequency is 3 GHz). What should I do from 0 to 800 MHz, and when do I apply the Kaiser Window?

I slightly modified this code I found online, but doesn't seem to work out for me (I previously modified the phase M(:,2) in radians):

frf = M(:,1)+1i*M(:,2); %form the complex frequency response function

fn = 3000000000; %Nyquist frequency

df = 5500000; % frequency spacing

freq = [800000000:df:fn]; % frequency vector

frf2 = [0 frf(2:end).' 0 frf(end:-1:2)']; % form 2-sided FRF

irf = ifft(frf2); % calculate IRF

dt = 1./2./fn; % sampling interval

time = 0:dt:801*dt; % vector of sampling times

plot(time,real(irf));

xlabel('Time (s)');

ylabel('IRF');

Any help would be greatly appreciated. Thank you for your patience.

## RE: How to estimate Impulse Response from a frequency domain dataset

TTFN

FAQ731-376: Eng-Tips.com Forum Policies

Need help writing a question or understanding a reply? forum1529: Translation Assistance for Engineers

## RE: How to estimate Impulse Response from a frequency domain dataset

## CODE -->

Like i said "(I previously modified the phase M(:,2) in radians)".

Anyways, I still don't get where and how to apply the Kaiser window. Thank you for your time!

## RE: How to estimate Impulse Response from a frequency domain dataset

TTFN

FAQ731-376: Eng-Tips.com Forum Policies

Need help writing a question or understanding a reply? forum1529: Translation Assistance for Engineers

## RE: How to estimate Impulse Response from a frequency domain dataset

Moreover, if I have to be true i modified the code posted in my first message, now I've got an Impulse Response, but on 1093 bins, while the other one (newer Spectrum Analyzer) is on 401 bins. Since it looks good (same range and kinda same shape) should I decimate to have a correct comparison or what?

Thanks for your time!

## RE: How to estimate Impulse Response from a frequency domain dataset

TTFN

FAQ731-376: Eng-Tips.com Forum Policies

Need help writing a question or understanding a reply? forum1529: Translation Assistance for Engineers

## RE: How to estimate Impulse Response from a frequency domain dataset

- Steve