-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Hoch-Tiefpass per Software?

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556

    Hoch-Tiefpass per Software?

    Anzeige

    Moin moin allerseits,

    Ich hoffe unter "Sensoren" bin ich im richtigen Forum. Unter RN-Wissen
    habe ich zwar verschiedene Filter gefunden, allerdings nur als Hardware
    Lösung. Wie kann ich ein Signal am AD Eingang per Software Hoch B.zw
    Tiefpass filtern?

    Grüße Richard

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.08.2006
    Ort
    Budapest
    Alter
    30
    Beiträge
    563
    Indem Du einen Filterentwurf machst (Signalverarbeitung - FIR bzw. IIR Filter) :-D Matlab kann das automatisch.

    Eine Hardwarelösung ist aber vorzuziehen, da damit Aliasing vermieden wird. Bei der Softwarelösung können die Aliasingfrequenzen in Dein Nutzspektrum eingespiegelt werden.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Mit dem Filter erreichts Du ja das Wegfiltern eines Frequenzbandes. Das heißt, Du müsstest kontinuierlich dutzende, ja tausende Werte aufzeichnen und dann mathematisch bearbeiten. Das wird zu aufwendig und rechenlastig.

    Davon abgesehen ist der interne AD im Atmel nicht schnell genug für einen Hochpass.

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Man wird keine besonders aufwendigen Filter im AVR programmieren, aber einiges ist doch schon möglich. Es ist dabei auch relativ egal ob das ein Hochpass,Tiefpass, Bandpass oder so hat, man wird halt mehr bei Frequenzen unter etwa 10 kHz bleiben.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Moin moin allerseits, danke für die Antworten. Aber es sieht so aus
    als wenn man das dann doch besser Hatrwaremäßig machen sollte.

    Ich hätte aber noch eine Frage, ich versuche meine RN_Dualmotor
    Steuerung zu Programmieren (Mega16) die pwm Anschlüsse liegen
    an Portd. (4/5) die Steuersignale an,aus,Bremsen Motor1/2 wollte
    ich dann auch über Portd laufen lassen. Nur bekomme ich Portd. (0/1)
    nicht zum Schalten? Möglicherweise liegt das daran weil Portd Pin1
    und Pin2 von der Internen RS232 belegt sind, kann man das ändern?

    Grüße Richard

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    och, es gibt da durchaus Lösungen für FFT auf dem AVR ...
    hab da mal was gemacht für ne lichtorgel mit dmx, das war recht
    schnell ... 64 messpunkte brauchte 10ms bei 16mhz die fft.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Zitat Zitat von Vitis
    och, es gibt da durchaus Lösungen für FFT auf dem AVR ...
    hab da mal was gemacht für ne lichtorgel mit dmx, das war recht
    schnell ... 64 messpunkte brauchte 10ms bei 16mhz die fft.
    Moin moin.
    Im Konkretem Fall geht es hier darum einen Beschläunigungssensor
    zu "beruhigen". Der sitzt auf den Kopf und steuert die Rundumsicht
    beim Flugsimulator. Das klappt ziemlich gut, aber es kommt halt auch
    ellerkleinste "Zitterbewegungen" durch dadurch ist die Ansicht etwas
    sehr verwaggelt.

    Ich habe aber leider überhaupt keine ahnung wie man so einen Hoch7
    Tiefpass Softwaremäßig realisiren kann, sonst würde ich das einfach mal
    auf einen Testboard ausprobieren. Ich brauche ja quasie beinahe nur
    sehr langsame Änderungen wie sie beim normalen Kopf heben/neigen
    entstehen, also einen extremen Tiefpass.

    Hast Du einen Link wo ich lesen kann wie so etwas per Software gemacht
    wird?

    Gruß Richard

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Kannst Du uns die Lösung darlegen?

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    16.12.2005
    Ort
    Oberschwaben
    Beiträge
    82
    Zitat Zitat von Richard
    Im Konkretem Fall geht es hier darum einen Beschläunigungssensor
    zu "beruhigen".
    Der einfachste Tiefpass ist einfach Durchschnittsbildung. Du nimmst einfach mehrere Messwerte und berechnest den Durchschnitt davon. Wenn das eine 2er Potzenz ist (z.B. 8), dann kann man das Teilen durch ein Shift ersetzen, was dann viel schneller ist.

    Markus

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Felix G
    Registriert seit
    29.06.2004
    Ort
    49°32'N 8°40'E
    Alter
    34
    Beiträge
    1.780
    Das heißt, Du müsstest kontinuierlich dutzende, ja tausende Werte aufzeichnen und dann mathematisch bearbeiten. Das wird zu aufwendig und rechenlastig.

    Davon abgesehen ist der interne AD im Atmel nicht schnell genug für einen Hochpass.
    Also mal ganz davon abgesehen, daß man im Normalfall nicht tausende Werte speichern muss... wer sagt denn bitte daß der ADC für einen Hochpass zu langsam wäre?



    Die richtige Lösung für das Problem wurde bereits genannt: FIR- oder IIR-Filter
    Sowohl FIR (Finite Impulse Response) als auch IIR (Infinite Impulse Response) Filter sind leicht zu programmieren, und benötigen nur wenig Speicher und Rechenleistung.

    Übrigens haben FIR-Filter die Eigenschaft grundsätzlich stabil zu sein, wohingegen IIR Filter unter Umständen auch instabil werden können (dem muss man entsprechend vorbeugen), dafür haben sie aber andere Vorteile.
    So viele Treppen und so wenig Zeit!

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •