MATLAB学习笔记
基于声卡的声音信号采集,声卡采集频率一般为11400,22050,44100。对于使用声卡播放也是如此。
- 声卡采集声音信号
audiorecorder(Fs,bit,num);函数中Fs是采样频率,bit为存储字节,num为声道选择。
FS根据设定采样频率就行,num=1时为单声道,num=2时为双声道。
audiorecorder函数是定义了一个采样器,设置一个变量x = audiorecorder(Fs,16,2)才可以进行声音采集。
recordblocking(x,5);中的x即为定义的采样器,5为采样时间为五秒。
x = audiorecorder(Fs,16,2); %设置声音接收变量
recordblocking(x,5); %收取声音五秒
myspeech = getaudiodata(x);%得到以n*2列数字矩阵存储的刚录制的音频信号
- 傅里叶变换
调用fft函数,对myspeech进行傅里叶变换。其中参数N必须为2的倍数,一般选取210,即可,当然也可以高一些,我这里选取的是5096,即214
y = fft(myspeech,N);%傅里叶变换
f = linspace(0,Fs/2,N/2);%只需要画出一半的频谱信号
y1 = abs(y)/(N/2);%还原幅值
- 滤波器
使用matlab种的filterDesigner来进行设计:
1.找到matlab中