Software zur Multiton Sinuserzeugung.

+A -A
Autor
Beitrag
-scope-
Hat sich gelöscht
#1 erstellt: 03. Sep 2007, 20:17
Hallo,

ich habe mich noch nicht "schlau gemacht", und suche eine Software, mit der man simultane Sinusfrequenzen (4 bis 6 stück zugleich) erzeugen, und als Wave abspeichern kann kann. Was nimmt man da?
detegg
Inventar
#2 erstellt: 03. Sep 2007, 20:42
Hi,

evtl. mit Standard-Generator erzeugen, und mit sowas wie WaveLab von Steinberg aufnehmen und "komponieren"?

Detlef
-scope-
Hat sich gelöscht
#3 erstellt: 03. Sep 2007, 21:44
Hallo,

ich habe immer noch keine Wavelab Vollversion mit Speichermöglichkeit, und müsste mich mit diesem umfangreichen Programm auch erst etwas einarbeiten. (was mir wiederum zu lästig ist)

Habe im Netz eine Shareware "MultitonGenerator 1.8" entdeckt, die aber anscheinend nur max 3 simultane Frequenzen erzeugen kann, und in der unregistrierten Version nur 1 sekunde speichert...Ich brauche etwa 2 sek für ein nötiges Averaging mit dem FFT Analyzer.

Also auch nichts :-(

Gerade eben fand ich noch "Sound Frequency Generator 4.6" , mit dem man bis zu 8 simultane Frequenzen ausgeben kann...ich brauche 4 bis 8. (muss ich noch ausprobieren)
Und der Klirrfaktor ist (laut Spectralab) lediglich 0,0005%
Das reicht.

Ich möchte einen (gesteppten) 1/6 oct. Multitonsweep 180.....20000Hz erzeugen, in dem jede Stufe des Sweep aus 4 bis 8 nah beieinanderliegenden Frequenzen besteht.
Das ist nötig, damit zum einen die Keule der Grundfrequenz immer schön breit (also leakage immer vorhanden) ist, und die Harmonischen der Grundwelle (mit averaging) im Verbund so "breit" werden und "verschmelzen", dass sie gut sichtbar werden.

http://img262.imageshack.us/my.php?image=hpsz5.jpg

So (vermute ich) hat man es bei der Stereoplay damals auch gemacht, denn ein einzelner Sinus im Sweep erzeugt derartig aussehende, breite Harmonische im Hanning-Fenster dieser Bandbreite nämlich nicht.

Vielleicht bin ich auch auf dem Holzweg...das wird sich morgen klären.

Erste Versuche mit "normalem" Sinussweep brachten nicht das gewünschte Ergebnis. Von einigen Frequenzen des 1/6 oct. sweeps musste man auch noch etwas abweichen, da einige eben im passenden Verhältnis zur Fensterlänge standen und somitkein leakage erzeugten....In diesem Fall war das für diesen "Präsentationszweck" natürlich nicht so schön.

Ein uralter Revox B225


Ein "besserer" CDP neueren Datums:


Mal sehen ob das demnächtst "richtig" klappt.


[Beitrag von -scope- am 03. Sep 2007, 22:11 bearbeitet]
HiFi-Selbstbau
Inventar
#4 erstellt: 04. Sep 2007, 10:55
Hi scope,

in diesem öffentlichen Artikel wird erklärt, wie man Messignale mit GoldWave erzeugt:
http://www.hifi-selbstbau.de/text.php?id=147&s=read

Da gibt es auch eine Formel für einen logarithmischen Sinussweep etc.

Dadurch, dass Du den Sinus innerhalb des Zeitblockes änderst gibt es ja auch eine Frequenzverschmierung. Wenn Du die Änderung des Sinus und die Analyse aufeinander abstimmst hast Du was Du willst. So machen wir z.B. unsere "komischen" Klirrfaktormessungen:
http://www.hifi-selbstbau.de/text.php?id=91&s=read





Gruß Pico
-scope-
Hat sich gelöscht
#5 erstellt: 04. Sep 2007, 15:22
Hallo,

der Link zur (Multiton?) Signalerzeugung mit Goldwave ist anscheinend nur für irgendwelche Abonnenten zugängig.

Ich habe mir die Software aber trotzdem mal heruntergeladen.
Wenn ich nach 5 Minuten in den Menüs nicht finde, wie man einen Multiton-Sinus generieren kann, dann sehe ich das Programm als -für mich ungeeignet- an.
Da komme ich binnen 20 Minuten sogar mit Wavelab weiter.

Aber "Sound Frequency Generator 4.6" hat bereits alles was ich brauche, und das Progrämmchen konnte mir das auch in 5 Minuten mitteilen. Log. Sinussweeps errechnen und erzeugen ist nicht mein Problem. Es ist (war) eher ein Problem, dass einige der festgelegten Frequenzen mit dem für diesen Fall FESTEN! Zeitfenster von 5,3ms (187,5 Hz) nicht das visuell gewünschte Ergebnis bringen. Das wird durch den Multisinus-sweep umgangen.

Es gibt sicher 100 andere Wege, die mit einer PC-Software heute besser zu lösen sind, als mit einem 20 Jahre alten Signalanalyzer, aber darum geht es mir ja in diesem Fall überhaupt nicht.

Eigentlich habe ich jetzt alles was nötig ist. Mal sehen ob es so funktioniert...(ich gehe schwer davon aus)


[Beitrag von -scope- am 05. Sep 2007, 08:25 bearbeitet]
Cpt._Baseballbatboy
Inventar
#6 erstellt: 06. Sep 2007, 12:56
Moin,

ich glaube, das ist da erste mal, dass ich von jemandem höre, der sich Leakage "wünscht" Naja, ich bin ja noch jung, da können ja noch ein paar andere kommen.

Ansonsten: selber machen. Und zwar hiermit: http://esweep.berlios.de

Die nächste Version kommt spätestens Montag, weil mir sonst die Zeit knapp wird. Mit der (nicht der letzten v0.3) sind dann auch nette Sachen wie ein Spektrum-Analyzer in kurzer Zeit zusammengebastelt. Könnte so aussehen:



Ist nicht wirklich Realtime, weil sich zur Darstellung auf gnuplot verlassen wird, und das ist dazu zu langsam. Das Bild zeigt im übrigen die Reaktion meiner Soundkarte auf einen Multisinus mit 410, 420 und 440Hz. Die Darstellung brauchst Du natürlich nicht, das macht Dein SPA.

Multisinus wird einfach durch mehrfache Erzeugung eines einzelnen Sinus und Überlagerung generiert. Das ist ein einfaches Skript. Genauso wie das durchstimmen, Du fängst unten an und multiplizierst dann jede Frequenz mit einem konstanten Faktor (oder nur die Mittenfrequenz und die anderen Frequenzen durch Subtraktion/Addition, ist vielleicht sogar besser). Wiedergabe geht auch als Dauerton, das heißt Du musst Dich nicht um die Speicherung kümmern (das geht natürlich auch).

Gruß
Cpt.
Cpt._Baseballbatboy
Inventar
#7 erstellt: 08. Sep 2007, 13:12
Moin,

so könnte so ein Skript aussehen:


# load module
load esweep.dll esweep

array set config {
      samplerate 44100
      block_length 16384
      freqs {164 166 168 180 182 184 186}
      resolution 6
      channel "right"
      play 0
}

set output NULL

# generate multisine
proc gen_msine {} {
      global config output

      # create container
      set sine [esweep_create "wave" $config(samplerate) $config(block_length)]
      esweep_free $output
      set output [esweep_create "wave" $config(samplerate) $config(block_length)]
      foreach {f} $config(freqs) {
      # generate tone
      esweep_genSine $sine $f 0
      # add to multisine
      esweep_add $output $sine
      }
      esweep_free $sine
      # reduce volume to -3dBFS
      esweep_divScalar $output [expr sqrt(2) * [esweep_max $output]] 0
}

proc play_msine {} {
      global config output

      # set up audio output
      set au_out [esweep_create "audio" $config(samplerate) 0]

      if {$config(channel)=="both"} {
            esweep_audioSetData $au_out $output $output
      } else {
            if {$config(channel)=="left"} {
                  esweep_audioSetData $au_out $output NULL
            } else {
                  esweep_audioSetData $au_out NULL $output
            }
      }
      # open soundcard
      set au_handle [esweep_audioOpen "/dev/sound" $config(samplerate)]

      while {$config(play)} {
            esweep_audioPlay $au_out $au_handle
            update
      }
      # close soundcard
      esweep_audioClose $au_handle
      esweep_free $au_out
}

proc shift_freqs {dir} {
      global config

      set tmp ""
      foreach {f} $config(freqs) {
            if {$dir=="up"} {
                  lappend tmp [expr $f*(1+0.5/$config(resolution))]
            } else {
                  lappend tmp [expr 2.0*$config(resolution)*$f/(1+2.0*$config(resolution))]
            }
      }
      set config(freqs) $tmp
}

proc playback {} {
      global config output

      if {$config(play)==0} {
            gen_msine
            set config(play) 1
            play_msine
      } else {
            set config(play) 0
      }
}

set center_freq [lindex $config(freqs) [expr [llength $config(freqs)] / 2]]
entry .freq -textvariable center_freq -bg white

button .next -text Next -command { 
                                    shift_freqs up
                                    set center_freq [lindex $config(freqs) [expr [llength $config(freqs)] / 2]]
                                 }
button .prev -text Prev -command {
                                    shift_freqs down
                                    set center_freq [lindex $config(freqs) [expr [llength $config(freqs)] / 2]]
                                 }

button .play -text "Start/Stop" -command {playback}

grid .freq -row 1 -column 1 -columnspan 2
grid .prev -row 2 -column 1
grid .next -row 2 -column 2
grid .play -row 3 -column 1 -columnspan 2


Und so schaut das dann aus:



Mit den Knöpfen "Next" und "Prev" stellt man die in der Zeile darüber angezeigte Mittenfrequenz ein. Leider muss dann immer erst die Wiedergabe gestoppt und gestartet werden, das lässt sich aber verkraften. Wie viele und welche Frequenzen erzeugt werden lässt sich direkt im Programm code einstellen: siebte Zeile, einfach die Liste ändern. Ein Zeile darunter ist die Schrittweite, "6" bedeutet 1/6 Oktave. Bei "channel" geht "right", "left" und "both".

Viel Spaß.

Gruß
Cpt.
Suche:
Das könnte Dich auch interessieren:
AES MEPEG Software gesucht
Turbochris2 am 02.06.2009  –  Letzte Antwort am 13.10.2020  –  3 Beiträge
SUCHE DLSA PRO 2.3 Software !
zarizar am 22.10.2021  –  Letzte Antwort am 20.09.2022  –  2 Beiträge
Spektral analyzer Software.
silvermach am 04.11.2014  –  Letzte Antwort am 05.11.2014  –  7 Beiträge
Welche Software für Minidsp 2x4
Velocity am 13.04.2016  –  Letzte Antwort am 04.05.2016  –  2 Beiträge
anal. Potis / Fader testen - mit Software?
Andreas_0803 am 26.12.2008  –  Letzte Antwort am 30.01.2009  –  2 Beiträge
Grundlagenfrage zur Spannungsmessung
Ankor am 18.03.2020  –  Letzte Antwort am 23.03.2020  –  13 Beiträge
Welches True RMS Multimeter?
Nightchild am 13.04.2011  –  Letzte Antwort am 16.04.2011  –  9 Beiträge
Laptop/Messequipment zur Frequenzgang und TSP Messung
pg84 am 12.11.2014  –  Letzte Antwort am 30.11.2014  –  17 Beiträge
Projekt zur Demonstration des Klirrfaktors eines Verstärkers
der_flori am 11.11.2015  –  Letzte Antwort am 29.01.2016  –  7 Beiträge
Hochfrequenten Impuls zur Nachhallzeitmessung erzeugen - Wie?
vascalo am 24.10.2016  –  Letzte Antwort am 26.01.2017  –  7 Beiträge
Foren Archiv
2007

Anzeige

Aktuelle Aktion

Partner Widget schließen

  • beyerdynamic Logo
  • DALI Logo
  • SAMSUNG Logo
  • TCL Logo

Forumsstatistik Widget schließen

  • Registrierte Mitglieder925.899 ( Heute: 12 )
  • Neuestes MitgliedDensinkru
  • Gesamtzahl an Themen1.551.571
  • Gesamtzahl an Beiträgen21.549.979