PowerSDR Logarithmic Filter Controls


I've never been really happy with the usability of the filter setting controls on the PowerSDR console, so decided to try some experiments on my own with different filter controls. I've always thought width and shift are a natural way to set filter settings, so that's what I've implemented. To get good adjustability over a large range of sizes, I've made the width control logarithmic, and the shift control dependent on filter bandwidth. A screen shot of my modified console is below. The new controls are in the lower right section of the console.

The filter width control is the slider at the bottom right of the console. It is a logarithmic control, so it gives fine adjustment when the filter bandwidth is narrow and larger steps when the filter is wide. The filter width can also be altered using the W- and W+ buttons if you want to nudge it up or down a step or two.

The - and + buttons to the left and right of the W-/+ buttons control the low and high cut points of the filter. They move it up or down 5% of the current bandwidth.

I also changed IF Shift setting a bit. The original IF Shift control was limited in its range to give reasonably fine adjustments for narrower bandwidths. The new controls will shift the IF 5% and 33% of the current bandwidth, so you get control matched to the size of the current filter bandwidth, and the ability to set IF shifts +/- 10 khz.

One additional change is to add a button to take the current IF Shift and mode and adjust the VFO and filter bounds appropriately so the IF shift is reset to 0. This is the 'IF->V' button in the VFO section of the console.

The last change I made was to switch the filter mode to Var 1 if one of the fixed filters is selected when the width or IF Shift controls are used. I never thought it made sense for the fixed filter to be selected when they've been varied.

CAT Command

These controls are accessible from CAT and make for a very slick interface with MixW. The commands from CAT are:

Increment/Decrement Filter Width Logarithmically


    NNNN is amount of change.  The console Width +/- buttons are

IF Shift Up/Down


    NNN is percentage of current bandwidth to shift.  The buttons on
    the Console are set for 5 and 33.  +/- indicates direction

    ZZIF000 will set the IF shift to Zero.

Future plans

At this point I've implemented almost everything I initially wanted for easier to use filter controls. I've got some feedback from ops using the new controls that they'd prefer IF shift as a slider, so I may try and code that up. I also received good feedback from Alan (K2WS) on ways to implement controls so may try and incorporate some of his ideas. Some additional work to do in this area is to add an AuotXIT function for CW mode. With AutoXIT on XIT would be turned on and would automatically track the center of the filter. I'd probably sum it with the operator supplied XIT, so you could work someone with an IF shift that was working split.

Also need to add CAT commands and Keyboard shortcuts for the new filter controls so they can be used from other programs and assigned to buttons on external controllers like the Shuttle Pro.

And a final idea is to play around with bandwidth sensitive VFO tuning. I find myself varying my VFO tuning rate based on my current filter bandwidth. Would like to add some buttons to change the VFO in a proportional to bandwidth fashion.

Code Download

The changes were made to version 1.3.5 of PowerSDR: Source deltas and a binary can be downloaded.

Comments to: Bill Tracey (kd5tfd@ewjt.com)

Last Updated: 30 May 2005

Copyright © Bill Tracey 2005