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!
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.
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ß
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.