Forum: Digitale Signalverarbeitung / DSP / Machine Learning Digital Waveguide Oscillator - Octave?


von Burkhard K. (buks)


Lesenswert?

Ich würde gerne den hier 
https://www.dsprelated.com/freebooks/pasp/Digital_Waveguide_Oscillator.html 
gefundenen Matlab Code mit Octave (4.21) ausführen - dazu fehlen mir 
allerdings die Funktionen:

 timeplot()
 oneplot()

Finde dazu aber auch keine Matlabreferenz. Weiss jemand mehr?

von Tricksy (Gast)


Lesenswert?

Ersetze timeplot einfach durch plot und lasse oneplot einfach weg ;)

von Burkhard K. (buks)


Lesenswert?

Tricksy schrieb:
> Ersetze timeplot einfach durch plot und lasse oneplot einfach weg ;)

Das funzt, danke.

Was machen diese Funkionen, was Octave nicht kann? Finde ich im Netz 
eine Referenz dafür?

von chris_ (Gast)


Lesenswert?

>The Digital Waveguide Oscillator
>In this section, adapted from [460], a digital sinusoidal oscillator derived from 
>digital waveguide theory is described which has good properties for VLSI 
>implementation. Its main features are no wavetable and a computational complexity 
of >only one multiply per sample when amplitude and frequency are constant.

Da muss ich doch gleich mal meinen Sinus in die Runde werfen. Unter 
bestimmten Umständen ist der Rechenaufwand dort noch kleiner:
Beitrag "Re: minimalistische Berechnung einer Sinusschwingung"

von Michael W. (Gast)


Lesenswert?

Inwiefern ist das "Dein" Sinusgenerator? Die Vorgehensweise ist ja 
eigentlich hinlänglich bekannt (Rückkopplung). Die Frage bei all diesen 
Generatoren ist ja lediglich, wieviele und welche Parameter man offen 
lässt, statt sie - wie in den vereinfachten Versionen - festzulegen, um 
Berechnung zu sparen.

von J. S. (engineer) Benutzerseite


Lesenswert?

chris_ schrieb:
> Da muss ich doch gleich mal meinen Sinus in die Runde werfen. Unter
> bestimmten Umständen ist der Rechenaufwand dort noch kleiner:
> Beitrag "Re: minimalistische Berechnung einer Sinusschwingung"

Damit kann man aber nur Sinüsse erzeugen. Mit einer wave guide 
Architektur bekommt man einen kompletten filter angeliefert und kann in 
gewissem Rahmen das Frequenzprofil bestimmen. Siehe Karplus-Strong, auch 
wenn der inzwischen ausgedient hat, da nicht direkt zu tunen. Für eine 
variable Frequenzcharakteristik bräuchte es dann wieder mehrere solcher 
Oszillatoren und zwischengeschaltete Filter, was aufwändiger wäre, 
allerdings die Möglichkeit schafft, das Profil dynamisch zu gestalten.

Das sind eher komplementäre Verfahren.

von J. S. (engineer) Benutzerseite


Lesenswert?

Wegen einer Nachfrage:

Ja, den Karplus-Strong kann man auch mit Bruchteilen der RAM-Länge 
tunen, wenn man samples interpoliert, das wirkt sich aber auch die Güte 
aus. Eine gute Interpolation ist bei sehr hohem Oberwellenanteil nicht 
möglich und führt generell zu einem entsprechenden Rechenaufwand - führt 
damit die Einfachheit des KS-Algos ad absurdum.

Wer damit probieren möchte, habe ich hier mal was aus der alten Kiste 
geholt:

Beitrag "Re: Tonerzeugung durch Rückkopplung mit 2. und 3. Oberwelle"

von Dominique (Gast)


Lesenswert?

Burkhard K. schrieb:
> Was machen diese Funkionen, was Octave nicht kann? Finde ich im Netz
> eine Referenz dafür?

Ich kann mich entsinnen, es gab auf der Octave Seite irgendwo eine 
Referenzliste wo erklärt wurde, wie man das machen kann. Octave kann 
aber praktisch alles, was MATLAB kann.

von Burkhard K. (buks)


Lesenswert?

Dominique schrieb:
> es gab auf der Octave Seite irgendwo eine Referenzliste

Meinst Du 
http://wiki.octave.org/FAQ#Differences_between_Octave_and_Matlab ? Hilft 
in dem Fall nicht weiter, ein Mapping von Matlab- auf Octave Funkionen 
findet sich dort nicht (war auch nicht zu erwarten).

Dominique schrieb:
> Octave kann aber praktisch alles, was MATLAB kann.

Das mag zwar grundsätzlich zutreffen, hilft aber praktisch wenig weiter.

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.