% 测试TCSC VF检测算法
clc;close all;clear;
% load data
cd 'G:\data\physionet-data\MIT'
record = '207';
[sig0,Fs,tm0] = rdsamp(record, [1 2],[],[],0); % sig0 是double类型
Ls=3;
Le=8;
Nd=48;
sec = fix(size(sig0,1)/Fs);
cd 'G:\code\matlab_work\VF检测';
for n=1:size(sig0,2)
data = sig0(:,n);
out = tcsc(data,Fs,Ls,Le,Nd);
figure(n);
I = find(out);out=out(I);
t=[1:sec]; t=t(I);
plot(t,out,'r.','MarkerSize',15);
hold on;
plot([1:length(data)]/Fs,data,'b');
grid on;
end
function out = tcsc(data,fs,Ls,Le,Nd)
% 计算参数
Na = averaging_count(data,fs,Ls,Le);
% 判别
out = Na > Nd;
% hist(Na,200)
end
function Na = averaging_count(data,fs,Ls,Le)
% 计数
V0=0.2;
N = counting(data,fs,Ls,V0);
% 平均
Na = smooth(N,Le);
end
function N = counting(data,fs,Ls,V0)
filtered_da