; l" [2 Q* y, S9 _- w' k; dmcSignals.clean = mcSignals.clean - ones(setup.nSamples,1)*mean(mcSignals.clean); / I2 X# J3 Y- D# G " G* v, H) V& h% D' [$ L3 ^" X2 k%-------produce the microphone recieved clean signals--------------------------------------------- ! o/ o: S7 s9 D$ b( V( ]5 t8 e2 o. {1 m9 l& ~; }
mic_clean1=10*mcSignals.clean(:,1); %Because of the attenuation of the recievd signals,Amplify the signals recieved by Mics with tenfold ( s$ A3 ^1 v" ^% \mic_clean2=10*mcSignals.clean(:,2); 0 x5 `7 s7 j# c2 n8 l/ }# Y: C9 O2 Wmic_clean3=10*mcSignals.clean(:,3);3 D0 D4 H2 V6 u) h3 u
mic_clean4=10*mcSignals.clean(:,4);/ K! |. S2 r* L' j @, q. ?
audiowrite('mic_clean1.wav' ,mic_clean1,setup.sampFreq); 4 j1 H5 W. c. B) {& b3 m. Raudiowrite('mic_clean2.wav' ,mic_clean2,setup.sampFreq);# A: f; q6 F2 R& m+ Z( P
audiowrite('mic_clean3.wav' ,mic_clean3,setup.sampFreq);* U! r9 z' V0 o+ e/ b: k
audiowrite('mic_clean4.wav' ,mic_clean4,setup.sampFreq);% ]2 @6 ~ `& p) j7 j, \
- c9 s6 d% }6 ]
%----------------------------------end-------------------------------------------------- v1 l; t( J! W, p! }1 L
8 s. k( u' \/ H" xaddpath([cd,'\..\nonstationaryMultichanNoiseGenerator\']);, y9 B1 o, i6 u
) F. J, Z4 R& scleanSignalPowerMeas = var(mcSignals.clean); + u2 i& H. d; @) v5 ~) T$ {: Y & y% U5 Z$ h/ l ( N5 o2 ?/ Z" m) x7 X# ymcSignals.diffNoise = generateMultichanBabbleNoise(setup.nSamples,setup.nSensors,setup.sensorDistance,...1 C% x/ i% N% F$ u8 {
setup.speedOfSound,setup.noiseField); # Y6 [6 L- o8 Y e. ediffNoisePowerMeas = var(mcSignals.diffNoise);$ E ~# q9 z. k: u
diffNoisePowerTrue = cleanSignalPowerMeas/10^(setup.sdnr/10);1 l Q6 t( @' n
mcSignals.diffNoise = mcSignals.diffNoise*...: J- A8 l9 W. \8 j! M, \
diag(sqrt(diffNoisePowerTrue)./sqrt(diffNoisePowerMeas));7 z5 O6 P8 u g7 u7 L
7 [: |3 B7 u1 w6 z% V6 H
mcSignals.sensNoise = randn(setup.nSamples,setup.nSensors); . D6 H X- E) I5 r$ b: h* csensNoisePowerMeas = var(mcSignals.sensNoise); |/ z: b+ X1 R+ U6 `sensNoisePowerTrue = cleanSignalPowerMeas/10^(setup.ssnr/10);+ W. ?) d. n [; z) ~* ]
mcSignals.sensNoise = mcSignals.sensNoise*... ' a/ u0 }5 z: t" k; m: B& Z diag(sqrt(sensNoisePowerTrue)./sqrt(sensNoisePowerMeas));$ v. C% R4 ?. t/ r
% D: h9 u T8 h& \+ fmcSignals.noise = mcSignals.diffNoise + mcSignals.sensNoise; 7 y0 n' U X7 A( x, l- SmcSignals.observed = mcSignals.clean + mcSignals.noise; 1 A9 D; ^8 x) A( n4 a/ w) B0 [; X, b0 M* |( |$ O7 }
%------------------------------processing end-----------------------------------------------------------, p. r+ A7 I: D. u* L5 ]2 J0 G
& D, k5 M# F/ p0 R0 X 5 m) e+ g; ~8 W , L' ?. j7 I* f: \+ @' p: T7 s4 ]/ w; D0 q9 S9 Y' N
%----------------produce the noisy speech of MIc in the specific ervironment sets------------------------9 F) j% L9 D7 M! M