Предполагая, что у меня есть два сигнала (необработанные данные в виде файла excel), измеренные от двух разных источников питания, я хочу сравнить уровни шума этих сигналов, чтобы выяснить, какой из них является более шумным. Оба источника питания генерируют сигналы с одинаковой частотой, но количество точек данных отличается. Есть ли способ сделать это в MATLAB?Сравнение шума в MATLAB
0
A
ответ
0
Вы можете рассчитывать signal-to-noise ratio для каждого сигнала. Это всего лишь соотношение средней мощности сигнала и средней мощности шума, обычно измеряемой в децибелах. Идеальный бесшумный сигнал имел бы SNR = бесконечность.
Вспомните, что мощность сигнала - это всего лишь квадрат амплитуды сигнала, и для получения значения x
в децибелах, мы просто принимаем 10*log10(x)
.
SNR = 10*log10(mean(signal.^2)/mean(noise.^2));
Чтобы отделить сигнал от шума, вы можете запустить фильтр нижних частот по шуму.
Чтобы получить шум, вы можете просто вычесть чистый сигнал из шумного сигнала.
noise = noisy_signal - signal;
Я не знаю, как должен выглядеть фактический бесшумный сигнал. У меня только вход и выход (шумный сигнал). – Bartu