Autor Tema: tutorial de matlab  (Leído 11008 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: tutorial de matlab
« Respuesta #30 en: 19 de Septiembre de 2015, 23:52:02 »
De nextpow2():

Citar
You can use nextpow2 to pad the signal you pass to fft. Doing so can speed up the computation of the FFT when the signal length is not an exact power of 2.

Imagino que si no le das una potencia de 2 hara una transformada de fourier discreta., sino procedera a usar algun otro algoritmo como la FFT y termina siendo mas rapido.

Mas info:

Citar
You won't need to do zero padding, so feel free to just use your samples as-is.

MATLAB internally computes the FFT without any zero padding at all. Since your sample size is easily factorizable into small primes (10000 = 2*2*2*2*5*5*5*5), it will break down the FFT into smaller sizes. Then it will use split- and mixed- radix FFT's to build the larger 10,000 pt. FFT.

If you have a large prime factor, P, the FFT will use Rader's algorithm to sub-divide that portion of the FFT into a circular convolution of size P-1.


Y mas :

http://mechanicalvibration.com/Zero_Padding_FFTs.html

Que buena página! Explica en el apartado anterior algunos problemas que tenía con la implementación de la fft en matlab. Muy bien explicado y bien práctico!
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: tutorial de matlab
« Respuesta #31 en: 20 de Septiembre de 2015, 00:02:06 »
Bueno, menos mal que te sirvio, yo tambien aprendi sobre el zero-padding xD
Tambien lo que vi que estaba bien explicado era el tema de las ventanas, me refiero con ejemplos. Aunque conocia el por que de hacerlo, siempre es mas lindo ver un ejemplo y ver la diferencia.

Desconectado yair_xiox

  • PIC16
  • ***
  • Mensajes: 210
Re: tutorial de matlab
« Respuesta #32 en: 23 de Septiembre de 2015, 10:34:48 »
hola, ahora vamos a ver como hacer cramer con matlab
Código: [Seleccionar]
dit=p;
p=input('seleccione el caso');
switch dit
    case 1 %(sistema de 2x2)
a=input('inserte el valor de a');
b=input('inserte el valor de b');
c=input('inserte el valor de c');
d=input('inserte el valor de d');
e=input('inserte el valor de e');
f=input('inserte el valor de f');
A=[a b;c d],
B=[e b;f d];
C=[a e;c f];
x=det(B)/det(A),
y=det(C)/det(A),


    case 2 %(sistema de 3x3)
a=input('inserte el valor de a');
b=input('inserte el valor de b');
c=input('inserte el valor de c');
d=input('inserte el valor de d');
e=input('inserte el valor de e');
f=input('inserte el valor de f');
g=input('inserte el valor de g');
h=input('inserte el valor de h');
i=input('inserte el valor de i');
j=input('inserte el valor de j');
k=input('inserte el valor de k');
l=input('inserte el valor de l');
A=[a b c;d e f;g h i],
B=[j b c;k e f;l h i];
C=[a j c;d k f;g l i];
D=[a b j;d e k;g h l];
x=det(B)/det(A),
y=det(C)/det(A),
z=det(D)/det(A),
    case 3%(sistema de 4x4)
a=input('inserte el valor de a');
b=input('inserte el valor de b');
c=input('inserte el valor de c');
d=input('inserte el valor de d');
e=input('inserte el valor de e');
f=input('inserte el valor de f');
g=input('inserte el valor de g');
h=input('inserte el valor de h');
i=input('inserte el valor de i');
j=input('inserte el valor de j');
k=input('inserte el valor de k');
l=input('inserte el valor de l');
m=input('inserte el valor de m');
n=input('inserte el valor de n');
o=input('inserte el valor de o');
p=input('inserte el valor de p');
q=input('inserte el valor de q');
r=input('inserte el valor de r');
s=input('inserte el valor de s');
t=input('inserte el valor de t');
A=[a b c d;e f g h;i j k l;m n o p],
B=[q b c d;r f g h;s j k l;t n o p];
C=[a q c d;e r g h;i s k l;m t o p];
D=[a b q d;e f r h;i j s l;m n t p];
E=[a b c q;e f g r;i j k s;m n o t];
v=det(B)/det(A),
x=det(C)/det(A),
y=det(D)/det(A),
z=det(E)/det(A),


end

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: tutorial de matlab
« Respuesta #33 en: 23 de Septiembre de 2015, 11:13:41 »

Desconectado yair_xiox

  • PIC16
  • ***
  • Mensajes: 210
Re: tutorial de matlab
« Respuesta #34 en: 23 de Septiembre de 2015, 11:24:22 »
si tienes razón pero lo quería hacer a mi manera, en el mio lo único tedioso son las entradas y me faltaría añadir una condición para que cuando det(A)=0 terminara el programa en cada caso

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re: tutorial de matlab
« Respuesta #35 en: 23 de Septiembre de 2015, 11:29:24 »
Comprendo tu iniciativa de querer hacer un tutorial de matlab, pero creo, soltar un código y ya esta no es la manera.

Deberias hacer una introduccion, bien redactada, primero, explicando que es la regla de cramer, y luego paso por paso como se hace en matlab, o por lo menos comentando el código.

La programación, sea cual sea el lenguaje, no funciona copiando y pegando, código, imagina una persona que quiera hacer la regla de cramer con tu código, y no sabe de matlab.¿como utiliza eso? ¿como mete los datos?¿ Como lo ejecuta?
Tienes que ponerte en lugar de una persona que no sepa utilizar matlab.

Si solo sueltas el código, es como poner una función de c, si la copias y la pegas no sirve de nada.

Un saludo.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: tutorial de matlab
« Respuesta #36 en: 23 de Septiembre de 2015, 11:38:13 »
Citar
La programación, sea cual sea el lenguaje, no funciona copiando y pegando, código, imagina una persona que quiera hacer la regla de cramer con tu código, y no sabe de matlab.¿como utiliza eso? ¿como mete los datos?¿ Como lo ejecuta?
Tienes que ponerte en lugar de una persona que no sepa utilizar matlab.

Exacto yair, deberias haber comenzado por matrices, que son, como modificarlas, etc
Que es un archivo m ? que es M ?
Control de flujo como switch, for, do..while, etc
Como ingresar una entrada, casos para evitar una mala entrada por parte del usuario, ej que sea un string y vos esperas un numero
Todo esto parece basico pero si haces un tutorial deberia ir.

si tienes razón pero lo quería hacer a mi manera, en el mio lo único tedioso son las entradas y me faltaría añadir una condición para que cuando det(A)=0 terminara el programa en cada caso

Sabes que es lo mas lindo es que si supieras matlab programar lo hubieras realizado con 2 for + 1 variable a las entradas. y creo que requiere un for mas para lo demás, generando un vector como salida con todos los resultados.
Lamentablemente no tengo MATLAB instalado para probarlo.

Yo creo que soy de las personas que piensa que para hacer un tutorial, un manual o enseñar debe saber MUY BIEN de lo que esta hablando. Pero DEMASIADO bien. Por eso mismo yo por ahí cuando quiero hacer un tutorial y tengo unas dudas de algo me voy para atrás. Por que no estoy satisfecho con lo que se y puedo expresar.
Otra de las cosas que uno debe tener para enseñar (que es el objetivo del tutorial) es expresarse lo mejor posible. Explicando con el mayor detalle todo y sin irse de tema. Asi el lector no le falta ninguna información y le es fácil de entender.
« Última modificación: 23 de Septiembre de 2015, 11:55:34 por KILLERJC »


 

anything