Native x86
Эксперт Hardware
 Аватар для quwy
6859 / 3791 / 1026
Регистрация: 13.02.2013
Сообщений: 11,861

Вычисление SNR

07.03.2025, 01:31. Показов 2407. Ответов 13
Метки fft, snr (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

Есть тут знающие люди, которые подскажут алгоритм измерения SNR?

Сейчас делаю так:
1. Раскладываю буфер по Фурье
2. Вычисляю модули амплитуд спектральных составляющих по формуле sqrt(sqr(buf[even]) + sqr(buf[odd])) / Count
3. Суммирую амплитуду всех спектральных составляющих кроме контрольной
4. Делю амплитуду контрольной частоты на сумму из предыдущего пункта

В качестве источника сигнала у меня сгенерированный звуковым редактором файл, в котором смешан синус 1000 Гц с амплитудой 0.2 (контрольная частота) и белый шум с той же амплитудой:


На спектре, который строит моя программа, это выглядит так:


Как видно, амплитуда контрольной частоты соответствует заданному уровню. Шумы размазаны по спектру и их почти не видно.

Но результат расчета SNR получается в районе 0.03, хотя должен быть равен единице. То есть суммарная амплитуда шумовых составляющий намного выше, чем амплитуда контрольного сигнала. Хотя если судить по уровню контрольного сигнала на спектре, вычисляется амплитуда правильно, утечки тоже почти нет.

Куда копать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.03.2025, 01:31
Ответы с готовыми решениями:

[VHDL] Вычисление арктангенса угла по заданной таблице тангенсов
Столкнулся с такой задачей: Требуется написать блок вычисления арктангенса угла по заданной таблице тангенсов. Таблица определена в виде...

Intel 8080 (КР580ВМ80А). Вычисление модуля числа
Помогите пожалуста,нужно сложить програму вычесления модуля числа, что находится в памяти за адресой 0ВАА0Н.для i8080.подскажите как...

EWB. Вычисление разности кодов на АЛУ 74181
В Electronics Workbench, используя микросхему АЛУ 74181 и два 4-х разрядных регистра 74175 (Quad D-type FF (clr)) собрать схему вычисления...

13
4054 / 2665 / 583
Регистрация: 11.09.2009
Сообщений: 9,515
07.03.2025, 02:02
Что такое
Цитата Сообщение от quwy Посмотреть сообщение
/ Count
в расчёте модуля амплитуды спектральной составляющей?
0
173 / 141 / 36
Регистрация: 09.01.2018
Сообщений: 1,073
07.03.2025, 08:22
Цитата Сообщение от quwy Посмотреть сообщение
То есть суммарная амплитуда шумовых составляющий намного выше, чем амплитуда контрольного сигнала.
Это что значит? Вы сумму всех частот делите на одну частоту? (топорно формулировал, но думаю ясно)

Добавлено через 1 минуту
Цитата Сообщение от quwy Посмотреть сообщение
Но результат расчета SNR получается в районе 0.03, хотя должен быть равен единице.
Как определили что д.б. равен 1?
0
Native x86
Эксперт Hardware
 Аватар для quwy
6859 / 3791 / 1026
Регистрация: 13.02.2013
Сообщений: 11,861
07.03.2025, 14:06  [ТС]
Цитата Сообщение от i8085 Посмотреть сообщение
Что такое
Нормализация амплитуд, чтобы результаты разложения были в диапазоне от 0 до 1.
Правда, тут забыл дописать, что еще на 2 умножается, т.к. обрабатывается половина спектра (вторая половина -- зеркальная и ее игнорируем):

https://www.cyberforum.ru/cgi-bin/latex.cgi?2\frac{\sum_{0}^{count/2-1}\sqrt{{buf[even]}^{2}+{buf[odd]}^{2}}}{count}

Не по теме:

был же когда-то нормальный редактор формул, теперь эта неюзабельная хрень



Цитата Сообщение от ViktorArs Посмотреть сообщение
Вы сумму всех частот делите на одну частоту?
Грубо говоря -- да (на самом деле там некоторая полоса частот, плюс вычитаю шумы из-под полезного сигнала и плюсую их к остальным шумам, но это на результат влияет не сильно).

Цитата Сообщение от ViktorArs Посмотреть сообщение
Как определили что д.б. равен 1?
Я сам сформировал исходный сигнал из синусоиды и шума равных амплитуд.

Добавлено через 7 минут
А вопрос решен, я забыл в квадрат взять элементы спектра перед суммированием. То есть просуммировал амплитуды, а не мощности. После добавления квадратов отношение стало стремиться к 1.
0
4054 / 2665 / 583
Регистрация: 11.09.2009
Сообщений: 9,515
07.03.2025, 16:41
Что такое
Цитата Сообщение от quwy Посмотреть сообщение
/ Count
в расчёте модуля амплитуды спектральной составляющей?
Цитата Сообщение от quwy Посмотреть сообщение
Нормализация амплитуд
Как вы считаете Count?
0
Native x86
Эксперт Hardware
 Аватар для quwy
6859 / 3791 / 1026
Регистрация: 13.02.2013
Сообщений: 11,861
07.03.2025, 19:29  [ТС]
Цитата Сообщение от i8085 Посмотреть сообщение
Как вы считаете Count?
Это количество элементов спектра на выходе FFT.
0
4054 / 2665 / 583
Регистрация: 11.09.2009
Сообщений: 9,515
07.03.2025, 20:50
Цитата Сообщение от quwy Посмотреть сообщение
количество элементов
Количество точек в буфере, что ли? Или количество чего? Как считается Count? Чему равен в вашем примере?
0
173 / 141 / 36
Регистрация: 09.01.2018
Сообщений: 1,073
07.03.2025, 22:40
Цитата Сообщение от quwy Посмотреть сообщение
Грубо говоря -- да (на самом деле там некоторая полоса частот, плюс вычитаю шумы из-под полезного сигнала и плюсую их к остальным шумам, но это на результат влияет не сильно).
Даже если просто в вики посмотрть, там написано - "среднеквадратичное". Хотя что-то подобное вы после написали. Так СКВ или нет?
Цитата Сообщение от quwy Посмотреть сообщение
Я сам сформировал исходный сигнал из синусоиды и шума равных амплитуд.
Что такое шум с амплитудой к примеру 5 вольт? Чисто мое мнение амплитуда и шум вещи не особо совместимые. Однако в понятие такое вводится. Но возникает вопрос и как же конкретно вы его задавали? Если согласно определению, которое всетаки имеет место, то вероятно 1 не получится. Хотя справедливости ради надо сказать, что никогда этим вопросом не занимался, и не рассчитывал. Чисто интуитивные рассуждения.
0
4054 / 2665 / 583
Регистрация: 11.09.2009
Сообщений: 9,515
07.03.2025, 23:09
Цитата Сообщение от ViktorArs Посмотреть сообщение
шум с амплитудой ... то вероятно 1 не получится
Сойдётся только если суммировать амплитуды всех гармоник этого шума, гармоник во всей полосе частот, занимаемой этим шумом. Если шум нарисован, то его ширина спектра скорее всего бесконечна, а при FFT будет выделена только заданная шириной окна полоса частот, и это условие не выполнится, сумма ничему соответствовать не будет.
0
173 / 141 / 36
Регистрация: 09.01.2018
Сообщений: 1,073
09.03.2025, 18:16
Ия о том же, только не столь научно и внятно
0
Native x86
Эксперт Hardware
 Аватар для quwy
6859 / 3791 / 1026
Регистрация: 13.02.2013
Сообщений: 11,861
10.03.2025, 15:00  [ТС]
Цитата Сообщение от i8085 Посмотреть сообщение
Количество точек в буфере, что ли?
Да.

Цитата Сообщение от ViktorArs Посмотреть сообщение
Так СКВ или нет?
Квадратичное усреднение используется для преобразования комплексного спектра в реальный. Далее суммирую квадраты полученных элементов спектра в полосе сигнала, квадраты элементов за пределами полосы. Делю первое на второе, получаю С/Ш.

Все, что я изначально сделал неправильно -- это забыл возвести каждый элемент в квадрат перед суммированием.

Цитата Сообщение от ViktorArs Посмотреть сообщение
Что такое шум с амплитудой к примеру 5 вольт? Чисто мое мнение амплитуда и шум вещи не особо совместимые.
В стартовом сообщении есть примеры волн. Сигнал, шум, и результат смешивания.

Цитата Сообщение от i8085 Посмотреть сообщение
Если шум нарисован, то его ширина спектра скорее всего бесконечна, а при FFT будет выделена только заданная шириной окна полоса частот, и это условие не выполнится, сумма ничему соответствовать не будет.
Ширина спектра именно "нарисованного" шума жестко ограничена частотой дискретизации. Это не оцифровка реального шума без ФНЧ.

Результат работы алгоритма на скрине (входной сигнал из первого сообщения), мне этого более чем достаточно.
0
173 / 141 / 36
Регистрация: 09.01.2018
Сообщений: 1,073
10.03.2025, 21:13
Цитата Сообщение от quwy Посмотреть сообщение
В стартовом сообщении есть примеры волн. Сигнал, шум, и результат смешивания.
Я к тому, что бывает синус с амплитудой. Бывает меандр с амплитудой. А шум - это хаотично совершаемые колебания. Параметра частоты нет. Параметра амплитуды (имхо) тоже нет. Шум определяется статистическими характеристиками.
PS: Хотя повторю, про амплитуду, это я так считаю, но в учебниках определенное понятие амплитуды шума встречается.

Добавлено через 1 минуту
Цитата Сообщение от quwy Посмотреть сообщение
мне этого более чем достаточно
0
5521 / 2874 / 571
Регистрация: 07.11.2019
Сообщений: 4,767
11.03.2025, 06:27
ViktorArs, это у гауссовского белого шума нет амплитуды, а, например, у белого шума с равномерным распределением - есть.
0
173 / 141 / 36
Регистрация: 09.01.2018
Сообщений: 1,073
11.03.2025, 08:07
Да понятно. Просто у меня к этому отношение не очень. Любой шум - понятие статистическое, и применение к нему понятий четко детерминированных вызывает диссонанс.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.03.2025, 08:07
Помогаю со студенческими работами здесь

Чем отличается вычисление БПФ с прореживанием по времени и частоте?
Мне для зачета задали десять вопросов, и на вот эти я не могу ответить. Подскажите. 1) Я вложил картинку(справа полюса, слева нули), в...

Вычисление коэффициентов БИХ фильтров
Добрый день! В настоящее время ушел в обработку дискретных сигналов (аудиозаписей). Никак не могу разобраться с тем, как рсчитать...

Вычисление значения функции Z на MCS-51
(НА ЯЗЫКЕ C) Вычислить значение функции Z(X=0...255, Y=0...255): Z= 1,x - y - четное o,x - y -нечетное

Вычисление логической функции в МК AT90S2313
В ячейке SRAM з ADR1 (C4) расположен код (3F). Записать в кодах МК AT90S2313 програму, которая выполняет вычисление заданой логической...

Вычисление полинома 3-й степени в Quartus II
Совсем новичок в ПЛИС а особенно в их математике. Подскажите пожалуйста как оптимальнее рассчитать полином вида: p = c0 + x*(c1 +...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru