Plotting the the acceleration data of the degree of freedom versus the time.

2 Ansichten (letzte 30 Tage)
I am given the data for acceleration (almost 3 pages) and the question says that the sampling rate for all of the experiments was 50 Hz (50 samples per second, or delta_t= 0.02 sec. I am supposed to plot the acceleration data vs time and also find the peaks of acceleration that accurs during the free vibration. I loaded the acceleration data file and extracted data from the column but I am not sure how to specify the time data when I am only given the time step and how to mark the peaks. I appreciate the help! I get the following error:
Code:
clc; clear all; close all;
load VibrationSDOF_Data.txt
acc = VibrationSDOF_Data(:,1);
time =[0: 0.02: 110]
plot (time,acc,'r-');
Error:
error using plot
vectors must be the same length

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 19 Jul. 2021
Change
time =[0: 0.02: 110]
to
dt = 0.02;
time = (0:numel(acc)-1) * dt;
  5 Kommentare
Walter Roberson
Walter Roberson am 19 Jul. 2021
Finding peaks of noisy data is a bit difficult to reliably tell the difference between noise and signal.
Especially with acceleration data (which is notorious for being noisy), it is common to first apply a low-pass filter or moving-median filter. After that, there are a number of different approaches.
One of the approaches is to use max() to find the maximum; that is one peak. Then set that location and a distance on each side of it to NaN, and find the max() again. Keep repeating that until the max value you found is less than some threshold you set .

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Chunru
Chunru am 19 Jul. 2021
Make sure time and acc have the same size
time =[0: length(acc)-1]*0.02;
plot (time,acc,'r-');

Kategorien

Mehr zu Get Started with Signal Processing Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by