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

Rx plugin based on WDSP #2156

Closed
f4exb opened this issue Jun 8, 2024 · 1 comment
Closed

Rx plugin based on WDSP #2156

f4exb opened this issue Jun 8, 2024 · 1 comment
Assignees
Labels
Milestone

Comments

@f4exb
Copy link
Owner

f4exb commented Jun 8, 2024

WDSP is a powerful DSP library made for SDRs by Warren Pratt, NR0V. I have experienced it with the Radioberry and piHPSDR that uses it. It has a very good noise reduction algorithm and a properly working AGC in contrast with the same features in the present SSB demod.

BTW the Radioberry is supported by the Metis MISO plugin setting it with at least 2 Rx.

There are two possible approaches. Implement the desired DSP blocks in the SSB demod and possibly others or take the opportunity to use the WDSP "RXA" chain that supports the common audio amateur radio modes: SSB and derivatives, AM, FM. This latest approach has a few interests mostly the present demods are kept as they are and the new plugin is just yet another option. Also it brings in the familiar "VFO" approach with all modes in the same plugin. The FM part may be missing features found in the NFM demod but I suppose this plugin will mostly target SSB and CW and possibly AM.

There are also blocks to support transmission and a complete "TXA" chain so this could be interesting for a Tx plugin too but for now let's focus on Rx mainly to overcome the shortcomings of the present SSB demod.

There are many forks available the most complete and advanced seems to be the one included in this version of piHPSDR which is the one I am currently using.

I don't think the C code can be used as is in the Qt and SDRangel context so similarly to what was done in the above version of piHPSDR the code will have to be included and refactored in a section (subdirectory) of the SDRangel code. Fortunately it is well written enough so that the very DSP code in the blocks does not need to be touched or only slightly mostly for what concerns memory allocation and semaphore (mutex) handling. Only the glue around has to be adapted. This is the first part to do before using the code in a plugin. We could even use the RXA block chain without the original threading support. It is also possible to translate it to Qt threads and events.

@f4exb f4exb added the feature label Jun 8, 2024
@f4exb f4exb self-assigned this Jun 8, 2024
@f4exb f4exb added this to the v7.22.0 milestone Aug 13, 2024
@f4exb
Copy link
Owner Author

f4exb commented Aug 14, 2024

deployed in v7.22.0

@f4exb f4exb closed this as completed Aug 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant