SyntheticTest » History » Version 10

« Previous - Version 10/13 (diff) - Next » - Current version
Chris Cannam, 2013-11-18 04:19 PM


Synthetic test material

Sinusoid at fs/4

In Yeti terms:

testStream = manipulate.withDuration 64 (syn.sinusoid 8 2);
cq = cqt { maxFreq = testStream.sampleRate/2, minFreq = 1, binsPerOctave = 4 } testStream;

Or to put it another way (in MATLAB this time):

test = [0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1 ];
out = cqt(test,1,4,4,8)

That is, a 64-sample input of 8Hz sample rate containing a sinusoid at fs/4, transformed using CQ parameters fmin = 1, fmax = 4 (or fs/2), and bpo = 4.

Data from MATLAB implementation

actual fmin = 1.1892
octaves = 2
weight = 16.3452
drop = 3
kernel size = 32x20
output size = 8x59

and the output (magnitudes only):

  Columns 1 through 8

    0.0001         0    0.0002         0    0.0001         0    0.0002         0
    0.0001         0    0.0001         0    0.0002         0    0.0004         0
    0.0001         0    0.0001         0    0.0003         0    0.0011         0
    0.0002         0    0.0000         0    0.0003         0    0.0013         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0

  Columns 9 through 16

    0.0011         0    0.0044         0    0.0980         0    0.3084         0
    0.0018         0    0.0082         0    0.0468         0    0.3858         0
    0.0050         0    0.0243         0    0.1211         0    0.6447         0
    0.0065         0    0.0309         0    0.1543         0    0.8114         0
         0         0         0         0    0.0002    0.0086    0.2742    1.1185
         0         0         0         0    0.0011    0.0010    0.0711    0.7025
         0         0         0         0    0.0001    0.0002    0.0099    0.5388
         0         0         0         0    0.0001    0.0019    0.0006    0.4688

  Columns 17 through 24

    0.3962         0    0.2374         0    0.0484         0    0.0032         0
    0.6804         0    0.3858         0    0.0468         0    0.0082         0
    1.1968         0    0.6447         0    0.1211         0    0.0243         0
    1.6297         0    0.8114         0    0.1544         0    0.0309         0
    2.1085    2.4893    2.4383    2.4312    2.4314    2.4307    2.4311    2.4311
    1.3506    0.9697    0.7693    0.7692    0.7688    0.7693    0.7691    0.7691
    0.8193    0.0813    0.0491    0.0649    0.0499    0.0643    0.0493    0.0646
    0.7188    0.0108    0.0492    0.0010    0.0493    0.0001    0.0488    0.0000

  Columns 25 through 32

    0.0007         0    0.0003         0    0.0006         0    0.0019         0
    0.0019         0    0.0005         0    0.0004         0    0.0032         0
    0.0051         0    0.0012         0    0.0019         0    0.0086         0
    0.0062         0    0.0008         0    0.0021         0    0.0111         0
    2.4311    2.4311    2.4311    2.4311    2.4311    2.4311    2.4311    2.4311
    0.7691    0.7691    0.7691    0.7691    0.7691    0.7691    0.7691    0.7691
    0.0493    0.0646    0.0493    0.0646    0.0493    0.0646    0.0493    0.0646
    0.0488    0.0000    0.0488    0.0000    0.0488    0.0000    0.0488    0.0000

  Columns 33 through 40

    0.0168         0    0.1633         0    0.3646         0    0.3646         0
    0.0143         0    0.1184         0    0.5325         0    0.6406         0
    0.0414         0    0.2181         0    0.9118         0    1.1190         0
    0.0532         0    0.2679         0    1.1926         0    1.5069         0
    2.4311    2.4309    2.4305    2.4835    2.3188    1.4767    0.4927    0.0454
    0.7692    0.7695    0.7692    0.7707    1.1679    1.2359    0.4175    0.0087
    0.0494    0.0639    0.0494    0.0651    0.3139    0.8970    0.2914    0.0008
    0.0490    0.0000    0.0490    0.0024    0.2044    0.8567    0.1557    0.0024

  Columns 41 through 48

    0.1633         0    0.0168         0    0.0019         0    0.0003         0
    0.2373         0    0.0229         0    0.0052         0    0.0012         0
    0.3956         0    0.0706         0    0.0144         0    0.0029         0
    0.4838         0    0.0905         0    0.0184         0    0.0037         0
    0.0000    0.0002         0         0         0         0         0         0
    0.0012    0.0004         0         0         0         0         0         0
    0.0002    0.0007         0         0         0         0         0         0
    0.0002    0.0000         0         0         0         0         0         0

  Columns 49 through 56

    0.0003         0    0.0000         0    0.0000         0    0.0000         0
    0.0003         0    0.0000         0    0.0000         0    0.0000         0
    0.0006         0    0.0001         0    0.0000         0    0.0000         0
    0.0009         0    0.0002         0    0.0000         0    0.0000         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0

  Columns 57 through 59

    0.0000         0    0.0000
    0.0000         0    0.0000
    0.0000         0    0.0000
    0.0000         0    0.0000
         0         0         0
         0         0         0
         0         0         0
         0         0         0

Data from Yeti implementation

Process data

sampleRate = 8
maxFreq = 4
minFreq = 1
actualMinFreq = 1.189207115002721
octaves = 2
binsPerOctave = 4

overall output size = {columns=40, rows=8}

Kernel data

That is,

> (load cqtkernel).makeKernel { binsPerOctave = 4, maxFreq = 4, sampleRate = 8 }

gives

minFreq = 2.378414230005442, bigQ = 5.285213507883246, maxNK = 18, minNK = 11, atomHop = 3, firstCentre = 9, fftSize = 32
winNr = 5, lastCentre = 21, fftHop = 15
density = 0.6953125 (445 of 640)
weight = 16.34515230237943
{
   atomSpacing = 3,
   atomsPerFrame = 5,
   bigQ = 5.285213507883246,
   binsPerOctave = 4,
   fftHop = 15,
   fftSize = 32,
   firstCentre = 9,
   kernel = { ... , size = { columns = 32, rows = 20 } },
   maxFreq = 4,
   minFreq = 2.378414230005442
}

Screenshot - 181113 - 16_05_56.png - MATLAB output, contour plot 4.07 KB, downloaded 260 times Chris Cannam, 2013-11-18 04:11 PM