Forum: Digitale Signalverarbeitung / DSP / Machine Learning Wurzeln eines FIR Filters


von Stefan (Gast)


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!

von ,,,, (Gast)


Lesenswert?

Mal über eine Speichererweiterung nachgedacht?

von ,,,, (Gast)


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.

von Stefan (Gast)


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ß

von Detlef A (Gast)


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

von Alex (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.