how to design a moving window? which has to move sample by sample in simulink

hi,
i have converted analog signal to digital using ADC, now i have to apply a moving window to this incoming digital signal and the width of the window is 1 cycle i.e 80 samples.... please help me regarding this

댓글 수: 1

Assume you have 1000 samples of data, you want to apply a rolling window of 80 samples at a time, what type of processing do you want to do? average, filtering? Please specify.
Also, consider Matlab. Depending on your task, sometimes Matlab is more suitable than Simulink for the job.

댓글을 달려면 로그인하십시오.

답변 (2개)

Here is a quick and easy way to do it in Matlab.
a=0:0.1:100;
WindowWidth=80;
b=sin(a);
c=abs(b);
d=zeros(size(b));
d(1)=sum(c(1:WindowWidth));
for i=2:(numel(a)-WindowWidth+1)
d(i)=d(i-1)-c(i-1)+c(WindowWidth+i-1);
end
figure(1);plot(b);
figure(2);plot(d);
doc conv
Edit for Fangjun:
isclose = @(x,y)isequal(size(x),size(y))&&all(abs(x-y)<10^-5)
cway = conv(c,ones(1,80),'valid'); %other shapes if wanted (doc conv)
isclose(d(1:end-79),cway) %throw away your end 80 zeros
ans =
1

댓글 수: 4

Thanks, Sean. Will check later. I am off Matlab now.
Sean, not sure how to use the conv() function. Harish asked me in an email that he wanted to calculate the sum of the absolute value of all the samples in a rolling window. The rolling window always contains 80 samples. I modified my code above to use sum() just once instead of using sum() in the loop. The point is to show him that it is easier to do it in Matlab rather than in Simulink. It's probably not that important whether the code is most efficient or most concise. But I would love to know if there is a built-in function to calculate the rolling sum of a vector.
Thanks, Sean!
@Harish, consider using the conv() function if you want the sum has a nice ramp up and ramp down.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Simulink에 대해 자세히 알아보기

질문:

2011년 6월 1일

Community Treasure Hunt

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

Start Hunting!

Translated by