fftshift implementation in Simulink
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hamza
am 23 Jan. 2025
Kommentiert: Paul
am 24 Jan. 2025
I need to generate IPs for HDL implementation of an algorithm. I need to do fftshift in simulink but there is no fftshift block avaiable. Is there any way we can do fftshift of the output data from FFT block from DSP HDL toolbox? I am attaching FFT model for reference.
Akzeptierte Antwort
Walter Roberson
am 23 Jan. 2025
Fork the fft output. Use https://www.mathworks.com/help/dsp/ref/variableselector.html variable selector block on each of the branches, with Fixed selector. In one of the branches select 1:floor(signal_length)/2 and in the other branch select floor(signal_length)/2+1:signal_length . Now concatenate those two together in reverse order.
This potentially requires hard-coding the signal length.
3 Kommentare
Walter Roberson
am 24 Jan. 2025
good point
x = 1:9;
signal_length = numel(x);
fftshift(x)
[x(ceil(signal_length/2)+1:signal_length), x(1:ceil(signal_length/2))]
Paul
am 24 Jan. 2025
I just realized that this block requires the FFT length to be a power of 2, so the ceil() isn't necessary for this particular use case.
Siehe auch
Kategorien
Mehr zu Transforms finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!