matlab如何采集语音
[x,fs,bits]
=
wavread('filename.wav')
;
fs
存的是采样率,单位hz,bits
是数据的位数。
matlab如何画fft频谱
clf;
fs=100;n=128;
%采样频率和数据点数
n=0:n-1;t=n/fs;
%时间序列
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);
%信号
y=fft(x,n);
%对信号进行快速fourier变换
mag=abs(y);
%求得fourier变换后的振幅
f=n*fs/n;
%频率序列
plot(f,mag);
%绘出随频率变化的振幅
xlabel('频率/hz');
ylabel('振幅');title('n=128');grid
on;
至于如何合起来,题主应该懂吧
t=0:1/256:1;%采样步长
y=
2+3*cos(2*pi*50*t-pi*30/180)+1.5*cos(2*pi*75*t+pi*90/180);
N=length(t);
%样点个数
plot(t,y);
fs=256;%采样频率
df=fs/(N-1);%分辨率
f=(0:N-1)*df;%其中每点的频率
Y=fft(y(1:N))/N*2;%真实的幅值
%Y=fftshift(Y);
figure(2)
plot(f(1:N/2),abs(Y(1:N/2)));