Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2019:audio-visualizer

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2019:audio-visualizer [2020/01/19 22:57]
Dominik Indrák [Závěr] vložen obsah
2019:audio-visualizer [2020/01/20 19:42] (aktuální)
Dominik Indrák [Výpočet frekvenčního spektra]
Řádek 84: Řádek 84:
   arm_max_f32(magnitude_db,​ FFT_SIZE, &​maxValue,​ &​testIndex);​   arm_max_f32(magnitude_db,​ FFT_SIZE, &​maxValue,​ &​testIndex);​
  
-  DrawSpectrum(magnitude_db, maxValue, scale_y_inc3db,​ dB_per_px);+  DrawSpectrum(magnitude_db,​ scale_y_inc3db,​ dB_per_px);
  
   //New data for FFT can be saved   //New data for FFT can be saved
Řádek 139: Řádek 139:
  
 Pro vykreslování na LCD displej je třeba nakopírovat do složky projektu zdrojové soubory STemWinu, který lze buďto stáhnout samostatně ([[https://​www.st.com/​en/​embedded-software/​stemwin.html|STemWin]]) a nebo je součástí Cube MX v adresáři CubeMX\Middlewares\ST\STemWin. STemWin je profesionální grafická knihovna, ze které se využily pouze základní funkce pro kreslení geometrických tvarů. Tato knihovna byla zvolena, protože bylo třeba otočit orientaci displeje (hlavně textu) o 90°, což nebylo s BSP knihovnou k LCD možné. GUI, které je součástí CubeMX nebylo použito z časových důvodů. Pro vykreslování na LCD displej je třeba nakopírovat do složky projektu zdrojové soubory STemWinu, který lze buďto stáhnout samostatně ([[https://​www.st.com/​en/​embedded-software/​stemwin.html|STemWin]]) a nebo je součástí Cube MX v adresáři CubeMX\Middlewares\ST\STemWin. STemWin je profesionální grafická knihovna, ze které se využily pouze základní funkce pro kreslení geometrických tvarů. Tato knihovna byla zvolena, protože bylo třeba otočit orientaci displeje (hlavně textu) o 90°, což nebylo s BSP knihovnou k LCD možné. GUI, které je součástí CubeMX nebylo použito z časových důvodů.
 +
 +Na následujícím obrázku je nastavení pro displej z CubeMX. Displej byl nastavován podle videa [8] a kromě LTDC bylo nutné nastavit FMC (Flexible Memory Controller) a SPI (Serial Peripheral Interface)
 +
 +{{ :​2019:​audio-visualizer:​ltdc_conf.png?​direct&​600 }}
  
 Makra používaná při vykreslování osy X a Y a jejich popisů. Makra používaná při vykreslování osy X a Y a jejich popisů.
Řádek 288: Řádek 292:
 Pro vstup audio signálu byl použit filtr typu horní propust, který ovšem nebyl ideální (frekvence větší jak f<​sub>​vz</​sub>​ by způsobovaly aliasing) a z časových důvodů nebyl předělán. Lepší by by byla pásmová propust nalazená na slyšitelné spektrum, tzn. 20 Hz - 20 kHz.  Pro vstup audio signálu byl použit filtr typu horní propust, který ovšem nebyl ideální (frekvence větší jak f<​sub>​vz</​sub>​ by způsobovaly aliasing) a z časových důvodů nebyl předělán. Lepší by by byla pásmová propust nalazená na slyšitelné spektrum, tzn. 20 Hz - 20 kHz. 
 Aby bylo možné vykreslovat na displej na šířku, na poslední chvíli byla použita část knihovny STemWin. Lepší by ovšem bylo využití kompletní knihovny STemWin s GUI například přímo v CubeMX. vylepšením by mohlo být, aby frekvenční spektrum nebylo vykreslováno celé, ale bylo rozděleno na oktávy. Každá oktáva by pak zahrnovala spektrum z okolních frekvencí. Šlo by pak lépe vidět rozložení spektra na nižších frekvencích (cca 20 Hz - 1kHz). Aby bylo možné vykreslovat na displej na šířku, na poslední chvíli byla použita část knihovny STemWin. Lepší by ovšem bylo využití kompletní knihovny STemWin s GUI například přímo v CubeMX. vylepšením by mohlo být, aby frekvenční spektrum nebylo vykreslováno celé, ale bylo rozděleno na oktávy. Každá oktáva by pak zahrnovala spektrum z okolních frekvencí. Šlo by pak lépe vidět rozložení spektra na nižších frekvencích (cca 20 Hz - 1kHz).
 +
 +[[http://​leteckaposta.cz/​647359699|Zdrojové soubory]]
 +
 +{{youtube>​SbM17JHXQDU?​medium}}
 +
  
 ===== Zdroje ===== ===== Zdroje =====
2019/audio-visualizer.1579471061.txt.gz · Poslední úprava: 2020/01/19 22:57 autor: Dominik Indrák