Сравнение шумов в MATLAB

Предполагая, что у меня есть два сигнала (исходные данные в виде файла Excel), измеренные от двух разных источников питания, я хочу сравнить уровни шума этих сигналов, чтобы выяснить, какой из них самый шумный. Оба блока питания генерируют сигналы с одинаковой частотой, но количество точек данных различно. Есть ли способ сделать это в MATLAB?

1 ответ

Вы можете рассчитать отношение сигнал / шум для каждого сигнала. Это просто отношение средней мощности сигнала к средней мощности шума, обычно измеряемой в децибелах. Идеальный бесшумный сигнал будет иметь SNR = бесконечность.

Напомним, что мощность сигнала является просто квадратом амплитуды сигнала, и чтобы получить значение x в децибелах, мы просто берем 10*log10(x),

SNR = 10*log10( mean(signal.^2)/mean(noise.^2) );

Чтобы отделить сигнал от шума, вы можете запустить фильтр нижних частот над шумовым сигналом.

Чтобы получить шум, вы можете просто вычесть чистый сигнал из шумного сигнала.

noise = noisy_signal - signal;
Другие вопросы по тегам