使用matlab在信号向量中添加噪声向量
Adding noise vector in a signal vector using matlab
我有两个向量。一种是噪音,一种是我的信号。如果我想将噪声向量添加到信号向量中,我该怎么做。我的噪声维度是 41001x1,我的信号是 88200x1。
这是生成您提到的维度的信号和噪声的代码:
time = (1:88200)';
sig = sin(0.005 * time);
noise = 0.1 * randn(41001, 1);
由于不能将两个相同长度的向量相加,我选择通过重复它来复制噪声信号,使其与 sig
:
的长度相同
multiplier = ceil(length(sig) / length(noise));
noise = repmat(noise, multiplier, 1);
noise = noise(1:length(sig));
现在 noise
和 sig
的长度相同,可以将它们相加并绘制在一起
plot(time, noise + sig)
在这个答案中,我假设 noise
和 sig
具有相同的采样率,但 noise
由于某种原因太短了。如果噪声信号的采样率不同,那么您可能希望使用 interp1
或重新采样以获得相同的采样率和点数。
我有两个向量。一种是噪音,一种是我的信号。如果我想将噪声向量添加到信号向量中,我该怎么做。我的噪声维度是 41001x1,我的信号是 88200x1。
这是生成您提到的维度的信号和噪声的代码:
time = (1:88200)';
sig = sin(0.005 * time);
noise = 0.1 * randn(41001, 1);
由于不能将两个相同长度的向量相加,我选择通过重复它来复制噪声信号,使其与 sig
:
multiplier = ceil(length(sig) / length(noise));
noise = repmat(noise, multiplier, 1);
noise = noise(1:length(sig));
现在 noise
和 sig
的长度相同,可以将它们相加并绘制在一起
plot(time, noise + sig)
在这个答案中,我假设 noise
和 sig
具有相同的采样率,但 noise
由于某种原因太短了。如果噪声信号的采样率不同,那么您可能希望使用 interp1
或重新采样以获得相同的采样率和点数。