Bandbegrenztes Rauschsignal

Durch Zufallszahlen ein Zeitsignal erzeugen, mit begrenzter Amplitude, dann fouriertransformien in den Frequenzraum, dort das etas abgerundete Rechteckfenster draufmultipilzieren und wieder ruecktransformiere. Kann es da immer noch ein Problem mit dem Spitzenwert geben ?

Reply to
Carla Schneider
Loading thread data ...

Dieter Michel schrieb am Donnerstag, 4. Mai 2023 um 15:07:32 UTC+2:

E soll ungefähr so klingen wie beim Bruel+Kjaer 1027 Sine Random Generator.

Kann man so machen, aber ich finde es kompliziert die digitalen Filter mit der nötigen Flankensteilheit zu programmieren. Es scheint mir einfacher zuerst das Spektrum zu erzeugen und daraus mit Rückwärts-FFT das Zeitsignal zu berechnen.

Michael

Reply to
astroel...

Am 04.05.2023 um 15:51 schrieb snipped-for-privacy@t-online.de:

natürlich...

Erzeuge das Spektrum als File mit 2^k-1 4-Byte-Short-Reals u. 2^k-1

4-Byte-Short-Imags, nenne es Spek.fft und ich transformier Dir das in den Zeitbereich zurück.

No problem ...

:)

Reply to
Leo Baumann

Carla Schneider schrieb:

Die Fensterfunktion im Frequenzraum wird Artefakte produzieren. Überschwingen und dergleichen. Man müsste zweiseitige Wiener-Filter verwenden, wüsste jetzt aber nicht, ob es das überhaupt gibt, und falls doch, wo man Source code abgreifen könnte. Nach oben begrenzendes Wiener-Filter findet man im Numerical Repices.

Reply to
Rolf Bombach

(hatte ich heute früher schon gepostet, ich seh's aber in der Newsgroup nicht)

Hallo Michael,

ok, das hilft ja schon mal weiter. Kannst Du benennen, was an dem Klang Dir gefällt?

Wenn ich das richtig sehe, ist ein zentrales Funktions- element beim 1027 der Beat Frequency Oscillator (BFO) oder auch "Schwebungssummer".

So, wie ich es verstehe, erzeugt er sowohl Sinus-, als auch Schmalbandrauschen über einen Mischer (Multiplikator), der wahlweise ein Sinus- oder Schmalband-Rauschsignal mit fester Mittenfrequenz durch Modulation mit einem variablen Sinussignal frequenzmäßig nach Wunsch durch die Gegend schiebt.

Durch dieses Prinzip bekommst Du beim Schmalbandrauschen ein Rauschen fester absoluter Bandbreite, was evtl. zum (gewünschten) Klangcharakter beiträgt.

Wenn Dir das gefällt, würde ich versuchen, dieses Generatorprinzip nachzubilden.

Ich hatte Dich so verstanden, dass Du die Abtastwerte des Ausgangssignals in einer Tabelle ablegen willst. Dafür musst Du ja nicht unbedingt alle Filter und so weiter zu Fuß programmieren, sondern kannst das mit fertiger Software und Filter-Plugins machen und dann das Ausgangssignal abspeichern. Oder habe ich Dich da falsch verstanden?

Du könntest ja beispielsweise das Schmalbandrauschen des 1027 vor der Mischstufe mit einer Software erzeugen (z.B. mit dem Filtered Noise Generator von Esser Audio, hab ich nichts mit zu tun, benutze ich bloß) und dann nur noch die Mischstufe selbst programmieren. Ich glaube auch, so unendlich steilflankig sind die Filter im B&K 1027 auch nicht.

Viele Grüße

Dieter

Reply to
Dieter Michel

Hallo Rolf,

Du schriebst am Wed, 3 May 2023 23:25:16 +0200:

Und wenn das Array (zeitlich) lang genug ist, dann hört man auch keine Wiederholung mehr, weil das Gehör die Vorgeschichte "vergißt". Der Zeitraum, der dafür nötig ist, ist allerdings reichlich lang, da reichen nicht einmal zehn, zwanzig Sekunden, das muß deutlich länger dauern bis zur Wiederholung. Ein guter Ansatz bei weißem Rauschen ist s (i+ 1) = CRC32 (s (i)), wo s (k) ein Sample-Wert und CRC32 (n) der Wert der "Cyclic Redundancy Check"-Funktion mit einer Länge von 32 Bit und einem Rückführ-Polynom für maximale Periodenlänge ist. Passende Polynome gibt es unterschiedliche, beliebt und öfters zu finden ist das u.a. beim ZIP-Kompressor verwendete (X^32+X^26+X^23+ X^22+ X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0)

- das leider viele Terme enthält. Es gibt dafür aber einige fertige Implementationen, auch gleich mit byte-weiser Verarbeitung, im "Netz". Achja: Periodendauer 2^32-1 = 4294967295 Samples. Aber halt _nicht_ bandbreitenbegrenzt.

Reply to
Sieghard Schicktanz

Dieter Michel schrieb am Donnerstag, 4. Mai 2023 um 22:26:37 UTC+2:

Eigentlich geht es darum, verschiedene Klänge auszuprobieren. Insbesondere solche, die ich mit dem Synthesizer (Arturia MatrixBrute) nicht erzeugen kann. Was sich gut anhört und was für welchen Zweck verwendbar ist, das ergibt sich dann von selbst.

Es ist einer von den Klängen, die mit dem Synthesizer nicht erzeugt werden können.

Ich habe ein Beispiel für den Teensy LC programmiert:

formatting link
Schaltung ist ursprünglich als Zusatz-Gerät für den "THAT" Analogrechner entstanden und hier beschrieben:
formatting link
man kann die gleiche Schaltung natürlich auch mit dem Synthesizer koppeln. In meinem Beispiel werden viele Sinuswellen mit zufälliger Phasenlage aufsummiert. Die Berechnung der Tabelle kann abhängig von der Bandbreite relativ lange dauern. Es ist klar dass man das mit FFT schneller machen kann. Mit einem 12-bit Analogeingang wird eine Steuerspannung eingelesen, die vom Synthesizer kommt, 1V / Oktave. Aus dieser Spannung wird die Frequenz berechnet und dann die Interrupt-Frequenz eingestellt, mit der die Tabelle ausgelesen wird. Anstelle der analogen Steuerspannung könnte man auch MIDI verwenden. Mit dem Teensy LC mit 48MHz Taktfrequenz kommt man ungefähr auf 125kHz Interrupt-Frequenz. Die Tabelle kann maximal ca. 2800 Einträge lang sein, weil nicht mehr RAM vorhanden ist. Für weitere Versuche werde ich den Teensy 4.0 mit 600MHz Taktfrequenz nehmen. Der hat auch wesentlich mehr RAM. Es gibt für den Teensy auch eine Audio-Bibliothek wo man eine Menge mit machen kann, aber bislang habe ich die Bibliothek noch nicht genutzt.

Gruß Michael

Reply to
astroel...

Hallo Michael,

ok, versteh ich gut.

Auch klar.

Da schreibst Du von 3072 Samples. Für Pseudorauschen kommt mir das zu wenig vor, weil Du selbst bei 30,72kHz Abtast- frequenz (des einfachen Rechnens halber) den Sample 10mal pro Sekunde wiederholen musst. Ich fürchte fast, da wird man eine Periodizität hören können. Evtl. geht's dann mit dem erwähnten Teensy 4.0.

Aber Du schreibst ja, dass Du mit dem THAT einen Analog- rechner hast und mit dem MatrixBrute einen analogen Synth.

Ich will jetzt nicht drauf rumreiten oder Dich von Deinem Plan abbringen, aber vielleicht ist es mit dem Equipment gar nicht so furchtbar schwer, die Signalerzeugung des 1027 nachzubilden.

Du könntest Dir beispielsweise mit der Filtered Noise Generator Software von Esser Audio (erstmal mit der Trial- Version testen) ein Schmalbandrauschen erzeugen. Da ist sogar der Crest-Faktor einstellbar, wenn man will.

Der THAT hat, wenn ich das richtig sehe, einen Multiplizierer - weiß nicht, welche Bandbreite der hat. Den fütterst Du mit dem Schmalbandrauschen und einem Sinus aus einem VCO des MatrixBrute. Fehlt wahrscheinlich noch ein bisschen Filterei am Ausgang des Multiplizierers, aber wenn ich das richtig sehe, sollte das doch in etwa die Signalerzeugung des 1027 nachbilden. Der VCO sollte doch eigentlich mit dem MatrixBrute auch direkt spielbar sein, eventuell, denke ich.

Oder ist da irgendwo ein Denkfehler?

Viele Grüße

Dieter

Reply to
Dieter Michel

Es gibt/gab einen Freeware-Synthesizer für Microsoft® Windows mit dem leicht zu merkenden Namen "ZynAddSubFX".

Dort kann man auch Rauschen erzeugen und filtern:

- Menü: Instrument/Clear Intstrument - Schaltfläche: Edit Instrument - Addsynth - Edit - Show Voice Parameters - Dann links unten "NOISE" - Dann Filter und Hall anpassen - Menü: Instrument/Virtual Keyboard um etwas Hörbares zu erzeugen

Reply to
Stefan Ram

Am 04.05.23 um 15:51 schrieb snipped-for-privacy@t-online.de:

Das ist jetzt auch keine Raketenwissenschaft.

Genau so mache ich es auch, allerdings für messtechnische Zwecke im Audiobereich. Du kannst dir den Quellcode hier klauen:

formatting link
Das ist der Referenzsignalgenerator. Der kann Noise in jeder Farbe und mit Bandbreitenlimit, Chirp und auch Step-Sweep. Der Noise-Teil, also AnalyzeAout::CreateDesign mit !Cfg.sweep && !Cfg.chirp dürfte dich interessieren. Die Funktion kann auch ein energieerhaltendes Smothing der oberen und unteren Grenzfrequenz. Das kann den Crestfaktor deutlich gutmütiger machen.

Marcel

Reply to
Marcel Mueller

Inzwischen habe ich herausgefunden, dass der Teensy 4.0 so viel Rechenleistung hat, dass man problemlos hunderte von Software-DDS Generatoren mit 48kHz Taktfrequenz gleichzeitig implementieren kann. Für jeden einzelnen DDS Generator kann man Frequenz, Chirp und Amplitude vorgeben. Es ist gar nicht notwendig, die Überlagerung von vielen Sinuswellen vorab zu berechnen und in einer Tabelle abzuspeichern.

Michael

Reply to
astroel...

Wie berechnet man den Effektivwert von der Summe vieler Sinuswellen mit zufälliger Frequenz und Phasenlage? Unter der Annahme dass die einzelnen Sinuswellen alle die gleiche Amplitude haben.

Michael

Reply to
astroel...

Am 08.05.2023 um 17:11 schrieb snipped-for-privacy@t-online.de:

Wurzel aus Summe der Quadrate ...

:)

Reply to
Leo Baumann

Leo Baumann schrieb am Montag, 8. Mai 2023 um 18:01:21 UTC+2:

Das war auch mein erster Gedanke, aber ich bin noch nicht davon überzeugt dass das richtig ist. Ist das nicht die Formel für die Addition von unkorrelierten Rausch-Signalen? Bei Rausch-Signalen kommen die höchsten Amplituden mit der kleinsten Wahrscheinlichkeit vor, aber beim Sinus haben die höchsten Amplituden die höchste Wahrscheinlichkeit.

Gruß Michael

Reply to
astroel...

Am 08.05.2023 um 20:55 schrieb snipped-for-privacy@t-online.de:

:) die Leistungen U^2/R

Reply to
Leo Baumann

Leo Baumann schrieb am Montag, 8. Mai 2023 um 21:05:53 UTC+2:

Hab's mit 1, 10 und 100 Sinuswellen nachgemessen. Stimmt doch.

Michael

Reply to
astroel...

Hallo Michael,

meinst Du für den Fall, dass Du das Signal mit (Pseudo-) Zufallszahlen vorher berechnet hast, oder statistisch auf der Basis von Annahmen über die Verteilung der Frequenzen und Phasenlagen?

Viele Grüße

Dieter

Reply to
Dieter Michel

Dieter Michel schrieb am Montag, 8. Mai 2023 um 21:24:48 UTC+2:

Unter der Annahme dass alle Frequenzen unterschiedlich sind und auch keine ganzzahligen Frequenz-Verhältnisse vorkommen. Wo die Frequenzen liegen müsste dann eigentlich egal sein. Phasenlage rein zufällig. Gesucht ist der Effektivwert über einen großen Zeitraum.

Gruß Michael

Reply to
astroel...

Hallo snipped-for-privacy@t-online.de,

Du schriebst am Mon, 8 May 2023 13:06:44 -0700 (PDT):

Das ist egal. Alle Sinusfunktionen sind voneinander linear unabhängig, auch bei ganzzahligen Frequenz-Verhältnissen.

Genaugenommen gilt sowas sowieso nur für Dt -> unendlich, und nur bei einem periodischen Signal ist der Wert gleich dem über eine einzelne Periode.

Reply to
Sieghard Schicktanz

Gegenbeispiel: Summe zweier Sinuswellen mit gleicher Frequenz, also Frequenzverhältnis 1:1. Da hängt der Effektivwert von der Phasenlage ab. Ob das bei anderen ganzzahligen Verhältnissen auch so ist, da bin ich mir nicht sicher.

Michael

Reply to
astroel...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.