Large table lookup

6 posts / 0 new
Last post
alawre68
Offline
Last seen: 1 month 2 weeks ago
Joined: 09/17/2018 - 10:00am
Large table lookup

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. 

alawre68
Offline
Last seen: 1 month 2 weeks ago
Joined: 09/17/2018 - 10:00am

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.

Binary Dataparamsetbug.awd

DSPC_Peaston
Offline
Last seen: 3 days 21 hours ago
Joined: 10/04/2016 - 4:16pm

Hello alawre68, 

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.

alawre68
Offline
Last seen: 1 month 2 weeks ago
Joined: 09/17/2018 - 10:00am

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?

DSPC_Peaston
Offline
Last seen: 3 days 21 hours ago
Joined: 10/04/2016 - 4:16pm

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.

alawre68
Offline
Last seen: 1 month 2 weeks ago
Joined: 09/17/2018 - 10:00am

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.