mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Wurzeln eines FIR Filters


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte anhand des "roots" Befehl in Matlab die Wurzeln eines FIR
Filters von grad 1000000 berecnen lassen.
MATLAB gibt mir folgendes:

??? Error using ==> diag
Out of memory. Type HELP MEMORY for your options.

Error in ==> C:\MATLAB6p1\toolbox\matlab\polyfun\roots.m
On line 37  ==>     a = diag(ones(1,n-2),-1);

Ich bin dankbar für jede Hilfe, oder für jede andere Idee wie kann man
die Wurzeln anders berechnen!

Autor: ,,,, (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal über eine Speichererweiterung nachgedacht?

Autor: ,,,, (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ergänzung:

'help memory' :

    If the OUT OF MEMORY error message is encountered, there is
    no more room in memory for new variables. You must free up
    some space before you may proceed. One way to free up space
    is to delete some variables (see CLEAR). Another is to
    issue the command PACK (See PACK). PACK compresses the data
    in memory, opening up larger contiguous blocks.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kann leider in Hardware(Memory) nichts ändern.
"pack" habe ich auch probiert, geht aber nicht :(
Ich habe versucht das ganze System (Filtern) zu transformieren um mehr
Anzahl von Filtern aber mit kleineren grad zu bekommen: Rein
mathematisch machbar, aber ich habe das Problen daß die neuen Filtern
nicht kausals oder IIR sind.

Vielen Dank für jede Antwort.
Gruß

Autor: Detlef A (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
7450 GByte Speicher brauchste. Matlab macht roots vermutlich mit
Eigenwertmethode, bei 10^6 Ordnung hat die Matrix 10^12 Elemente mal
8Byte macht 7450GByte. Nur nen Witz. So brutal die Wurzeln des Polynoms
zu berechnen geht vermutlich nich, mit Matlab oder ohne. Da mußte Dir
was anderes überlegen.

Cheers
Detlef

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Darf man die Sinnfrage stellen?

Wenn du nicht gerade mit 128-256 Bit (oder mehr) Genauigkeit rechnest
macht in der Praxis eine solche Filterordnung wohl kaum Sinn. Von
Laufzeiten möchte ich garnicht sprechen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.