音频采样效果
设计详细说明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| Fs = 44100;
nBits=16;
nChannels=2;
Duration=2;
recorder = audiorecorder(Fs,nBits,nChannels);
disp('strat speaking:');
recordblocking(recorder,Duration);
disp('stop speaking');
myrecording = getaudiodata(recorder);
audiowrite('test1.wav',myrecording,44100);
test1 = audioinfo('test1.wav');
audiowrite('test2.wav',myrecording,22050);
test2 = audioinfo('test2.wav');
audiowrite('test3.wav',myrecording,88200);
test3 = audioinfo('test3.wav');
for i=[0.5,1,2]
sound(myrecording,44100\*i)
pause(Duration/i)
end
[y1,f1] = audioread('test1.wav');
t1 = 0:seconds(1/f1):seconds(test1.Duration);
t1 = t1(1:end-1);
subplot(1,3,1)
plot(t1,y1)
[y2,f2] = audioread('test2.wav');
t2 = 0:seconds(1/f2):seconds(test2.Duration);
t2 = t2(1:end-1);
subplot(1,3,2)
plot(t2,y2)
[y3,f3] = audioread('test3.wav');
t3 = 0:seconds(1/f3):seconds(test3.Duration);
t3 = t3(1:end-1);
subplot(1,3,3)
plot(t3,y3)
legend('采样频率变为“二倍”','采样频率变为“一半”','采样频率相同')
hold on
title('不同采样率下的波形图')
|
另一张图是luyin2.m文件生成的,只更换了画图部分不具体阐述
-
当播放时采样率设置为录制时的一半时,声音文件的音频长度变为源文件二倍,且声音更加低沉
-
当播放时采样率设置为录制时的二倍时,声音文件的音频长度变为源文件一半,且声音更加尖锐
-
观察三个音频文件的时域波形,发现波形完全一致
-
综上可得:
录制和播放采样率关系对于录制的音频文件内容并没有影响,影响的是音频文件的时长,换句话说改变音频文件播播放的速度
-
原理阐述与思考:
声音文件录制时,以特定的采样率录制音频文件,而在声音信号播放时,相当于在已有音频文件的基础上进行二次采样,由于声音文件的内容是固定的,即音频文件样本数目是固定的,当我们以之前一半的采样率进行二次采样时,相当于每秒钟采集到的样本数目是减半的
因此,如果采集同样大小的音频样本,所需要的时间变为之前两倍,但是由于音频内容未发生改变,所以仅仅改变的是音频文件的播放速度,实现0.5倍速播放或者2倍速播放。