Matlab:音频处理

用Matlab绘制一段音频信号在时域上的波形图,然后用低通滤波器滤掉噪音并再次绘制

1、导入音频文件

复制代码
filename = 'X:\1.mp3'; % 替换为你的音频文件路径
[x, Fs] = audioread(filename);

2、获取音频信号长度

复制代码
len = length(x);

3、计算时间轴

复制代码
t = (0:len-1) / Fs;

4、绘制音频信号在时域上的波形图

复制代码
figure;
plot(t, x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Audio Signal in Time Domain');

5、设计并应用低通滤波器

复制代码
cutoff_frequency = 2600; % 截止频率为2600 Hz
normalized_cutoff = cutoff_frequency / (Fs/2);
order = 8; % 滤波器阶数
[b, a] = butter(order, normalized_cutoff, 'low');

filtered_x = filter(b, a, x);

6、绘制滤波后的音频信号在时域上的波形图

复制代码
subplot(2,1,2);
plot(t, filtered_x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Filtered Audio Signal in Time Domain');

总:

Matlab 复制代码
% 导入音频文件
filename = 'C:\Users\ahiii\Desktop\1.mp3'; % 替换为你的音频文件路径
[x, Fs] = audioread(filename);

% 获取音频信号长度
len = length(x);

% 计算时间轴
t = (0:len-1) / Fs;

% 绘制音频信号在时域上的波形图
figure;
plot(t, x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Audio Signal in Time Domain');

% 设计低通滤波器
cutoff_frequency = 2600; % 截止频率为2600 Hz
normalized_cutoff = cutoff_frequency / (Fs/2);
order = 8; % 滤波器阶数
[b, a] = butter(order, normalized_cutoff, 'low');

% 应用低通滤波器
filtered_x = filter(b, a, x);

% 绘制滤波后的音频信号在时域上的波形图
subplot(2,1,2);
plot(t, filtered_x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Filtered Audio Signal in Time Domain');

效果:

相关推荐
chase。3 分钟前
【学习笔记】RIGVid:通过模仿生成视频实现机器人操作,无需物理演示
笔记·学习·音视频
CC数学建模6 分钟前
2026年第十六届APMCM 亚太地区大学生数学建模竞赛(中文赛项)赛题C题:创业社区规划与资源配置优化问题完整思路、代码、模型、文章,全网首发高质量分享!
python·算法·数学建模
kyle~6 分钟前
DDS分布式实时系统---自省机制
开发语言·分布式·机器人·c#·接口·ros2
yujunl7 分钟前
Integrated Security=True(Windows 集成身份验证)
开发语言
右耳朵猫AI8 分钟前
Python周刊2026W23 | Polars 1.41、PyPy v7.3.23、Python 3.15、httpx2、dj-lite-tenant
开发语言·python
徐小夕8 分钟前
我们放弃了单Agent方案:HiCAD 3.0 用 Harness 做多Agent编排,把3D建模的准确率提升了30%
前端·算法·github
洛水水12 分钟前
【力扣100题】88.多数元素
数据结构·算法·leetcode
昭昭颂桉a14 分钟前
TypeScript 前端的必修课,从 JS 到 TS
开发语言·前端·javascript·typescript
何以解忧,唯有..16 分钟前
Go 语言安装与环境配置完整指南
开发语言·后端·golang
Shan120518 分钟前
无向图的Hierholzer算法流程(一)
算法