STM32 para procesamiento de audio [cerrado]

Estoy trabajando en un proyecto. No sé qué microcontrolador usar para el procesamiento de audio en tiempo real y quiero reconocer el pico con él.

Ya he implementado este programa con Raspberry Pi.

¿Puede hacer este STM32F103 u otro microcontrolador?

Ni siquiera dice cuál de los diferentes modelos STM32F103, ya que vienen en varios tamaños, ya sea bastante pequeños con un conjunto limitado de periféricos o muy grandes con un amplio conjunto de periféricos. ¿Qué interfaz de audio usarías? ¿Cuánto procesamiento está haciendo, cuál es la frecuencia de muestreo, la profundidad de bits, la cantidad de canales y qué procesamiento se realizará? ¿Cuál será la salida de audio?
Tasa de muestreo 44,100 y Mono
Asegúrese de que cualquier STM32 que use tenga una unidad de punto flotante e idealmente extensiones DSP

Respuestas (1)

Encontrar un pico es muy simple; solo necesita iterar a través de todas las muestras y verificar si la muestra actual es más alta que la más alta que vio hasta ahora. En caso afirmativo, almacena su índice (si le importa el índice) o su valor en una variable.

Después de hacer eso, solo usa esa variable.

Ahora, esto se siente como algo que un ARM con reloj de >48 MHz podría hacer fácilmente. La pregunta es si puede escribir suficiente C para implementar eso, pero en realidad no es una tarea muy difícil.

La parte difícil es obtener el audio en su microcontrolador y hacer algo con el pico. Es muy probable que también desee preprocesar el audio (¿Cuadrado y filtro de paso bajo?).

Entonces, ahí es donde su microcontrolador podría o no alcanzar sus límites. Solo a partir de su descripción, encontrar un máximo de muestras que lleguen a una frecuencia de muestreo típica de audio, esto debería estar bien. Pero realmente no es la parte difícil.

Probé con Arduino UNO R3 pero no tengo pico negativo uplooder.net/img/image/81/bddfe6148e64199f5e457e51e9eec4ac/…
No puedo depurar tu código por ti; esto no es un problema de que su microcontrolador pueda hacerlo, es un problema de su código.
¿Puedes dar algunos consejos? por favor
¿Como podria yo? No conozco su código, no sé de dónde proviene su forma de onda, no sé cómo ingresa su señal a su microcontrolador, ni siquiera nos ha dicho qué ha estado haciendo para reducir el problema: lo siento, no puedo leer tu mente!
void setup() { // Pon tu código de configuración aquí, para ejecutarlo una vez: Serial.begin(115200); } void loop() { // Pon tu código principal aquí, para ejecutarlo repetidamente: int data = analogRead(A0); int16_t out = mapa(datos, 0, 1024,-32768,32767); Serial.println(fuera); }
@Jason, este no es su código completo, y no responde nada sobre lo que pregunté . La verdad es: nadie más que usted puede depurar su código. Necesitas depurarlo tú mismo.
Estoy usando el preamplificador de micrófono max4466
@Jason, ¿estás leyendo lo que escribo en mis comentarios? Me estoy rindiendo aquí.