MATLAB FFT interpretation of time vector (simple)

AI Thread Summary
The discussion centers on extracting the frequency of an object moving vertically in video data. The user seeks clarification on parameters for using MATLAB to analyze this motion, specifically regarding the frame rate (Fs) and the total number of frames (L). It is confirmed that Fs represents the camera's frame rate, while L corresponds to the total number of frames in the video. The user is tracking a single pixel's vertical position over time, and the analysis involves using the Fast Fourier Transform (FFT) to identify periodic motion. The recommended approach is to treat the vertical positions as samples and to ensure that the sampling rate aligns with the video frame rate. For example, with a frame rate of 30 frames per second and a one-minute video, L would be 1800, indicating the total sample count.
member 428835
I have video data that shows an object moving up and down. I'd like to extract the frequency the object moves. Following the given example here (scroll down to "Examples"), am I correct in assuming Fs would be camera frame rate and L would be the total number of frames?

Thanks so much!
 
Physics news on Phys.org
Video data is three-dimensional: horizontal, vertical, and time.
None of the examples deal with images - let alone video data.

It is certainly possible to do a 3-d FFT, but I doubt that is your intent.
Tell us more about this video and exactly what you want to extract from it. Is it a pendulum swinging back and forth and you want the frequency?

This sounds like a situation where an FFT could be used - but it probably isn't the best method.
If you do use an FFT, you would probably want to take a slice of the image across those frames so that you ware dealing with width and time. The slice would be selected as containing the periodic motion. Then an FFT would highlight periodic motion (with frequency spikes) along the frequency (time) axis.
 
.Scott said:
Video data is three-dimensional: horizontal, vertical, and time.
None of the examples deal with images - let alone video data.

It is certainly possible to do a 3-d FFT, but I doubt that is your intent.
Tell us more about this video and exactly what you want to extract from it. Is it a pendulum swinging back and forth and you want the frequency?

This sounds like a situation where an FFT could be used - but it probably isn't the best method.
If you do use an FFT, you would probably want to take a slice of the image across those frames so that you ware dealing with width and time. The slice would be selected as containing the periodic motion. Then an FFT would highlight periodic motion (with frequency spikes) along the frequency (time) axis.
I appreciate the response. The image only moves up and down, and I’m only tracking one pixel. Then I have the vertical position y as a function of time t, y(t). Each frame the pixel changes location, always up and down. I track the position. I extract the frequency using the MATLAB example shown above. I don’t think I need to use another technique, I’m just wanting to confirm L and Fs are as I describe. Would you input Fs as frame rate and L and total frame number?
 
joshmccraney said:
I appreciate the response. The image only moves up and down, and I’m only tracking one pixel. Then I have the vertical position y as a function of time t, y(t). Each frame the pixel changes location, always up and down. I track the position. I extract the frequency using the MATLAB example shown above. I don’t think I need to use another technique, I’m just wanting to confirm L and Fs are as I describe. Would you input Fs as frame rate and L and total frame number?
Yes.

As I understand it, you are tracking the vertical position of a one-pixel-size feature.
For simplicity, I will assume you are not dealing with an interlaced image.

So your samples are vertical positions - likely image line numbers. And your sampling rate will be your video frame rate.

Let's assume that the frame rate is 30 frames per second and the length of the video is 1 minute.
From your link:
Fs = 1000; % Sampling frequency
T = 1/Fs; % Sampling period
L = 1500; % Length of signal
t = (0:L-1)*T; % Time vector
L would be better described as the "sample count".

So for you, Fs=30 and L=1800.
 

Similar threads

Replies
8
Views
2K
Replies
5
Views
2K
Replies
3
Views
8K
Replies
2
Views
2K
Replies
1
Views
2K
Replies
1
Views
19K
Replies
1
Views
10K
Replies
1
Views
6K
Replies
3
Views
3K
Back
Top