xtitle('АЧХ идеального фильтра','Частота дискретизации (Гц)','');set(gca(),"grid",[1 1])
else
fi=[0 x_ot x_ot x_do x_do fd/2]//ачх идеального фильтра
a=[1 1 0 0 1 1]
figure()
plot(fi,a)
xtitle('АЧХ идеального фильтра','Частота дискретизации (Гц)','');set(gca(),"grid",[1 1])
end
fdesign='butt'//БИХ фильтр баттеворта
delta =[0.01 .02]
hz1=iir(n,ftype,fdesign,frq,delta)
[hm,fr]=frmag(hz1,L)
figure()//ачх
plot(fr*fd,hm)
xtitle('АЧХ','Частота дискретизации (Гц)','');set(gca(),"grid",[1 1])
//фильтрование сигнала=========================================
sl= tf2ss(hz1)
y = flts(s,sl)
figure();
plot(t,y);
xtitle('Фильтрованый сигнал - БИХ фильтр','Длительность реализации (с)','Сигнал (В)');set(gca(),"grid",[1 1])
imprep=flts(eye(1,M),sl)//импульсная характеристика
figure()
plot(t,imprep)
xtitle('Импульсная характеристика','Длительность реализации (c)','Сигнал (В)');set(gca(),"grid",[1 1])
figure()//карта нулей и полюсов
plzr(hz1)
//q=poly(0,'q')
//hzd=horner(hz1,1/q)
endfunction
6.6. Функция фильтрации с помощью КИХ фильтра
function [y,b]=fun_filter_kix(s,fd,Tmax,dT,ft,n,fh,fl,t)//фильт
M=fix(Tmax/dT)+1 //количество отсчетов в исходном сигнале
L=fix((M)/2); //количество отсчетов частотной характеристики
df=1/Tmax;
//============_идеальная_ачх_=================================
fi=[0 fl*fd fl*fd fh*fd fh*fd fd/2]//ачх идеального фильтра
a=[0 0 1 1 0 0]
figure()
plot(fi,a)
xtitle('АЧХ идеального фильтра','Частота дискретизации','');set(gca(),"grid",[1 1])
//фильтрование сигнала=========================================
ft="bp"//полосовой фильтр
[b]=ffilt(ft,n,fl,fh)
figure()
plot(b); //импульсная характеристика
xtitle('Импульсная характеристика')
set(gca(),"grid",[1 1])
[hm,fr]=frmag(b,L); //ачх
figure();
plot(fr*fd,hm);
xtitle('АЧХ','Частота дискретизации (Гц)','')
set(gca(),"grid",[1 1])
//передаточная функция
hzq=poly(b,'q','coeff');
z=poly(0,"z") //простой полином
hz=horner(hzq,1/z)//вычисление значения полинома при q=1/z
s101=tf2ss(hz)
y=flts(s,s101)
figure();
plot(t,y);
xtitle('Фильтрованый сигнал - КИХ фильтр','Длительность реализации (с)','Сигнал - (В)')
set(gca(),"grid",[1 1])
stprep=flts(ones(1,M),s101)//переходная характеристика
figure();
plot(t,stprep);
xtitle('Переходная характеристика','Длительность реализации (с)','')
set(gca(),"grid",[1 1])
//карта нулей полюсов
figure()
plzr(hz)//устойчивость фильтра
endfunction
6.7. Функция сжатия – метод дискретных отсчетов
function [nf,Y1S]=fun_cravnen_diskr_otsch(d,s)
Y11=fix(s/d)*d+d/2
Y1S=Y11(1)
nf=1
for i=2:length(Y11)
if Y11(i)==Y1S(length(Y1S)) then
nf(length(nf))=nf(length(nf))+1
else
Y1S=[Y1S Y11(i)]
nf=[nf 1]
end
end
endfunction
6.8. Функциясжатия – методэкстраполяциинулевогопорядка
function [nf,Y2]=fun_enp(d,Y)//ЭНП
Y2=Y(1)
nf=1
Y20=Y(1)
for i=2:length(Y)
if ((Y(i))>=(Y20-d/2)) & (Y(i)<=(Y20+d/2)) then
nf(length(nf))=nf(length(nf))+1
else Y20=Y(i)
Y2=[Y2 Y(i)]
nf=[nf 1]
end
end
endfunction
6.9. Функциясжатия – методинтерполяциинулевогопорядка
function [nf,Y3]=fun_inp(d,Y)//ИНП
Y3=Y(1);
nf=1
j=1 //nomer pervogo otscheta v cegmente
for i=2:length(Y)
if max(Y(j:i))-min(Y(j:i))<=d then
Y3(length(Y3))=(max(Y(j:i))+min(Y(j:i)))/2
nf(length(nf))=nf(length(nf))+1
else
j=i
Y3=[Y3 Y(i)]
nf=[nf 1]
end
end
endfunction
6.9. Функция восстановления сжатого сигнала
function [SV,sigma,sigmaCK]=fun_vosstanovl(y,nf,t,s1)
SV=[]
for i=1:length(y)
for j=1:nf(i)
SV=[SV y(i)]
end
end
figure()
plot(t,SV)
set(gca(),"grid",[1 1])
xtitle('восстановленный сигнал', 'Длительность реализации (с)', 'Сигнала (с)')
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.