|
FFT на STM32 |
|
|
|
 |
Ответов
|
Jan 21 2018, 19:43
|
Гуру
     
Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965

|
Цитата Но ведь семплировать желательно с более высокой частотой, нежели Fsignal*2 Цитата Куда остальные (128000 - 32000) выборки девать? Вот здесь Вы сами себе противоречите. Зачем более высотая частота выборки? Если хотите спектр точнее 1 Гц - делаете более длинный FFT. Во всех остальных случаях - это лишние данные. Заниматься дополнительным усреднением перед FFT - занятие неблагодарное и приводящее к интересным артефактам. Если хотите получить более высокую точность по амплитуде спектра - не увеличивайте частоту, а сделайте больше выборок и считайте спектр с перекрытием - это позволит не пропустить изменения сигнала.
|
|
|
|
|
Jan 22 2018, 09:29
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(Alex11 @ Jan 22 2018, 02:43)  Зачем более высотая частота выборки? Если хотите спектр точнее 1 Гц - делаете более длинный FFT. чтобы иметь 1Гц разрешения спектра надо накопить 1с данных. а если в данных интересна частота 16кГц, то чтобы её нормально оцифровать и не городить очень страшные аналоговые фильтры перед АЦП, частоту АЦП придётся хотя бы раз в 5 задрать. но сотня кГц и 1с == 100к отсчётов, можно уже легко в количество доступной памяти в МК для FFT упереться. но если нужны именно определённые гармоники, а не весь спектр с разрешением 1Гц, то можно сначала автокорреляцией точно найти частоту основной гармоники, или вообще держать через цифровой ФАПЧ основную гармонику, а потом считать обычное небыстрое преобразование Фурье но только на заданных сорока частотах. получится немного медленнее чем через FFT, но зато и памяти для этого не надо совсем.
|
|
|
|
|
Jan 22 2018, 10:17
|

Местный
  
Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264

|
Цитата(_pv @ Jan 22 2018, 12:29)  чтобы иметь 1Гц разрешения спектра надо накопить 1с данных. а если в данных интересна частота 16кГц, то чтобы её нормально оцифровать и не городить очень страшные аналоговые фильтры перед АЦП, частоту АЦП придётся хотя бы раз в 5 задрать. но сотня кГц и 1с == 100к отсчётов, можно уже легко в количество доступной памяти в МК для FFT упереться. но если нужны именно определённые гармоники, а не весь спектр с разрешением 1Гц, то можно сначала автокорреляцией точно найти частоту основной гармоники, или вообще держать через цифровой ФАПЧ основную гармонику, а потом считать обычное небыстрое преобразование Фурье но только на заданных сорока частотах. получится немного медленнее чем через FFT, но зато и памяти для этого не надо совсем. Вот я о том же говорю, допустим я получил эти 100к осчетов, поставлю внешнюю SDRAM и сохраню туда. Но дальше что мне с ними делать? Ведь По расчетам FFT 16к получилось, а точек оцифровали аж 100к. Для 16к FFT надо 32к отсчетов. А у меня 100к - оверсемплинг получился. Что, децимацию делать (прореживать выборки)?
|
|
|
|
Сообщений в этой теме
Arlleex FFT на STM32 Jan 20 2018, 16:39 _pv если грубо, то ~100 тактов на отсчёт. причем c FPU... Jan 20 2018, 18:09 x893 Проще взять 429 и живьем померять всё за день-два. Jan 20 2018, 19:04 ivan24190 Попробуйте стандартную библиотеку CMSIS DSP Lib.
Н... Jan 20 2018, 19:14 Arlleex Есть некоторый диссонанс в мозгу
Итак, есть сигн... Jan 21 2018, 18:11 blackfin Цитата(Alex11 @ Jan 21 2018, 22:43) Зачем... Jan 22 2018, 04:01   HardEgor Цитата(Arlleex @ Jan 22 2018, 17:17) Ведь... Jan 22 2018, 10:24   _pv Цитата(Arlleex @ Jan 22 2018, 17:17) Но д... Jan 22 2018, 10:30 x893 И желательно померять время на БПФ (целый и плаваю... Jan 21 2018, 21:28 ivan24190 CMSIS DSP Lib не поддерживает БПФ больше 4096 точе... Jan 22 2018, 03:24 Arlleex Ну да, так я и понял. Спасибо.
И, думаю, последний... Jan 22 2018, 10:53 Alex11 Только децимацию нужно делать по-человечески, с пр... Jan 22 2018, 17:01 x893 http://stm32f4-discovery.net/2014/10/stm32f4-fft-e... Jan 22 2018, 18:24
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|