سلام
من میخوام که دستور fftshift در متلب رو توی زبان VHDL پیاده کنم.IP core خاصی هست یا باید کدش رو بنویسم. اگه باید کدش رو بنویسم اگه میشه راهنمایی کنید. ممنون
سلام،
برای پیادهسازی الگوریتم FFT میتوانید از IP بسیار کاملی که در نرمافزار ISE وجود دارد استفاده کنید.
ایجاد شیفت در خروجی IP یک کار کنترلی ساده است و کافی است شما از اندیس مورد نظرتون، مثلا اندیس مرکزی FFT به بعد استفاده کنید و سپس به اندیس اول برگردید.
برای آشنایی بیشتر با IPها در نرمافزار ISE برنامه ویدئویی زیر را ببینید:
جواب شما برای یک ماتریس سطری کاملا صحیح است . ولی منظور من fftshift برای یک ماتریس ۳۲ در ۳۲ بود نه یک ماتریس سطری. همانطور که می دانید در FPGA ما نمی توانیم داده ها را به صورت ماتریسی پردازش کنیم و باید ماتریس ها را به صورت ستون به ستون یا سطر به سطر پشت سر هم بچینیم و بعد آن ها را پردازش کنیم. من در کدم این ماتریس ۳۲ در ۳۲ را به صورت ستون به ستون پشت سر هم چیده ام و حال میخواهم که fftshift را در آن اجرا کنم.
فرق خاصی نمیکند. هر ستون را جداگانه به ماجول FFT وارد کنید.
من با ماژول FFT کاری ندارم. بلکه میخواهم FFTshift انجام دهم. در انجام fftshift در vhdl مشکل دارم. ماژول FFT که به صورت IPcore در اختیار ما هست.
لذا در صورت امکان برای ترجمه کد fftshift که از دستورات متلب است به کد vhdl راهنمایی ام کنید.
با سپاس فراوان