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))
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.