|
|
  |
Интерпретация FFT |
|
|
|
Jun 13 2014, 08:54
|
Частый гость
 
Группа: Свой
Сообщений: 168
Регистрация: 29-04-06
Пользователь №: 16 608

|
Разбираюсь с FFT коркой от Altera, и возникло несколько вопросов. В параметрах выставил разрядность 12 бит и длинну преобразования 1024, а на вход он требует подать почему-то 4096 отсчётов. Причём выдаёт также 4096 отсчётов в спектре. На картинках показан полученный спектр и подаваемый сигнал. Сам блок FFT имеет выход для реальной и мнимой части (по 12 бит) и для экспоненты (6 бит). Причём для первых 1024-х отсчётов экспонента равна -7, для вторых 1024-х отсчётов равна -4, для третьих и для четвёртых -3. Что же я получаю на выходе FFT? Помогите с интерпретацией.
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 13 2014, 09:49
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(djhall @ Jun 13 2014, 16:39)  При создании корки создаются файлы с пробным сигналом, в которым именно 4096 отсчётов при настройке в FFT на длинну в 1024. После отработки тестбенча в ModelSim создаются файлы с результатом (спектром), в которых также 4096 отсчётов. Посмотрел, есть такие файлы, 4096 точек при настройке 1024 точки для FFT. Только это какие-то данные для Matlab, это должны быть 4 периода по 1024. Точно знаю (используется в одном из проектов), когда для блока FFT с настройкой 1024 точки на вход подаётся пакет Avalon-ST 1024 точки, c выхода получите ровно столько же.
|
|
|
|
|
Jun 13 2014, 11:21
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(djhall @ Jun 13 2014, 17:19)  Ну по логике так и должно быть, но всё же факт остаётся фактом - корка генерит входной сигнал на 4096 точек. Есть подозрение что это не спроста. Может все эти четыре периода в спектре нужно сложить. Хорошо бы кто подсказал. И что Вы получите сложив спектры 4 разных выборок сигнала? Выход FFT в 1024 точки и будет спектром для 1024 точек сигнала, следующие 1024 точки - для следующей выборки и т.д., exponent будет использоваться если Вам понадобится делать обратное FFT. Вот что хелп матлаба выдаёт на функцию, где используются Ваши 4096 точек Код function [y, exp_out] = fft_v13_model(x,N,INVERSE) calculates the complex block-floating point FFT/IFFT of length N of a complex input vector x Inputs: x : Input complex vector of length B*N, where B is the number of blocks over which the length-N FFT is to be applied. If the length of the vector is not an integral multiple of N, zeros are appended to the input sequence appropriately. N : Transform Length INVERSE : FFT direction 0 => FFT 1 => IFFT Outputs y : The transform-domain complex vector output exp_out : Block exponent value
|
|
|
|
|
Jun 13 2014, 12:06
|
Местный
  
Группа: Свой
Сообщений: 377
Регистрация: 23-12-06
Из: Зеленоград
Пользователь №: 23 811

|
Цитата(djhall @ Jun 13 2014, 17:04)  В параметрах выставил разрядность 12 бит и длинну преобразования 1024 Да теорию надо подтянуть. 1024 это разрешающая способность преобразования по частоте! Цитата(djhall @ Jun 13 2014, 17:04)  а на вход он требует подать почему-то 4096 отсчётов. Причём выдаёт также 4096 отсчётов в спектре. 4096 отчетов это входной сигнал, по которому будет производиться преобразование. Каждые входные 1024 отчета дают 1024 выходных отчетов (спектра сигнала). Цитата(djhall @ Jun 13 2014, 17:04)  Что же я получаю на выходе FFT? Помогите с интерпретацией. Вообще, дискретное преобразование Фурье это непрерывные процесс, с некоторыми оговорками можно провести аналогию с аналого-цифровым преобразованием. Непрерывный аналоговый сигнал преобразуется в его дискретное представление, так же и спектр сигнала, это непрерывный сигнал, а FFT дает его дискретное представление.
|
|
|
|
|
Jun 13 2014, 13:36
|
Частый гость
 
Группа: Свой
Сообщений: 168
Регистрация: 29-04-06
Пользователь №: 16 608

|
Спасибо, разобрался. 4096 точек во входном сигнале было просто потому, что по умолчению в тестбенче на вход подаётся 4 фрейма (frame), т.е. производится 4 преобразования подряд, каждое по 1024 точки. Если на вход подать 1024 точки, т.е. 1 фрейм, то и результат будет 1024 точки, ну а если подать, например, 10 фреймов, результат будет 10240 точки (10 преобразований по 1024 точки).
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|