У меня есть два вектора. Один для шума, а другой для моего сигнала. Если я хочу добавить вектор шума к вектору сигнала, как я могу это сделать. Мой размер шума 41001x1, а мой сигнал 88200x1.
я не могу. Я полагаю, что нужно добавить только эти два вектора
Тогда вам нужно объяснить, как это должно быть сделано! Matlab не может суммировать два вектора разной длины.
Вот код для создания сигнала и шума указанных вами размеров:
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
или выполнить повторную выборку, чтобы получить ту же частоту дискретизации и количество точек.
Почему бы не добавить случайный вектор того же размера, что и сигнал? Также вы должны предоставить минимальный и воспроизводимый пример, проверьте: Как создать минимальный воспроизводимый пример