【发布时间】:2013-04-12 16:24:13
【问题描述】:
我正在尝试使用以下方法在 matlab 中为语音信号(.wav 文件)添加噪声:
load handel.mat;
hfile= 'noisy.wav';
y = wavread('daveno.wav');
y = y + randn(size(y)) * (1/100);
wavwrite(y, Fs, hfile);
nsamples=Fs;
这增加了噪音,但是,它消除了实际的语音,因此只包含噪音。我是否需要乘以更大的数字,或者,有人可以提出解决此问题的方法吗?
【问题讨论】:
-
如果你在添加噪音的地方不加线,它会起作用吗?如果是这样,那么您可能只需要幅度较小的噪声。也许你可以试试
y = y + randn(size(y)) * (max(abs(y)/100)); -
@Dan 感谢您的回复。当我离开添加噪音的线路时,它会完全扰乱信号,因为它听起来像一个机器人,而且时间完全没有了。有什么建议吗?
-
Fs是什么,可能您的采样频率不够高。也许尝试[y, Fs] = wavread('daveno.wav')得到一个好的Fs? -
@Dan 你可能是对的。有没有办法在读取时读取采样率,并保持它,然后以相同的采样频率写入?
-
@Dan 知道了 :) 请将您的评论作为答案,我会接受!感谢您的帮助
标签: matlab file-io signal-processing noise