Hi,
I am trying to implement the FFT block into an RFNoC image on an x410 and then use the python API to build the graph and get FFTs output
I have been using this video as a guide: https://www.youtube.com/watch?v=C8U4bBTO8-c
I have been using the UHD ver 4.7 from the conda-forge repo
Firstly I was getting the error about the SPP not being smaller than the atomic unit size. I found an issue page in the UHD git that said there was a bug in the SPP calculation that should of been fixed.
However, the only way I have been able to solve this error/issue is to have the SPP of the rx_streamer 4 times larger than the FFT size.
First question: does this imply that the SPP bug is still in the UHD code that conda-forge has? it looks like the last time conda-forge pulled it was after the bug fix.
Now that I have something running, i.e. the graph commits without error, my next question is was is the best/appropriate way of streaming out samples that represent the FFT bin values.
If I use the later way as shown in the above video where he is using the fft block:
output_data = np.zeros((1,FFT_Size),dtype='complex')
recv_md = uhd.types.RXMetaData()
num_recv = rx_streamer.recv(output_data, recv_md, 0.1)
I don't seem to be ever able to get any samples output, even if I change 0.1 to something larger, i.e. receive for longer
If I use the way he implemented to get samples from the DDC at the early part of the video above, i.e. something like:
num_samples = int(ddc_block.get_output_rate(0) * 3)
radio_data = np.zeros((1, num_samples), dtype="complex64")
stream_cmd = uhd.types.StreamCMD(uhd.types.StreamMode.num_done)
stream_cmd.num_samps = num_samples
stream_cmd.stream_now = True
rx_streamer.issue_stream_cmd(stream_cmd)
num_samples_received = rx_streamer.recv(radio_data, uhd.types.RXMetadata(), 15.0)
print("Nb of samples received = " + str(num_samples_received))
with the FFT block connected to the rx_streamer
I get samples, which could be an array larger than the FFT size.
The question is what are those samples? I they lots of FFTs in a row, do I take FFT_Length worth and that relates to the FFT, or is it just DDC IQ samples?
Thanks for your help in advance
Adam