1. В. Дьяконов MatLab. Обработка сигналов и изображений. Специальный справочник. – СПб.:Питер, 2002.
2. Л. М. Гольденберг, Б.Д.Матюшкин, М.Н.Поляк. Цифровая обработка сигналов:Справочник . М.:Радио и связь, 1985.
3. http://matlab.exponenta.ru/default.php
4. Internet
Додаток
Лістінг програми при послідовному ввімкненні фільтрів:
clear all
clc
loadmatfile('kasE.mat')
//scf(1)
//plot(ys)
//xgrid()
//
scf(2)
plot(f(1:n2),amp(1:n2))
xgrid()
//
//scf(3)
//subplot(211), plot(ys), xgrid()
//subplot(212), plot(s_in), xgrid()
//subplot(111)
//yvx=s_in;
//
//scf(4)
//plot(yvx)
//xgrid()
//
//scf(5)
//subplot(211), plot(psi), xgrid()
//subplot(212), plot(f(1:n2),ampsi(1:n2)), xgrid()
//subplot(111)
//
//y=fft(s_in);amp=abs(y);
//scf(6)
//plot(f(5:n2),amp(5:n2))
//xgrid()
N=length(s_in);
T=0.8;
f_discr=N/T;
T_discr=1/f_discr;
frq_s=0:f_discr/2;
ft=frq_s*T_discr;
//fcc=250;
// oshibka mejdu idealnim i vhodnim signalom
err0=0;
for n=1:(N),
err0=err0+(ys(n)-s_in(n))^2;
end
err0=sqrt(err0/n);
//ФНЧ;
www=250/f_discr;
//zz_t=iir(4,'lp','butt',[www www],[0 0]);
zz_t=iir(4,'lp','cheb1',[www www],[0.1 0]);
//zz_t=iir(4,'lp','cheb2',[www www],[0 0.1]);
//zz_t=iir(4,'lp','ellip',[www www],[0.1 0.1]);
sz_t=syslin('d',zz_t);
Hz_t=freq(sz_t.num,sz_t.den,exp(%i*2*%pi*ft));
ampz_t=abs(Hz_t);
phiz_t=atan(imag(Hz_t),real(Hz_t));
scf(10)
subplot(211)
plot2d(frq_s,ampz_t,logflag="ln")
xgrid()
subplot(212)
plot2d(frq_s,phiz_t,logflag="ln")
xgrid()
yf_out=flts(s_in,sz_t);
scf(11)
subplot(211), plot(yf_out), xgrid()
subplot(212), plot(s_in), xgrid()
scf(12)
ach=abs(fft(yf_out));
plot2d(frq_s,ach(1:641)), xgrid()
err1=0;
for n=3:(N-2),
err1=err1+(ys(n-2)-yf_out(n+2))^2;
end
err1=sqrt(err1/n);
//Режекторный фильтр;
www1sr=46.7/f_discr;
www2sr=48/f_discr;
//zz_tsr=iir(4,'sb','butt',[www1sr www2sr],[0.5 0]);
//zz_tsr=iir(4,'sb','cheb1',[www1sr www2sr],[0.5 0]);
zz_tsr=iir(4,'sb','cheb2',[www1sr www2sr],[0 0.5]);
//zz_tsr=iir(4,'sb','ellip',[www1sr www2sr],[0.5 0.3]);
sz_tsr=syslin('d',zz_tsr);
Hz_tsr=freq(sz_tsr.num,sz_tsr.den,exp(%i*2*%pi*ft));
ampz_tsr=abs(Hz_tsr);
phiz_tsr=atan(imag(Hz_tsr),real(Hz_tsr));
scf(13)
subplot(211)
plot2d(frq_s,ampz_tsr,logflag="ln")
xgrid()
subplot(212)
plot2d(frq_s,phiz_tsr,logflag="ln")
xgrid()
yf_out2=yf_out;
yf_out2=flts(yf_out2,sz_tsr);
scf(14)
subplot(211), plot(yf_out2), xgrid()
subplot(212), plot(s_in), xgrid()
err2=0;
for n=4:(N-3),
err2=err2+(ys(n-2)-yf_out2(n+2))^2;
end
err2=sqrt(err2/n);
scf(16)
ach2=abs(fft(yf_out2));
plot2d(frq_s,ach2(1:641)), xgrid()
err3=0;
for n=4:(N-3),
err3=err3+(ys(n-2)-yf_out2(n+2))^2;
end
err3=sqrt(err3/n);
ampz_t_ok=1:641;
for i=1:(length(ampz_t_ok)),
ampz_t_ok(i)=ampz_tsr(i)*ampz_t(i);
end
scf(17)
plot2d(frq_s,ampz_t_ok,logflag="ln")
xgrid()
scf(18)
subplot(311), plot2d(frq_s(1:400),ampz_t_ok(1:400),logflag="ln"),xgrid()
subplot(312), plot2d(f(1:400),ampsi(1:400),logflag="ln"), xgrid()
//subplot(413), plot2d(f(1:400),amp(1:400),logflag="ln"), xgrid()
subplot(313), plot2d(frq_s(1:400),ach2(1:400),logflag="ln"), xgrid(), xgrid()