Изучение характеристик сигналов электроэнцефалографических, электромиографических, реографических и электрокардиографических исследований, страница 25

sigma=(max(abs(SV-s1))/((max(s1)-min(s1))/2))*100//% макс относит ошибкa

sigmaCK=((sum((SV-s1).^2).^0.5)/length(SV))//среднеквадратическая ошибка

endfunction

Приложение 7

Алгоритм программы для обработки сигнала

clear

load ("real2.dat","s")

exec("fun_harakteristikki.sci",-1)

exec("fun_sortirovka.sci",-1)

exec("fun_acp.sci",-1)

exec("fun_spektr.sci",-1)

exec("fun_inp.sci",-1)

exec("fun_vosstanovl.sci",-1)

exec("fun_filter.sci",-1)

exec("fun_filter_kix.sci",-1)

Tmax=2.8//Длительность записи реального сигнал

N=length(s)//объем выборки

t=0:(Tmax/(N-1)):Tmax// Вектор времени

//====455-2-характеристики====================================

figure();plot(t,s);set(gca(),"grid",[1 1]);xtitle('График реального сигнала',' Длительность записи (с)','Сигнал (В)');

[Sv1,f1]=fun_sortirovka(s,N)

[fd,Razmax,dispers,Sstdev,Smean,Smax,Smin,Xvkv,Xmed,Xnkv,dT]=fun_harakteristikki(s,Tmax,N,f1,Sv1)

[R,V0,skv]=fun_acp(s)

//====455-3-квантование=======================================

y1=skv*V0

figure();plot(t,y1);set(gca(),"grid",[1 1]);xtitle('График реального сигнала','Длительность записи (с)','Сигнал (В)');

[Sv2,f2]=fun_sortirovka(s,N)  [fd2,Razmax2,dispers2,Sstdev2,Smean2,Smax2,Smin2,Xvkv2,Xmed2,Xnkv2,dT2]=fun_harakteristikki(y1,Tmax,N,f2,Sv2)

//====455-4-спектральное_преобразование=======================

[m4,f4]=fun_spektr(y1,dT,N,fd);//fmax=fd/2

figure();plot (f4,m4);xtitle('Спектральный анализ - исследуемый сигнал','Частота (Гц)','Амплитуда (В)');set(gca(),"grid",[1 1])

//====455-5-фильтрация========================================

//=====//60 - 822 диапазон полезных частот====================

ftype="hp"//бих фильтр верхних частот от 57 Гц

x_ot=56

x_do=0//для построения идеальной ачх

n=6

frq=[x_ot/fd];zx=1//БИХ==

[y1,hz1]=fun_filter(y1,fd,Tmax,dT,ftype,n,frq,x_ot,x_do,t,zx)

ft="bp"//полосовой ких фильтр для 20 - 1050 Гц

fl=20/fd

fh=1050/fd

n=200

[y1]=fun_filter_kix(y1,fd,Tmax,dT,ft,n,fh,fl,t)//========KИХ==

ftype="sb"//режекторный бих фильтр для 125 - 570 Гц

x_ot=131

x_do=528

frq=[x_ot/fd x_do/fd]

n=6;zx=0//БИХ==

[y1,hz3]=fun_filter(y1,fd,Tmax,dT,ftype,n,frq,x_ot,x_do,t,zx)

ftype="sb"//режекторный бих фильтр для 872 - 1050 Гц

x_ot=850

x_do=1400

frq=[x_ot/fd x_do/fd]

n=9;zx=0//БИХ==

[y1,hz4]=fun_filter(y1,fd,Tmax,dT,ftype,n,frq,x_ot,x_do,t,zx)

figure();plot(t,y1);

xtitle('Фильтрованый сигнал','Длительность реализации - (с)','Сигнал - (В)');set(gca(),"grid",[1 1])

[m5,f5]=fun_spektr(y1,dT,N,fd)

figure();plot (f5,m5);xtitle('Спектральный анализ - фильтрованный сигнал','Частота (Гц)','Амплитуда (В)');set(gca(),"grid",[1 1])

[Sv5,f5]=fun_sortirovka(s,N)   [fd5,Razmax5,dispers5,Sstdev5,Smean5,Smax5,Smin5,Xvkv5,Xmed5,Xnkv5,dT5]=fun_harakteristikki(y1,Tmax,N,f5,Sv5)

//====455-6-сжатие============================================

//    whos -name s

d6=150//апертурa

[n6,Y6]=fun_inp(d6,y1)//метод интерполяции

Sy6.V0=V0; Sy6.S=Y6; Sy6.t=n6

whos -name Sy6

[SV6,sigma6,sigmaCK6]=fun_vosstanovl(Y6,n6,t,y1)//===========

save ("f455.sod","n6","Y6")

//=====Вывод_переменных_455-2=================================

main2=figure()

set(main2,'figure_name','   Вывод переменных 455-1')

text1=uicontrol(main2,'style','text','string','Характеристики исследуемового сигнала:','position',[15, 440, 270, 20])

text01=uicontrol(main2,'style','text','string','_','position',[15, 420, 200, 20])

set(text01,'string', sprintf("Минимум\ = %1.2f",Smin))

text2=uicontrol(main2,'style','text','string','_','position',[15, 400, 200, 20])

set(text2,'string', sprintf("Максимум\ = %1.2f",Smax))