资源简介
函数可以作出时域波形图和频域频谱图,并且计算基因频率自动判断音频文件是男声还是女声声音。ds函数输入变量是文件名和降采样的间隔,通过插值的办法保证了原信号的长度,可以画出时域及频域图像,并且判断男女声,最后播放降采样之后的声音。新人第一次发资源,很简单,望支持,做的信号作业,和我一样的小白可以参考,大虾就不用看了。

代码片段和文件信息
function ds(filer)
[yfs]=audioread(file);
y=y(:1);
yy=downsample(yr); %降采样
t=interp(yyr); %插值
n=0:length(t)-1; %建立一个信号等长的序列
time=n/fs; %建立时间序列,作为横坐标
subplot(211); %图1:时域波形图
plot(timet); %作图
title(‘音频信号波形图‘) %标题
xlabel(‘时间/s‘); %标注横坐标
ylabel(‘幅值‘); %标注纵坐标
grid on; %打开网格线
%=======频域图像======
N=length(t); %取信号矩阵的长度
Y1=fft(tN); %N点傅里叶变换
mag=abs(Y1); %取模
f=n*fs/N; %频率序列
subplot(212); %图2:频谱图
%取1/2作图
plot(f(1:fix(N/2))mag(1:fix(N/2)));
title(‘音频信号fft频谱图‘);%标题
xlabel(‘频率/Hz‘); %标注横坐标
ylabel(‘幅度‘); %标注纵坐标
grid on; %打开网格线
%======基因频率提取======
[~index]=max(t);
timewin=floor(0.015*fs);
xwin=t(index-timewin:index+timewin);
[y~]=xcov(xwin);
ylen=length(y);
halflen=(ylen+1)/2 +30;
yy=y(halflen: ylen);
[~maxindex] = max(yy);
fmax=fs/(maxindex+30);
disp([file‘基音频率为 ‘ num2str(fmax) ‘ Hz‘])
%======通过基因频率判断男女声======
if fmax<250;
disp([file‘ 是男声文件‘]);
else
disp([file‘ 是女声文件‘]);
end;
sound(tfs);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1296 2015-05-24 13:59 ds.m
文件 1294 2015-05-19 20:59 man_or_woman.m
- 上一篇:空时编码的代码
- 下一篇:ISM算法的matlab代码
相关资源
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
- k近邻算法matlab实现
- matlab识别系统
评论
共有 条评论