MATLAB: Why does the sound with different sampling frequency sounds the same

audioMATLAB

Dear people,
I am trying to write an audio with the following lines. However, every after I write an audio into a file and play it, they sound the same no matter what the sampling frequency is.
clear all
clc
FrequencySampling = 2500; % 2500 for safe 10000 for shock
duration =17;
repeats=1;
t = linspace(0, duration, FrequencySampling*duration+1); % Time Vector + 1 sample
t(end) = []; % remove extra sample
w = 2*pi*1000; % Radian Value To Create 1kHz Tone
for i=1:repeats
s = sin(w*t);
sound(s,FrequencySampling);
pause(5) %ITI 60 sec
end
audiowrite('shock.wav',s,FrequencySampling);
Please recommend me any possible reasons or let me know if I have done sth wrong.

Best Answer

That's the basic of the 'Sampling theorem'. As long as frequency component of the signal is less than Nyquist frequency ( = sampling frequency * 0.5), the original signal can be re-generated.
Looking at your code, the signal frequency is 1 [kHz] and both sampling frequencies (2.5 [kHz] and 10 [kHz]) satisfy the Nyquist condition. So the regeneratd signal sounds the same.
Related Question