浊音的波形和短时频谱图窗长256xfs=audioreadE语音信号分析abcwav;e=fra256128x;ee=e20;subplot221ee1=eemaxee;plotee1xlabel样点数ylabel幅度title原始语音axis0256-1515矩形窗傅立叶变换r=fftee1024;r1=absr;r1=r1maxr1;yuanlai=20log10r1;signal1512=y
%读取音频文件 [x,fs]=audioread("E:\语音信号分析\abc.wav");
%分帧,窗长256,帧移128 e=fra(256,128,x);
%取第20帧 ee=e(20,:);
%绘制原始语音波形 subplot(2,2,1) ee1=ee/max(ee); plot(ee1) xlabel('样点数') ylabel('幅度') title('原始语音') axis([0,256,-1.5,1.5])
%加矩形窗时的短时频谱图 %对第20帧加矩形窗 r=fft(ee,1024); %进行1024点FFT r1=abs(r); %计算幅值 r1=r1/max(r1); %归一化 yuanlai=20*log10(r1); %转换为对数幅度谱 signal(1:512)=yuanlai(1:512); %取前512个点 pinlv=(0:1:511)*8000/1024; %计算对应频率 subplot(2,2,2) plot(pinlv,signal); xlabel('频率/Hz') ylabel('对数幅度/dB') title('加矩形窗时语音谱') axis([0,4000,-80,15])
%加汉明窗时的短时频谱图 %对第20帧加汉明窗 f=ee'.*hamming(length(ee)); %计算汉明窗 f1=f/max(f); %归一化 subplot(2,2,3) plot(f1) axis([0,256,-1.5,1.5]) xlabel('样点数') ylabel('幅度') title('窗选语音')
%加汉明窗时的短时频谱图 %对第20帧加汉明窗 r=fft(f,1024); %进行1024点FFT r1=abs(r); %计算幅值 r1=r1/max(r1); %归一化 yuanlai=20*log10(r1); %转换为对数幅度谱 signal(1:512)=yuanlai(1:512); %取前512个点 pinlv=(0:1:511)*8000/1024; %计算对应频率 subplot(2,2,4) plot(pinlv,signal); xlabel('频率/Hz') ylabel('对数幅度/dB') title('加汉明窗时语音谱') axis([0,4000,-80,15])
%注释解释: %1. 读取音频文件,得到语音信号x和采样率fs %2. 分帧,窗长256,帧移128,得到每一帧的语音信号e %3. 选择第20帧ee绘制原始语音波形 %4. 对ee加矩形窗,进行1024点FFT,计算幅值,转换为对数幅度谱,取前512个点,计算对应频率,绘制短时频谱图 %5. 对ee加汉明窗,进行1024点FFT,计算幅值,转换为对数幅度谱,取前512个点,计算对应频率,绘制短时频谱
原文地址: https://www.cveoy.top/t/topic/gYMs 著作权归作者所有。请勿转载和采集!