реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> AtMega, спектральный анализ
SasaVitebsk
сообщение Jan 29 2009, 18:41
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Пробовал таким способом реализовывать DTMF декодирование. Время распознавания - в десятки раз. Выделение на фоне шума в разы хуже.
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение Jan 29 2009, 18:50
Сообщение #17


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



Не забудьте и окно в flash-memory в таблицу записать, чтобы потом на него умножать.


--------------------
ASB
Go to the top of the page
 
+Quote Post
GDI
сообщение Jan 30 2009, 07:34
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата(ssvSerge @ Jan 29 2009, 17:40) *
Модификация не в преобразовании, а в исполнении.
Суть в том, что таблицу для умножений можно держать
одну, а не две и не 22. Даже в том случае, когда надо
вычислять не одну частоту, а несколько.
По-моему это вообще первое что сделали люди еще в прошлом веке когда делали первые реализации ДПФ на компьютерах, ибо в те времена большие компьютеры имели столько памяти как современные контроллеры не самого высокого уровня, причем там не было быстрого флеша smile.gif. Вопрос только в размере таблицы, удобно иметь таблицу синуса на 3/4 периода из которой без лишних телодвижений можно выделить половину синуса и косинуса.

Цитата(ssvSerge @ Jan 29 2009, 17:40) *
А вообще хочется автору (GDI) поставить плюсик. Жаль тут это
не предусмотрено.


Сергей.

А за это спасибо.smile.gif
Очень приятно, Дмитрий.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 30 2009, 08:00
Сообщение #19


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(SasaVitebsk @ Jan 29 2009, 22:41) *
Пробовал таким способом реализовывать DTMF декодирование. Время распознавания - в десятки раз. Выделение на фоне шума в разы хуже.

Что-то не так, потому что когда  я делал подобные вещи - у меня и в 1-битном варианте(а-ля АОН), и в 8-битном никаких замечаний. И это все-же назывался корреляционный прием. Единственная сложность была - при отсутствии сигнала в канале все равно ведь на выходных суммах были свои максимумы - втупую не получалось, надо было отслеживать изменения накопленных сумм и вводить некие пороги срабатывания - задача не из приятных, потому что на большее не хватало времени. Время накопления + небольшой кусок пост-обработки составляло 10мС
ЗЫ для 256 входных отсчетов, ессно.
Go to the top of the page
 
+Quote Post
AnisimovSlava
сообщение Jan 30 2009, 11:46
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 28-01-09
Из: Ukraine, Kiev
Пользователь №: 44 060



Рассказываю.
Испытали метод ssvSerge. Вначале в Excel, а потом в микроконтроллере. Проверяли наличие/отсутствие помехи на 1КГц. Определение 100% и при крутых шумах. Метод принят на вооружение. Вот только одно "но" таблица выборки растет не по дням, а по часам. Я добавил три частоты для анализа и таблица выросла почти втрое. Эдак никакой памяти не хватит.

P.S. Поправил. Решил уточнить.
Таблицу сделали 16 бит (после ADC 10 бит) и отсчеты делали в течении одной секунды.

Сообщение отредактировал AnisimovSlava - Jan 30 2009, 11:55
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 30 2009, 12:16
Сообщение #21


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(AnisimovSlava @ Jan 30 2009, 14:46) *
Я добавил три частоты для анализа и таблица выросла почти втрое. Эдак никакой памяти не хватит.

Попробуйте "саморазворачивающийся синус" основанный на решении разностного уравнения Y[n]= B*Y[n-1] - Y[n-2]


Подробности - где-то в старых микрочиповских аппликухах. Поищите, я уж не помню как оно называлось
Go to the top of the page
 
+Quote Post
Allregia
сообщение Jan 30 2009, 12:33
Сообщение #22


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(AnisimovSlava @ Jan 28 2009, 13:24) *
Существует большое количество устройств, на базе ATmega32. Недавно, после совещания, шеф потребовал "добавить" спектральный агнализ принимаемого сигнала (не реал-тайм).
Фурье в ATmega32... Кажется абсурдом.


Хм. Все зависит от частот сигнала, разрешения спекроанализатора и прочего.
Может кому-то это на АтМега32 и кажется абсурдом, но 20 с лишним лет назад 8-битный Z80, который никак не РИСК, и без аппаратного умножения, и с тактовой 3.5мгц - легко выполнял задачу спектроанализатора музыкального сигнала на компутере Sinclair ZX Spectrum smile.gif
Причем не только "спектроанализировал" в реалтайме, но еще и на экране рисовал "столбики".

Ну да, при однобитном входном сигнале с компаратора smile.gif Но результат-то был...
Так что - все зависит от того, а что собственно получить надо?
Go to the top of the page
 
+Quote Post
ssvSerge
сообщение Jan 30 2009, 14:22
Сообщение #23


Частый гость
**

Группа: Участник
Сообщений: 95
Регистрация: 22-01-09
Пользователь №: 43 819



Цитата(AnisimovSlava @ Jan 30 2009, 14:46) *
Испытали метод.
Определение 100% и при крутых шумах. Метод принят на вооружение.

Иначе и быть не может. Математика - штука сильная.


Цитата(AnisimovSlava @ Jan 30 2009, 14:46) *
Таблицу сделали 16 бит (после ADC 10 бит).
Проверяли наличие/отсутствие помехи на 1КГц.

Вы меня, конечно, простите, но либо я вас не понял, либо вы с
трудом представляете что делаете.

У вас таблица 16 бит, значит, вы использовали 32-х битное
умножение. Иначе вам проще урезать ваши 10 бит АЦП до 8-ми.

И потом вы целую серию выборок умножали? Вы уверены, что у
вас не хватает ресурсов на классическое БПФ?

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

Цитата(AnisimovSlava @ Jan 30 2009, 14:46) *
Вот только таблица выборки растет не по дням, а по часам.
Я добавил три частоты для анализа и таблица выросла почти втрое.
Эдак никакой памяти не хватит.

Пробуйте выбирать не точные значения, а ближайшие.
Если ошибка будет в допустимых для вас пределах, то
так и оставляйте. Если же нет, то добавляйте новоую позицию
в таблицу.

Это приведет к девиации опорных значений. Результат -
расползание спектра. Т.е. пик вы получите значительно
меньше, чем в правильном случае. Это я к тому, что оценивать
вам надо будет не промежуточный результат, а самый конечный,
который у вас будет.

Сергей.
Go to the top of the page
 
+Quote Post
AnisimovSlava
сообщение Feb 1 2009, 23:05
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 28-01-09
Из: Ukraine, Kiev
Пользователь №: 44 060



Несколько дней пробовал разобраться в быстром преобразовании фурье.
Никак не разберусь можно ли его реализовать в целочиселнной математике.
Если да, то ткните носом.
Go to the top of the page
 
+Quote Post
ARV
сообщение Feb 2 2009, 06:44
Сообщение #25


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(AnisimovSlava @ Feb 2 2009, 02:05) *
Несколько дней пробовал разобраться в быстром преобразовании фурье.
Никак не разберусь можно ли его реализовать в целочиселнной математике.
Если да, то ткните носом.
несколькими постами ранее советовали обратить внимание на библиотеку Элм-Чена, и ссылку давали... и я немножко комментировал эту библиотеку.
достаточно быстрая и с приемлемой (по крайней мере для моих задач) точностью работает.


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 2 2009, 07:27
Сообщение #26


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Несколько дней пробовал разобраться в быстром преобразовании фурье.
Никак не разберусь можно ли его реализовать в целочиселнной математике.


Вы бы огласили, сколько Вам полос нужно в заявленном диапазоне.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
ASZ
сообщение Feb 7 2009, 06:06
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 302
Регистрация: 24-07-06
Из: Донецк, Украина
Пользователь №: 19 042



Цитата(ARV @ Feb 2 2009, 09:44) *
несколькими постами ранее советовали обратить внимание на библиотеку Элм-Чена, и ссылку давали... и я немножко комментировал эту библиотеку.
достаточно быстрая и с приемлемой (по крайней мере для моих задач) точностью работает.

Если не секрет, какую максимальную погрешность дает?
Go to the top of the page
 
+Quote Post
Dx!
сообщение Feb 7 2009, 20:17
Сообщение #28


Частый гость
**

Группа: Участник
Сообщений: 108
Регистрация: 6-02-09
Из: Новочеркасск
Пользователь №: 44 469



Цитата(ASZ @ Feb 7 2009, 09:06) *
Если не секрет, какую максимальную погрешность дает?

Тестировал у себя на AT90USB1287 билиотеки от elm-chan (http://elm-chan.org/works/akilcd/report_e.html) - Точность нужно мерять, но работает реалтайм, дает до 1024 отсчета (512 "полосок" спектра), давал частоты с звуковухи, выделял основную частоту и выводил на LCD - работает. Получилось частота дискретизации около 16кГц, соответственно эффективное окно спектра около 8кГц, всё, что выше, "отражается" и опять ползет вниз - нужен ВЧ фильтр, хотябы емкость. Точность оценить не берусь - неполучилось точно определить частоту дискретизации, но вывод практически линеен, очень похоже на то, что показывает осцил 8) Хочу на всём этом сделать тупо украшалку на усь - только вместо LCD светодиоды 8) поэтому точность мне не так важна. Важно - оно очень быстрое, при спектре в 64-128 полос совсем не чуствуется тормозов - FPS за сто уходит 8)
Go to the top of the page
 
+Quote Post
ASZ
сообщение Feb 8 2009, 04:28
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 302
Регистрация: 24-07-06
Из: Донецк, Украина
Пользователь №: 19 042



Цитата(Dx! @ Feb 8 2009, 00:17) *
Тестировал у себя на AT90USB1287 билиотеки от elm-chan (http://elm-chan.org/works/akilcd/report_e.html) - Точность нужно мерять, но работает реалтайм, дает до 1024 отсчета (512 "полосок" спектра), давал частоты с звуковухи, выделял основную частоту и выводил на LCD - работает.
...skipped

Мне не столько скорость важна (хотя и она не помешает), сколько точность.
Хотя бы 5%.
Видимо, придется использовать преобразование Хартли, учитывая предыдущие замечания о точности.

Сообщение отредактировал ASZ - Feb 8 2009, 04:34
Go to the top of the page
 
+Quote Post
Dx!
сообщение Feb 8 2009, 18:36
Сообщение #30


Частый гость
**

Группа: Участник
Сообщений: 108
Регистрация: 6-02-09
Из: Новочеркасск
Пользователь №: 44 469



А что мешает попробовать и оценить точность? Можно же и внешний АЦП использовать.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.0151 секунд с 7
ELECTRONIX ©2004-2016