═══ 1. Program description ═══ FFTPM Fast Fourier Transformation for audio signals General Information: o What is FFTPM ? o FFT-Fast Fourier Transformation o The Frequency spectrum o About this program o History o About the autor o Thanks to o OS/2-Producs ═══ 1.1. What is FFTPM ? ═══ FFTPM is a program for the OS/2 Presentation Manager for analysing audio signals and showing their Frequency spectra. It is a simple spectrum analyser. The signals are Fast-Fourier-Transformed and its spectrum will be displayed in a line graph. There are many possible applications for this program, e.g.: harmonic distortion analysis or simple playing with sounds and spectra. System requirement is a 16bit soundadapter, that is used by MMPM/2. Line-In or a microphone can be used for input. ═══ 1.2. FFT-Fast Fourier Transformation ═══ The Fourier Transformation is an algorithm, used in this program, to calculate the frequency spectrum from the audio signal. To be exact, it is the Discrete Fast Fourier Transformation (Fast Fourier Transformation = FFT) which is best used for computers. The FFT calculates the Fourier-coefficients for a sampled, periodic signal. These coefficients are similar to the signal strength at a specified frequency. This program uses a fast swap-algorithm, that was translated from FORTRAN to C. ═══ 1.3. The frequency spectrum ═══ All periodic signals in the time domain, e.g.: audio signals, can be described through a sum of harmonic sinusodial waves. That means, all sounds can be mathematical described by a number of foundamental waves. A violin sound for example, has a foundamental and many harmonics. The frequencies of the harmonics are always a multiple number of the foundamental. A clear sinusodial tone has exactly one foundamental frequency and no harmonics. Every amplifier produces harmonic distortions, caused by internal nonlinearities. It is possible to determine these distortions (THD) by using a low-distortion sinus wave generator and measure the output signal with a spectrum analyzer. This method has its limitations when using PC soundadapters, because they produce noise and distortion itself. It is possible to check the soundcards distortion by connecting it directly to a low noise generator and check the spectrum. ═══ 1.4. Aliasing effect ═══ This effect describes the appearence of frequencies, which are higher than the Nyquist frequency, as lower frequencies in the spectrum. This can happen, if there are high frequent signals and the Nyquist filter can not remove them. Frequencies in the Spectrum, which should be normally displayed above the Nyquist limit are mirrored below the limit. This can cause problems to interprete the spectrum. ═══ 1.5. Nyquist filter ═══ When sampling a signal in the time domain, it is necessary to filter frequencies, which are higher than the half sample rate (Nyquist frequency). If it is not possible to prevent this, aliasing effects will occur. High quality soundcards have good working filters, but it is possible that these filters can also attenuate also the lower frequencies. ═══ 1.6. About this program ═══ Thank you for testing FFTPM! FFTPM is free for private use. There are absolutetly no warranties. The author is not responsible for damages in any case! If you like FFTPM or not, the Author would appreciate very much if you send him an eMail or a postcard. :-) FFTPM has been developed with the WATCOM C/C++ compiler version 10.0a and the IBM WARP-Toolkit. Thanks to: ═══ 1.7. History of FFTPM ═══ 24 Aug 1996 - Version 1.0 first public uploads, only in german language 20 Sep 1996 - Internal release with minor corrections for the window routines 30 Sep 1996 - Version 1.10 first english version, installation script, resources in DLL To do: Speed improvement using DART THD-analysis ═══ 1.8. About the author ═══ FFTPM is my first freeware OS/2-program. It would be very nice to send me a note if you think this program is useful. Depending on this resonance, I will make further developements and improvements. Dipl.-Ing. JБrgen Dittmer Technologiezentrum GKSS Max-Planck-Straсe, GebДude 1 D-21502 Gessthacht Germany Tel.: +49 4172-961202 and +49 4152-8714880 Fax.: +49 4172-961203 eMail: dittmer@gkss.de WWW: http://wave.gkss.de FTP: wave.gkss.de OS/2 products ═══ 1.9. OS/2 product announcement ═══ Watchdog for OS/2 The Watchdog for OS/2 is a ISA-plug-in card that can detect a hanging system and reboot it, if necessary. The device driver has the ability to watch up to 32 processes. The Watchdog is predestinated for stand alone systems, such as servers or process controllers. At the moment 2 different Watchdog-cards are supportet. For more information, look at http://wave.gkss.de or send a mail to the author. ═══ 1.10. Many thanks for tests and support! ═══ Bill Sutton, for the MM-playlist tips Ralf Tralow for Testing Many people from (de.)comp.os.os2.* -newsgroups ═══ 2. Program menus ═══ Description of the program settings ═══ 2.1. FFT ═══ Samples Select a number of samples for the FFT. As more samples are calculated, as more spectral lines are displayed. Note that the calculating of the FFT will take a longer time with a higher number of samples. Window function The window function is a weigth function for the input signal. Every window form folds its ows characteristic spectrum to the result and gives a different output. If no window is used explitcitly, we have a rectangular window. The differences in the window functions are mainly in the signal near- and far range resolution. ═══ 2.2. Sample rate ═══ Number of values per second for digitizing the input signal. The spectrum can be displayed until the half sample rate (Nyquist-Limit). The highest frequency in the input signal must be below the Nyquist-Limit. See also: Aliasing-Effects and Nyquist-Filter ═══ 2.3. Display ═══ Hold-Off time Time in seconds to freeze the screen until the next spectrum will be calculated. Log If this box is checked, a logarithmic scale will be used for the amplitude. Output is always referenced to the maximum peak. That means, the highest value is always 100% or 0dB (decibel). ═══ 2.4. Input ═══ Simulation Selection of calculated time functions : ■ Square wave ■ Periodic pulse ■ Triangular wave ■ Sawtooth wave Remark: The functions square-, triangular- and sawtooth wave are bandwith limited to 21kHz. They show interesting aliasing effects in the spectrum if the sample rate will be reduced. Sound adapter Selection of input: Line-In or Microphone. ═══ 2.5. Input level ═══ The upper bargraph shows the input level of the sound adapter. This value should be close to, but never reach 100%, because signal peaks may be clipped. Gain sets the amplification multiplier, Level is for fine tuning. ═══ 2.6. End ═══ Explination really necessary? ═══ 2.7. Help ═══ Help for this program ═══ 2.8. Ini-File ═══ Error message: FFTPM.INI not found. This message occurs, if the program is started the very first time, when no INI file was created. It should not appear again. FFTPM stores its settings and window positions in FFTPM.INI when the user ends the program. It uses the defaults, if FFTPM.INI was not found. FFTPM will not write any data to OS2.INI or OS2SYS.INI.