MATLAB Matlab+signal processing question -finding output signal using FRF

AI Thread Summary
To find the output signal using an input vector and a frequency response function (FRF) in MATLAB, the input vector and FRF must be the same size. One approach is to use the Fast Fourier Transform (FFT) on the input data and multiply it element-wise with the FRF, but this requires matching their sizes, potentially through zero padding. Alternatively, the FRF can be transformed to the time domain using the Inverse Fast Fourier Transform (IFFT) and then convolved with the input signal, which also necessitates size matching. Interpolation can be employed to align the frequency intervals of the FRF with the input data. Properly addressing these size discrepancies is crucial for accurate signal processing.
berdan
Messages
31
Reaction score
1
So,I got this vector of input data in Matlab,which is vector of approx 1x25000 length.
I have frequency responce function attained by different estimators (H1,H2,Arx).
Anyway,my FRF is also a vector of 1x129 length.

Those two are different sized vectors.How should I find the output data using input data and this obtained FRF vector?

One way is to transform input vector (which is sampled data) with FFT ,and then just multiply input vector with FRF,element by element = X(i)*Y(u) .But those two vectors would be different sizes,how should I make them both same size?
What is the correct approach in this case?I remember learning something about zero padding,how is it done?

Second way is transform FRF (IFFT) into time domain vector,and then convolve those two vectors.But again,those two will be different sized vectors,how should I do it?

Thanks in advance!
 
Physics news on Phys.org
You need to be a little more specific. Is the input data a time domain signal where you want to estimate the output from the frequency response function? Or is the input in the frequency domain as well? Do the 129 points of your FRF cover the entire frequency band of the function eventually?
 
berdan said:
One way is to transform input vector (which is sampled data) with FFT ,and then just multiply input vector with FRF,element by element = X(i)*Y(u) .But those two vectors would be different sizes,how should I make them both same size?

Second way is transform FRF (IFFT) into time domain vector,and then convolve those two vectors.But again,those two will be different sized vectors

The two vectors need to have the same frequency intervals in option 1, or the same time intervals in option 2.

For example if you have a table of values of the FRF (amplitude and phase at each frequency), you could fit a curve through the data and interpolate for different frequencies.
 

Similar threads

Replies
10
Views
3K
Replies
2
Views
2K
Replies
4
Views
2K
Replies
2
Views
1K
Replies
11
Views
3K
Replies
1
Views
2K
Replies
4
Views
2K
Back
Top