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