2015年2月28日土曜日

SDRのAGCって

直接アナログの信号をデジタルに変換しているFlex6000シリーズなどでAGCって何なんだろう? と思っていましたが、AGC-Tについての質問があって、Steveがそれに回答しているので、以下に引用。  ですよね、アナログアンプのゲイン調整をエミュレートしているんですよねー。

元ページはここ

Steveがcommunityに書き込みをしているので、今日明日にv1.4が出てくるのかな、と期待。SSDR開発の総責任者なので、開発が難航しているときはあまり書き込みしていない、という感触を持っている処からの淡い期待ではありますが、、、、

Quote

Steve - N5AC, VP Engineering
  • 480 Posts
  • 365 Likes
To expand on this a little further and to be sure a broad audience understands, I want to explain the purpose of AGC and AGC-T in our radios.  The dynamic range of the radios we sell is vast and covers in the vicinity of 100dB.  This means that the strength of the weakest to strongest signals that could be heard are 10,000,000,000:1.  Our ears have a dynamic range that is similar or larger (most would say something like 140dB), but this is not the level where we are comfortable processing information.  Very loud signals are painful and very weak ones require straining to hear. So the purpose of AGC is to apply gain to weak signals and remove gain with strong signals to get them all within a comfortable listening range.  When you listen to signals in your radio, they are generally mapped to a range of hearing that is comfortable and pleasant.

To accomplish this, we could simply have gain that amplifies weak signals and attenuates loud ones and so provides a roughly constant level in your ears.  But we want to be smarter about this -- no one really wants to hear noise so we want to avoid applying gain to noise if we can.  This is where the AGC-T comes in.  The AGC-T sets the maximum gain we would apply under any circumstances.  Since the noise floor is relatively constant on a given band at a given time, we can set the AGC-T so that it never applies gain to noise, but it will apply gain to signals just out of the noise.  In doing so, we can reduce the level of noise you hear and help signals pop out of the noise.

The speed of the AGC (FAST, MED, SLOW) sets how quickly or slowly the AGC recovers after a strong signal.  If you are listening to a loud voice signal, AGC slow will resist increasing the gain between syllables and therefore reject most of the noise which is at a level far below the signal. FAST and MED, then, provide faster levels of recovery for when you want the system to more closely follow the the dominant signal in the passband.  Any time you have a very strong signal that causes the gain in the AGC to be reduced, you could experience a loss of gain to a weak signal you are listening to.  The filter passband edges which are continuously adjustable and TNFs can be used to eliminate signals that might interfere with operation.

As Tim mentioned, with AGC off, the control just becomes an absolute gain slider.  The more you slide it to the right, the more gain is applied and the louder the signal and noise will be.  The benefits of increasing SNR with AGC will be lost in this mode.  The main gotcha with running phone or CW with AGC off is that you could have the gain turned up and encounter a very loud signal. There would not be an immediate gain reduction and so your ears might get a wallop from the signal in question.  The only time I run with AGC off is for digital modes that do not want any amplitude changes made to the signal.  I often run wide bandwidths (5kHz) for some digital modes like WSJT (JT65/JT9) since we are flat all across that width.  If I used AGC, the occasional RTTY station at 14.080ish would run down the gain and push my WSJT signals further into the noise and make decoding harder (remember AGC calculations are made on all signals within the filter passband).  For this reason, I run AGC OFF and then I make sure that the peak signal never runs the signal meter in DAX past the right side.  I generally shoot for about 80%ish on a loud signal. Joe's software will work fine on signals in the noise, but we can't pass it a distorted mess from exceeding the dynamic range of the number system ;-)

A good starter setting for phone/CW would be to set AGC at MED and AGC-T at 40ish and see how you like that. Everyone has different preferences so your mileage may vary based on what you are trying to copy and what the bands are like.
 
Unquote
 
もう一つ、計測値についてのコメント
 
Quote
 
Steve - N5AC, VP Engineering
  • 480 Posts
  • 365 Likes
Let me see if I can explain the metering (hopefully I can since I wrote the code).  For each mode there is a receiver signal chain.  The chain consist of a series of blocks that perform each of the functions in the receiver including metering, demodulation, noise mitigation, level adjustments, etc.  After each block we have an option to add another meter to measure what the levels look like after the block.  My recollection is that we generally have about 5 meters in each receiver chain, but we may have changed this over time.

In all cases the meter performs an "average square root sum of the squares" measurement or what is known as an average magnitude as well as a peak magnitude.  Mathematically, the magnitude of any given IQ point is sqrt(I^2+Q^2).  I took a few liberties with this algorithm for performance reasons, but that's essentially it.

Here's what the ones you've identified mean:

24kHz: our slice receivers run at 24ksps because this allows us up to about 20kHz bandwidth without too much trouble.  The receiver is formed by filtering and decimating the input from the antenna from either 245.76Msps or 122Msps down to 24ksps.  At that point, we take a measurement of the level.  So this is a magnitude of the entire 24kHz of bandwidth -- anything you see +/- 12 kHz from the carrier will be included in this measurement.  The level has also not been calibrated and it originates from fixed-point numbers so it is in dBFS (decibels away from full scale) and will always be negative.  This meter is useful for us, but probably has limited utility for an operator.

LEVEL: This meter occurs after the passband filter and after calibration is applied.  There is a complex series of calibration tables that use the band, which filters are in use, which preamp(s) are in use, etc. that calculate the absolute signal level in dBm given a specific level in dBFS.  LEVEL is the meter that we show in the slice receiver and it is calibrated.

AGC+: This meter comes from the output of the AGC at the end of the signal chain and shows the effects of any AGC, APF, NR, etc. on the signal.  The signal the AGC measures is what is going to your speaker/headphones.  It is back in dBFS as there is no need for a calibration on this level -- it's all about a level that will be sent to headphones/speakers.  You could think of this as a "loud meter" if you like, but it measures what is in your ears.

So AGC adjustments will affect the AGC+ meter, but will not affect the LEVEL meter.  Adjustments in the passband filter will affect the LEVEL meter, but not the 24kHz meter.  You can see the effect of bandpass filtering on SNR by watching the meter in an empty band and reducing the bandpass filter. For every reduction of 50% in the filter, you will see a lowering of the noise by 3dB.  You can learn a lot about how noise works just by playing with the filter and watching the meter outputs ;-)

Another meter that is interesting to watch is the panadapter.  Each pixel in the panadapter is a meter showing the noise level in a single bin of the FFT.  You can tell the bandwidth of each pixel by comparing the noise floor of the slice receiver to that of the panadapter.  For example, you can zoom out until the average pixel level reads the same as the slice meter and at that point you are about 500Hz per pixel assuming you have the slice receiver passband set to 500Hz.  This should roughly jive if you take the visible panadapter bandwidth in Hz and divide by about 2000 (this isn't precise for a number of reasons).  Now as you zoom in with the panadapter, you are "looking into the noise floor."  On a 6700 you can see 25dB into the noise floor (if you use WSJT, you know JT65 can hear signals something lie 24-27 dB below the noise floor) so you can see weak signals like WSJT that you can't hear nor see on other radios.  On the 6500/6300 you can see about 19dB into the noise floor with the panadapter.
 
Unquote
 
 

0 件のコメント:

php のインストールの確認

phpって最初のfacebook書くときに使われたみたいで、それなりに歴史のある言語で、私も2006年位から使っていますが、CLIで使う事はあまり無いので、apacheとの連携のトラブル(mod_phpのバージョンの齟齬)などは気になりますが、拡張モジュールのインストールの問題に...