I have a rather large matrix. The data was sampled at 100 Hz. I want to the data to look like it was sampled at 5 Hz
4 次查看(过去 30 天)
显示 更早的评论
Right now the left column is time and it counts .01, .02, .03 etc.
I want to pull out all of the data at 5 hz intervals such as 0, .2, .4 and delete the rest of the rows.
I will answer any question for clarification too
4 个评论
Jürgen
2012-8-18
yeah all right all depends on what you are measuring and the first thing to do is to analyse your data in a smart way of course, but let us say that you are doing e.g. loadcell measurements over time to see how a the force changes, you will have noise on the measurement and the average will gie you an idea how the signal moves in time , that is what I meant
回答(4 个)
Jürgen
2012-8-17
well If I understand it well you have a vector Sample100 with 100 Hz Samples and you want only the sample @ 5 hz Sample5=Sample100(1:20:end) should do the trick then hope this helps regards,J
0 个评论
Azzi Abdelmalek
2012-8-17
编辑:Azzi Abdelmalek
2012-8-17
fe=100 %sample frequency
te=1/fe %sample time
t=0:te:1;y=rand(length(t),1)%
fd=5 %desired frequency
td=1/fd %desired sample time
nt=floor(td/te)
ind=1:nt:length(t);
new_t=t(ind);
new_y=y(ind);
plot(t,y);hold on;plot(new_t,new_y,'xr','linewidth',14);
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/171683/image.jpeg)
0 个评论
Matt Fig
2012-8-17
Here is another example. You say the first column is time, so it is here.
% Original data with columns: [time,signal]
S = [(0:.01:2*pi).' sin(0:.01:2*pi).'];
Sd = S(1:20:end,:); % Downsampled signal.
plot(S(:,1),S(:,2),'b.',Sd(:,1),Sd(:,2),'sr')
legend('Original','Downsampled')
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Multirate Signal Processing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!