I have a set of data, in the freqeuncy domain, corresponding to a structural test.

I have amplitude, phase and frequency for both the measured output and the input signal (accelerations are measured in the test). The input covers the frequency range $5-100 Hz$.

I can compute the frequency response:

RE = abs(amplitude)./sqrt(1+(tan(phase)).^2);
IM = RE.*tan(phase);
response = complex(RE,IM);

Having the frequency responses of both input and output I could compute the transfer function $H(\omega)$:

H = abs(response)./abs(g_inp); % g_inp is the frequency response of the input

The problem arises from the fact that the 2 vectors (response and g_inp) have not the same length: the first one has 849 samples and the second one 828.

How can I 'synchronize' them?


I tried following the zero-padding method as suggested but I do not get the expected plot. Here my code:

% The input signal is a sine-sweep for which I have:
% ginz: amplitude of the input signal
% finz: frequency of the input signal

% Sine sweep in time domain
R = 4; 
tz = 60/R*log2(finz/finz(1));
u_swt = sin(2*pi*((60*finz(1)/(R*log(2.))*(2.^(R/60*tz)-1))));
base_acc_t = ginz.*u_swt;

% zero-padding
acc_input = [base_acc_t; zeros(N-n,1)]; % N: length output signal (frequency domain)
                                        % n: length input signal (frequency domain)
input_freq = fft(acc_input);

H = abs(response)./abs(input_freq);

I obtain a plot which has the peak value at the right frequency, but instead of a nice curve it looks really noisy

  • $\begingroup$ Do you have time-domain measurements for the input and response? $\endgroup$ Commented Dec 4, 2014 at 18:30
  • $\begingroup$ For the response only $\endgroup$
    – Rhei
    Commented Dec 4, 2014 at 18:49
  • $\begingroup$ Sounds like you need to transform your input data to the time domain. From there you can zero-pad the input to the same length as your output. $\endgroup$ Commented Dec 4, 2014 at 19:16
  • $\begingroup$ Is it not possible to do it directly in the frequency domain? I would like to reduce at the minimum the 'processing' of the signals not to introduce additional noise/disturbances $\endgroup$
    – Rhei
    Commented Dec 4, 2014 at 19:46
  • $\begingroup$ There might be a way but i'm not aware of it. The problem is that your output and input spectra are sampled at different points. Converting your input to time-domain, zero-padding, and converting back to frequency interpolates the spectrum so that your output and input samples line up in frequency. $\endgroup$ Commented Dec 4, 2014 at 19:59


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.