Например TDA7294

Форум РадиоКот • Просмотр темы - STM32 FFT
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Пт июл 19, 2019 15:36:01

Часовой пояс: UTC + 3 часа [ Летнее время ]


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: STM32 FFT
СообщениеДобавлено: Вс апр 15, 2018 02:22:32 
Опытный кот
Аватар пользователя

Карма: 7
Рейтинг сообщений: 48
Зарегистрирован: Вт июн 17, 2014 01:34:26
Сообщений: 743
Рейтинг сообщения: 0
Добрый стараюсь реализовать FFT средствами <arm_math.h>.
Для начала инициализирую
Код:
arm_rfft_init_q15(&S, FFT_SIZE, 0, 1);

Далее само преобразование и тут вопрос, судя по документации ему на вход надо подавать данные с плавающей точкой в формате 1.15
Код:
arm_rfft_q15(&S,fft_Sbuff, fft_Dbuff);

НАдо ли преобразовывать как-то данные полученные с АЦП и почему?

Далее есть таблица в которой видно, что подаем мы данные в формате 1.15, а на выходе для 128 отсчетов получаем 7.9. Там же в табличке есть столбец number bits of upscale, что он значит?
Дело в том, что в следующую функцию необходимо снова подать данные в формате 1.15, а у нас 7.9
В сети находил, что полученные результат сдвигают влево на число, указанное в последнем столбце. Но почему влево, а не вправо если нам нужен формат 1.15?
Код:
arm_cmplx_mag_q15(fft_Dbuff, fft_Sbuff, FFT_SIZE);


НУ и в итоге выходные данные мы получаем в формате 2.14, что не может не радовать, как теперь получить РЕАЛЬНУЮ амплитуду отсчета?


Вложения:
Screenshot_1.jpg [38.03 KiB]
Скачиваний: 297
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 FFT
СообщениеДобавлено: Вс апр 15, 2018 08:41:32 
Держит паяльник хвостом
Аватар пользователя

Карма: 19
Рейтинг сообщений: 212
Зарегистрирован: Пн сен 18, 2006 12:16:05
Сообщений: 964
Откуда: Тула
Рейтинг сообщения: 0
НАдо ли преобразовывать как-то данные полученные с АЦП и почему?

для 16битного ацп ничего не требуется делать если отсчеты со знаком. Для остальных случаев надо, чтобы данные с ацп занимали старшие биты входных для бпф отсчетов для измерений со знаком, если ацп выдает отсчеты беззнаковые то старшие биты без знака, а знак =0;

Далее есть таблица в которой видно, что подаем мы данные в формате 1.15, а на выходе для 128 отсчетов получаем 7.9. Там же в табличке есть столбец number bits of upscale, что он значит?
Дело в том, что в следующую функцию необходимо снова подать данные в формате 1.15, а у нас 7.9


формат оч простой, означает количество битов целой части и после точки - дробной. формат 1.15 это соотв XYYY YYYY YYYY YYYY где X это целая часть а Y дробная, после преобразования формат уже 7.9

то есть XXXX XXXY YYYY YYYY , если сопоставить два формата:

Код:
1.15  00 0000 X.YYY YYYY YYYY YYYY
7.9   XX XXXX X.YYY YYYY YY00 0000


короче говоря из 7.9 нельзя получить 1.15 потому что целая часть числа не влезает в 16битов. Однако можно получить какое нибудь 17.15 внутри 32битного числа сдвигая 7.9 влево на 6 битов и расширив знаковый бит на незанятые разряды 32битного числа

В сети находил, что полученные результат сдвигают влево на число, указанное в последнем столбце. Но почему влево, а не вправо если нам нужен формат 1.15?
Код:
arm_cmplx_mag_q15(fft_Dbuff, fft_Sbuff, FFT_SIZE);


НУ и в итоге выходные данные мы получаем в формате 2.14, что не может не радовать, как теперь получить РЕАЛЬНУЮ амплитуду отсчета?

Проще всего передать сразу число 7.9 в эту функцию, получить 8.8 в результате и сдвинуть его так как нужно чтобы получить величину в единицах входных отсчетов.

_________________
Информация по RLC mini находится >тут<


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: STM32 FFT
СообщениеДобавлено: Вс апр 15, 2018 12:56:14 
Опытный кот
Аватар пользователя

Карма: 7
Рейтинг сообщений: 48
Зарегистрирован: Вт июн 17, 2014 01:34:26
Сообщений: 743
Рейтинг сообщения: 0
Цитата:
для 16битного ацп ничего не требуется делать если отсчеты со знаком

Как вы это определили???
Цитата:
Однако можно получить какое нибудь 17.15 внутри 32битного числа сдвигая 7.9 влево на 6 битов

Почему мы так упорно стремимся получить 15 знаков после запятой, а до запятой нас не интересует, что происходит?
Хотелось бы понять именно суть.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay
Не в сети
 Заголовок сообщения: Re: STM32 FFT
СообщениеДобавлено: Вс апр 15, 2018 14:08:53 
Держит паяльник хвостом
Аватар пользователя

Карма: 19
Рейтинг сообщений: 212
Зарегистрирован: Пн сен 18, 2006 12:16:05
Сообщений: 964
Откуда: Тула
Рейтинг сообщения: 0
Цитата:
для 16битного ацп ничего не требуется делать если отсчеты со знаком

Как вы это определили???
Я это определил используя великое знание из книжки, конкретно то, что числа с фиксированной запятой это целые числа со знаком соответствующей разрядности. Учитывая что 16битный ацп уже выдает полный диапазон значений 16битного знакового инта, его отсчеты можно интерпретировать как форматы с фиксированной запятой полного диапазона - 1.15 , 2.14, 3.13 , 4.12 , 5.11 и так далее без всяких преобразований.

Хотелось бы понять именно суть.
Числа с фиксированной запятой это умозрительная конструкция, никакого специального формата не предусматривается. По факту это целое число со знаком, максимальное значение которого приравнивают к эквивалентному вещественному числу, например 1.15 соответствует диапазону примерно +-1.0 поскольку на целую часть отводится только знаковый бит.

_________________
Информация по RLC mini находится >тут<


Вернуться наверх
 
Плавкие предохранители LittelFuse. Грамотный подбор

Выбор оптимального плавкого предохранителя требует учета многих параметров. Для упрощения выбора оптимального предохранителя и автоматизации расчетов Littelfuse предлагает онлайн-утилиту. Подробнее>>
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y