buttLoop error message code lifted from Matlab example 60 Hz hum
조회 수: 5 (최근 30일)
이전 댓글 표시
Using code from Remove the 60 Hz Hum from a Signal http://www.mathworks.com/help/signal/ug/remove-the-60-hz-hum-from-a-signal.html
plot of filtered data looks reasonable in fig(1)
srate = input ('Enter SAMPLE RATE for this subject(check log book!): ');
ChannelFirst = data.ECG;
Fs=srate;
t =( 0:length(data.ECG)-1)/fs;
plot(t,data.ECG);
ylabel 'Voltage (V)', xlabel 'Time (s)'
title 'Open-Loop Voltage with 60 Hz Noise'
d = designfilt('bandstopiir','FilterOrder',2, ...
'HalfPowerFrequency1',59,'HalfPowerFrequency2',61, ...
'DesignMethod','butter','SampleRate',Fs);
fvtool(d,'Fs',Fs) ;
buttLoop = filtfilt(d,openLoop); ERROR THIS LINE <===========================
figure (2);
plot(t,data.ECG,t,buttLoop);
ylabel 'Voltage (V)', xlabel 'Time (s)';
title 'Open-Loop Voltage', legend('Unfiltered','Filtered');
[popen,fopen] = periodogram(data.ECG,[],[],Fs);
[pbutt,fbutt] = periodogram(buttLoop,[],[],Fs);
plot(fopen,20*log10(abs(popen)),fbutt,20*log10(abs(pbutt)),'--')
ylabel 'Power/frequency (dB/Hz)', xlabel 'Frequency (Hz)'
title 'Power Spectrum', legend('Unfiltered','Filtered')
ERROR MESSAGE:
Error in HRcodetest (line 120)
buttLoop = filtfilt(d,openLoop);
댓글 수: 1
채택된 답변
Star Strider
2015년 10월 19일
Looking at the documentation in the link, ‘openLoop’ is loaded in this line:
load openloop60hertz, openLoop = openLoopVoltage;
and is one of the variables in that .mat file. You have to substitute your own signal, apparently ‘ChannelFirst’, for ‘openLoop’.
댓글 수: 2
Star Strider
2015년 10월 20일
My pleasure!
I’ve reviewed that example before, so I recognised the problem once I realised you weren’t loading the example data.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Spreadsheets에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!