Hola, esta vez les hago una consulta totalmente distinta a las anteriores.
Esta es sobre un punto fijo.
El código corre perfecto y me muestra la gráfica que se espera que haga,
sin embargo me tira el siguiente mensaje:
/usr/bin/python3.8 /home/raiden/Programacion/Maigo/test.py
2.5
Formato: 2.5
resize 1.4: 0.5
q4 x q4 = 0.25
/home/raiden/Programacion/Maigo/test.py:93: *RuntimeWarning: divide by zero
encountered in log   S1_fp = numpy.log(abs(fft(s1_fp)))*

El código lo tengo en pastebin: Punto fijo <https://pastebin.com/Vpr9tiAj>
Las búsquedas me dicen que es muy probable que sea numpy, pero no logro dar
con el error. Para una mayor y mejor explicación les adjunto el mail con el
cual me lo enviaron:

Hasta donde sabía, ambos pudieron instalarse la librería fpbinary, no?
Les adjunto un script de python para punto fijo y una función para generar
una señal senoidal (creo que esta última ya la tenía hecha).
Para que funcione  tienen que poner dos cosas en la misma carpeta así el
script sabe de donde sacar el include.
Miren un poco como funciona la librería de punto fijo y traten de entender
cómo está armado todo el script. Es clave esta línea
*# convierto la señal a punto fijo*
*s1_fp = [fpgen(x) for x in s1]*
En s1 tengo guardada la señal en float, y para convertirla a punto fijo,
llamo a fpgen con cada valor, que devuelve el mismo valor pero en punto
fijo (está definida al principio del archivo). Esta estructura es típica de
python, aunque C++ tiene algo parecido con el *for/in*. En este caso, el
"for x in s1" recorre el array s1 (en python puede ir cualquier objeto
iterativo), y devuelve ese valor en x. Para cada valor de x, llamo a
fpgen(x), con eso convierto a punto fijo, y lo guardo en el array. Esto
último se hace porque toda la expresión está entre corchetes, así cada
valor de salida se guarda ordenado en un array.
Bueno, les pido que puedan ejecutar y entender este script. En caso que lo
decodifiquen bien, pueden intentar resolver los ejercicios de la guía de
punto fijo, que originalmente están para matlab. Básicamente sería correr
este script con diferentes resoluciones.


Ese  es el mensaje del correo. Él se refiere a que hay una pequeña función
que se llama mi_sen() la cual pasa una serie de parámetros. Ese script
estaba solo en otro fichero donde se importaba math y numpy. Cómo mi ide
Pycharm 2020.1 me resaltaba justo esa línea dónde la importaba en el
fichero principal ese módulo, lo que hice fue comentar la línea de import y
puse esa función dentro del fichero principal. Pero sigo con ese problema
del RuntimeWarning y no se qué puede ser.
Muchas gracias
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

Responder a