2015-03-11 1 views
0

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

+0

Я не знаю, как должен выглядеть фактический бесшумный сигнал. У меня только вход и выход (шумный сигнал). – Bartu

ответ

0

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

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

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

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

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

noise = noisy_signal - signal;