Mehere Frequenzen gleichzeitig erzeugen



  • Danke für die [strike]ausführliche[/strike] Antwort.
    Leider habe ich jetzt nicht den einen Weg mit der "Inverser Fouriertransformation", sondern einen anderen Weg genommen.



  • np, gern geschehen. f'`8k

    Gruß, TGGC (\-/ has leading)



  • TGGC schrieb:

    Mit Inverser Fouriertransformation kannst du die Frequenzen mischen...

    man könnte die frequenzen auch einfach addieren... 🙄



  • Das ist ja wohl Unsinn. Ein Ton mit 440 Hz und ein Ton mit 220 Hz gibt keinen Ton mit 660 Hz. f'`8k

    Gruß, TGGC (\-/ has leading)



  • Ich glaube er meinte, dass man 2 Signale unterschiedlicher Frequenz einfach addieren kann 😉



  • Und ich beschrieb, wie man von Frequenzen erstmal zu einem Signal kommt. f'`8k

    Gruß, TGGC (\-/ has leading)



  • Ja, einen der Wege.



  • inverse dft macht IMHO nur dann sinn wenn man viele viele frequenzen "addieren" (überlagern) möchte, die ein relativ kleines gemeinsames vielfaches haben, idealerweise die samplefrequenz. für ein paar einfache sinustöne ist das denke ich etwas krass.



  • Wenn du so freundlich wärst, kurz zu beschreiben wie du das gelöst hast, wäre das klasse!

    Ich bin gerade dabei ein Programm zu schreiben, das Datenblöcke über Funk versendet. Dazu muss ich zwischen 0,8ms und 10ms lang einen bestimmten Ton über die Soundkarte ausgeben, bzw. teilweise mehrere Tonfrequenzen zugleich, um das Protokoll einzuhalten.
    Ich verwende DirectSound leider das erste Mal und da das Thema hier gerade aktuell zu sein scheint frage ich hier mal. Verweise zu anderen Seiten, die ich nicht per Google gefunden habe, sind gern genommen. Es geht also eigentlich "nur" um die Erzeugung eines Sinustons bzw mehrerer sehr kurzer Sinustöne zugleich und halt am Besten noch in Echtzeit und ohne Umweg über eine Wave-File.

    Für jegliche Vorschläge dankbar
    Grüßt der Seppl 🤡



  • TactX schrieb:

    Ich glaube er meinte, dass man 2 Signale unterschiedlicher Frequenz einfach addieren kann 😉

    👍

    seppelon schrieb:

    Wenn du so freundlich wärst, kurz zu beschreiben wie du das gelöst hast, wäre das klasse!

    • Audacity benutzen
    • Menu > Generieren > Ton... > Wellenform: Sinus, Frequenz: 1000 Hz (theoretisch egal), Amplitude: 1,00, Länge: 5 Sekunden > Ton erzeugen
    • Samplerate einstellen: 8000Hz (optional - ich benutze es, da es dann nur noch weniger groß ist), Kanal: Mono und Sampleformat: 16bit
    • Menu > Datei > Exportieren als WAV ... > Datei erstellen
    • In das jeweilige Projekt einbinden
    • etwa hier bin ich (d.h. ich weiß nciht ob das Folgende klappt /klappen wird)
    • mehrere SecondBuffer erstellen - jeweils mit der BufferDescription "ControlFrequency = true" und die Wav datei per Stream einbinden
    • Die Frequenz Umrechnen
    Ton: 1000Hz, Samplerate: 8000Hz, gewünscht: x
    neue Frequenz: x / 1000 * 8000
    

    dann die Frequenz einstellen

    • Abspielen "m_buffer.Play(0, BufferPlayFlags.Looping);
    • und nach der gewünsten Zeit m_buffer.Stop();

    Ich glaube aber nicht, dass man genau 0,8 ms den Thread o. das Programm anhalten kann

    seppelon schrieb:

    am Besten noch in Echtzeit und ohne Umweg über eine Wave-File.
    Für jegliche Vorschläge dankbar Grüßt der Seppl 🤡

    Entweder mit Wav so oder in das MFC FAQ schauen


Anmelden zum Antworten