Обсуждаем контроллеры компании Atmel.
Ответить

Re: FFT на Си для AVR

Сб дек 03, 2022 11:14:42

Интересно было бы посмотреть, как компаратор справится с таким сигналом.

Изображение

Re: FFT на Си для AVR

Сб дек 03, 2022 12:21:48

Отвечаю:
Когда мы нажимаем кнопку телефона, телефон пикает 2-х частотным DTMF, - одна из частот 852Гц. Есть файл с DTMF, при обработке я искуственно ограничил сигнал от -1 до +1:

if(pSignal[i]>0)//наш компаратор!!!
pSignal[i]=1;
else
pSignal[i]=-1;

Дальше свертка с импульсной характеристикой полосового фильтра 852Гц:

float y; int j;
for (int n=0; n<(int)numReaded; n++)
{
j=n;
y=0;
for(int i=0; i<=n; i++)
y +=pSignal[i]*pImp[j--];
}

Посмотрите на результат:
Вложения
Rez.jpg
(169.72 KiB) Скачиваний: 57

Re: FFT на Си для AVR

Сб дек 03, 2022 13:33:30

Jurabay, вы просто не учитываете, что реальный речевой или музыкальный сигнал не похож на DTMF по своей природе и по тому, что содержит.

Re: FFT на Си для AVR

Сб дек 03, 2022 14:22:07

Хорошо, согласен: компаратор - одноразрядный АЦП.
А для тех, кто на бронепоезде, еще фрагмент программы на AVR.
.......
Вот почему я не люблю заходить на русскоязычные форумы, не разобравшись, начинают ярлыки вешать и заставляют защищаться по типу:
"Ты сам дурак".

Обычно свою точку зрения защищают не фрагментами кода, который никакого отношения к теме не имеет, а конкретными ответами по существу.
По существу в моей критике в ваш адрес был показан динамический диапазон одноразрядного АЦП.
По существу в моей критике в ваш адрес было заявлено, что наличие сигнала в бинах Фурье определяется разрядностью обработки и спектральным составом сигнала. То есть обеспечить, например, единственную "палку" в бинах при разрядности 10 - элементарно.
У меня есть серийное изделие (РЧ ПКС моно), в котором имеется 40 мспс АЦП и делается девятиточечный ДПФ. Если обнаруживаемая метка имеет центральную частоту бина, то кроме сигнала в этом бине ничего не наблюдается, как и при отсутствии сигналов вообще. И это примерно 50 дБ динамики.

Re: FFT на Си для AVR

Сб дек 03, 2022 17:14:38

Давайте вспомним аналоговый фильтр, ему все равно, что мы подадим на вход, прямоугольный сигнал или смесь синусоид с шумом,
он свое дело сделает, выделит сигнал на который он настроен. Так же и цифровой фильтр и БПФ и просто ПФ. И дело здесь не в
разрядности АЦП. Согласен, если делать цветомузыку, то и компаратора хватит, а если нужно распознавать голос, то нужен
высокоскоростной АЦП.

"наличие сигнала в бинах Фурье определяется разрядностью обработки и спектральным составом сигнала" - масло масляное, типа "Спектр определяется спектральным составом сигнала.

"то кроме сигнала в этом бине ничего не наблюдается, как и при отсутствии сигналов вообще" - а это вообще шедевр.

Автору топика посоветую почитать Лайонса "Цифровая обработка сигналов", это моя настольная книга и там Фурье разжевано от и до.
В моих устройствах нет АЦП, вернее есть, но я его не использую, скорость мала. Все сигналы идут через компаратор,а дальше цифровые фильтры, и все работает как ни странно! Частоты выделяются, ключи срабатывают, моторы включаются.


P.S.Пойду в CS поиграю, а то голова болит от вашего Фурье.

Re: FFT на Си для AVR

Сб дек 03, 2022 18:11:27

Но вся частотная информация сохранится, анализируем.


Начнем с простого. Одно дело - принять решение, есть ли в спектре сигнала какая-то заранее известная частота, и другое - получить истинный спектр сигнала.

Для первого решение с компаратором вполне может подойти. И декодирование DTMF как раз такой случай - сетка частот заранее известна, соотношение сигнал/шум огромное. Потому в те годы, когда контроллеры с нормальными АЦП еще не существовали или были дороги, люди шли на компромисс и использовали компаратор. Хотя даже для декодирования DTMF гораздо лучше подойдет преобразование Гёрцеля.

Однако, как уже говорилось, компаратор - это однобитный АЦП, соответственно, его динамический диапазон составит всего 6 дБ. Дальше, говоря формально, начинаются искажения, вызванные насыщением и шумом квантования.

Искажения будут выражаться прежде всего в появлении дополнительных гармоник. Во что превращается синус, пройдя через компаратор? Правильно, в прямоугольник. То есть, помимо основного тона мы получаем набор нечетных гармоник. У вас там в коде идет активная фильтрация, которая разбирается в том числе и с этой проблемой.

Вывод: однобитный АЦП серьезно искажает входной сигнал. Спектр сигнала, квантованного по двум уровням, не будет соответствовать спектру исходного сигнала. Хотя для некоторых целей и такой результат может сгодиться.
Последний раз редактировалось YS Сб дек 03, 2022 20:04:55, всего редактировалось 2 раз(а).

Re: FFT на Си для AVR

Сб дек 03, 2022 18:42:14

"наличие сигнала в бинах Фурье определяется разрядностью обработки и спектральным составом сигнала" - масло масляное, типа "Спектр определяется спектральным составом сигнала.

Милостивый государь, достаточно нескольких сказанных вами глупостей, чтобы однозначно продетектировать в вас полуграмотного дилетанта.
Вы не отличаете спектральный состав сигнала от результата дискретного предобразования Фурье. У вас это типа одно и тоже. :tea: :)))
"то кроме сигнала в этом бине ничего не наблюдается, как и при отсутствии сигналов вообще" - а это вообще шедевр.

Вообще то это ответ на ваше:
Jurabay писал(а):Если проводить БПФ с реальным сигналом, ни одного бина с нулевой амплитудой вы не получите, проверено практикой

Я вам резонно ответил, что это чушь. И объяснил почему. А ваша последующая реакция лишь подтвердила мой вывод о ваших "познаниях" в этой области.
В моих устройствах нет АЦП, вернее есть, но я его не использую, скорость мала. Все сигналы идут через компаратор,а дальше цифровые фильтры, и все работает как ни странно! Частоты выделяются, ключи срабатывают, моторы включаются.

Очередная пурга. Вы бездарно путаете разрядность (определяющую динамический диапазон) и скорость (частота дискретизации). Это совершенно ортогональные в данном случае понятия. А если учесть бюджет устройства, то чем ниже скорость АЦП (ниже требуемая частота дискретизации), тем проще использовать высокоразрядный АЦП и получить большой динамический диапазон. А вот на высоких частотах дискретизации разрядность АЦП приходится понижать (цены на конвейерные обычно стартуют от 7...9 долларов за 10 бит) , дабы сэкономить бюджет. И применение однобитного параллельного АЦП, коим действительно является компаратор, является такой экономией.
Такшта учебник нужно читать вам. Ибо вы нахватались оттуда отрывочной информации, а целостной картины так и не познали.

Re: FFT на Си для AVR

Сб дек 03, 2022 19:00:47

если нужно распознавать голос, то нужен
высокоскоростной АЦП..

Высокоскоростной? Простите, на 20 МГц достаточно для голоса, или надо до 100 МГц искать? :)
Да не высокоскоростной, а просто более чем 1-битный :))) 8-битный АЦП до пары-тройки десятков килогерц достаточно для голоса.

Ну ошибся господин малёхо, ну подумал что детектор DTMF сингала то же самое что и анализатор спектра случайного непериодического сигнала.

Re: FFT на Си для AVR

Сб дек 03, 2022 20:20:24

В догон, не сразу заметил:
Отвечаю:
бла...бла...бла...
Дальше свертка с импульсной характеристикой полосового фильтра 852Гц:
бла...бла...бла...
float y;
бла...бла...бла...
Посмотрите на результат:

Стесняюсь спросить - а флоат тут зачем? :dont_know: :facepalm:
То есть на входе 6 дБ, а ДПФ делаем во флоатах?... Это эпично... :)))
Ладно бы Гёрцеля считал. Там устойчивость нужна, а для этого необходима разрядность...

Re: FFT на Си для AVR

Вс дек 04, 2022 19:28:51

Написал и eщe раз напишу:

"Если проводить БПФ с реальным сигналом, ни одного бина с нулевой амплитудой вы не получите, проверено практикой"

Вы на практике проводили БПФ с реальным сигналом? Ну нету там ни одной нулевой частоты, чтобы вы не говорили!
Маленькие, но все же не нулевые!!!

Добавлено after 12 minutes 15 seconds:
To KРАМ:
"Ибо вы нахватались оттуда отрывочной информации, а целостной картины так и не познали."

Ибо целостную картину познали только вы да Максвелл, куда уж нам.


Вопрос был какой? FFT для AVR!!! Давайте сделаем хотя бы цветомузыку для елки через преобразование Фурье? А потом посмотрим целостную картину?

Re: FFT на Си для AVR

Вс дек 04, 2022 19:37:45

Вы на практике проводили БПФ с реальным сигналом?

Милейший, вы вообще русский язык понимаете?
Еще раз русским по белому. С подробностями.
У меня почти все разработки так или иначе используют цифровую фильтрацию. В 90% это ДПФ. БПФ я в серийных изделиях не применял за ненадобностью, но у меня есть и "бабочка" БПФ написанная на АСМе для DSP ядра dsPIC33.
Среди изделий использующих ДПФ я привел пример радиочастотной противокражной системы так называемого "моно" типа. То есть одна антенна является и приемником и передатчиком, в отличии от свипирующих РЧ систем.
В этой системе анализируется отклик от противокражной метки в диапазоне 7,7...8,7 МГц. В ДЕВЯТИ фильтрах. С помощью ДПФ. При фиксированной частоте дискретизации примерно 33 МГц.
При отсутствии меток в зоне детекции системы в фильтрах наблюдаются ПОЛНЫЕ НУЛИ. В стандартной помеховой обстановке, естественно. И при отсутствии перегрузки сигналом (когда метка почти вплотную к антенне) наблюдается ЕДИНСТВЕННЫЙ сигнал в одном фильтре, если конечно метка попадает только в этот фильтр, естественно. Остальные фильтры абсолютно пусты. Динамика анализа около 50 дБ.
Желаете посмотреть видео? Правда только завтра. 8)
Но это все беллетристика и флуд. По существу задачей спектрального анализа является не обнаружение НАЛИЧИЯ, а КОЛИЧЕСТВЕННОЕ измерение. И желательно в максимально возможном динамическом диапазоне. Это основная цель Фурье анализа.
В том числе и в приборах, которые называются "Анализатор спектра реального времени"...
Учите матчасть.
ЗЫ. И не стоит переобуваться в прыжке. Вы привели пример с АОНом, в котором и используется обычный ДПФ (а не БПФ) с оконной функцией косинусного типа. Это та самая "свертка с импульсной характеристикой фильтра", есличо... :wink:
Я же всего лишь скромно прокомментировал ваши графоманские эпистолии сообществу... :tea:

Re: FFT на Си для AVR

Вс дек 04, 2022 19:58:42

Ваш русский понять очень сложно:
"Вы привели пример с АОНом, в котором и используется обычный ДПФ (а не БПФ) с оконной функцией косинусного типа. Это та самая "свертка с импульсной характеристикой фильтра", есличо..."

Мой русский прост:
1.Компаратор AVR для анализатора спектра использовать можно.
2.Пойду сделаю цветомузыку через компаратор и ДПФ.

За сим разрешите откланяться, вернусь, когда сделаю.

Re: FFT на Си для AVR

Вс дек 04, 2022 20:02:34

...использовать можно.
...Пойду сделаю цветомузыку

А кто то спорил с тем, что можно делать глупости, накапливая однобитные отсчеты в байтном ОЗУ и ограничивая динамику 6-ю децибелами, рассчитывая эти 6дБ во флоатах на AVR...? :music:
Пешы исчо.

Re: FFT на Си для AVR

Вс дек 04, 2022 21:41:24

WiseLord спросил, как компаратор справится с двухтональным сигналом.
Я показал на примере DTMF, что компаратор справился.
На картинке же видно!

Float тут ни при чем, это же пример обработки после компаратора с прямоугольным двухтональным сигналом!
И WiseLord молчит, а вы со своими заумными речами уводите от сути проблемы!
Последний раз редактировалось Jurabay Вс дек 04, 2022 21:49:31, всего редактировалось 1 раз.

Re: FFT на Си для AVR

Вс дек 04, 2022 21:47:40

WiseLord спросил, как компаратор справится с двухтональным сигналом.

WiseLord предложил не просто двухтональный сигнал, он предложил двухтональный сигнал с двухкратным соотношением частот и двухкратным соотношением амплитуд. Однако вы по простоте душевной и по причине слабого владения темой ничего не поняли. Это НЕ DTMF. Я бы предолжил трехкратное соотношение частот и амплитуд. Кагбэ очевидно, что ограничитель в виде компаратора не отличит отсутствие или наличие утроенной частоты.

Re: FFT на Си для AVR

Вс дек 04, 2022 21:54:00

Попробую, напишу.

Re: FFT на Си для AVR

Вс дек 04, 2022 22:02:27

Попробую

Стоит ли?
:))) :))) :)))

Изображение

Re: FFT на Си для AVR

Вс дек 04, 2022 23:06:10

LTSpice у меня есть, но я проверил программно, да, такой сигнал компаратор примет за одночастотный.
Спасибо, для себя делаю вывод: надо осторожно подходить к выбору частот для управления чем либо, недаром DTMF так разнесены по частотам.

Re: FFT на Си для AVR

Пн дек 05, 2022 04:44:43

Может проще и эффективнее использовать АЦП?
И не стоит проверять то, что очевидно из общей теории... тем более, что кроме соотношения частот и амплитуд может быть еще и разный фазовый сдвиг. И есть возможность получить частный случай якобы рабочего варианта. Метод перебора - плохой метод. Слишком много вариантов.

Re: FFT на Си для AVR

Пн дек 05, 2022 08:45:58

Вторую пачку попкорна сгрыз. Интересно чем закончится это кино.
Ответить