%% 声音的采集
clc;
clear;
close all;
filename = '三狮.wav';
[y,Fs] = audioread(filename);
y = y(:,1); % 取单声道
L = length(y); % 采样点
T = 1/Fs; % 周期
t = (0:L-1)*T;
info = audioinfo(filename); % wav详细信息
disp(info); % 输出音频信号 采样频率,采样位数 等信息
sound(y,Fs); %以采样率 Fs 向扬声器发送音频信号 y
i = 0;
%% 绘图
i = i+1;
s = '原音频信号时域波形图';
plot_time(t,y,s,i); % 绘制时域波形图
i = i+1;
s = '原音频信号频域波形图';
plot_freq(Fs,L,y,s,i); % 绘制频域波形图
%% 窗函数对频谱分析的影响
%% 矩形窗
win_r = boxcar(length(y));
y_win_r = y.*win_r; % 时域乘积
sound(y_win_r,Fs);
i = i+1;
s = '矩形窗时域波形图';
plot_time(t,y_win_r,s,i);
i = i+1;
s = '矩形窗频率域波形图';
plot_freq(Fs,L,y_win_r,s,i);
% 矩形窗 1/2
win_r_2 = boxcar(floor(length(y)/2)); % 取语音长度1/2为窗口长度
win_r_2 = [win_r_2;zeros(ceil(length(y)/2),1)]; % 对齐补0
y_win_r_w = y.*win_r_2;
sound(y_win_r_w,Fs);
i = i+1;
s = '矩形窗(N = L/2)时域波形图';
plot_time(t,y_win_r_w,s,i);
i = i+1;
s = '矩形窗(N = L/2)频率域波形图';
plot_freq(Fs,L,y_win_r_w,s,i);
%% 汉宁窗
win_h = hann(length(y));
y_win_h = y.*win_h;
sound(y_win_h,Fs);
i = i+1;
s = '汉宁窗时域波形图';
plot_time(t,y_win_h,s,i);
i = i+1;
s = '汉宁窗频率域波形图';
plot_freq(Fs,L,y_win_h,s,i);
% 汉宁窗 1/2
win_h_2 = hann(floor(length(y)/2));
win_h_2 = [win_h_2;zeros(ceil(length(y)/2),1)]; % 对齐补0
y_win_h_2 = y.*win_h_2;
sound(y_win_h_2,Fs);
i = i+1;
s = '汉宁窗(N = L/2)时域波形图';
plot_time(t,y_win_h_2,s,i);
i = i+1;
s = '汉宁窗(N = L/2)频率域波形图';
plot_freq(Fs,L,y_win_h_2,s,i);
%% 哈明窗
win_hm = hamming(length(y));
y_win_hm = y.*win_hm;
sound(y_win_hm,Fs);
i = i+1;
s = '哈明窗时域波形图';
plot_time(t,y_win_hm,s,i);
i = i+1;
s = '哈明窗频率域波形图';
plot_freq(Fs,L,y_win_hm,s,i);
% 哈明窗 1/2
win_hm_2 = hamming(floor(length(y)/2));
win_hm_2 = [win_hm_2;zeros(ceil(length(y)/2),1)]; % 对齐补0
y_win_hm_2 = y.*win_hm_2;
sound(y_win_hm_2,Fs);
i = i+1;
s = '哈明窗(N = L/2)时域波形图';
plot_time(t,y_win_hm_2,s,i);
i = i+1;
s = '哈明窗(N = L/2)频率域波形图';
plot_freq(Fs,L,y_win_hm_2,s,i);
%% 布莱克曼窗
win_blk = blackman(length(y));
y_win_blk = y.*win_blk;
sound(y_win_blk,Fs);
i = i+1;
s = '布莱克曼窗时域波形图';
plot_time(t,y_win_blk,s,i);
i = i+1;
s = '布莱克曼窗频率域波形图';
plot_freq(Fs,L,y_win_blk,s,i);
% 布莱克曼窗 1/2
win_blk_2 = blackman(floor(length(y)/2));
win_blk_2 = [win_blk_2;zeros(ceil(length(y)/2),1)]; % 对齐补0
y_win_blk_2 = y.*win_blk_2;
sound(y_win_blk_2,Fs);
i = i+1;
s = '布莱克曼窗(N = L/2)时域波形图';
plot_time(t,y_win_blk_2,s,i);
i = i+1;
s = '布莱克曼窗(N = L/2)频率域波形图';
plot_freq(Fs,L,y_win_blk_2,s,i);
%% 截取2s
time = 2;
samples = [1,floor(L/2)];
[y_cut,Fs_cut] = audioread(filename,samples);
y_cut = y_cut(:,1); % 取单声道
L_cut = length(y_cut); % 采样点
T_cut = 1/Fs_cut; % 周期
t_cut = (0:L_cut-1)*T_cut;
sound(y_cut,Fs_cut);
i = i+1;
s = '音频信号截取2s时域波形图';
plot_time(t_cut,y_cut,s,i); % 绘制时域波形图
i = i+1;
s = '音频信号截取2s频域波形图';
plot_freq(Fs_cut,L_cut,y_cut,s,i); % 绘制频域波形图
%% 降采样对频谱分析的影响
Fs_res = Fs/2;
y_res=resample(y,Fs_res,Fs);%信号降采样处理
% y_res = downsample(y,2);
L_res = length(y_res);
sound(y_res,Fs_res);
t_res = 1/(Fs_res) * (0:L_res-1);
i = i+1;
s = '降采样时域波形图';
plot_time(t_res,y_res,s,i);
i = i+1;
s = '降采样频率域波形图';
plot_freq(Fs_res,L_res,y_res,s,i);
没有合适的资源?快使用搜索试试~ 我知道了~
【数学信号处理】基于matlab数字信号频谱分析【含Matlab源码 1544期】.zip
共27个文件
jpg:22个
m:3个
wav:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 175 浏览量
2021-11-28
13:31:01
上传
评论 2
收藏 1015KB ZIP 举报
温馨提示
CSDN海神之光上传的代码均可运行,亲测可用,直接替换数据即可,适合小白; 1、代码压缩包内容 主函数:Spee.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,可私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开Spee.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博主博客文章底部QQ名片; 4.1 CSDN博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、通信、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融
资源推荐
资源详情
资源评论
收起资源包目录
【数学信号处理】基于matlab数字信号频谱分析【含Matlab源码 1544期】.zip (27个子文件)
【数学信号处理】基于matlab数字信号频谱分析【含Matlab源码 1544期】
AD 1B
Speech2.m 3KB
三狮.wav 963KB
运行结果22.jpg 27KB
运行结果7.jpg 25KB
plot_freq.m 680B
运行结果9.jpg 19KB
运行结果6.jpg 24KB
运行结果4.jpg 27KB
运行结果21.jpg 28KB
运行结果17.jpg 19KB
运行结果11.jpg 25KB
运行结果5.jpg 21KB
运行结果15.jpg 23KB
运行结果16.jpg 22KB
运行结果12.jpg 23KB
运行结果14.jpg 23KB
运行结果10.jpg 23KB
运行结果13.jpg 19KB
运行结果18.jpg 22KB
运行结果19.jpg 24KB
运行结果8.jpg 23KB
运行结果2.jpg 27KB
运行结果3.jpg 28KB
运行结果1.jpg 28KB
运行结果20.jpg 30KB
plot_time.m 179B
共 27 条
- 1
资源评论
- weixin_527360302022-10-19资源不错,对我启发很大,获得了新的灵感,受益匪浅。
海神之光
- 粉丝: 5w+
- 资源: 6110
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 纯css3发光霓虹灯文字闪烁特效代码.zip
- 用VBS制作自己的进度条
- 电脑说话VBS什么电脑都能用
- 利用HTML+CSS+JS的国漫分享网站(响应式)
- 练习springboot1 项目 模拟高并发秒杀,实现基本的登录、查看商品列表、秒杀、下单等功能,简单实现了系统缓存、降级和限流
- 一个社区论坛项目,技术栈:spring boot + thymeleaf+Redis 实现的功能:发帖,关注,点赞,私信,系统通知,日活统计.zip
- 会员管理系统.zip-会员管理系统.zip
- 解压软件 ZArchiver.apk
- 《系统分析和设计》课程作业-面向中国各大城市的医院预约挂号系统.zip
- SM4学习备份,有用的
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功