CWT Filter Bank Function

4 views (last 30 days)
Ameen Bin Obadi
Ameen Bin Obadi on 6 Jul 2020
Commented: Ameen Bin Obadi on 7 Jul 2020
Dears, I am trying to to use HDL coder to convert some matlab code to VHDL. among the fucntions to be converted is teh "cwtfilterbank" , part of the code inside this function the follwoing:
I ran into error which is ( ??? Variable sized properties in handle classes are only supported when dynamic memory allocation is enabled. This operation defines 'cwtfilterbank.Omega' as double[1 x :?]. Please consider enabling dynamic memory allocation.) can any one know how go around this by specifying the variable size.
function self = FrequencyGrid(self)
% This method constructs the frequency grid to compute the
% Fourier transforms of the analyzing wavelets
N = self.SignalLength+2*self.SignalPad;
omega = (1:fix(N/2));
omega = omega.*(2*pi)/N;
omega = [0, omega, -omega(fix((N-1)/2):-1:1)];
self.Omega = omega;
self.Frequencies = self.SamplingFrequency*self.Omega./(2*pi);
end

Answers (1)

Kiran Kintali
Kiran Kintali on 7 Jul 2020
Generating code FPGA cannot support variable dimensions as HDLCoder needs to generate code for a chip with fixed size, type, dimensions, complexity and rates.
Please provide your problem as dut.m (design under test) and dut_tb.m (test bench driving dut) for further guidance on the topic.
  1 Comment
Ameen Bin Obadi
Ameen Bin Obadi on 7 Jul 2020
Thanks Kiran. I will share the dut and dut_tb files . I undesrtand the error is about having a variable size of one of the variables which is not supported by HDL , we have 2 solutions:
1- Enabling dynamic memory alllocation: Which I do not know how to do it in HDL coder , I can access it in Matalb coder but no such prperty I found in HDL coder (of course thsi will be my prefered solution if can be done)
2- specifying a fixed size fo rthe variable: this varible is in the code above, spceifically in this line
(self.Omega = omega;) , the above code is part of the matlab function (cwtfilterbank) which I used in my dut.m file . so if there is a way to manipulate this function to have a fixed size, the problem is solved.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!