你能帮我去掉这个音频文件中的噪音吗?

539次浏览(最近30天)
克里斯托弗·范盖拉
克里斯托弗·范盖拉 2017年9月17日
评论道: 明星黾 2021年4月3日下午2点43分
我无法清除音频文件中的噪音 audio_sample.wav
我尝试使用“黄油”功能来尝试去除某些频率,以尽可能地减少噪音。
您将需要在MATLAB使用的搜索路径中包含音频文件。
代码将播放我的“当前解决方案”。
谢谢你的帮助。
在MATLAB中加载“audio_sample.wav”文件
[sample_data, sample_rate] = audioread(“audio_sample.wav”);
绘制信号的时间图及其频率的幅值
%组件使用FFT。
sample_period = 1 / sample_rate;
t = (0: sample_period:(长度(sample_data) 1) / sample_rate);
次要情节(2、2、1)
情节(t, sample_data)
标题(“时域表示-未过滤的声音”
包含(的时间(秒)
ylabel (“振幅”
xlim ([0 t(结束)))
m =长度(sample_data);%原始样本长度。
n = pow2 (nextpow2 (m));%将长度转换为
%抽样是2的幂。这可以使转换计算
%显著地快,特别是对于素数较大的样本容量
%的因素。
Y = fft(sample_data, n);
f = (0: n - 1) * (sample_rate / n);
振幅= abs (y) / n;
次要情节(2 2 2)
情节(f(1:地板(n / 2)),振幅(1:地板(n / 2)))
标题(“频域表示-未过滤的声音”
包含(“频率”
ylabel (“振幅”
% b.听音频文件。
%的声音(sample_data sample_rate)
%%2)过滤音频样本数据以去除信号中的噪声。
订单= 7;
[b] =黄油(订单,1000 / (sample_rate / 2)“低”);
filtered_sound =过滤器(b, a, sample_data);
声音(filtered_sound sample_rate)
t1 = (0: sample_period:(长度(filtered_sound) 1) / sample_rate);
次要情节(2,2,3)
情节(t1, filtered_sound)
标题(“时域表示-过滤的声音”
包含(的时间(秒)
ylabel (“振幅”
xlim ([0 t1(结束)])
m1 =长度(sample_data);%原始样本长度。
n1 = pow2 (nextpow2 (m1));%将长度转换为
%抽样是2的幂。这可以使转换计算
%显著地快,特别是对于素数较大的样本容量
%的因素。
Y1 = fft(filtered_sound, n1);
f = (0: n1-1) * (sample_rate / n1);
振幅= abs (y1) / n1;
次要情节(2,2,4)
情节(f(1:地板(n)),振幅(1:地板(n)))
标题(“频域表示法-过滤声音”
包含(“频率”
ylabel (“振幅”
2的评论
盛华cha
盛华cha 2021年4月3日下午2点39分
我最近在做一个实验。你的代码和文件可能对我有帮助。你能寄给我吗?

登录评论。

接受的答案

明星黾
明星黾 2017年9月18日
用频率选择滤波器是不可能消除宽带噪声的。你必须使用小波来有效地去噪。
我用这个过滤器得到了合理的结果 filtfilt 功能:
Fs = sample_rate;%采样频率(Hz)
Fn = f / 2;%奈奎斯特频率(Hz)
Wp = 1000 / Fn;通频带频率百分比(正规化)
Ws = 1010 / Fn;阻带频率百分比(归一化)
Rp = 1;通频带纹波百分比(dB)
Rs = 150;阻带纹波百分比(dB)
[n, Ws] = cheb2ord (Wp、Ws Rp, Rs);%过滤器订单
(z,磷、钾)= cheby2 (Ws n, Rs,“低”);%滤波器设计
[soslp, glp] = zp2sos (z,磷、钾);为稳定,转换为二级section
图(3)
freqz (Fs soslp 2 ^ 16日)%滤波波德图
Filtered_sound = filtfilt(soslp, glp, sample_data);
声音(filtered_sound sample_rate)
通过实验得到你想要的结果。
9日评论
明星黾
明星黾 2021年4月3日下午2点43分
宽带噪声去除需要小波去噪或使用Savitzky-Golay滤波器。
根据定义,频率选择滤波器不能做到这一点。

登录评论。

更多的答案(0)

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!