Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Informatie van een sinus terug rekenen met minimale info

Pagina: 1
Acties:

  • kippy
  • Registratie: September 2004
  • Laatst online: 20-11 16:39
Het is niet een heel duidelijk topic titel maar het probleem is als volgt:

Ik heb een sinus vormig signaal met een vaste frequentie (Fvast). Ik kan het signaal in een sinus periode maximaal 2.5 keer met een ADC sampelen (ADCRead1 en ADCRead2). De tijd tussen de gemaakte sampels is ook bekend (Tsamp).

Nu wil ik met deze gegevens de maximale amplitude van de sinus uit rekenen, maar ik heb echt geen idee meer hoe.

Stel ik weet de volgende dingen:
Een periode duurt 2 * pi seconden (even makkelijk voor het rekenen)
De eerste meeting heeft een waarde van 0.84147
De tweede meting heeft een waarde van 0.14112
Tussen de meetingen zit 2 seconden tijd

Hoe kan ik met deze gegevens de amplitude van het signaal berekenen?


Als ik zelf ga rekenen kan ik nog de hoek tussen de twee metingen berekenen. Die is namelijk 2 / (2 * pi) * 360 = 114.59 graden.
Ik weet dat beide metingen boven de X as van de frequentie cirkel liggen want de waardes zijn positief.
Ik weet dat als ik twee rechthoekige driehoeken maak met deze gegevens ik de volgende formule op kan stellen:

Ampl = ADCRead1 / sin(hoek1)
Ampl = ADCRead2 / sin(hoek2)

Ik weet dat Ampl in beide stellingen gelijk is. Ik weet de waardes van ADCRead1 en ADCRead2.
Maar hoe kan ik nu die maximale amplitude berekenen?

  • Speedsmile
  • Registratie: Juni 2004
  • Laatst online: 00:21
Als ik het zo snel even bekijkt heb je het al bijna opgelost, 2 vergelijkingen 3 onbekenden: ofterwijl je mist nog 1 relatie: Je weet de relatie tussen hoek1 en hoek2: hoek2=hoek1+Beta, waar beta het hoek verschil tussen de twee is, die is bekend zeg je zelf: als de sampletijd en de naar ik aan neem bekende Fvast.

Dus, voeg die derde relatie toe, en het is een kwestie van substitutie: Los eerst een van de hoeken op door de amplitudes gelijk te stellen, en vervolgens reken je de amplitude zelf uit... ;)

[ Voor 4% gewijzigd door Speedsmile op 04-03-2009 16:20 ]

If good's on the left, then I'm sticking to the right.


  • kippy
  • Registratie: September 2004
  • Laatst online: 20-11 16:39
De enige relatie ik ik met de hoeken kan maken is: hoek1 + hoek2 + Beta = 180 graden. Maar daar kom ik ook niet echt veel verder mee. Want de gemeten amplitude is niet lineair evenredig met de hoek in graden.

  • Speedsmile
  • Registratie: Juni 2004
  • Laatst online: 00:21
Heb even de situatie geschetst, misschien dat dit helpt:
Afbeeldingslocatie: http://home.hccnet.nl/mathieu.hoeijmakers/UnitCircle.png

De straal van de cirkel is de amplitude, maar die is onbekend. Verder weet je alpha_1 en alpha_2 niet.
Wat weet je wel: Het hoekverschil beta, en de relatie tussen de gemeten amplitude en de maximale amplitude, respectievelijk de overstaande en schuine zijde (schuinezijde= max amplitude=straal van cirkel) van elke hoek: sin(alpha_i)=gemeten/amplitude.

Ik neem nog steeds aan dat Fvast bekend is, anders heb je een probleem. Nu: beta=2*pi*Tsample/Tperiode radialen. En de rest kun je hoop ik zelf...

If good's on the left, then I'm sticking to the right.


  • kippy
  • Registratie: September 2004
  • Laatst online: 20-11 16:39
Zal er morgen nog even verder naar kijken. Had zelf ook al zo'n tekening gemaakt. Alleen had ik alpha 2 verkeerd geplaatst. Beetje tunnel visie vandaag, maar denk dat ik er zo wel uit moet kunnen komen.

Ja Fvast, ook wel de frequenetie is bekent ja.

  • Speedsmile
  • Registratie: Juni 2004
  • Laatst online: 00:21
Het is eigenlijk nog makkelijker vanuit puur wiskundig opzicht:

f(t)=A0sin(2pi*Fvast*t) (1)
dus als je f(t_1) en f(t_2) meet, die allebei moeten voldoen aan bovenstaande heb je:
f(t_1)/sin(2*pi*Fvast*t_1))=f(t_2)/sin(2pi*Fvast*t_2). Dan t_2=t_1+t_sample invullen en oplossen voor t_1, dan terug naar (1) en je hebt het...

If good's on the left, then I'm sticking to the right.


  • kippy
  • Registratie: September 2004
  • Laatst online: 20-11 16:39
Ik heb geprobeerd "sin(180 - (Hoek1 + beta)" alles in graden. Proberen te ontleden, dat kan ook maar je schiet er niet veel mee op. Je krijgt dan 10 sinus en cossinus termen die het geheel niet makkelijker maken naar mijn inziens.

De formulle waar ik nu op uit kom is de volgende:

code:
1
2
3
 ADCRead1           ADCRead2  
---------- = ------------------------
sin(Hoek1)   sin(180 - (Hoek1 + Beta))


Daar kan ik dan wel het volgende van maken:

code:
1
2
3
             sin(180 - (Hoek1 + Beta)) * ADCRead1 
sin(Hoek1) = ------------------------------------
                        ADCRead2


Maar ik snap niet hoe ik de Hoek1 boven de deelstreep vrij kan krijgen. Was al nooit zo'n ster in het ontleden van formules, maar dit wordt toch wel beetje erg complex.

  • Stoney3K
  • Registratie: September 2001
  • Laatst online: 20:30

Stoney3K

Flatsehats!

Okee, leuk wiskunde-raadseltje hier...

Je hebt twee onbekenden: Amplitude (die wil je weten) en Hoek1, en (in phasor-domein) drie bekenden: ADCread1, ADCread2 en Beta.

Nu geldt in ieder geval dat Amplitude = ADCread1 * sin(Hoek1) en Amplitude = ADCRead2 * sin(Hoek1 + Beta).

Waar je eigenlijk naar op zoek bent is die Hoek1, als je die hebt kun je de amplitude terugrekenen.
Dus:

code:
1
2
3
ADCRead2            sin(Hoek1)
---------------- = ------------------------
ADCRead1            sin(Hoek1 + Beta)


Als je nu somformules voor de sinus toepast (bron):

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ADCRead2                         sin(Hoek1)
---------------- = ----------------------------------------------------------------
ADCRead1              sin(Hoek1)cos(Beta)+cos(Hoek1)sin(Beta)

A2                                        1
---               = -----------------------------------------------------
A1                    cos(Beta) + cot(Hoek1)sin(Beta)  

A1 = A2(cos(Beta) + cot(Hoek1)sin(Beta))
A2 * cot(Hoek1)sin(Beta) = A1 - A2 * cos(Beta)
                                    A1 - A2 * cos(Beta)   
cot(Hoek1) = ----------------------------------------------------
                                        A2 * sin(beta)

En voor de volledigheid:
                           A2 sin(Beta)
tan(Hoek1) =  ------------------------------
                        A1 - A2 cos(Beta)


Verder ga ik je niet helpen. :p

Zet het daar maar neer! -- It's time to party like it's 1984 -- Soundcloud


  • kippy
  • Registratie: September 2004
  • Laatst online: 20-11 16:39
Stoney3K schreef op donderdag 05 maart 2009 @ 14:42:

code:
1
2
3
4
En voor de volledigheid:
                         A2 sin(Beta)
tan(Hoek1) =  ----------------------------
                     A1 - A2 cos(Beta)


Verder ga ik je niet helpen. :p
En toen vulde ik het in en klopte er niets van.... (of ik ben gewoon een prutser en maak nog meer fouten).

Even voor de volledigheid, ik ben uit gegaan van de volgende punten:
2pi rad per seconden
Tijd tussen meeting A1 en A2 = 2 wat gelijk staat aan 114.59 graden
De maximale amplitude is 1
A1 = 0.84147 (gemeten op t = 1)
A2 = 0.14112 (gemeten op t = 3)
Hoek1 = 57.29 graden
Hoek2 = 171.88 graden

Normaal gezien heb ik dus niet al deze gegevens en alleen de volgende:
Periodetijd (die is zo omgerekend naar frequentie of radialen)
Tijd tussen meeting A1 en A2
Hoogte van het signaal op t=?
Hoogte van het signaal op t? + 2

Als ik jou formule invul en alles in graden bereken:
code:
1
2
3
4
5
                    0.84147 sin(114.59)
tan(Hoek1) =  ------------------------------- = 0.8499
              0.84147 - 0.14112 cos(114.59)

invtan(0.8499) = 40.36 graden en geen 57.29

Dus of ik ben nu echt helemaal alles aan het verprutsen of er is toch iets niet helemaal goed.

  • Stoney3K
  • Registratie: September 2001
  • Laatst online: 20:30

Stoney3K

Flatsehats!

First of all, I'm a doctor, not a calculator! (No, wait, I'm an engineer!)

Euhm, als je hoek1 WEET dan is het natuurlijk een ander verhaal he... bovendien hoor ik nu heel andere onbekenden dan net! (Ik was uitgegaan van het zoeken naar de maximale amplitude).

Je zegt er immers nu pas bij dat je de tijdstippen weet waarop je gemeten hebt t.o.v.het nul tijdstip.

Periodetijd is makkelijk, die is 1 / frequentie of 2pi / hoekfrequentie. De hoekfrequentie is (gaf je net) 2pi, dus de frequentie is 1Hz en de periodetijd dus 1 seconde.

De tijd tussen metingen A1 en A2 is gelijk aan periodetijd * beta / 2pi (in radialen). Beta is nu (Hoek2 - Hoek1) = 114.59 graden, ofwel 1,14 radiaal. Delen door geeft ons dan 0,18 seconden in de periodetijd verschil tussen de metingen.

Zet het daar maar neer! -- It's time to party like it's 1984 -- Soundcloud


  • kippy
  • Registratie: September 2004
  • Laatst online: 20-11 16:39
Sorry voor het veroorzaken van alle verwarring. Maar ben nu al beina 2 dagen aan het zoeken en prutsen, en meer pruts hoe minder ik er van begin te begrijpen.

Als ik de maximale amplitude weet kan ik heel simpel de hoek uitrekenen en andersom. De vertraging tussen het 0 punt en de eerste meeting is niet bekent. De hoek/vertraging tussen de beide metingen is wel bekent.

Ik hoeft ook totaal geen uitkomsten te hebben want die weet ik al. Ik zou alleen een formule willen waar je Amplitude_1 en Amplitude_2 en periodetijd of frequentie en de hoek of tijd tussen de amplitudes in gooit. Waar dan vervolgens de maximale amplitude of de hoek alfa_1 uit komt.

En begrijp me niet verkeerd, ben ontzettend dankbaar dat je me wil helpen. Maar ik ben nu een maar iets beter in programmeren dan in het omgooien van formules. Als als iemand hulp wil bieden vind ik dat geweldig, en hopelijk leer ik er nog wat van.

  • Stoney3K
  • Registratie: September 2001
  • Laatst online: 20:30

Stoney3K

Flatsehats!

Op zich een prima idee, maar ik heb nu het idee dat jij ons vraagt om jouw huiswerk voor je te doen. Iedereen heeft je al een aardige partij hints gegeven, misschien dat je je eens kan inlezen in elementaire wiskunde en goniometrie (zie Wikipedia-pagina), en eventueel phasor-theorie, om een stuk wijzer te worden. Want ik ben ook even benieuwd waar dit voor is.

Zet het daar maar neer! -- It's time to party like it's 1984 -- Soundcloud


  • Speedsmile
  • Registratie: Juni 2004
  • Laatst online: 00:21
Stoney3K schreef op donderdag 05 maart 2009 @ 14:42:
Okee, leuk wiskunde-raadseltje hier...

Je hebt twee onbekenden: Amplitude (die wil je weten) en Hoek1, en (in phasor-domein) drie bekenden: ADCread1, ADCread2 en Beta.

Nu geldt in ieder geval dat Amplitude = ADCread1 * sin(Hoek1) en Amplitude = ADCRead2 * sin(Hoek1 + Beta).

Waar je eigenlijk naar op zoek bent is die Hoek1, als je die hebt kun je de amplitude terugrekenen.
Dus:

code:
1
2
3
ADCRead2            sin(Hoek1)
---------------- = ------------------------
ADCRead1            sin(Hoek1 + Beta)


Als je nu somformules voor de sinus toepast (bron):

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ADCRead2                         sin(Hoek1)
---------------- = ----------------------------------------------------------------
ADCRead1              sin(Hoek1)cos(Beta)+cos(Hoek1)sin(Beta)

A2                                        1
---               = -----------------------------------------------------
A1                    cos(Beta) + cot(Hoek1)sin(Beta)  

A1 = A2(cos(Beta) + cot(Hoek1)sin(Beta))
A2 * cot(Hoek1)sin(Beta) = A1 - A2 * cos(Beta)
                                    A1 - A2 * cos(Beta)   
cot(Hoek1) = ----------------------------------------------------
                                        A2 * sin(beta)

En voor de volledigheid:
                           A2 sin(Beta)
tan(Hoek1) =  ------------------------------
                        A1 - A2 cos(Beta)


Verder ga ik je niet helpen. :p
Hihi, het wordt er natuurlijk niet makkelijker op als je plotseling Amplitude en gemeten amplitude ADCread om gaat wisselen :>
(HINT: Amplitude=ADCread/sin(hoek) en dus niet ADCread*sin(hoek))
En bovendien, laat dat hele hoek verhaal even voor wat het is, en kijk naar de puur wiskundige uitdrukking van een sin met frequentie f, zoals ik al aangaf. Dat moet toch relatief makkelijk zijn.

Maar voor dat ik het helemaal voorkauw wil ik ook wel eens weten waar dit voor is.

[ Voor 7% gewijzigd door Speedsmile op 05-03-2009 17:32 ]

If good's on the left, then I'm sticking to the right.


  • kippy
  • Registratie: September 2004
  • Laatst online: 20-11 16:39
Het is geen huiswerk.

Ik ben bezig met het bouwen en automatisch laten afregelen van een zender. Hierbij moet ik onder anderen de top spanning en fase verschuiving tegenover het ingangssignaal kunnen meten. Door dus het zender signaal met een schakeling daar tussen af te tappen en te meten via een ADC hoop ik deze gegevens te kunnen berekenen. Dat het niet onmogelijk is had ik al langer door, maar het stuk wiskunde wat hier bij komt kijken is redelijk boven mijn niveau. Als tijd al slecht geweest in het opstellen en ontleden van formules. Had de wiki ook al eerder gevonden en bestudeerd maar daar wordt het voor mij ook niet echt duidelijker van. En ook nog wat andere wis en algebra internet pagina's zitten door lezen, maar vind het allemaal maar een beetje wazig, terwijl het super logisch zou moeten zijn.

  • Speedsmile
  • Registratie: Juni 2004
  • Laatst online: 00:21
Ik ben vandaag erg behulpzaam dus here we go:

DE formule waar het allemaal mee begint:
A(t)=A_0*sin(2*pi*f*t).
Wat beschrijft dit: De tijdsafhankelijk amplitude A(t) van een sinus signaal met maximale amplitude A_0 en frequentie f.

Je weet: Dat de gemete waarden ADCread op t_1 en t_2, die ik even A(t_1) en A(t_2) noem, waarden zijn die allebei aan deze relatie moeten voldoen.
Dus:
A(t_1)=A_0*sin(2*pi*f*t_1)
A(t_2)=A_0*sin(2*pi*f*t_2)

Je hebt dus 2 relaties, maar 3 onbekenden: A_0,f,t_1,t_2.
Maar we hebben nog een relatie, je weet dan wel niet de absolute tijdstippen t_1, t_2, je weet wel het verschil hier tussen: t_2=t_1+t_sample. Waar t_sample de sample tijd tussen de twee waarden is.

Nu dus 3 relaties voor 3 onbekenden:
A(t_1)=A_0*sin(2*pi*f*t_1)
A(t_2)=A_0*sin(2*pi*f*t_2)
t_2=t_1+t_sample

Je weet A_0 niet, je weet wel dat A_0 hetzeflde is op t_1 en t_2:
A_0=A(t_1)/sin(2*pi*f*t_1)
A_0=A(t_2)/sin(2*pi*f*t_2)...
Dus die zijn gelijk right, dus we kunnen beide combineren:
A(t_1)/sin(2*pi*f*t_1)=A(t_2)/sin(2*pi*f*t_2)
Nu vullen we in: t_2=t_1+t_sample
A(t_1)/sin(2*pi*f*t_1)=A(t_2)/sin(2*pi*f*(t_1+t_sample))
Dus 1 vergelijking 1 onbekende:
Nu moeten er nog wat trucjes toegepast worden, we moeten natuurlijk t_1 buiten de functies krijgen....
Ik verwijs je hiervoor even naar de post van stoney, die alleen de sinus definitie omgedraaid had....
Als je die somformules toepast kom je eruit..(als het goed is... :+ )

If good's on the left, then I'm sticking to the right.

Pagina: 1