ReSpeaker DSP V02

Dependencies:   mbed MbedJSONValue

Committer:
Arkadi
Date:
Thu Jun 20 09:06:46 2019 +0000
Revision:
14:8a4699aa69b5
Parent:
1:574b54755983
experiments version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Arkadi 1:574b54755983 1 %Script for preparation of predefined signal code from wav file
Arkadi 1:574b54755983 2 % Generates file sounddata.h which should be uploaded into mbed environment
Arkadi 1:574b54755983 3 % and compiled together with C++ file
Arkadi 1:574b54755983 4
Arkadi 1:574b54755983 5 % this line should be corrected depended on location of WAV file
Arkadi 1:574b54755983 6 mainfilename ='C:\Users\Igor\OneDrive\dev\Bats\tests\kuhlii_like_chirp.wav';
Arkadi 1:574b54755983 7 % this line should be corrected depended on desired location of sounddata.h file
Arkadi 1:574b54755983 8 sounddatafilename = 'C:\Users\Igor\OneDrive\dev\Bats\tests\sounddata.h'
Arkadi 1:574b54755983 9
Arkadi 1:574b54755983 10 [ybat,Fs] = audioread(mainfilename,'double');
Arkadi 1:574b54755983 11 len = length(ybat);
Arkadi 1:574b54755983 12
Arkadi 1:574b54755983 13 fprintf('Amount of samples: %d; Sampling frequency %d\n',len, Fs)
Arkadi 1:574b54755983 14 num_of_leading_zeros=0;
Arkadi 1:574b54755983 15 num_of_trailing_zeros = 0;
Arkadi 1:574b54755983 16 count_leading_zeros = true;
Arkadi 1:574b54755983 17 count_trailing_zeros = true;
Arkadi 1:574b54755983 18 for i = 1:len
Arkadi 1:574b54755983 19 if (ybat(i) == 0.0 && count_leading_zeros)
Arkadi 1:574b54755983 20 num_of_leading_zeros = num_of_leading_zeros + 1;
Arkadi 1:574b54755983 21 else
Arkadi 1:574b54755983 22 count_leading_zeros = false;
Arkadi 1:574b54755983 23 end
Arkadi 1:574b54755983 24 if (ybat(len-i+1) == 0.0 && count_trailing_zeros)
Arkadi 1:574b54755983 25 num_of_trailing_zeros = num_of_trailing_zeros + 1;
Arkadi 1:574b54755983 26 else
Arkadi 1:574b54755983 27 count_trailing_zeros = false;
Arkadi 1:574b54755983 28 end
Arkadi 1:574b54755983 29 end
Arkadi 1:574b54755983 30
Arkadi 1:574b54755983 31 fprintf('Amount of leading zeros: %d\n',num_of_leading_zeros);
Arkadi 1:574b54755983 32 fprintf('Amount of trailing zeros: %d\n',num_of_trailing_zeros);
Arkadi 1:574b54755983 33 fprintf('Amount of significant signal samples: %d\n',len - num_of_trailing_zeros - num_of_leading_zeros);
Arkadi 1:574b54755983 34
Arkadi 1:574b54755983 35 fileID = fopen(sounddatafilename,'w');
Arkadi 1:574b54755983 36 fprintf(fileID, '#define SAMPLING_FREQUENCY %d\n', Fs);
Arkadi 1:574b54755983 37 fprintf(fileID, '#define AMOUNT_OF_LEADING_ZEROS %d\n', num_of_leading_zeros);
Arkadi 1:574b54755983 38 fprintf(fileID, '#define AMOUNT_OF_TRAILING_ZEROS %d\n', num_of_trailing_zeros);
Arkadi 1:574b54755983 39 fprintf(fileID, '#define AMOUNT_OF_SIGNIFICANT_SAMPLES %d\n', len - num_of_leading_zeros - num_of_trailing_zeros + 1);
Arkadi 1:574b54755983 40 fprintf(fileID, 'float sounddata[AMOUNT_OF_SIGNIFICANT_SAMPLES] = {\n');
Arkadi 1:574b54755983 41
Arkadi 1:574b54755983 42 for i = num_of_leading_zeros+1 : len - num_of_trailing_zeros
Arkadi 1:574b54755983 43 fprintf(fileID,'%f,', ybat(i));
Arkadi 1:574b54755983 44 if (mod(i,12) == 0)
Arkadi 1:574b54755983 45 fprintf(fileID,'\n');
Arkadi 1:574b54755983 46 end
Arkadi 1:574b54755983 47 end
Arkadi 1:574b54755983 48 fprintf(fileID, '0.0};\n');
Arkadi 1:574b54755983 49 fclose(fileID);