Respuesta Impulsional
n=-10:1:30;b=[-1 2 3 6 ...];A=1;x=zeros(1,41);x(11)=1;y1=filter(B,A,x);stem(n,y1),grid;
zerpol(B,A)
funtion [ceros,polos[=zerpol(B,A);bs =roots(B);as=roots(A);ceros=bs;polos=as;polar(angle(bs),abs(as),'x');hold off;
respfrec(B,A,nfrec)
function[modulo,fase,frecuencia]=respfrec(B,A,nfrec);frecuencia=linespace(0,0.5,nfrec);b=B(length(B):-1:1);a=A(length(A):-1:1);numerador=polyval(b,exp(-j*2*pi*frecuencia));denominador=polyval(a,exp(-j*2*pi*frecuencia));sol=numerador./denominador;modulo=abs(sol);fase=angle(sol);subplor(211),plot(frecuencia,modulo),grid,xlabel('Frecuencia'),ylabel('Modulo'),subplot(212),plot(frecuencia,unwrap(fase)),grid,xlabel('Frecuencia'),ylabel('Fase (radianes)');
fftdt()(FFT diezmado tiempo)
function[X,t,f]=fftdt(x);N=length(x);n=0:N-1;c=clock;flops(0);fasores=exp(-j*2*pi*n/N));if(round(log2(N))==log2(N))&X=mfft(x,fasores);disp('Tiempo');t=etime(clock,c);disp('Nro Operaciones');f=flop&else&error('No es pot 2');&end; function X=mfft(x,fasores);N=length(x);if(N==2) X(1)=x(1)+x(2);X(2)=x(1)-x(2); & else& G=mfft(x(1:2:N),fasores(1:2:N));H=mfft(x(2:2:N),fasores(1:2:N));X(1:N/2)=G+fasores(1:N/2).*H;X((N/2)+1:N)=G+fasores((N/2)+1:N).*H;end
function X=mdft(x);
x=x(:);N=length(x);n=[0:1:N-1];for k=0:N-1& Vk=[exp(-j*2*pi*k*n/N)];X(k+1)=Vk*x;FR=[exp(-j*2*pi*n/M)];Vk1=FR.*Vk;Vk=Vk1;end
IDFT conjugados
function sol=midft(X);X=conj(X);X=mdft(X);X=conj(X);sol=X/(length(X));
Insertaceros vs Interp
function xout=insertaceros(xin,L);xout=zeros(1,lenght(xin,L);xout=zeros(1,length(xin)*L);ind=(1:length(xin))*L-(L-1);xout(ind)=xin; La función "interp", después de insertar ceros, inserta un filtrop paso bajo con frecuencia de corte fc=0.5/L, segun caso
quitamuestras vs decimate
function xout=quitamuestras(xin,M);xout=xin(1:M:end);Decimate además introduce un filtro, que atenua el par de tonos, previo a la función quitamuestras. fs>=2wM (solapamiento)
Filter vs Conv
Filter implementa fultro digital unidireccional. y=filter(b.a,x) filtra los datos almacenados en el vector x con el filtro formado por los vectores a y b creando y. si x= impuilso unidad y=h[n].Conv implementa filtrado secuencias.y=conv(x,h) convoluciona los vectores x y h.El vector resultado longitud = longitud(x)+longitud(h)-1.Si x y h son vectores de coeficientes polinómicos, se convolucionarán multiplicandolos.Conv solo filtro FIR,filter para FIR e IIR
function sol=sinusoide(a,fo,fs,fi,t0,tf);ts=1/fs;t=t=t0:ts:tf;n=1:length(t);sol=A*sin((2*pi*n*fo/fs)+fi);
function sol=delta(n);sol=(n==0);function sol = complejo(fg,fz,A,r);A=2;R=0.9;n=0:20;fg=90;fz=45;G=A*exp(j*fg*pi/180);z=r*exp(j*fz*pi/180);sol=G*z.^n;
cascada1.x=0.9*u[n];a=[1];b1=[1/10*ones(1,10)];b2=[1 -1];x1=filter(b1,a,x);y=filter(b2,a,x1);cascada2 x=0.9*u(n);x1=filter(b2,a,x);y=filter(b1,a,x1);Paralelo x=0.9*u(n);x1=filter(b1,a,x);x2=filter(b2,a,x);y=x1+x2;Propiedad conmutativa.Equivalente cascada2x=0.9*u[n];n=-10:1:100;a=[1];b1=[1/10*ones(1,10)];h2=delta(n)-delta(n-1);hc2=filter(b1,a,h2);b=[0.1 0 0 0....-0.1];y=filter(n,y)Equiv. Paralelo