jag samplade in en sinus signal på ca 40Hz men en samplingshastighet på 150Hz. men när jag sedan plottade signalen så var det något konstigt...signalen verkar på något sätt vara "modulerad"....
är signalen förvrängd, samplar jag in fel...hoppas någon kan svara på detta.
(jag använder en pic18f2455 och koden är skriven i c)
Om signalen bara är plottad rakt av så är det nog korrekt, tänk på att du inte alltid kommer att sampla toppen av varje sinus, utan kanske bara lite till höger och vänster om toppen.
Signalen är fortfarande korrekt samplad, men du behöver fylla i punkterna mellan de samplade punkterna för att få en korrekt bild av hela vågformen...
En tumregel är väll att sampla med 10 ggr den signal man vill ha in.
Altså 400Hz i ditt fall, det finns ju fortfarande risken att du missar den absoluta toppen men resultatet brukar bli bättre.
Precis som alla säger, sampla fortare. Nykvistteoremet är bara tillämligt om du tänker göra fft eller så på signalen, annars så sampla MINST 10 gånger högsta frekvensen du vill "titta på", gärna 20 gånger om du kan.
Nyquist gäller, om man vet att den högsta frekvensen i signalen man vill sampla är < f så räcker det med samplingsfrekvensen 2f, och det ger ingen mer information att sampla med 10f eller 100f.
Men det betyder inte att signalen ser "fin" ut om man plottar den. När man plottar ritas det förmodligen raka linjer mellan varje samplad punkt - och så såg ju inte originalsignalen ut. Man har däremot tillräckligt med information för att återskapa signalen, och det är vad jag menar med att "fylla i punkterna". Man kan öka samplingsfrekvensen i efterhand med ren matematik, t.ex. i matlab (ex: http://itp.nat.uni-magdeburg.de/matlab/ ... nterp.html).
Men det är klart, om man samplar en signal för att titta på den så är det nog enklare att sampla med högre frekvens från början, som redan föreslagits.
Ja iaf, när frekvenserna är så här låga, en helt annan sak om man är uppe och snurrar i höga frekvenser, då är det mer lönt att lägga energi på att "snygga" signalen. Och vill man använda instrumentet till att mäta annat än sinussignaler med så är det alltid trevlig med rätt hög samplingshasighet. Vill man ha det snyggt presenterat ( typ, enkelt DSO) så måste du få en två till tre sampels minst per pixelra i x-axeln för att de den lite analoga känslan av att man "ser" vad som händer, har man en skärm med gråskalor så kan man låta en ruta med ett mätvärde i blir grå och mer än ett mätvärde på samma kollumn och spännings bli svart. Jag gjorde presntationen på det viset när jag byggde ett enkelt DSO med Palmen som display och det kändes snyggt presentationsmässigt. Räknat på det viset om du vill dra ut en period och inte få "hopp" i kurvan med 8 bitars upplösning så behöver du (för snygg presantation utan signalbehandling) sampla med ungefär 250 gånger grundfrekvensen... Kanske lite lyx att sampla med 10kHz för att titta på en 40Hz signal, men snyggt blir det.
Jag trodde att det faktiskt skulle räcka med att sample med 2*f, dvs minst 80Hz i detta fall. Jag läste på om detta, skulle det funka med en anti-aliasing filter på slutet precis innan samplingen som tar bort dessa interfereringar och sånt?
Vad händer om man vill sampla en vanlig DC-signal som inte ändrar sig så mycket men som ändå är lite brusig (typ matning från USB där spänningsfallet ibland sjunker ned till 4.5V beroende på belastning!!)?
Signalen som ser ut som i bilden ovan ser ju inte så bra ut då de data som faktiskt plottats är de värden PICen har att arbeta med!!
Ett antialias-filter tar bort frekvenser över halva samplingsfrekvensen, men det hjälper dig inte i det här fallet. Samplingen du har gjort *är* korrekt.
Egentligen inget speciellt....jag samplade som sagt matningen på USBn som varierade mycket med tiden, ± 0,5V. Jag ser ju på oscilloskopet att nivån ändras men när jag samplar det så får jag inte de "ändringarna" som jag ser på osciloskopet.
Den största ändringen jag får är på ca 2-3 enheter vilket ger 5/1024*2=0,01 V!! Gör jag rätt nu? Hur ska man sampla en DC nivå?