清音的波形和短时频谱图窗长256xfs=audioreadE语音信号分析abcwav;e=fra256128x;ee=e10;subplot221ee1=eemaxee;plotee1xlabel样点数ylabel幅度title清音原始语音axis0256-1515清音加矩形窗傅立叶变换r=fftee1024;r1=absr;r1=r1maxr1;yuanlai=20log10r1;signal1
%清音的波形和短时频谱图(窗长256) %导入音频文件并获取采样率 [x,fs]=audioread("E:\语音信号分析\abc.wav"); %使用fra函数对音频进行分帧处理,窗长为256,帧移为128 e=fra(256,128,x); %获取第10帧 ee=e(10,:); %绘制清音原始语音波形图 subplot(2,2,1) %将波形数据进行归一化处理,方便观察 ee1=ee/max(ee); plot(ee1) xlabel('样点数') ylabel('幅度') title('清音原始语音') axis([0,256,-1.5,1.5])
%清音加矩形窗傅立叶变换 %使用fft函数进行傅立叶变换,长度为1024 r=fft(ee,1024); %取绝对值并归一化处理 r1=abs(r); r1=r1/max(r1); %将幅度转换为对数幅度并提取前512个数据点 yuanlai=20*log10(r1); signal(1:512)=yuanlai(1:512); %绘制清音加矩形窗时的语音谱 pinlv=(0:1:511)*8000/1024; subplot(2,2,2) plot(pinlv,signal); xlabel('频率/Hz') ylabel('对数幅度/dB') title('清音加矩形窗时语音谱') axis([0,4000,-80,15])
%清音加汉明窗 %使用hamming函数生成汉明窗并与原始语音相乘 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('清音窗选语音')
%清音加汉明窗傅立叶变换 %使用fft函数进行傅立叶变换,长度为1024 r=fft(f,1024); %取绝对值并归一化处理 r1=abs(r); r1=r1/max(r1); %将幅度转换为对数幅度并提取前512个数据点 yuanlai=20*log10(r1); signal(1:512)=yuanlai(1:512); %绘制清音加汉明窗时的语音谱 pinlv=(0:1:511)*8000/1024; subplot(2,2,4) plot(pinlv,signal); xlabel('频率/Hz') ylabel('对数幅度/dB') title('清音加汉明窗时语音谱') axis([0,4000,-80,15])
%注释中对每个步骤进行了详细解释,包括函数的使用、参数的含义和数据处理过程
原文地址: https://www.cveoy.top/t/topic/gYOm 著作权归作者所有。请勿转载和采集!