• Sábado 4 de Mayo de 2024, 19:19

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Humphrey

Páginas: [1]
1
Matlab / Re: Crear un filtro a partir de un espectro
« en: Jueves 5 de Agosto de 2010, 11:02 »
Buenas,

LA función filter se utiliza para filtros IIR y FIR.
Si pones 1 en el 2º parámetro es una forma de decirle que tienes un filtro FIR, y en 1º parámetro introduces los coeficientes de tu filtro.

Espero que sea de ayuda. YA comentarás si has solucionado tus problemas.

2
Matlab / Re: Crear un filtro a partir de un espectro
« en: Miércoles 4 de Agosto de 2010, 12:05 »
Buenas,

He estado mirando y creo que esta bien.
Prueba esto:
% A mi si que se me parecen:
plot(abs(IR))
figure; plot(frec1,abs(Amp));
figure; freqz(B) % este es el que menos se parece, probablemente por lo cercano que estan los picos en el espectro
                    % puedes probar utilizando una frecuencia más alta para
                    % que esten más separados.
                   
% yo utilizaría la función filter
y= filter(b,1,x);

Espero que te sirva de algo.

3
Matlab / Re: Crear un filtro a partir de un espectro
« en: Lunes 26 de Julio de 2010, 07:42 »
Buenas elejazz, prefiero contestar por aqui:

El script lo tenia en el ordenador, no se si es del todo correcto, seguramente se pueda hacer mucho más limpio e incluso haya alguna función para hacer esto, pero bueno:

frec= linspace(0,length(IR),500); % Tomo 500 muestras de todo mi espectro. IR es mi vector con respuesta en frecuencia
frec= round(frec);        % redondeo para que no de problemas
frec1= frec/max(frec);          % Normalizar a 1
frecA= [1 frec(2:end)];         % frecuencias. Cogo desde 2 hasta el final, para no coger el indice 0, que me daría error a
                                           la hora de buscarlo en el vector
Amp=IR(frecA);                  % Amplitud
B=fir2(250,frec1,Amp);          % coeficientes del filtro

Ya te digo, es una idea. Seguro que hay alguien por aqui que lo puede mejorar.

Espero que te sirva.

4
Matlab / Re: mensaje procesando... en GUI
« en: Jueves 22 de Julio de 2010, 15:36 »
Wenas,

No me he explicado, lo he escrito 3 veces porque internet no me iva bien.

La función esa que digo da un mensaje de error, pero si miras en el help de esa función, te dice que saca una pantallita y pones lo que quieras en ella. En el help también sale otra opcion msg(no se que mas) que hace lo que quieres, si no he entendido mal, que salga un aviso. Ya te he dicho que nunca la he usado pero en el help sale como usar cualquiera de las que comento antes.

y otra solución que se me ocurre, es escribir un texto que ponga "trabajando" y se haga visible o no dependiendo de cuando tu quieres. Esto se puede hacer con el set(handles.tutexto, y la opcion visible. No me acuerdo exactamente pero es una idea.

5
Matlab / Re: mensaje procesando... en GUI
« en: Jueves 22 de Julio de 2010, 12:58 »
Wenas,

Es la 3º vez que escribo la respuesta, ahora será más breve.

Prueba esto:

errordlg('You must select two variables',...
'Incorrect Selection','modal')

No se exactamente como va, pero lo he visto en una página de mathworks (no te la puedo escribir porque no tengo privilegios). Busca en mathworks "Accessing Workspace Variables from a List Box" y alli, casi al final aparece.

Espero sea de ayuda.

6
Matlab / Re: Crear un filtro a partir de un espectro
« en: Miércoles 21 de Julio de 2010, 20:09 »
Buenas,

Si ya tienes la forma del espectro es muy fácil, utiliza la funcion fir2. En ella solo tienes que poner el orden del filtro que quieres y muestrear la respuesta en frecuencia (importante entre 0 y 1) y su amplitud correspondiente.

Espero que sea de ayuda. Yo la he usado alguna vez, si tienes dudas busco el script que hice en su día.

Páginas: [1]