matlab怎么对比音频文件,音频文件导入matlab

《音频文件导入matlab》由会员分享,可在线阅读,更多相关《音频文件导入matlab(2页珍藏版)》请在人人文库网上搜索。

1、这个问题问的好!1)用mp3录音,生成文件cricket.wav,把该文件放到matlab文件夹里面(就是你打开matlab后中间顶部的地址)。 2)使用如下程序,做波形显示以及fft变换。 y,Fs,bits=wavread(cricket.wav);%读出信号,采样率和采样位数。 y=y(:,1);%我这里假设你的声音是双声道,我只取单声道作分析,如果你想分析另外一个声道,请改成y=y(:,2) sigLength=length(y); Y = fft(y,sigLength); Pyy = Y.* conj(Y) / sigLength; halflength=floor(sigLeng。

2、th/2); f=Fs*(0:halflength)/sigLength; figure;plot(f,Pyy(1:halflength+1);xlabel(Frequency(Hz); t=(0:sigLength-1)/Fs; figure;plot(t,y);xlabel(Time(s); 3)频率看频谱就有了,声音间隔看声音波形,周期看声音波形。 4)关于去噪声。 a)如果噪声是特定频率的周期噪声(periodic noise),比如说50hz,那么你可以用matlab的filter,作一个低通、高通、带通或者带阻滤波。 b)如果声音是高斯白噪声。那就用自适应滤波(adaptive f。

3、ilter,wiener filter)。这里涉及到对噪声的采样、计算特征值以及决定阶数的问题。 c)幸好我们可以“耍赖”用cool editor。用它打开wav文件,用鼠标把一段噪声圈起来,采样,然后直接选择去噪就可以了。各大网站有介绍。 例子:matlab去除50hz噪声。 我用电脑录了一段声音,里面有50hz的周期噪声(因为受交流电干扰)。而我自己的声音频率最低是90hz。我使用了一个10阶butterworth高通滤波器,边带是70hz(介于50跟90之间)。 问题是,这不能直接用。因为声音文件的采样率是22k,70相对于22k来说太小了。所以我得先把我的声音欠采样,然后再滤波,然后再。

4、插值。程序如下。 k,Fs,bits=wavread(mywav.wav); k=k(:,1); y_temp=k(1:90000); dfactor=3; y=decimate(y_temp,dfactor); b,a = butter(10,70/(Fs/(dfactor*2),high); y=filter(b,a,y); y=interp(y,dfactor); sigLength=length(y); Y = fft(y,sigLength); Pyy = Y.* conj(Y) / sigLength; halflength=floor(sigLength/2); f=Fs*(0:。

5、halflength)/sigLength; figure;plot(f,Pyy(1:halflength+1);xlabel(Frequency(Hz); sigLength=length(y_temp); Y = fft(y_temp,sigLength); Pyy = Y.* conj(Y) / sigLength; halflength=floor(sigLength/2); f=Fs*(0:halflength)/sigLength; figure;plot(f,Pyy(1:halflength+1);xlabel(Frequency(Hz); t=(0:sigLength-1)/Fs; figure;plot(t,y,t,y_temp);xlabel(Time(s); wavplay(y,Fs); wavplay(y_temp,Fs); 5)回放:使用wavplay函数 wavplay(y,Fs。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值