joepope
Computer
- Apr 12, 2013
- 3
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
frf = M
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.