How to vectorise the filter function with multiple window-sizes?
이전 댓글 표시
The task is to calculate the maximum of a moving rms-value of a signal, which is available with a constant timestep dt. So the signal has the length of T*dt and the RMS-value shall be calculated for a period tau=1*dt, tau=2*dt, tau=3*dt, ... tau=T*dt. At the end of this calulation the max of the moving rms value shall be selected. Actually I use the filter-function in a for-loop, but maybe it is possible to vectorise the calculation?
The code is below:
function [tau, werte_eff_H ] = twa_stat_2(signal)
% any signal-vector;
signal_eff = signal.^2; % To calculate the RMS-Values
no_value = size(signal,1);
tau = (1:1:no_value)';
werte_eff_H = NaN(size(signal,1)+1, no_value); % Preallocation
for i=1:size(tau,1)
zb_werte_eff = sqrt(filter(ones(1,tau(i,1))./tau(i,1),1,[signal_eff(1:no_value); signal_eff(1:tau(i,1)-1,1); 0 ] ));
werte_eff_H(:,i) = zb_werte_eff(0+tau(i,1):no_value+tau(i,1),1);
end
werte_eff_H = werte_eff_H(1:end-1,:);
end
댓글 수: 1
Jan
2017년 6월 20일
What is a typical length of the signal?
채택된 답변
추가 답변 (1개)
dalya anewr
2017년 6월 28일
0 개 추천
hi text2speech Error using feval Input PROGID does not represent an Activex control. If this PROGID used to work before, please check vendor's documentation for equivalent activex control progid.
Error in actxcontrol
Error in actxcontrol
Error in text2speech (line 55) vlc1 = actxcontrol('VideoLAN.VLCPlugin.2', [1 1 0 0], fig); please i need help
댓글 수: 1
카테고리
도움말 센터 및 File Exchange에서 Mathematics에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!