Effektivwert optimieren

OP (Firma: keine) #1747457
Lesenswert?
• ▲
▼
Hi Leute,

hab da ein Problem mit meinem Effektivwert.

Ich möchte aus drei unterschiedlichen Quellen die Effektivwerte im 
MSP430 ausrechnen, d.h. ich hab 3 ADC Werte.

Jetzt habe ich erstmal einen der 3 Realisiert: Er nimmt mit einem Timer 
8192 Samples zum Quadrat Summiert diese teilt durch 8192 und zieht die 
Wurzel. So sollte der diskrete Effektivwert ja aussehen.

nun zu meinem Problem:

ich hab ein 12 Bit-Wert, dieser wird Quadriert, damit habe ich 24 Bit. 
Das ganze mal 8192 macht 37 Bit und von 37 Bit ne wurzel ziehen ist ja 
schon Ordentlich, und dauert auch ziemlich lange. Zu lang sogar um genau 
zu sein.
~3s Pro 8192.

Jetzt hab ich es mal mit Shiften von 37 auf 32 Bit versucht, also aus 
64Bit eine 32Bit Variable gemacht.
1) Brachte es nicht die gewünschte Geschwindigkeitsverbesserung
2) kommt jetzt ein total falscher Wert raus.

kann ich mir irgendwie nicht erklären.

Bleiben 3 Fragen:

1) Ist Shiften hier Sinnvoll um schneller zu werden?
2) Wie kann ich genau den Fehler herausfinden denn ich dabei mache?
3) Gibt es noch andere Möglichkeiten die Berechnung zu beschleunigen?

[c]#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR (void)
{
  if(i<8192){
    temp=ADC12MEM0;
    temp1=temp;
    temp1*=temp1;                           // Quadrat
    sum=sum+temp1;                          //Summe
    j++;
  }else{
    temp2=sum>>5;
    RMS=sqrt(sum/j);
    INV=RMS*732.421875E-6;
    //printf("RMS ist: %f",RMS);
    sum=0;
    i=0;
    j=0;
  }
   ADC12CTL0 &= ~ENC;                         // Enable conversions
}[{c]

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.