Spektrum V 1.0

Bei dem Programm Spektrum handelt es sich um eine Demo des DSP56001.
Der  DSP berechnet eine 256-Punkte-FFT eines Stereoeingangssignals in
Echtzeit.  Auf dem Bildschirm des Falcon werden allerdings nur ca. 10
Spektren   pro  Sekunde  dargestellt.  Bei  49170Hz  Abtastfrequenz
(maximale Abtastfrequenz des Falcon Soundsystems) werden vom DSP etwa
192 Spektren je Stereokanal pro Sekunde berechnet.

Das Programm besteht aus drei Teilen:
  SPEKTRUM.PRG    ...   das eigentliche Programm
  SPEKTRUM.LOD    ...   das DSP-Programm im .LOD-Format
  SPEKTRUM.MAN    ...   dieser Text.

Das Programm benutzt normalerweise die 50kHz (49170Hz) Abtastfre-
quenz. Andere Abtastfrequenzen lassen sich mit der -f Option in der
Kommandozeile (beim Aufruf von einer Shell) oder im Feld 'Parameter'
bei Anwendung anmelden im Desktopmen einstellen. Folgende Optionen
sind definiert:
  -f 50   ...   49150Hz Abtastfrequenz (default)
  -f 33   ...   33880Hz Abtastfrequenz
  -f 25   ...   24585Hz Abtastfrequenz
  -f 20   ...   20770Hz Abtastfrequenz
  -f 16   ...   16490Hz Abtastfrequenz
  -f 12   ...   12292Hz Abtastfrequenz
  -f 10   ...    9834Hz Abtastfrequenz
  -f 8    ...    8195Hz Abtastfrequenz
(Man beachte das Leerzeichen zwischen -f und der Zahl.)

Nach dem Start ffnet das Programm ein Fenster mit zwei Ausgabefel-
dern, in denen die 128 Punkte des logarithmierten Betrags des
Spektrums von 0Hz bis Abtastfrequenz/2 dargestellt werden. Im oberen
Feld wird der linke, im unteren der rechte Kanal gezeichnet. Die
Felder sind links mit dem Pegel von 0dB dis -80dB, oben mit der
Frequenz in kHz beschriftet (bei 10kHz stimmt die Beschriftung
nicht). In der Mitte befindet sich (wichtig!) der Copyrighthinweis.

Wer das DSP-Programm fr ander Zwecke nutzen will, hier kurz die
Beschreibung, wie die Daten geliefert werden. Der DSP erhlt die
Eingangsdaten der Zeitfunktion ber die DMA-Schnittstelle und liefert
die berechneten Spektren auch dort wieder ab. Auf der Host-Seite
lassen sich entsprechende Verbindungen mit der xbios-Funktion
devconnect herstellen (z.B. ADC mit DSPREC und DSPXMIT mit DMAREC).
Die Daten sind im Ergebnisdatenstrom so aufgebaut:

  +--------------------------------------------------+
  | 0 | 1     ...     128 | 129 | 130     ...    255 |
  +--------------------------------------------------+
    ^   ^                    ^     ^
    |   |                    |     |
    |   |                    |     +-- Wort 130 bis 255: Betrags-
    |   |                    |         quadrate des Spektrums (nicht
    |   |                    |         sehr genau)
    |   |                    +-- Wort 129: Markierung (Hex 8000),
    |   |                        kommt sonst im Spektrum nicht vor.
    |   +-- Wort 1 bis 128: Logarithmus der Betragsquadrate von
    |       fa/256 bis fa/2 in Schritten von fa/256 (fa...Abtastfre-
    |       quenz). Der Logarithmus ist mit 256 multipliziert, um in
    |       zwei Byte (1 Wort) zu passen.
    +-- Wort 0: Gleichanteil, nicht logarithmiert.

Der Logarithmus des Wertes 0 (-unendlich) wird durch Hex ce00
dargestellt (entspricht dez. -50.00).
Der DSP nimmt seine Arbeit auf, wenn das Hostflag Hf0 = 1 gesetzt
wird. Wird Hf0 = 0 gesetzt, beendet er seine Ttigket und geht in
den Stop-Zustand (energiesparend).

Wer an weiteren Informationen interresiert ist, hier meine Anschrift:

CUBE:           thomasg @ cube.net
Maus-Netz:      Thomas Gerner @ M

Das Host-Programm ist in C geschrieben und von GNU-Compiler Version
2.1 bersetzt. Das LOD-File fr den DSP wurde mit den Assembler von
Quinn C. Jensen erzeugt.

Spektrum V 1.1

Einige Bugs gefixt. Spektrum lut jetzt auch unter MultiTos. SIGTERM
und SIGINT beenden das Programm sauber. Der Fehler im DSP-Programm,
da nur ein Kanal auf beiden Spuren bertragen wurde, ist auch besei-
tigt.
