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

The whistle algorithm can produce events outside of the bandwidth bounds #470

Closed
atruskie opened this issue Apr 1, 2021 · 0 comments · Fixed by #477
Closed

The whistle algorithm can produce events outside of the bandwidth bounds #470

atruskie opened this issue Apr 1, 2021 · 0 comments · Fixed by #477
Assignees
Labels

Comments

@atruskie
Copy link
Member

atruskie commented Apr 1, 2021

Actual behaviour:

When using the OnebinTrackAlgorithm with MinHertz and MaxHertz set, events can be produced outside of the bandwidth limit.

Expected behavior:

Events should not be produced outside of the bandwidth limits

How to reproduce this bug:

  1. Define a generic recogniser to have a whistle detection with some limits
  2. Ensure you're using a high window frame (like 2048)
  3. In some cases you'll note events that are output below the lower limit.

Additional Details

image

In the case above events were reported out side the bandwidth limits.

  • MinHertz was set to 2850
  • Events were produced with bounds of "LowFrequencyHertz": 2770.0, "HighFrequencyHertz": 2780.0,
@atruskie atruskie added the bug label Apr 1, 2021
@atruskie atruskie changed the title The whistle algorithm can produces events outside of the bandwidth bounds The whistle algorithm can produce events outside of the bandwidth bounds Apr 1, 2021
towsey added a commit that referenced this issue Apr 14, 2021
Issue #470 Endeavour to fix error where event was found outside search frequency band. I believe this error was caused by the rounding of the search bounds from Hertz to a frequency bin. I have endeavored to tighten up the conversion of Hertz bound to frequency bin. Also added amore components to the unit test for whistle events.
Also added two lines to write spectrogram results for visualization. This is a temporary fix - to be removed later.
towsey added a commit that referenced this issue Apr 20, 2021
Issue #470 Fixed broken whistle unit test that resulted from changing the name of two variables. Fixed Australasian Pipet broken test that resulted from previous changes as noted by Truskinger.

In addition, added two new parameters, SearchbandMinHertz and SearchbandMaxHertz, because the parameters MinHertz and MaxHertz were  being used to specify two different kinds of bound, that is the min and max bounds of the search band in which to find events and as the min and max bounds of an actual event. This issue has been fixed for the Whistle and the Whip generic events but I request Truskinger to determine if he is happy with how this has been done before proceeding with other generic events where this problem also occurs.
towsey added a commit that referenced this issue Apr 20, 2021
#470 Add more detailed summary to variables SearchbandMinHertzand and SearchbandMaxHertz.
atruskie pushed a commit that referenced this issue May 24, 2021
* Work on whistle algorithm

Issue #470 Endeavour to fix error where event was found outside search frequency band. I believe this error was caused by the rounding of the search bounds from Hertz to a frequency bin. I have endeavored to tighten up the conversion of Hertz bound to frequency bin. Also added amore components to the unit test for whistle events.
Also added two lines to write spectrogram results for visualization. This is a temporary fix - to be removed later.

* Fixed two unit tests. And fixed inconsistent variable use.

Issue #470 Fixed broken whistle unit test that resulted from changing the name of two variables. Fixed Australasian Pipet broken test that resulted from previous changes as noted by Truskinger.

In addition, added two new parameters, SearchbandMinHertz and SearchbandMaxHertz, because the parameters MinHertz and MaxHertz were  being used to specify two different kinds of bound, that is the min and max bounds of the search band in which to find events and as the min and max bounds of an actual event. This issue has been fixed for the Whistle and the Whip generic events but I request Truskinger to determine if he is happy with how this has been done before proceeding with other generic events where this problem also occurs.

* Update MinAndMaxBandwidthParameters.cs

#470 Add more detailed summary to variables SearchbandMinHertzand and SearchbandMaxHertz.

* Revert two changes of variable names

Issue #477
Removed two variables that set min and max search bounds. Instead added comments to existing variable MinHertz and MaxHertz that indicate these variables in fact are used to set in and max search bounds. i.e. they are not the bounds of an acoustic event except where the discovered events occupy the entire search bandwidth.

* Corrections as requested by Anthony.

Issue #447 I have also written an extensive class summary for OneBinTrackAlgorithm i.e. the algorithm used to find whistles.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants