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');

效果:

相关推荐
linux kernel8 分钟前
第七讲:C++中的string类
开发语言·c++
小兔子酱#9 分钟前
音频 SDP 文件格式
音视频
jz_ddk9 分钟前
[实战]调频(FM)和调幅(AM)信号生成(完整C语言实现)
c语言·算法·信号处理
玩代码22 分钟前
Java线程池原理概述
java·开发语言·线程池
CloudAce云一25 分钟前
谷歌云代理商:谷歌云TPU/GPU如何加速您的AI模型训练和推理
算法
泰勒疯狂展开37 分钟前
Java研学-MongoDB(三)
java·开发语言·mongodb
zzywxc78744 分钟前
AI技术通过提示词工程(Prompt Engineering)正在深度重塑职场生态和行业格局,这种变革不仅体现在效率提升,更在重构人机协作模式。
java·大数据·开发语言·人工智能·spring·重构·prompt
高hongyuan1 小时前
Go语言教程-占位符及演示代码
开发语言·后端·golang
轻语呢喃1 小时前
每日LeetCode : 杨辉三角
javascript·后端·算法
萝卜青今天也要开心1 小时前
2025年上半年软件设计师考后分享
笔记·学习