Cross-Correlation WITHOUT a buffer/tapped-delay

5 views (last 30 days)
Hello, I am trying to code a cross correlation on Simulink in order to find the TDOA of a signal. Unfortunately, I am not able to use either a tapped delay or buffer because they happen to use a LOT of LUTs when generating HDL code. Is it possible to code a cross-correlation w/o a buffer or tapped delay?
Thank you Daniel Yang

Answers (1)

Akhilesh Mishra
Akhilesh Mishra on 10 Jul 2017
The signals in Simulink are samples generated in the simulation time. Cross-correlation is a block operation implemented in the frequency domain, which requires the signals to be buffered.
I am not sure of your workflow, but to avoid using the 'Buffer' block, you may try initializing the signals as vectors. This can be done by using a frame based processing approach as described in the following documentation link - https://www.mathworks.com/help/dsp/ug/create-signals-for-frame-based-processing.html
For example, you can use the 'Sine Wave' block to generate the input signal, and have the parameter 'Samples per frame' set as your buffer length. The details on this block can be found in the following link - https://www.mathworks.com/help/dsp/ref/sinewave.html
Please note, only certain blocks are supported for HDL code generation. The entire list of supported blocks can be found in the following link- https://www.mathworks.com/help/hdlcoder/block-support.html

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!