I am trying to create a subsystem with an FIR filter whose coeffs can be set from a table. For example, I have an FIR with L of 1024. I want a table which is 10x1024, where I can input something like 5 to get the 5th set of 1024 coefficients. The Table Lookup 2D module has some of this functionality, but it requires a square matrix, of size less than 100, and it only outputs one value for an x-y coordinate...I want to output a row according to just one variable. Is there any existing table module with this functionality, or will I have to create a new module?
I plan on using more than 10 different sets of coeffs, so switching between FIR filters isn't an option. I just gave that number for an example.
So after looking into this more, it seems the Param Set Table module *should* do what I want, but it's not working. It can't find my module, says that the name doesn't exist. I've attached a sample design that should show the error.
Also, could we get some documentation for this module? I assumed it acts similar to Param Set, but it does seem somewhat different.
You are correct in trying to use the Param Set Table, but the longfir module that you are using in this design is working in the frequency domain. What you want is to use the same design, but with the normal FIR filter.
What do you mean when you say it works in the frequency domain? I have been using it in the time domain for a while now without any issues. I am not extremely well-versed in DSP so sorry if I'm missing something. Does the normal FIR work the same? Will it take more processing power?
The convolution theorem explains the advantage of frequency domain convolution. While it uses time domain on the input and outputs time domain, internally we go into the frequency domain. The normal FIR will be much higher in number of multiplies, so the normal FIR will take more processing power. I would guess it will take 10 times the processing power, meaning you could just have 10 longFIR modules in parallel and switch between them.
Great, I was able to implement the system I wanted using the normal FIRs, and your explanation makes more sense.
Can I request that Param Set Table be modified to work with Long FIR modules? I need a significant number of different filter settings for my current use case, so using many filters in parallel doesn't work. The normal FIRs work for development, but use 50% of my PC's CPU, so definitely won't work on an embedded target.