Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dsp: p_firsym: Implement p_firsym #176

Merged
merged 3 commits into from
Jul 1, 2015
Merged

dsp: p_firsym: Implement p_firsym #176

merged 3 commits into from
Jul 1, 2015

Conversation

lfochamon
Copy link
Contributor

This implementation refers to issue #158. Implementation-wise, it follows the same ideas as p_fir (see PR #152 for details). Notes:

  • As it is, p_firsym implements symmetric FIR filters of odd length (a.k.a., type I). In other words, filters such as 1, 2, 3, 4, 5, 4, 3, 2, 1. In this case, one would pass h = {1, 2, 3, 4, 5} and nh = 5 to the function.
  • There is a longer discussion on the filter type issue on dsp: p_firsym: API issue and implementation #158, but it all boils down to this: filters that have even length (type 2, e.g., 1 2 3 4 4 3 2 1) cannot be high pass or band stop. Type I filters have no restrictions.
  • p_firsym is generally faster than p_fir. On ARM cores, it is always faster. On Intel i7, it is only slightly slower for shorter filters (small nh). The result of a larger benchmark can be found in dsp: p_firsym: API issue and implementation #158.
  • Valuing speed over accuracy, this function does not use fused add-multiply. The tests I ran showed that the filter becomes considerably slower and that the accuracy increase is negligible.

I'll push the tests for this function and p_fir ASAP.

--Chamon (luizchamon@gmail.com)

Chamon and others added 3 commits June 30, 2015 20:05
Implementation is vectorized along the input samples 'x' as in p_fir. The length of the full filter is constrained to be odd, i.e., p_firsym only implements FIR filters of type I.

Signed-off-by: Chamon <[luizchamon][gmail]>
Implementation is vectorized along the input samples 'x' as in p_fir. The length of the full filter is constrained to be odd, i.e., p_firsym only implements FIR filters of type I.

Signed-off-by: Chamon <luizchamon@gmail.com>
@lfochamon lfochamon changed the title Implement p_firsym dsp: p_firsym: Implement p_firsym Jul 1, 2015
@aolofsson
Copy link
Member

Looks good. Please sign off on all pull requests
(can do in comment below for now)

@lfochamon
Copy link
Contributor Author

Sorry, do you mean name and email on PR? I edited my first comment, please let me know if that's OK...

@aolofsson
Copy link
Member

Like Linux and many others we are using this format. Pleas ee guidelines.
https://github.com/parallella/pal/blob/master/CONTRIBUTING.md

Signed-off-by: Joe Smith joe.smith@email.com

Good enough for now, but keep in mind for future. Thanks!

aolofsson added a commit that referenced this pull request Jul 1, 2015
dsp: p_firsym: Implement p_firsym
@aolofsson aolofsson merged commit 5d48f7e into parallella:master Jul 1, 2015
@lfochamon lfochamon deleted the 158-p_firsym branch July 5, 2015 00:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants