Reply by apad...@yahoo.co.uk●January 16, 20082008-01-16

In addition to the above question, I have a question on the same subject
classified as follows:

I have two sets of data: (1)excitation time history obtained from a single point
at sampling frequency 500Hz (vector), and (2)response time series measured at 4
points with sampling frequency (matrix).

First, how can I calculate and plot the FFT versus frequency of the time series
data in MATLAB taking into consideration the different sampling frequency.

Secondly, I need some explanation/suggestion on how to determine the frequency
response functions (FRFs) of the (Nx4) response matrix with respect to the
excitation vectors, each of different sampling rate.

I appreciate your gesture.

Reply by phil...@nrc.ac.uk●January 14, 20082008-01-14

What you are doing is essentially correct. Zero-Padding does not alter the
structure of the problem in any way. However, deconvolution by dividing the
FFT's is not always a good technique. If the signal in the denominator has
values close to zero for a range of frequencies then the deconvolution will blow
up and you will essentially end up with a lot of noise. A better way would be
use least squares formulation with Tikhonov regularization. If you are loathe to
doing this then you might consider using the inbuilt function deconvreg in
matlab.

Regards
Gokul

Thanks for the reply. I tried the deconv function in Matlab and it gave one of
the files in the residual part of the deconv and a straight line in the other
part (the result). It seems deconv doesn't work with my 2 files in their current
form. Any advice?

As for the Tikhonov, I will maybe leave that to plan B as I don't know where to
start even after some reading!!

Thanks,

Phil

Reply by gokul swamy●January 10, 20082008-01-10

What you are doing is essentially correct. Zero-Padding does not alter the
structure of the problem in any way. However, deconvolution by dividing the
FFT's is not always a good technique. If the signal in the denominator has
values close to zero for a range of frequencies then the deconvolution will blow
up and you will essentially end up with a lot of noise. A better way would be
use least squares formulation with Tikhonov regularization. If you are loathe to
doing this then you might consider using the inbuilt function deconvreg in
matlab.

Regards
Gokul

----- Original Message ----
From: "p...@nrc.ac.uk"
To: m...
Sent: Monday, 7 January, 2008 10:22:58 AM
Subject: [matlab] Signal processing help required

I am de-convolving A and B by the standard method of taking FFTs of
both time signals and dividing FFT of B by FFT of A, then taking the iFFT of the
result to get the de-convolved time signal. A is a time domain signal of 650
discrete data points and B is a time domain signal of 3500 discrete data
points.

My question/problem is about the differing signal lengths, also getting my head
around the theory. I am zero-padding both signals out to 4096 discrete data
points before FFTs occur.

i. Is my matlab code (or more impotantly my process) correct to properly
de-convolve these 2 signals?

ii. Can 2 signals of different lengths be successfully de-convolved?

iii. What is the correct length of the resultant de-convolved signal (H(t)),
1725 ns or some other length of time?

%% Read in data from the two files

A = xlsread('signal_ A'); % signal A of length 650 data points (-15 -> 310
ns)

B = xlsread('signal_ B'); % signal B of length 3500 data points (-20 -> 1705
ns)

%% Sampling time

Ts = 0.5*10^-9; % sample time is 0.5ns for both signals

t = 0:Ts:(Ts * 4095); % Not sure about this, it sets final signal length

%% FFT of A and FFT of B

A_freq = fft(A, 4096); % FFT of A, padding out to 4096 points

B_freq = fft(B, 4096); % FFT of B, padding out to 4096 points

H(t) = ifft( H(f) ); % this gives resultant time domain signal

plot (t,H(t))

Reply by phil...@nrc.ac.uk●January 8, 20082008-01-08

I am de-convolving A and B by the standard method of taking FFTs of both time
signals and dividing FFT of B by FFT of A, then taking the iFFT of the result to
get the de-convolved time signal. A is a time domain signal of 650 discrete data
points and B is a time domain signal of 3500 discrete data points.

My question/problem is about the differing signal lengths, also getting my head
around the theory. I am zero-padding both signals out to 4096 discrete data
points before FFTs occur.

i. Is my matlab code (or more impotantly my process) correct to properly
de-convolve these 2 signals?

ii. Can 2 signals of different lengths be successfully de-convolved?

iii. What is the correct length of the resultant de-convolved signal (H(t)),
1725 ns or some other length of time?
%% Read in data from the two files
A = xlsread('signal_A'); % signal A of length 650 data points (-15 -> 310 ns)
B = xlsread('signal_B'); % signal B of length 3500 data points (-20 -> 1705
ns)

%% Sampling time
Ts = 0.5*10^-9; % sample time is 0.5ns for both signals
t = 0:Ts:(Ts * 4095); % Not sure about this, it sets final signal length

%% FFT of A and FFT of B
A_freq = fft(A, 4096); % FFT of A, padding out to 4096 points
B_freq = fft(B, 4096); % FFT of B, padding out to 4096 points