Jump to content

    

Recommended Posts

Помогите разобраться! Сгенерировал в проекте ядро со следующими параметрами:

image.thumb.png.3426df1ddb59b0a3e960f4df82390a65.png

image.thumb.png.1bc2e8582eeede6bb923773f829dfc96.png

image.thumb.png.4b21ab33d1a6e83c79ff4117628f2a45.png

Сделал тестбенч, используя счетчик clk с периодом импульсов 4.444 нс(225 МГц).

Насколько я понимаю, на вход нужно подавать 14ти битные числа, но не совсем понимаю, какие биты отвечают за целую/дробную часть. 

Возникает несколько вопросов: как должен выглядеть пример входного числа? Как интерпретировать полученные значения? 

 

image.png

Share this post


Link to post
Share on other sites
1 час назад, likeasm сказал:

Язык не имеет значения, Формат с фиксированной точной, старший 14 бит знаковый(Signed), 13 оставшихся бит дробная часть (Fractional Bits).

Понял, спасибо!

Но ведь в таком случае, нужное и получившиеся на выходе 19 бит разбить аналогичным путем. То есть,  если в результате БПФ получается число с единицей, в старшем (19) разряде, его нужно понимать, как отрицательное?

Share this post


Link to post
Share on other sites
16 часов назад, likeasm сказал:

Язык не имеет значения, Формат с фиксированной точной, старший 14 бит знаковый(Signed), 13 оставшихся бит дробная часть (Fractional Bits).

Получается 19 бит на выходе это 1 знак, 4 целая часть, 14 дробная?

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

image.png.562ca480f9754855a70c9cc92919f58a.pngimage.png.aa3494ad2939f32366bd19c72aa85621.png

Share this post


Link to post
Share on other sites

xilinx fft работает с комплексными числами, хотите увидеть магнитуду, тогда либо вычисляйте sqrt(I^2 + Q^2), либо используйте ядро cordic в режиме трансляции I + Q => Mag + Phase.

Для симуляции можно использовать цепочку из ядер DDS => FFT => Cordic

 

Edited by likeasm

Share this post


Link to post
Share on other sites
30.10.2020 в 21:03, likeasm сказал:

xilinx fft работает с комплексными числами, хотите увидеть магнитуду, тогда либо вычисляйте sqrt(I^2 + Q^2), либо используйте ядро cordic в режиме трансляции I + Q => Mag + Phase.

Для симуляции можно использовать цепочку из ядер DDS => FFT => Cordic

 

 

Спасибо!

Share this post


Link to post
Share on other sites
30.10.2020 в 21:03, likeasm сказал:

xilinx fft работает с комплексными числами, хотите увидеть магнитуду, тогда либо вычисляйте sqrt(I^2 + Q^2), либо используйте ядро cordic в режиме трансляции I + Q => Mag + Phase.

Для симуляции можно использовать цепочку из ядер DDS => FFT => Cordic

 

Еще возник такой вопрос, по состыковке fft и сordic. На выходе фурье имеем 20 бит, если во входе кордика выбрать те же 20 бит, то больше с результатами фурье не нужно никакие преобразования делать ни с действительной, ни с мнимой частью?  

Edited by Lavash

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.