Skip to Content

Test signals

Along with listening tests SoundExpert performs objective measurements of audio devices and technologies. For the purpose a new audio metric is used. The core of the method is testing with some input signals and measuring level of their waveform degradation at the output. While test signals can be of any kind the measurement procedure stays the same and waveform degradation is measured with a single parameter - Difference level (dB). Below is a list of actual reference signals along with their time domain representation, frequency domain representation and Matlab code for their generation. All signals are 30s long, -10dBFS(rms), stereo, 16bit and have 44100Hz sample rate.

Sine wave 1 kHz

Sine wave 1k in time domain Sine wave 1k in frequency domain
% Sin wave 1000 Hz
% 30s, -10 dBFS (rms), Stereo (L=R), 44100 Hz, 16 bit
Fs = 44100; % [Hz]
L = 30; % [s]
G = -10; % [dB]
F = 1000; % [Hz]
Ls = round(L*Fs);
t = (0:Ls-1)';
ref = 10^(G/20) * sin(t*2*pi/(Fs/F));
ref = ref .* (2^15);
ref = round(ref);
ref = [ref,ref];
audiowrite('ref_sine1k.wav', int16(ref), Fs, 'BitsPerSample',16)

Sine wave 12.5 kHz

Sine wave 12.5k in time domain Sine wave 12.5k in frequency domain
% Sin wave 12500 Hz
% 30s, -10 dBFS (rms), Stereo (L=R), 44100 Hz, 16 bit
Fs = 44100; % [Hz]
L = 30; % [s]
G = -10; % [dB]
F = 12500; % [Hz]
Ls = round(L*Fs);
t = (0:Ls-1)';
ref = 10^(G/20) * sin(t*2*pi/(Fs/F));
ref = ref .* (2^15);
ref = round(ref);
ref = [ref,ref];
audiowrite('ref_sine12.5k.wav', int16(ref), Fs, 'BitsPerSample',16)

DFD 12.5 kHz / 80 Hz

Difference Frequency Distortion (DFD) signal is described in the standards IEC60118 and IEC60268. It consists of two pure tones: 12460 Hz and 12540 Hz and is useful for assessment of intermodulation distortion.

DFD 12.5k in time domain DFD 12.5k in frequency domain
% DFD 12.5 kHz mean, 80 Hz difference (12460 Hz + 12540 Hz)
% 30s, -10 dBFS (rms), Stereo (L=R), 44100 Hz, 16 bit
Fs = 44100; % [Hz]
L = 30; % [sec]
PdB = -10; % [dB]
F1 = 12460; % [Hz]
F2 = 12540; % [Hz]
Ls = round(L*Fs);
t = (0:Ls-1)';
ref = sin(t*2*pi/(Fs/F1)) + sin(t*2*pi/(Fs/F2));
Pr = sqrt(mean(ref.^2));
Pd = 10^(PdB/20)/sqrt(2);
Kp = Pd/Pr;
ref = ref .* Kp;
ref = ref .* (2^15);
ref = round(ref);
ref = [ref,ref];
audiowrite('ref_dfd12.5k.wav', int16(ref), Fs, 'BitsPerSample',16)

Square wave 1 kHz

Band-limited version of square wave is used. It is generated by means of Fourier synthesis (http://www.dspguide.com/ch13/4.htm):

Fourier synthesis equation Square wave coefficients
Square wave 1k in time domain Square wave 1k in frequency domain
% Fourier synthesis of square wave 1000 Hz
% 30s, -10 dBFS (rms), Stereo (L=R), 44100 Hz, 16 bit
Fs = 44100; % [Hz]
L = 30; % [sec]
PdB = -10; % [dB]
F = 1000; % [Hz]
Ls = round(L*Fs);
t = (0:Ls-1)';
n = [1 3 5 7 9 11 13 15 17 19 21]; % harmonics for 44100Hz sample rate only
A0 = 0;
Bn = 0;
ref = zeros(Ls,1) + A0;
for N = n
    An = sin(pi*N/2) * 2 / (pi*N);
    ref = ref + An*cos(t*2*pi*N/(Fs/F)) - Bn*sin(t*2*pi*N/(Fs/F));
end
Pr = sqrt(mean(ref.^2));
Pd = 10^(PdB/20)/sqrt(2);
Kp = Pd/Pr;
ref = ref .* Kp;
ref = ref .* (2^15);
ref = round(ref);
ref = [ref,ref];
audiowrite('ref_square1k.wav', int16(ref), Fs, 'BitsPerSample',16)

Triangle (odd) wave 1 kHz

Band-limited version of triangle wave is used. It is generated by means of Fourier synthesis (http://www.dspguide.com/ch13/4.htm):

Fourier synthesis equation Triangle wave coefficients
Triangle wave 1k in time domain Triangle wave 1k in frequency domain
% Fourier synthesis of triangle wave 1000 Hz
% 30s, -10 dBFS (rms), Stereo (L=R), 44100 Hz, 16 bit
Fs = 44100; % [Hz]
L = 30; % [sec]
PdB = -10; % [dB]
F = 1000; % [Hz]
Ls = round(L*Fs);
t = (0:Ls-1)';
n = [1 3 5 7 9 11 13 15 17 19 21]; % harmonics for 44100Hz sample rate only
A0 = 0;
Bn = 0;
ref = zeros(Ls,1) + A0;
for N = n
    An = 4 / (N*pi)^2;
    ref = ref + An*cos(t*2*pi*N/(Fs/F)) - Bn*sin(t*2*pi*N/(Fs/F));
end
Pr = sqrt(mean(ref.^2));
Pd = 10^(PdB/20)/sqrt(2);
Kp = Pd/Pr;
ref = ref .* Kp;
ref = ref .* (2^15);
ref = round(ref);
ref = [ref,ref];
audiowrite('ref_triangle(odd)1k.wav', int16(ref), Fs, 'BitsPerSample',16)

Triangle (even) wave 1 kHz

This is an even-only harmonics companion of standard triangle signal. It is generated by means of Fourier synthesis (http://www.dspguide.com/ch13/4.htm) like triangle signal but using even-only set of harmonics :

Fourier synthesis equation Ass train coefficients
Ass train 1k in time domain Ass train 1k in frequency domain
% Fourier synthesis of triangle (even) wave 1000 Hz (ass train)
% 30s, -10 dBFS (rms), Stereo (L=R), 44100 Hz, 16 bit
Fs = 44100; % [Hz]
L = 30; % [sec]
PdB = -10; % [dB]
F = 1000; % [Hz]
Ls = round(L*Fs);
t = (0:Ls-1)';
n = [1 2 4 6 8 10 12 14 16 18 20 22]; % harmonics for 44100Hz sample rate only
A0 = 0;
Bn = 0;
ref = zeros(Ls,1) + A0;
for N = n
    An = 4 / (N*pi)^2;
    ref = ref + An*cos(t*2*pi*N/(Fs/F)) - Bn*sin(t*2*pi*N/(Fs/F));
end
Pr = sqrt(mean(ref.^2));
Pd = 10^(PdB/20)/sqrt(2);
Kp = Pd/Pr;
ref = ref .* Kp;
ref = ref .* (2^15);
ref = round(ref);
ref = [ref,ref];
audiowrite('ref_triangle(even)1k.wav', int16(ref), Fs, 'BitsPerSample',16)

White noise

Band-limited White Noise (20Hz-20kHz)

Band-limited White noise in time domain Band-limited White noise in frequency domain
% Band-limited White Noise (20Hz-20kHz)
% -10 dBFS RMS, 30sec, Stereo[L=R]
Fs = 44100; % [Hz]
PdB = -10; % RMS
Fss = 176400; % sampling freq [Hz]
T = 30; % length of signal [sec]
f1 = 20; % lowest freq [Hz]
f2 = 20000; % highest freq [Hz]
load ph_se-wn2020-CF2.mat; % phases for the crest factor = 2dB
% load ph_se-wn2020-CF3.mat; % phases for the crest factor = 3dB
% load ph_se-wn2020-CF9.mat; % phases for the crest factor = 9dB
% download phase-vectors for all Crest Factors - ph_se-wn2020-CFx.7z
a = ones(1,length(ph)); % amplitudes
fftd = zeros(1,Fss*T,'like',1+1i);
Z = a .* exp(1i .* ph);
Zc = fliplr(conj(Z));
fftd(T*f1+1 : T*f2+1) = Z;
fftd(end-T*f2+1 : end-T*f1+1) = Zc;
sig = ifft(fftd,'symmetric');
sig = sig(1:4:end); % sample from Fss for 44.1kHz
Ps = sqrt(mean(sig.^2));
Pd = 10^(PdB/20)/sqrt(2);
% sig = round(sig.*(2^15)*Pd/Ps); % for 16bit output
sig = sig.*(Pd/Ps); % for 32bit output
sig = [sig; sig]';
% audiowrite('ref_WN2020_CF2_16bit.wav', int16(sig), Fs, 'BitsPerSample',16)
audiowrite('ref_WN2020_CF2.wav', sig, Fs, 'BitsPerSample',32)
% download the signals for all Crest Factors - ref_WN2020_CFx.7z

IEC 60268-1 (pink) noise (20Hz-20kHz)

A special test signal "Program Simulation Noise", whose spectral content is representative of music and speech (defined in the standard IEC 60268-1).

Band-limited IEC60268-1 noise in time domain Band-limited IEC60268-1 noise in frequency domain
% Band-limited IEC 60268-1 (pink) noise (20Hz-20kHz)
% -10 dBFS RMS, 30sec, Stereo[L=R]
Fs = 44100; % [Hz]
PdB = -10; % rms
Fss = 176400; % sampling freq [Hz]
T = 30; % length of signal [sec]
f1 = 20; % lowest freq [Hz]
f2 = 20000; % highest freq [Hz]
f = f1:1/T:f2; % vector of freqs
% powers in 1/3 octave bands according to IEC 60268-1
f268 = [20 25 31.5 40 50 63 80 100 125 160 200 250 315 400 500 630 800 1000 ...
    1250 1600 2000 2500 3150 4000 5000 6300 8000 10000 12500 16000 20000];
a268 = [-13.4 -10.2 -7.4 -5.2 -3.5 -2.3 -1.4 -0.9 -0.5 -0.2 -0.1 0 0 0 0 0 ...
    0 -0.1 -0.3 -0.6 -1 -1.6 -2.5 -3.7 -5.1 -7 -9.4 -11.9 -14.8 -18.2 -21.6];
a = interp1(f268, a268, f, 'linear', 0);
a = 10 .^ (a ./ 10); % vector of 1/3 octave powers
a = a ./ f; % vector of FFT powers (thanks to Alex)
a = sqrt(a); % vector of FFT amplitudes
load ph_se-psn2020-CF1.mat; % phases for the crest factor = 1dB
% load ph_se-psn2020-CF2.mat; % phases for the crest factor = 2dB (BS EN 50332-1)
% load ph_se-psn2020-CF3.mat; % phases for the crest factor = 3dB
% load ph_se-psn2020-CF6.mat; % phases for the crest factor = 6dB
% load ph_se-psn2020-CF9.mat; % phases for the crest factor = 9dB
% load ph_se-psn2020-CF12.mat; % phases for the crest factor = 12dB (will
% clip in 16bit output format)
% download phase-vectors for all Crest Factors - ph_se-psn2020-CFx.7z
fftd = zeros(1,Fss*T,'like',1+1i);
Z = a .* exp(1i .* ph);
Zc = fliplr(conj(Z));
fftd(T*f1+1 : T*f2+1) = Z;
fftd(end-T*f2+1 : end-T*f1+1) = Zc;
sig = ifft(fftd,'symmetric');
sig = sig(1:4:end); % sample from Fss for 44.1kHz
sigPN = sig; % for the next signal
Ps = sqrt(mean(sig.^2));
Pd = 10^(PdB/20)/sqrt(2);
% sig = round(sig.*(2^15)*Pd/Ps); % for 16bit output
sig = sig.*(Pd/Ps); % for 32bit output
sig = [sig; sig]';
% audiowrite('ref_iec60268-1_CF1_16bit.wav', int16(sig), Fs, 'BitsPerSample',16)
audiowrite('ref_iec60268-1_CF1.wav', sig, Fs, 'BitsPerSample',32)
% download the signals for all Crest Factors - ref_iec60268-1_CFx.7z

IEC 60268-1 (pink) noise, 1 bit

Program Simulation Noise downscaled to 1 bit (-101.1 dBFS RMS)

Band-limited IEC 60268-1 (pink) noise in time domain Band-limited IEC60268-1 1bit noise in frequency domain
% Band-limited IEC 60268-1 (pink) noise, 1bit(-101,1 dBFS RMS)
% 30sec, Stereo (L=R)
% "sigPN" is from previous signal - Band-limited IEC 60268-1 (pink) noise (20Hz-20kHz)
sig = sigPN ./ max(abs(sigPN));
sig = round(sig); % quantize
sig = [sig; sig]';
audiowrite('ref_iec60268-1_1bit.wav', int16(sig), Fs, 'BitsPerSample',16)

MOD-SMPTE 4:1 (60Hz/7kHz)

The standard signal that consists of two pure tones: 60 Hz and 7000 Hz and is useful for measurement of intermodulation distortion.

MOD-SMPTE 4:1 (60 Hz + 7 kHz) in time domain MOD-SMPTE 4:1 (60 Hz + 7 kHz) in frequency domain
% MOD-SMPTE 4:1 (60 Hz + 7 kHz, 4:1)
% -10 dBFS (rms), 30sec, Stereo(L=R)
Fs = 44100; % [Hz]

L = 30; % [sec]
PdB = -10; % [dB]
F1 = 60; % [Hz]
F2 = 7000; % [Hz]
Ls = round(L*Fs);
t = (0:Ls-1)';
out = 4 .* sin(t*2*pi/(Fs/F1)) + sin(t*2*pi/(Fs/F2));
Po = sqrt(mean(out.^2));
Pd = 10^(PdB/20)/sqrt(2);
Kp = Pd/Po;
out = out .* Kp;
% Scale to 16bit limits and quantize
out = out .* (2^15);
out = round(out);
out = [out,out];
audiowrite('ref_modsmpte41.wav', int16(out), Fs, 'BitsPerSample',16)

 

Test set of music material "Variety"

The new audio metric allows to measure waveform degradation using music as a test signal. The following 35 tracks of various genres are used for objective measurements of audio equipment. The playback time is 2h:4m.

#. (year) Album - Artist - Track name

1. (1932) Russian Religion Chants - Theodore Chaliapine - Twofold Litany. Glory to Thee, O Lord
2. (1959) Kind Of Blue - Miles Davis - Blue In Green
3. (1960) Elvis Is Back! - Elvis Presley - Fever
4. (1962) The Nutcracker (Complete Ballet) - LSO, Antal Dorati - Act II - Waltz Finale and...
5. (1967) Sgt. Pepper's Lonely Hearts Club Band - The Beatles - A Day in the Life
6. (1968) Ogdens' Nut Gone Flake - The Small Faces - Ogdens' Nut Gone Flake
7. (1971) Hunky Dory - David Bowie - Oh! You Pretty Things
8. (1975) In Los Angeles - James Last - Bolero '75
9. (1977) Exodus - Bob Marley + Wailers - Jamming
10. (1977) I Remember Yesterday - Donna Summer - I Feel Love
11. (1977) Marquee Moon - Television - See No Evil
12. (1981) Nightclubbing - Grace Jones - I've Done It Again
13. (1982) Thriller - Michael Jackson - Beat It
14. (1983) Swordfishtrombones - Tom Waits - Frank's Wild Years
15. (1984) The Pearl - Harold Budd & Brian Eno - The Pearl
16. (1986) Graceland - Paul Simon - Under African Skies
17. (1987) Solitude Standing - Suzanne Vega - Tom's Diner
18. (1990) Violator - Depeche Mode - Halo
19. (1993) Bach Oratorios & Contatas - Collegium Vocale, Ph.Herreweghe - Choral. Der Lebensfurst, Herr Jesu Christ (BWV 43)
20. (1994-96) Alfred Schnittke. The Complete String Quartets - Kronos Quartet - String Quartet No. 4 - IV. Vivace
21. (1994) Grace - Jeff Buckley - Corpus Christi Carol
22. (1996) Richard D. James Album - Aphex Twin - Logan Rock Witch
23. (1996) Unchained - Johnny Cash - Rusty Cage
24. (1997) Homogenic - Bjork - Hunter
25. (1997) OK Computer - Radiohead - Exit Music (For a Film)
26. (2000) Cult - Apocalyptica - Fight Fire With Fire
27. (2000) Tourist - St. Germain - What You Think About...
28. (2003) Tour De France - Kraftwerk - Chrono
29. (2004) Amassakoul - Tinariwen - Amidinin
30. (2004) Careless Love - Madeleine Peyroux - J'ai Deux Amours
31. (2005) Takk... - Sigur Rós - Með Blóðnasir
32. (2007) The Trentemoller Chronicles - Trentemoller - Klodsmajor
33. (2008) This and That - Benjamin Grosvenor - Concert Study No.3 - Toccatina
34. (2013) Psychic - Darkside - Paper Trails
35. (2015) To Pimp a Butterfly - Kendrick Lamar - For Free (Interlude)

 

Test set of music material "Diversity"

The shorter musical test set, proposed by Hypethesonics for objective testing of audio paths. It is compiled of 10s excerpts (with fade in/out) from the compositions below. The playback time is 9m:28s.

1. Rachmaninov - Prelude in G Major Op 32 no.  12
2. Daft Punk – Give Life Back to Music
3. Steely Dan - Haitian Divorce
4. Pink Floyd - Dogs
5. Rimsky-Korsakov - Scheherezade
6. The Damned - Grimly Fiendish
7. Seal - Deep Water
8. Rush - Tom Sawyer
9. Bach - Brandenburg Concerto
10. Yes - Awaken
11. Alan Parsons Project - The Fall of the House of Usher part ii
12. Camel - Broken Banks
13. Mussorgsky - Pictures at an Exhibition
14. Symphony X - Communion and the Oracle
15. Simply Red - Enough
16. Queen - Made in Heaven
17. Thomas Dolby - I Love You Goodbye
18. R.E.M. - Fall on Me
19. Asia - Rock & Roll Dream
20. Art Farmer - What are you doing the rest of your life?
21. Barock Project - Happy to see you
22. Chuck Mangjone - The Children of Sanchez
23. Chris Rhea - Daytona
24. Handel - Music for the Royal Fireworks
25. Renaissance - A Song for all Seasons
26. Debussy - Nocturnes
27. Dire Straits - Down to the Waterline
28. Earl Klugh - Christina
29. Echolyn - The End is Beautiful
30. Fish - Shadowplay
31. Fleetwood Mac - Go Your Own Way
32. Genesis - Entangled
33. Cosmograf - The Man Left in Space
34. IQ - The Narrow Margin
35. Janus Carmello - Joy Spring
36. Joe Jackson - Target
37. Jon & Vangelis - He is Sailing
38. Kansas - Song for America
39. Kaprekars Constant - Rosherville
40. Dave Grusin - Modaji
41. Keane - This is the Last Time
42. Level 42 - 43
43. Marillion - The Great Escape
44. Novo Amor - Colourway
45. Oasis - Fuckin' in the Bushes
46. Pat Metheny - The First Circle
47. Porcupine Tree - Lazarus
48. Radiohead - Let Down
49. DBA - Epilogue
50. Glass Hammer - Towards Home We Fled
51. Cassandra Wilson - Another Country
52. Big Big Train - The Transit of Venus Across the Sun
53. Magnificat
54. Jethro Tull - One Brown Mouse
55. Robert Len - Brasilia
56. Schumann - String Quartet in A Minor, Op.41, No.1
57. Tori Amos - Trouble's Lament
58. Tears for Fears - The Working Hour

 

Audio-Transparency Initiative