what is difference between parallel FIR filter and sequential FIR filter

Status
Not open for further replies.

Arrowspace

Banned
Joined
Jan 23, 2015
Messages
186
Helped
3
Reputation
6
Reaction score
3
Trophy points
18
Visit site
Activity points
0
what is difference between parallel FIR filter and sequential FIR filter
 

If you are talking with respect to FPGA implementation then the difference between sequential and parallel FIR filter is that sequential FIR filters are symmetrical, the size of kernel is similar and hence you can implement the FIR filter first in horizontal or vertical direction and vice versa. Parallel FIR filters are filters where u do both vertical and horizontal filtering in the similar clock cycle.

However u can also implement FIR filters with similar kernel size as parallel filters but that would make mean that you are using more resources.
 
I think the question relates to the number of multipliers. For each output sample a number of multiplications must be executed. It is possible to do it with only one multiplier, but it must obviously be clocked at a higher frequency than the output sample clock. That would be a sequential FIR filter.

The other extreme is to have one multiplier per coefficient, so everything can be clocked with the output sample clock. That would be a parallel FIR filter.

FIR filters are often symmetrical, and the number of multipliers can then be reduced by 50%. I would still call it a parallel implementation.
 

NOt quite right
Sequential FIR filters dont have to be symmetrical.
Parrallel filters can be symmetrical.

You can also do parrallel or symmetrical horizontal or vertical filters. I think you are talking about separable 2D FIR filters (separable filters may or may not be symmetrical).

The difference is outlined by std_match above:
Parrallel would be 1 multiplier per coefficient (largest data throughput but uses more resources).
Sequential is 1 multiplier for all coefficients (smallest throughput, fewest resources).

- - - Updated - - -

PS - You can do all types of filters above in an FPGA.
 
well the question posted was not really clear so my answer was based on the fact that with separable filters you first filter the data either in horizontal/vertical direction and then again you filter the output filtered data in the other direction depending on the output data. So here the input is filtered sequentially.
 

For FIR, parallel typically refers to performing all (or more*) operations per sample per cycle. Sequential refers to doing one (or fewer**) operations per cycle.

There is a design method where filters are computed in parallel and then summed. This might be called "parallel" as well, but the argument would be "parallel" vs "series".

* eg, if you get 8 samples per cycle, you might do 8*N multiply/add per cycle. (eg, 4Gsps as 8 samples per 500MHz cycle)
** eg, if a multiply is a multi-cycle operation.
 
Thanks for replay , can I know what is kernel and kernel size in FIR filter?

However u can also implement FIR filters with similar kernel size as parallel filters but that would make mean that you are using more resources.[/QUOTE]

- - - Updated - - -

Can I get code example for both sequential and parallel FIR filters
 

You can have a kernal size of whatever you want.
Ive made a 19x19 separable filter before. Its just the number of multipliers you have.
 

Thanks for replay , can I know what is kernel and kernel size in FIR filter?

However u can also implement FIR filters with similar kernel size as parallel filters but that would make mean that you are using more resources.

- - - Updated - - -

Can I get code example for both sequential and parallel FIR filters


Kernel is the size/dimension of the filter window. If you are using a rectangular box filter of kernel 2x2 then the matrix of the filter is given as [1 1; 1 1].

You can refer Xilinx 2D Linear filtering document https://www.xilinx.com/support/documentation/application_notes/xapp933.pdf
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…