⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ssnr.m

📁 内有两个MATLAB程序
💻 M
字号:
%-------------------------------------------------------------------------%  本程序用于测量增强语音的信噪比%  08.2.18   magic%%  运行本程序时,首先要求输入增强语音对应的纯净语音,然后再输入增强语音。%%  算法思想:SNR=10log10(sum(s.^2)/sum((sn-s).^2))%           其中,s表示纯净语音,sn表示带噪语音。%           首先,对2个输入语音进行首尾对齐,因为分帧的原因,原始语音与增强语音%           可能存在长度不一直的情况,因此需要进行长度对齐。%           然后,对2个输入语音进行幅度统一,因为增强后的语音,幅度值较原始语音%           可能变小或增大,为准确计算信噪比,需要进行幅度统一,对增强语音幅度乘%           上一个还原系数。还原系数由原始语音和增强语音中幅度最大值之比得出。%           最后,将经过上述两步的两个输入语音按照前面的公式计算,得出信噪比。%-------------------------------------------------------------------------%---------------------------读入纯净语音和增强语音--------------------------clear;[filename,pathname]=uigetfile('*.wav','请选择纯净语音文件:');wavin1=wavread([pathname filename])';wav_length1=length(wavin1);[filename,pathname]=uigetfile('*.wav','请选择增强语音文件:');wavin2=wavread([pathname filename])';wav_length2=length(wavin2);%--------------------------------首尾对齐----------------------------------if wav_length1>wav_length2    wav_len=wav_length2;    wav1=zeros(1,wav_length2);    wav1=wavin1(1:wav_length2);    wav2=wavin2;else if wav_length1<wav_length2         wav_len=wav_length1;         wav2=zeros(wav_length1);         wav2=wavin2(1:wav_length1);         wav1=wavin1;    else  wav_len=wav_length1;          wav1=wavin1;          wav2=wavin2;    end;end;% %--------------------------------幅度统一--------------------------------% [max1,i1]=max(wav1);% [max2,i2]=max(wav2);% c=max1/max2;% wav22=c*wav2;%---------------------------------不幅度统一--------------------------------wav22=wav2;%------------------------------计算信噪比----------------------------------pow_s=sum(wav1.^2);pow_n=sum((wav22-wav1).^2);snr=10*log10(pow_s/pow_n);snr

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -