Bandbegrenztes Rauschsignal...

  • Thread starter astroel...@t-online.de
  • Start date
\"astroel...@t-online.de\" wrote:
Marcel Mueller schrieb am Mittwoch, 3. Mai 2023 um 21:30:42 UTC+2:
Kann man irgendwie \"optimale\" Phasenverschiebungen für die
Sinuswellen berechnen, so dass der Spitzenwert des Summensignals minimal
wird?
Nein Random ist genau richtig. Wenn du das für alle Frequenzen machst,
bekommst du weißes Rauschen.

Wenn man viele Sinuswellen aufsummiert, dass ist es wohl der richtige Weg die Phasenverschiebungen per Zufall zu erzeugen.
Aber wenn die Anzahl der Sinuswellen relativ klein ist, dann führt dieses Verfahren nicht zwangsläufig zum bestmöglichen Ergebnis (kleinstmöglicher Spitzenwert).
Wenn man zum Beispiel nur drei Sinuswellen aufsummiert, dann ergibt sich der kleinstmögliche Spitzenwert genau dann wenn man die dritte Welle um 180° verschiebt:
y = sin(2 pi * 50 x) + sin(2 pi * 51 x) + sin(pi +2 pi * 52 x)

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 ?
 
Dieter Michel schrieb am Donnerstag, 4. Mai 2023 um 15:07:32 UTC+2:
Heißt das, dass Dir ein bestimmter Klang vorschwebt,
den Du jetzt realisieren möchtest?

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

Wenn Dir klanglich der Höreindruck \"Rauschen, aber
bandbegrenzt\" vorschwebt, würde ich das auch genau
so erzeugen - also ein Rauschsignal bandbegrenzen.

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
 
Am 04.05.2023 um 15:51 schrieb astroel...@t-online.de:
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.

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 ...

:)
 
Carla Schneider schrieb:
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 ?

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.

--
mfg Rolf Bombach
 
(hatte ich heute früher schon gepostet, ich seh\'s aber
in der Newsgroup nicht)

Hallo Michael,

Heißt das, dass Dir ein bestimmter Klang vorschwebt,
den Du jetzt realisieren möchtest?

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

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.

Wenn Dir klanglich der Höreindruck \"Rauschen, aber
bandbegrenzt\" vorschwebt, würde ich das auch genau
so erzeugen - also ein Rauschsignal bandbegrenzen.

Kann man so machen, aber ich finde es kompliziert
die digitalen Filter mit der nötigen Flankensteilheit
zu programmieren.

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
 
Hallo Rolf,

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

je groesser man N waehlt umso genauer wird es.

Desto länger ist aber das Array, zeitlich. Nur mehr N bei
gleichem Beobachtungszeitraum erhöht lediglich die Grenz-
frequenz, hat dann aber keinen Einfluss auf das Frequenz-
Raster. Dieses ist durch den Erfassungszeitraum gegeben.

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.

--
(Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem)
-----------------------------------------------------------
Mit freundlichen Grüßen, S. Schicktanz
-----------------------------------------------------------
 
Dieter Michel schrieb am Donnerstag, 4. Mai 2023 um 22:26:37 UTC+2:
Heißt das, dass Dir ein bestimmter Klang vorschwebt,
den Du jetzt realisieren möchtest?

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.

E soll ungefähr so klingen wie beim Bruel+Kjaer 1027
Sine Random Generator.
ok, das hilft ja schon mal weiter. Kannst Du benennen,
was an dem Klang Dir gefällt?

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:
http://www.astro-electronic.de/that-noise-with-cv.ino
Die Schaltung ist ursprünglich als Zusatz-Gerät für den \"THAT\" Analogrechner entstanden und hier beschrieben:
https://www.facebook.com/groups/theanalogthing/posts/400329198856542/
Aber 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
 
Hallo Michael,

Eigentlich geht es darum, verschiedene Klänge auszuprobieren.
Insbesondere solche, die ich mit dem Synthesizer (Arturia
MatrixBrute) nicht erzeugen kann.

ok, versteh ich gut.

E soll ungefähr so klingen wie beim Bruel+Kjaer 1027
Sine Random Generator.
[...]
Es ist einer von den Klängen, die mit dem Synthesizer nicht
erzeugt werden können.

Auch klar.

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

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
 
Dieter Michel <dmichel@prosound.de> writes:
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.

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
 
Am 04.05.23 um 15:51 schrieb astroel...@t-online.de:
> Kann man so machen, aber ich finde es kompliziert die digitalen Filter mit der nötigen Flankensteilheit zu programmieren.

Das ist jetzt auch keine Raketenwissenschaft.

> Es scheint mir einfacher zuerst das Spektrum zu erzeugen und daraus mit Rückwärts-FFT das Zeitsignal zu berechnen.

Genau so mache ich es auch, allerdings für messtechnische Zwecke im
Audiobereich. Du kannst dir den Quellcode hier klauen:
https://github.com/maazl/analyze/blob/master/src/analyzeout.cpp

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
 
> > Es scheint mir einfacher zuerst das Spektrum zu erzeugen und daraus mit Rückwärts-FFT das Zeitsignal zu berechnen.

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
 
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
 
Am 08.05.2023 um 17:11 schrieb astroel...@t-online.de:
> 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.

Wurzel aus Summe der Quadrate ...

:)
 
Leo Baumann schrieb am Montag, 8. Mai 2023 um 18:01:21 UTC+2:
Am 08.05.2023 um 17:11 schrieb astroel...@t-online.de:
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.
Wurzel aus Summe der Quadrate ...

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
 
Am 08.05.2023 um 20:55 schrieb astroel...@t-online.de:
Leo Baumann schrieb am Montag, 8. Mai 2023 um 18:01:21 UTC+2:
Am 08.05.2023 um 17:11 schrieb astroel...@t-online.de:
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.
Wurzel aus Summe der Quadrate ...

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.

:) die Leistungen U^2/R
 
Leo Baumann schrieb am Montag, 8. Mai 2023 um 21:05:53 UTC+2:
Am 08.05.2023 um 20:55 schrieb astroel...@t-online.de:
Leo Baumann schrieb am Montag, 8. Mai 2023 um 18:01:21 UTC+2:
Am 08.05.2023 um 17:11 schrieb astroel...@t-online.de:
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.
Wurzel aus Summe der Quadrate ...

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.

:) die Leistungen U^2/R

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

Michael
 
Hallo Michael,

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.
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
 
Dieter Michel schrieb am Montag, 8. Mai 2023 um 21:24:48 UTC+2:
Hallo Michael,
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.
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?

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
 
Hallo astroel...@t-online.de,

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

auf der Basis von Annahmen über die Verteilung der Frequenzen
und Phasenlagen?

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.

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

> Gesucht ist der Effektivwert über einen großen Zeitraum.

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

--
(Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem)
-----------------------------------------------------------
Mit freundlichen Grüßen, S. Schicktanz
-----------------------------------------------------------
 
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.
Das ist egal. Alle Sinusfunktionen sind voneinander linear unabhängig,
auch bei ganzzahligen Frequenz-Verhältnissen.

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
 

Welcome to EDABoard.com

Sponsor

Back
Top