aiskmo 发表于 2009-1-23 16:54

基本且简单的问题:MATLAB 的 wavrecord命令所记录到的数组就真的是空气的振动幅度吗?

基本且简单的问题: wavrecord命令所记录到的数组就真的是空气的振动幅度吗?我原本用下面的思路来做简单的音频分析:
1。用 y=wavrecord(t*Fs,Fs) 获取声音信号。
2。用 x=fft(y)获取声音的频谱。
或者翻过来,
1.用y=sin(2*pi*f) 产生某个单音信号.
2.用wavplay(y,Fs)来发出声音,我聆听这个声音.

但我想确认, 用wavrecord,waveplay 所处理的波形文件,真的记录的就是空气振动幅度对时间的变化吗?对这样的数列作fft分析不会引入多余的其他频谱分量吗?
具体来说,照我的理解,声音的本质是空气中的振动。比如A调的音叉,其摆动位移随时间的变化就刚好是440Hz的正弦波,标准的单音信号。当这样的声音由波形文件记录下来后,(记为y向量),y的每一个数值,都正比于当初音叉的位移吗?如果不幸,y的各值, (排除系统硬件的因素),并不正比于音叉的摆幅,而是经历某种非线性变换,那么事后分析出的频谱肯定就不是真实的音频频谱了.
波形文件和真实声音的对应关系是线性的吗?
页: [1]
查看完整版本: 基本且简单的问题:MATLAB 的 wavrecord命令所记录到的数组就真的是空气的振动幅度吗?