how to plot the data and superimpose the mean of the data?
6 views (last 30 days)
Show older comments
Hydro
on 18 Oct 2014
Commented: Yuvarajendra A Reddy
on 25 Feb 2020
I am required to plot 20 second data of my veleocity. then i need to superimpose the mean of the velocity. Can somebody look into my codes. I dont know how to convert the velocity in Hz into second. The velocity is measure with a device that collect data 100 times in a second.
here is my code
U20=U(1:2000,:); % Selection of 20 seconds of data
Usec=U20/100; % 1 second =100 Hz (I think i am making mistake here)
plot(Usec); % ploting of instantinous velocity
Umean=mean(Usec); % Mean of the sample
hold on
plot(Umean,'-','LineWidth',1); % Superimposing the mean velocity
xlabel('sample data length');
ylabel('Stream wise velocity');
The graph should look like the attached picture where U is the mean and U' is the instantaneous velocity.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/145760/image.png)
many thanks
3 Comments
Accepted Answer
Mohammad Abouali
on 18 Oct 2014
Edited: Mohammad Abouali
on 18 Oct 2014
% Generating some sample data
t=linspace(0,2*pi,100);
U=sin(t);
% Ploting velocity
plot(t, U);
axis tight
hold on
% Now plotting the mean value.
Umean = mean(U);
line(xlim, [Umean,Umean],'Color','r');
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/176176/image.png)
6 Comments
Mohammad Abouali
on 18 Oct 2014
@ Guillaume In fluid mechanic quite often we decompose the velocity into its mean part and fluctuation part U=Ubar+U'. pretty much then the equation is solved for Ubar and then the turbulence equation is modeling the effect of U'. This is generally known as Reynolds Averaged Navier-Stokes' (RANS) equation.
I don't know why he wants to average these numbers, but this approach is used in many field. I applied the same techniques once on seismograph (yes, the techniques that are used in solving fluid motion applied on seisomograph) and I was able to detect some features much easier.
Yuvarajendra A Reddy
on 25 Feb 2020
Interesting answer by @Mohammad Abouali. There's a much simpler approach to this.
sample_data=rand(1,100); % Your signal data array
mean_data = smoothdata(sample_data,'movmean'); % Calculating the average or mean, moving over each window
% Plotting graphs
figure
plot(sample_data) % Original data
hold on
plot(mean_data,'linewidth',2) % Average of the data
legend('Original signal','Mean of the signal')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/273510/image.jpeg)
More Answers (1)
Guillaume
on 18 Oct 2014
Edited: Guillaume
on 18 Oct 2014
Assuming you have a velocity U measured for 20 seconds (see comment to your question),
t = linspace(0, 20, numel(U)); %generate a time vector for 20 seconds with as many elements as U
plot(t, U);
hold on
Umean = mean(U);
plot(t, Umean);
xlabel('times (s)');
ylabel('velocity (m/s)');
0 Comments
See Also
Categories
Find more on Vector Fields in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!