Thursday, July 17, 2008

Distortion, AM versus SSB

A ham recently reported that his Flex, in transmit, sounded great in AM mode, but had distortion when he operated in SSB. When I heard this, I scratched my head and wondered how it could be possible? But...I ran an experiment, and I found it to be true.

My test was made using a second SDR-1000 in LSB mode as the receiver to copy my 5000's tramsit audio (when the 5000 was in AM mode, I listened to the lower sideband of the AM signal on my 1000 using LSB mode).

[I also performed the test with the 5K only in AM mode by varying the amount of carrier insertion (this is possible in the 5K setup menu). At 0 percent carrier insertion (i.e. DSB) the distortion is clearly audible, and it decreases as carrier insertion is increased. Again, the receiver I used for monitoring my audio was an SDR-1K in LSB mode.]

As to the reason why...I can't explain it myself, by somewhere there's sure to be some sort of mathematical analysis or intuitive explanation. I just don't know what or where they are.

By the way, if you'd like to hear the LSB vs. AM test, I can send you an mp3 file. Send an email to me at jca1955 "at" and request the "Flex AM vs LSB test. " The distortion in SSB is subtle, but you should be able to hear a difference between AM and SSB.

Transmit IMD and voice quality

I've had people tell me regarding one radio or another, "This radio has great IMD numbers compared to others. How can it sound bad?" And usually the number they quote is the third-order IMD product, measured at full power.

How accurately does this IMD measurement reflect, in the real world, how a radio will sound?

Unfortunately, the effect of Transmitter IMD upon perceived voice quality is poorly understood. So we're venturing off on our own into uncharted territory...

First, let's consider the effect of testing IMD at full power. Makes sense, right? But suppose I told you that voice signals have a "crest factor" of somewhere in the order of 9 dB? What does this mean?

Well, "Crest Factor" is the ratio of the peak level to the RMS level. A 9 dB Crest Factor means that quite often our voices are at a level well below peak. Which of course, raises the question, "What's the IMD of my transmitter when my voice power is not at peak, but at, say, 9 dB below? (By the way, for a 100 watt transmitter, 9 dB below peak power of 100 watts would be 12.5 watts.)

Let's say IMD was measured only at peak power (in this example, 100 watts). Now, suppose IMD in our particular transmitter worsens as power is decreased from 100 watts. Given what we know of the crest factor of voice signals, an IMD measurement made only at peak power will give a falsely positive indication of how the transmitter sounds.

So doesn't it make sense that IMD should be measured not only at peak power, but at lower powers, too? Personally, I recommend making IMD measurements at 4 different power levels: Max power and then at powers that are 3, 6, and 9 dB below max power. For a 100 watt transmitter these four measurement points would be at: 100, 50, 25, and 12.5 watts. I believe this will give a truer picture of how a transmitter will sound in comparison to others.

Another problem with IMD measurements is that they're often stated solely in terms of the 3rd-order product (that is, the product just to either side of the two-tones used in the test, when viewed on a Spectrum Analyzer). I've discovered that defining transmitter quality with only the 3rd-order product of IMD is not sufficient in determining how a transmitter will sound. For example, here are two different IMD plots:

(You can enlarge either image by clicking on it.)

The first plot is my 5000 at 0.1 watts. The second is the same transmitter at 100 watts.

Note how, in both plots, the third-order products are essentially at the same level relative to the two-tone test tones. Yet, these two transmitters sound different. The difference is subtle, yet it's there. And if you look at the images, it's obvious why there's a difference: it's because, at 100 watts, the higher-order distortion products are present, too.

[You can listen to a comparison of these two tests and judge for yourself. Send an email to jca1955 "at", and ask me for the "Flex 100W vs 0.1W test," and I'll send you the mp3 file. The first half of the recording is the 5000 at 0.1 watts, and the second half is at 100 watts.]

Sunday, July 6, 2008

Flex 5000 Driver Distortion vs. Final Distortion

Here's another test of TRANSMIT Audio. To listen to it, send an email to jca1955 "at" and ask for the 6 July 08 test file, and I'll send you the mp3 file.

This mp3 again contains two recordings, but this time the source of both recordings is the same 5K (and again, feeding into a second SDR-1K as RF-demodulator/recorder). One recording was made by demodulating the RF received from the 5K's output antenna connector (in other words, the output from the 5K's PA), while the other recording was made by demodulating the RF tapped from the coupling transformer between the Driver and Final stages of the 5k's PA.

In both cases, the 5K was operated at full power (100 watts) and fed into a dummy load. I sampled the Final output by attaching an RF "tap" (essentially a 100:1 voltage divider) between the 5K's antenna connector and my external dummy load. The tap's output was then fed to my "receive" SDR-1K via a big attenuator.

To sample the signal from the 5K's Driver stage (to the Final stage input), I added a single turn link to the transformer between these two stages which I then connected to a BNC. I then disconnected the coax that had been connected to the RF tap (the other end goes to the 1K) and connected it instead to this new BNC at the Driver output. I kept the same big attenuator that I had attached at the input to the 1K receiver. In this configuration signal levels (at the 1K) are essentially equivalent for both configurations when measured with the 5K in TUNE mode.

Again, I used my Heil PR-40 mic as the audio input, and I read the same phrase for each test. TX bandwidth was 100 - 5KHz.

The first recording is from the Driver stage output. The second is from the Final stage (i.e. taken from my external "RF tap" attached to the 5K antenna output). Notice how the Driver stage sounds clean and the output from the PA stage sounds worse? This points to the PA stage (the final two FETs) as being the main source of my Flex 5000 transmit distortion.

Saturday, July 5, 2008

Another recording of Flex TX audio...

[Unfortunately, the file cannot be directly downloaded from the web. Instead, please send an email to jca1955 "at" and ask me for the 5 July 08 Audio test file, and I'll send you the mp3.]

The radios are in the same order as the 1 July test, but this time I used the mic input (and my Heil PR-40) in lieu of a WAV file as my input source.

Each radio was terminated with a dummy load connected to the antenna terminal.

Thursday, July 3, 2008

Flex TX Audio...

I've made an MP3 containing two recordings. One recording is the TX audio from my SDR 1000, the other is the TX audio from my Flex 5000. To obtain this recording, send an email to jca1955 "at" and request the Flex 1 July 08 Audio test file. I'll send you the mp3.

Once you've received this file, take a listen. What do you think - is there a difference between the two? If so, which sounds better (first or second recording), and why?

The recordings were made using the same WAV file as the audio source for the transmitters (using the playback feature of the Flex Console WAVE tab), so this test is really just testing each radio's output from DAC through the TX mixer and the Driver and Final stages.

I used a second SDR 1000 to receive the RF from each of the two radios "under test" (by connecting each test radio's output to the input of my second 1000 via a BIG attenuator), and I made the recordings using this second radio (again, using the WAVE tab of the Flex Console - this time in Record mode).

TX setups were the same for the 1K and the 5K (EQ, etc.). TX Bandwidth was 100 Hz - 5 KHz.

Receive bandwidth (on the second flex 1000) was 100 Hz - 5 KHz. No RX EQ.

By the way...if you listen to the recordings, please do so before reading the comments (so that you're not prejudiced one way or the other). And I haven't identified which audio is from the 1K and which is from the 5K, because, again, I don't want to prejudice any views beforehand.


Tuesday, January 15, 2008

Console can now be resized.

(Click on image to enlarge.)

OK, as of 15 Jan 08, my branch (k6jca) of the SVN repository contains code to allow the Console (well, actually the Display) to be resized. The Console can be "stretched" horizontally and/or vertically (the controls are independent). When stretching, only the Display will increase in size along with the overall Console (and the Pan trackbar will increase in size horizontally, not vertically). All other controls maintain their same size.

The image above shows a Console that's been resized from 1024 x 624 to 1280 x 700. Note the wider and taller display.

The Pan trackbar increases in size to give users better "resolution" when moving the trackbar (it's very sensitive at its stock size).

The Console can be stretched from its stock size of 1024 x 624 (h x v) to a max size of 1920 x 1200). Changes can be made in single pixel increments. Note that the Display size when the Console is 1024 x 624 is 704 x 240. For every step in Console size change, be it vertical or horizontal, the Display changes by an equal amount.

As the Console grows, the controls don't change size, but the spacing between "groups" of controls does change, which (I hope!) gives the Console a more pleasing look than if the groups had been left clumped.

Also - increasing Display size results in higher CPU usage!! If you start experiencing pops or other weirdness, drop the size back down to its original size of 1024 x 624 !!

Give it a try and let me know if you find any bugs or problems. And please vote in the poll for this new feature (see top of this blog).


Monday, January 14, 2008

Selectable Sizes?

Several people have asked me if the Console size can be made selectable. At the time I thought not, but I did some experimenting, and I discovered that, after launching the PowerSDR application, sizes can be changed. Here's an example (click on it to enlarge):

OK - it's still crude (I only added 8 lines of code). But this image shows a Console that is 1280 pixels wide (the max width of my monitor), instead of Flex's current 1024 pixels wide. For experimenting purposes, I changed the width (and the location of various controls) at the end of the initialization routine. The next thing to do is to add a control to the Setup menu to let the user select between 1024 and 1280 (and perhaps other size) wide. Going wider than 1280 is a bit more difficult for me to do, because I don't have a wider screen, and thus seeing how the overall Console looks, when taken as a whole, becomes impossible.

Also - I could just as easily change Vertical Size, too, but at the moment this isn't my main concern - I really wanted to get more horizontal display pixels onto the screen.

And...several people have asked me if I can scale "everything" to fit larger screen sizes. Although possible, it looks like I'd have to go through and individually change, literally, *everything*, (including, for example, the Font size for every button, etc., on the Console). I might be missing some obvious way of doing it (what I don't know about c# would fill the ocean!), but it looks like it'd be a tremendous amount of work, so frankly I can't see doing it.

However, stretching the Horizontal size (and perhaps Vertical), looks like it should be fairly easy to do.

Let me know what size(s) you'd like to see, and I'll see if I can add them...

Sunday, January 13, 2008

Comments on the Polls...

If you would like to make additional comments regarding the Polls above, please make them in the "comment" section of this post (click on the "comments" word on the line below). Thanks!

New Skins for the SDR Console...

I thought I'd try modifying the code to give me more flexibility in choosing how my Console looks. Here's a result of these mods:

(Click on image to enlarge)

I've added four new Color buttons to the setup menu (go to Setup>Appearance>General). The four buttons allow you to change the overall Console background color, the "unselected" button color, the "text" color, and the text "background" (that is, the background in the combo boxes, the text boxes, and the up/down boxes upon which the text for those boxes sits).

And these buttons only change the color of the main Console itself. Colors on other menus, such as the Setup menu, don't change (at least, they aren't suppose to change. Please report bugs!)

I've uploaded the files to the SVN server. If you do an SVN update (you need to get the branches along with the Trunk), you'll find the files in my branch: .../branches/k6jca/Release/bin. Simply click on the PowerSDR.exe file in this folder to launch the new console.

Let me know if you come across any bugs (some of the code is a bit kludgier than I'd like). And let me know what you think!


Friday, January 11, 2008

SDR & Edirol FA-66, spurs etc.

Per reports of spurs when using the SDR1000 with the Edirol FA-66, I thought I'd check them out with my system.

I'm using a Toshiba laptop, and my latest version of k6jca code from the SVN directory (this version has a "Freeze" button which is very useful when making comparisons, as we'll shortly see).

I set up the Console as follows:

o Spur Reduction: OFF
o VFO A: 3.797 000 MHz
o Preamp: MED
o DDS Clock Offset: 0 (Go to "Setup>Hardware Config" tab and click on the "expert" box)
o Waterfall High Level set to -80, and Low Level set to -150.
o Display "Average" turned ON.
o Edirol Sample Rate set to 96 KHz.
o SDR's antenna connector attached to dummy load.

The spurs are shown below (you can click on the image to enlarge it).

The waterfall contains three different configurations. I merged them into one Waterfall display by "freezing" the display while I changed cables (thus the utility of the Freeze button (it's the 'F' button on the display)). The three configurations are:

1) The bottom 1/3 is with the SDR turned OFF (I also get the same thing with the SDR ON and the cables between it and the Edirol disconnected). Note the spur at 3.796 MHz. That's from the Edirol itself.

2) The middle 1/3 is with the SDR ON, and the SDR audio connected directly to the Edirol. Note the numerous spurs. Interestingly, the only spur that moves as I change the VFO in 1 Hz increments is the bright green spur to the right (at about 3.7948 MHz). All of the others are static! I don't know how to explain this - but I suspect that these are generated within the Edirol. My best guess is that this is a ground loop between the Edirol, the PC, the SDR, and their interconnection with the firewire, audio, and parallel port cables. But frankly, I don't know what the cause is, and it could easily be something else. It'd take *alot* more work to figure that out.

3) The top 1/3 is with a Radio Shack Ground Loop Isolator (p/n 270-054) in series with the cable from the SDR's "To Line In" signal and the Edirol inputs (3 & 4). Note that most of the spurs (with the exception of the spur at 3.796 and one further to the right at about 3.7948 MHz) are attenuated.

One test you can do is to tune the vfo in 1 Hz steps (that's Hz, not KHz), and watch if the spurs move, and how much they move by.

Spurs that are picked up by the SDR from external sources will follow in 1 Hz steps, and you can easily follow their movement in the waterfall.

Spurs that jump around crazily as the vfo is stepped from Hz to Hz are most likely DDS spurs.

Spurs that remain stationary are most likely spurs related to the Edirol itself, although I don't have a satisfactory explanation as to why they disappear if the cables are disconnected.

By the way - I also ran the tests with the two switching supplies removed (I turned them off and ran the laptop from its batteries and the Edirol from a bench supply (linear, not switcher)). No change in the spurs.

The above image is presented as an example of what I'm seeing. Others can use it to compare their system(s) to mine, if they think they have a problem.

For the moment, that's it.

Monday, January 7, 2008

Running Log, PowerSDR Console Mods...

15 Jan 08:
1. Added Console resizing (both horizontal and vertical dimensions can be sized independently). Controls are in Setup>Appearance>Display.

13 Jan 08:
1. The "long-tailed" cursor vertical tail now shows in both windows when in "split screen" mode.

2. Added the Peak Needle to all of the "Edge" style meters. And some of these meters have different ballistics (attack and decay times) for their 'normal' needle, because with some meters it's more useful to *not* have the needles behave like normal analog meters.

3. Added four new buttons in the Setup>Appearance>General tab to allow greater customization of the Console look (background, unselected buttons, text, and text background). Might have bugs: some parts are a bit kludgy.

9 Jan 08:
1. Added a "Freeze" button (Look between the Average and the Peak buttons - you'll see a button labeled "F") to freeze display updating. Press it once, the display freezes. Press again; it unfreezes. It also unfreezes if the frequency is changed, filters are changed, go to transmit, or any of a number of other actions (which would normally cause a change in the display) are performed.

A) When Freeze is pressed, the button turns 'orange'. I use this as a visual indicator to identify controls that are ON (or "activated") which I might want to quickly find later.
B) You cannot take a 'snapshot' of a frozen picture (this might be useful, though - so I'm going to think about how I might be able to do it).

2. Changed the label on my 'Peak Search' button from "Pk" to "PS" (for Peak Search).

7 Jan 08:

1. Added a trackbar in the Setup>Appearances menu to allow setting of Panadapter size when in the combined Panadapter/Waterfall mode. When in this mode, the Panadapter size can be adjusted from 20% to 80% of the display size.

Sunday, January 6, 2008

A few more words...

I just thought I'd take a moment to describe some of my Console features in a bit more detail...

1. I always found it very annoying that, after pressing the RESTORE button and moving to another frequency, I couldn't easily return to my original frequency. I fixed this annoyance by making the RESTORE button toggle frequencies. Press it once, you go to the new (stored) frequency. Press again, you return to the frequency that you were on.

2. The front panel Record and Playback buttons are fairly self-explanatory. Press REC to record off-the-air audio. Stop recording by pressing REC again. Then, to playback during XMIT, press Play while transmitting. You don't need to do anything else (no file names to select: it's very painless). Several things also happen simultaneously when playing back: 1) The MON button turns on so that you can hear what's being played back, and 2) the TX EQ is temporarily turned OFF so that its settings don't affect the playback audio. At the end of playback both of these buttons are returned to their original states.

Each time you press REC, the record file is overwritten with new data (only one file is used, and it's reused each time you record). And, upon launching of the Console, the software assumes that the file doesn't exist (and thus the PLAY button is grayed-out). You won't be able to play anything back until you first record something.

3. The "RxFilt>Tx" button simply transfers the RX filter parameters into your TX filter. This is very convenient if some QRM has popped up and you want to ensure that you don't interfere with them, or if you want to, say, go wideband quickly. Please note that these Tx filter settings are *not* saved, and they'll disappear when changing modes. (I recommend that you always have the "Display TX Filter" box checked, so that you can always see your TX filter on the display).

4. Snp, Clr, and Pk: These three buttons are useful for signal analysis, and they do the following:

SNP: takes a "snapshot" of the display line. Very useful for comparing signals. Note that you can set the color of this line (via Setup), and, when the snapshot is present, you'll see a little inverted triangle on this line at the 'x' location of the cursor. The "cursor" readout (lower left of the display) will show the signal level of the snapshot at this triangle location.

CLR: Clears the snapshot. It turns Orange if a snapshot is present in the display.
PK: This locates the peak of the signal within +/- 10 pixels of the cursor 'x' location (shown with an inverted triangle), and displays the amplitude and frequency of this peak in the cursor values at the lower left of the display. The +/- 10 pixel borders are displayed with dashed lines. If SNP is not on (but PK is) this feature locates the peak of the normal signal within the +/- 10 pixels. If

SNP is on, it locates the peak of the snapshot within the +/- 10 pixel area.

Note: In PK mode, if the cursor isn't being moved, the values in the "cursor" readout update at the same rate as the "peak" readout at the lower right of the display. The Flex software sets this update period to 500 msec as a default. To speed-up this update rate, go to the appropriate Flex setup menu and change the setting of the Peak update rate. (If the cursor *is* moving, the update rate ofthe cursor readout will be much quicker.)

5. Peak needle on the edge s-meter: Now there is one, and its color can be changed via Setup.

6. SAM Lock: If you operate boatanchor AM nets in which everyone is off frequency (sometimes wildly off frequency!), you'll quickly find that the stock SAM feature can lock (if it locks at all) very slowly when one station stops transmitting and another starts. Meanwhile, you'll hear its carrier and the talker will be incomprehensible. Very annoying!

What would you normally do in this situation? You'd retune your receiver to the frequency of the new station. Hmmm...why not automate this?

Yeah, I isn't elegant, but it works. If SAM Lock is ON, what happens is this:

The algorithm searches for the strongest signal within the SAM Lock window (the boundaries of this window are shown in the display when SAM Lock is on - color adjustable in the Setup menu). Once the peak signal is found, the program will automatically adjust the receiver's RIT to zero beat that peak.

If the peak is lost or fades (and a sideband becomes dominant, for example), the algorithm will "wait" before looking for a new peak to lock to (this waiting period is set by the Unlock Count in the Setup menu), just to ensure that it's not a brief fade of the signal.

Or, if a new strong signal appears within the SAM Lock window (for example, maybe someone tuning up), the SAM Lock will "wait" before changing the RIT to zero-beat that signal (this wait is set by the Lock Count in the Setup menu).

"Waits" are calculated in "display refresh" frames. In other words, if you set the Lock Count to 5, the lock wait time will be 5 frames. At a frame rate of 15 frames-per-second, this would therefore be 1/3 of a second. (I normally run my frame rate at 30 frames per second. It looks more natural to me.)

7. And, of course, there's the new combined Panadapter/Waterfall display as one of the display options. (And please note that, as of 7 January 08, there's a trackbar in the Setup>Appearance menu that let's you set the size of the panadapter window when in this display mode.)

I think that covers it!

Saturday, January 5, 2008

K6JCA Console now on the Flex SVN site

The K6JCA Console (and code) can be found on the Flex-radio SVN site. They're in the "Branches" folder, under "k6jca". If you aren't already using their SVN update process, please go to the FlexRadio website and search on "SVN" for additional details.

Features include:

1. Combined Panadapter/Waterfall display mode.
2. Front panel Record and Playback buttons (that are easy to use!)
3. Peak needle for the Edge S-Meter
4. Ability to take a "snapshot" of the panadapter data line and display it along with the normal data line.
5. Identify Peaks within +/- 10 pixels of the cursor's 'x' coordinate (like the SR760 spectrum analyzer does).
6. SAM Lock - locks and zero beats the strongest signal (by automatically adjusting RIT) within a frequency "window". Great for Boatanchor nets where no one is on frequency (Flex's "stock" SAM PLL can take a looong time to lock sometimes. This gets around that problem).
7. The 'Restore' button now toggles between the "stored" frequency and the frequency you were last on. In other words, if you press RESTORE once, you go to the "stored" frequency. If you press it again, you go back to where you were. (Very useful!)

(Additional information can be found in the posts below...)

Friday, January 4, 2008

Cool Fading Visual...

The waterfall half of my new Console displays some interesting things of which I was completely unaware. Recently I was talking with some friends on 75 meters, and I noticed an interesting effect...

On some stations, the waterfall looked, over time, as though a "comb" had been dragged through it. That is, it looked as though the tines of a comb had been run diagonally through the signal. I assumed that what I was seeing was due to the pitch (and harmonics) of the talker's voice changing with time, and I didn't think much more about it, except to note that it looked interesting.

Several days later I was monitoring a local boatanchor AM net, and I noticed the same thing. Again, it looked like comb tines had been dragged diagonally through the entire AM signal. What was unexpected, though, was that the direction of the drag was the same on both sidebands. What did this mean? Well, it meant that my initial assumption that the drag marks were due to voice pitch changing was wrong, for if they had been due to voice pitch changes, then the drag marks would have had the opposite slope on the other sideband. That is, if the drag marks were moving towards the carrier (with time) in one sideband, (indicating pitch lowering over time), then they should also be moving towards the carrier in the other sideband (that is, the sign of the slope should have changed in the other sideband).

But, surprise! The drag marks continued in the same direction across both sidebands!

What did this mean?

After watching the signal for a bit, I noticed that the carrier on the panadapter display would drop slightly as a "drag mark" reached the carrier. Bingo! I suddenly realized that what I was seeing was an example of fading - specifically, "selective fading"as it moved through the AM signal (this is a phenomena anyone who has listened to shortwave AM broadcasts is familiar with).

Below is a screen shot showing the fading with time on a shortwave AM broadcast station. (Click on it to blow it up). Looks like a comb was dragged through the spectrum, doesn't it?

Pretty cool, eh?

(What was also interesting, but not shown well in this image, is that the AM signal to the left also has "drag marks," but that these drag marks have a different slope and spacing, indicating a different selective fading pattern due to the different propagation path.)