Rozpoznání signálu: sinus/pila/trojúhelník nebo obdélník nebo DC. – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Rozpoznání signálu: sinus/pila/trojúhelník nebo obdélník nebo DC. – C / C++ – Fórum – Programujte.comRozpoznání signálu: sinus/pila/trojúhelník nebo obdélník nebo DC. – C / C++ – Fórum – Programujte.com

 

valky0
Duch
10. 4. 2011   #1
-
0
-

Ahoj, stavím osciloskop a potřebuji určit jaký druh signálu mi přečetl ADC kvůli zjištění způsobu triggerování a vykreslování na 128x64 LCD.
Mám 1024 naměřených 8 bit hodnot v poli odpovídající tvaru signálu. Občas je celá perioda na 40 hodnotách, občas na 400, 500, 600... Perioda nezačíná na nultém prvku pole ale neznámo kde. Šum + chyba převodníku je na rozlišení 256 hodnot max +-4.
Měl jsem pár nápadů ale většinou skončili neúspěšně. Resp. fungovali tak napůl, sinus s periodou menší jak asi 40 hodnot to poznalo jako obdélník.
Co předem s jistotou z naměřených hodnot znám je minimální hodnota (včetně šumu ->až hodnota -4), maximální hodnota(včetně šumu ->až hodnota+4).
Potřebuji tedy určit, jestli hodnoty v poli jsou obdélníkového průběhu -> triggerování od spodku + dokreslení čáry mezi přechodem, sinus/pila/trojúhelník -> triggerování od středu, nebo DC -> triggerování v první nalezené hodnotě.
Nezajímá mě ani tak kus kódu ale spíš vaše nápady jak tohle vyřešit, děkují za váš čas popř. i pomoc.
Valky.

Nahlásit jako SPAM
IP: 89.190.90.–
voty+1
Návštěvník
11. 4. 2011   #2
-
0
-

To valky : Hoj, nevím co jsi už zkoušel, ale je to tu trochu osiřelé, takže zkusím ...
K rozpoznání typu signálu bych vyzkoušel asi spočítat derivaci toho signálu a od toho se někam posunout, třeba by to mohlo +/- fungovat, když se to nějak rozumě zprůměruje. Obdélník bude mít +/- 0 až na hrany, kde bude velká změna, trojúhelník bude mít konstantní a ve vrcholech změnu znaménka a sinus bude mít holt zase sinus (posunutý), takže to bude plavat sem a tam. Ale úspěch bude vždycky +/- autobus.

Pokud bys chtěl neprůstřelné řešení, vyprdnul bych se na zjišťování co to je zač, dá se říct, že tě to vlastně ani moc nezajímá a poštval bych na to fourierku, ze která by, bez ohledu na šum, vypadlo k čemu se dá triggerovat (1. harmonická).

Edit: Tak jsem si ještě jednou a pozorně přečetl zadání :) S tou fourierkou to samozřejmě stále platí a pokud bys chtěl triggerovat vždy od jiného bodu, tak obdélník by měl snad jít od zbytku poznat podle vyšších harmonických, které bude mít každý signál dost jiné.

Nahlásit jako SPAM
IP: 217.195.166.–
Jednu rozbil a tu druhou ztratil.
valky0
Duch
14. 4. 2011   #3
-
0
-

To voty : Ahoj, něco na způsob derivace jsem zkoušel, sinus/od obdélníku to v určitým rozsahu periody na dílek pozná, horší je to s DC/pomalými změnami.
Fourierovku tam mám taky, jen to při 512N aktualizuje cca po 1 sec. Takže triggerování podle harmonických není pro zobrazení průběhu zrovna ideální.

Problém jsem ale vyřešil jinak. MCU, které používám má analogové komparátory, takže přes PWM + RC člen nastavím referenční napětí a při přechodu signálu nad/pod něj se spustí čtení hodnot. Funguje to o moc lépe než triggerování podle naměřených hodnot. Tady mě pak ani nezajímá jaký druh signálu mám na vstupu.

Nahlásit jako SPAM
IP: 89.190.90.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 83 hostů

Podobná vlákna

C++ nebo C#? — založil Johnny

.com nebo .cz? — založil Garret Raziel

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý