You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a fairly generic issue just to mention an interesting discussion between Jon and myself on the group chat and keep track not to forget it. Here is the slightly reformatted transcript:
It’s not something everyone is likely to want to do, but there are a few similar things I’ve wanted to do recently, so I thought it would be worth mentioning. Here’s a few that spring to mind:
For some devices like the Discovery HF that support a very small MDS with large dynamic range, a digital gain stage on RX would be useful. Now this could be implemented in the device or in the channel plugins (and in fact the change you made to the gain in the SSB demod last week has helped when piping audio to other apps), but it seems to me a global gain control might be better – as it would save it being implemented multiple times in difference device and plugins and provide a consistent UI.
I’ve also wanted to be able to insert a variety of filters on the baseband signal, but on RX before the File Sink. Currently, I perform the filtering as a post-processing step in Matlab, but it would be nicer if that could be done in realtime, particularly for high sample rates. While filtering could be added to the File Sink, it seems more flexible to support it on the baseband signal, as there may be other uses. E.g. you might want to drop a notch filter somewhere in the spectrum, to block some interference for other channels.
Similarly, when I added the extra decimation stages for the Discovery a few weeks ago, I thought that would possibly be better implemented outside of the device plugin, so all devices would have the option of an increased number of decimation stages, rather than just the discovery. (There’s an added complication there currently though, of different devices using different decimation routines).
This can be done without compromising the current design. Let's take the example of the Rx chain. You have the "local sink" channel plugin https://github.com/f4exb/sdrangel/tree/master/plugins/channelrx/localsink that transfers the whole or part of the baseband to another device set. Originally this was designed to be able to split the narrowband QO-100 downlink into smaller chunks but of course this may be used for any different purpose where you need to zoom in into not only the spectrum but the entire I/Q baseband. This is to be used in conjunction with the local input plugin: https://github.com/f4exb/sdrangel/tree/master/plugins/samplesource/localinput
Now you can imagine a more complex and specialized local sink plugin that would do any sort of filtering before passing to the next device set. It is even possible to apply any complex to complex transform (correlation, convolution...) since the only requirement for the local input plugin is to get complex (I/Q) data.
As mentioned earlier this is not something everyone is likely to want to do so the added complexity if piping from a device set to another device set does not matter
The text was updated successfully, but these errors were encountered:
In order to make this more concrete and feasible I think it would be good enough to augment the Local SInk plugin with richer features like a gain stage and FFT filter with a bank of filters. Possibly a spectrum display with markers showing the filtering bands would be nice.
First of all the present Local Sink should be fixed since it crashes in many cases and requires a specific sequence of actions to start successfully.
f4exb
changed the title
Specialized plugins to pipe data between device sets
Local Sink: enhanced features
Dec 3, 2022
This is a fairly generic issue just to mention an interesting discussion between Jon and myself on the group chat and keep track not to forget it. Here is the slightly reformatted transcript:
It’s not something everyone is likely to want to do, but there are a few similar things I’ve wanted to do recently, so I thought it would be worth mentioning. Here’s a few that spring to mind:
This can be done without compromising the current design. Let's take the example of the Rx chain. You have the "local sink" channel plugin https://github.com/f4exb/sdrangel/tree/master/plugins/channelrx/localsink that transfers the whole or part of the baseband to another device set. Originally this was designed to be able to split the narrowband QO-100 downlink into smaller chunks but of course this may be used for any different purpose where you need to zoom in into not only the spectrum but the entire I/Q baseband. This is to be used in conjunction with the local input plugin: https://github.com/f4exb/sdrangel/tree/master/plugins/samplesource/localinput
Now you can imagine a more complex and specialized local sink plugin that would do any sort of filtering before passing to the next device set. It is even possible to apply any complex to complex transform (correlation, convolution...) since the only requirement for the local input plugin is to get complex (I/Q) data.
The same applies the other way round with local output: https://github.com/f4exb/sdrangel/tree/master/plugins/samplesink/localoutput and local source: https://github.com/f4exb/sdrangel/tree/master/plugins/channeltx/localsource. In this case the specialized plugin would be a variant of the local output plugin.
As mentioned earlier this is not something everyone is likely to want to do so the added complexity if piping from a device set to another device set does not matter
The text was updated successfully, but these errors were encountered: