Look-UP Table Verzwakkers, Arduino Gestuurd

EricP

mét CE

De basis is niet zo ingewikkeld. Feitelijk heb je 2 variabelen A en B. A is waarop je rotary encoder (en achterligeende software) ingesteld is. B is wat je naar je I/O expander gaat jassen.

Voor het gemak nemen we voor A een 8-bit unsigned getal. Voor B een 16-bit unsigned (je wilt tenslotte bits mappen).

Nou zijn er verschillende mogelijkheden. Lomp-maar-effectief is een switch-constructie. Iets als

c code:

switch (A)
{
  case 0:
    B=0x0003;
    break;
  case 1: etc.
}

Dat wordt al snel duur.
Een alternatief is zoiets:

c code:

uint16_t bla[]={0x0004, 0x0006, 0x0008 etc. } (32 stuks in dit voorbeeld);

uint16_t function convertAtoB(uint8_t A)
{
  uint16_t result=0;

  if (A<32) (of iets als (A<(sizeof(bla)/sizeof(uint16_t)) ofzo... zal wel niet helemaal kloppen :) )
  {
    B=bla[A];
  }

  return(result)
}

Je maakt feitelijk een array die je vult met de output waarden voor elke 'stap'. Daar kun je dus evt. ook nog in recht trekken als een bepaalde verzwakking een 'rare' volgorde heeft. Ik heb zoiets soortgelijks als letter-generator voor een dot-matrix display. Klein stukje spreadsheet wat de waarden bij een bitmap genereert en tekenen maar.

Code is pseudo-C. Vooral voor die array declaratie moet je waarschijnlijk nog wel wat doen - ik ken dat Arduino-taaltje niet zo. In 'standaard C' is het gebruikelijk dat dat spul in RAM staat. Bij de start van je code wordt de array gevuld uit FLASH (copietje maken van initialized data). Er zijn wel wat trucen voor om het ding in FLASH te laten staan. Reads worden wat trager, maar het scheelt je RAM. En je gebruikt het zo als look-up.
Een beetje compiler herkent het en lost het zelf voor je op (dat zou zelfs met die switch-boom kunnen gebeuren!). Hoe enzo hangt van je compiler (en z'n commandline settings!) af.

Aan jou om het in Arduino-dialect om te zetten :)

rbeckers

Overleden

Henk, drie doelen:
- als verzwakker voor een bepaald niveau
- om VCO stabieler uitgangsniveau te geven
- beperkte, 1kHz, AM modulator

Ah. ok. als het "relais en schakelgedoe" al in die verzwakkers zit, dan is het probleem nog inderdaad alleen maar het programmeren.

Dan wordt de code in princiepe:

code:


 float verzwakking[] = {16, 1, 2, 4, 8, 0.1, 0.2, 0.4, 0.8, 1, 2, 4, 8};

Ik heb de onderste twee verzwakkers ingevoerd. Als je gaat meten dat de verschillende 1,2,4 verzwakkingen niet precies hetzelfde zijn, voer je DIE natuurlijk in. De 0-e entry is aangekoppeld aan relais-output-0, de 1-e entry aan relais-output-1 enz.

Als je dus de combinatie 0-5-7-9 hebt, dan tel je elementen 16, 0.1, 0.4 en 1 bij mekaar op en krijg je 17.5. Dit coderen we met een bitvector. 2^0 + 2^5 + 2^7 + 2^9 = 0x2a1 (ik reken dat liever in HEX uit, dat vind ik makkelijker).

Ieder getal onder de 8192 is dan dus een combinatie van welke er aan-en-uit zijn. En op basis van de bitjes kan je dan bepalen wat de demping zou zijn bij die combinatie.

code:


float attenuation (int combination)
{
  float att;
  att = 0.0;
  for (i=0;i<13;i++) 
     if (combination & (1<<i)) att += verzwakking[i];
  return att;
}

De simpele zoekmethode is dan:

code:


int find_combination (float wantedvalue) 
{
  int i, bestcombi; 
  float bestdiff, diff;


  // start with combi 0 as the best combi. 
  bestdiff = abs (wantedvalue - attenuation (0)); 
  bestcombi = 0;

  for (i=1;i<8192;i++) {
     diff = abs (wantedevalue - attenuation (i));
     if (diff < bestdiff) {  
        bestcombi = i;
        bestdiff = diff; 
     }
  }
  return bestcombi; 
}

Dit is met 13 relais die aan of uit kunnen staan denk ik nog net te doen. Zeker als je dit een beetje optimaliseert: De demping is eigenlijk een float, maar als je die in "honderste-DB" noteert, dan worden alle db-getallen gewoon een int. Dit vereenvoudigt de boel zodanig dat je arduino die 8000 combinaties wel in ordegrootte 1 sec kan uitrekenen.

Verder, maar dat wordt lastiger programmeren, kan je je realiseren dat je op zoek bent naar de HOOGSTE waarde kleiner dan de gewenste waarde. Daarnaast wil je de KLEINSTE waarde GROTER dan de gewenste waarde weten. Weet je die twee, hoef je alleen maar je kiezen tussen die twee: 1 van deze twee zit het dichts bij de gewenste waarde.

Deze twee waardes opzoeken is logisch gezien precies hetzelfde: Ben je op zoek naar de kleinste waarde groter dan gewenste waarde dan is dat hetzelfde als het complement van hoogste waarde groter dan ALLES_BIJ_MEKAAR-wantedvalue. Efficient 1 van de twee vinden, betekent dat je de andere ook zo kan vinden.

Dan moet je de boel voorstellen als een boom. Op iedere node beslis je of er een bitje aan-of-uit moet. Op het hoogste niveau bit 0, daaronder bit 1 enz.

Zoek je de hoogste waarde kleiner dan de gewenste waarde, dan kan je hele stukken zoek-ruimte uitsluiten zodra je OVER de gewenste waarde heengaat. Het wordt nooit meer minder.

Verder moet het ook mogelijk zijn een grens te stellen aan de andere kant. De zoek-boom wordt zo behoorlijk geknot en je zou dan veel grotere bomen moeten kunnen afzoeken.

Een "super snelle" benadering van de gewenste combinatie kan vast ook door de waardes allemaal te sorteren, en dan "greedy" vanaf de grootste waarde te beginnen, zodra je er overheen gaat neem je dit bitje niet.

Zou je deze truuk vantevoren laten lopen, dan heb je al een heel redelijke schatting. Die moet bij het aflopen van de complete boom al snel grote takken kunnen uitsluiten.

Mocht je verder willen zoeken op dit gebied, het heet "branch and bound".

Anderzijds, al dat afzoeken van complete bomen is denk ik niet zo heel nodig. Dat sorteren en dan grote-stappen-snel-thuis zal al HEEL aardig in de buurt komen. Gooi je er dan nog een: we hebben twee "ongeveer VIER" waardes in de tabel, probeer de andere eens". Dan heb je met zeg 5 nieuwe evaluaties waarschijnlijk een stuk betere oplossing. (als in: in 90% van de gevallen had je al de allerbeste oplossing, maar van de 10% die niet al de optimale was, vind je in 9% van de gevallen zo alsnog de allerbeste).

Dan had jij het over een i2c EEPROM. Dat lijkt me niet nodig. Enerzijds is voor deze toepassing het prima te doen om je array na de meting "voor altijd" in je programma te zetten. Wil je het gaan verkopen en andere mensen hun eigen calibratie er in laten zetten, dan is het minder praktisch, maar voor je eigen situatie is het toch prima dat je 1x JOU calibratiegetallen in je sketch zet?

Vind je dat toch niet, dan heeft de arduino een 256 byte eeprom aan boord.

Ik bedenk me net een andere optie. Doe een heel simpele "greedy" in de arduino. Maar reken ALLE mogelijkheden na op je PC. Reken ook op de PC uit wat de "greedy" zou doen. Is er een ander resultaat, moet de arduino weten van deze uitzondering.

@ericP, volgens mij wil Bram niet zomaar in stapjes van 1dB de verzwakking tussen 0 en 31 kunnen instellen, maar een gewenste waarde in 0.01dB in die range. Nu er "binaire" waardes zijn tot de 0.1dB, zou je de normaliter alleen de veelvouden van 0.1dB kunnen bereiken. Maar als nu je 0.2dB niet 0.20dB is, maar gemeten kan worden op 0.18dB, dan zijn er ineens een aantal waardes die je nauwkeuriger kan benaderen (en met de huidige nominale waardes OOK waardes die je minder goed kan halen!)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
blackdog

Golden Member

Hi rew,

Dank je voor je input :-)
Volgende week ga ik een aantal dingen die je aangeeft uitzoeken hoe het werkt zoals "branch and bound".
Ook zal ik eens testen met de eeprom ruimte in de processor als het type dat ik dan wil gebruiken dit heeft.

Ik heb dan wel 0.1db resolutie, maar dat betekend nog helemaal niet dat de verzwakkers monotoon zijn.
En al helemaal niet als ik een KAY en een Weinschel zou gaan combineren.
0,1db is ongeveer 1% en eenieder die met relais heeft gewerkt bij 50 en 75, 100 Ohm systemen weet dat iedere keer dat een relais omklapt zijn overgangsweerstand steeds iets anders is.
Dit wordt ook nog eens beinvloed door de variatie van de aangelegde spanning op de spoel.

Dus, ook al zou ik het voor elkaar krijgen 0,1dB in de code op te nemen, dan is het maar de vraag of dit zinnig is...
Ik heb b.v. geen idee wat de tempco van deze verzwakkers zijn.

Ik voel een beetje een overeenkomst met mijn KeySight 34461A multimeter, deze is 6,5 digit en je kan tot ongeveer 0,01PPM uitlezen in de grafiek modus.
Dit meetinstrument is 35ppm/jaar en iets meer dan 1PPM/C

Ondanks de resolutie die hij kan weergeven, heb je geen enkel zekerheid over wat hij aangeeft ;-)
De resolutie is natuurlijk wel handig als je een trent wilt zien en je LAB temperatuur bijhoud.
Dus het denken aan KISS is ook hier weer zinnig!

Wat de processor snelheid betreft, ik heb hier nu ook Teensy en de
Adafruit M0 printjes die veel sneller zijn dan de Uno of Nano, dus ik denk dat dit geen problemen zal geven met snelheid als ik deze zou toepassen.

Verder denk ik dat ik eerst eens start met een simpel stukje code om er een beetje een gevoel bij te krijgen zoals alleen de 1,2,4,8 en 16 dB verzwakker aan te sturen via i2c.

Ook EricP dank voor je input.

Gegroet,
Blackodg

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Misschien zie ik iets over het hoofd, maar met 1,2,4,8,16 heb je allemaal machten van 2. Dan kun je toch een 5-bit teller gebruiken 0..31 en direkt elk bitje aan een relais koppelen?

rbeckers

Overleden

Die machten van twee zijn niet precies genoeg

Als je de machten van twee totaan .1 db hebt en nauwkeuriger hoeft niet, dan denk ik dat het simpelste algorithme al een heel eind komt. Kan jij al 1 of 2 verzwakkers doormeten? Dan wil ik mischien even kijken wat eea aan algorithmes doet....

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
rbeckers

Overleden

O.a. afhankelijk van het gebruikte deel van frequentiebereik is de fout veel groter dan 0,1dB. Bij de PE4303 is de fout eerder 1dB.

Ha heer rbeckers,

Dat is ook niet de manier om te kalibreren het klopt wat u zegt

O.a. afhankelijk van het gebruikte deel van frequentiebereik is de fout veel groter dan 0,1dB. Bij de PE4303 is de fout eerder 1dB.

daarom is tijdens het kalibreren een bekende bron van belang.
Het is net als met je voeding je zult een vergelijking moeten doen.
Dus de laatste dB kan je niet discreet uitvoeren maar zal variabel moeten gebeuren.
Wel is het zo dat de verzwakkers in een tabel gezet kunnen worden met de actuele waarden.
Ik heb hier ook een doos waar een aantal verzwakkers in heb zitten ook van Weinschel deze bedien ik met twee toetsen up en down een ring teller en een BCD coder en klaar.
Om de verzwakkers te testen en mee te spelen zou @blackdog dit ook kunnen doen 3 chipies en twee digit 7 segment uitlezing.
Voor de PE43711 heb ik een klein programma geschreven dit zit voor proef in een Attiny85 werkt goed.

Groet Henk.

Everything should be as simple as possible, but not simpler.
rbeckers

Overleden

Hallo Henk,
mijn idee wijkt af. M.b.v. een RF logdetector meet ik de uitgang en regel de verzwakker bij.
Analoog en met losse en niet gematchte pin diodes werkte dit bij 2GHz over maximaal 10dB en dat was niet goed genoeg.

Ha heer rbeckers,

Een beetje late reactie maar het gaat even niet zo snel aan deze kant.
Ja dat is begrepen is zeg maar eenzelfde idee als in mijn ontwerp van de tracking generator alleen de laatste 2dB regel ik t.o.v. de referentie.
De referentie is 30MHz dit is als basis de kristal oscillator van de AD9851 dit signaal gaat door een amplitude stabilisator heel gedoe maar ik zou dan +/-0.5dB moeten kunnen bereiken.
Deze volgt ook de amplitude frequentie karakteristiek.

Groet Henk.

Everything should be as simple as possible, but not simpler.
blackdog

Golden Member

Hi,

Vanavond de eerste metingen gedaan aan de verzwakkers.
Om te zorgen dat ik redelijk nauwkeurig kan meten aan de verzwakkers moest ik er voor zorgen dat ik met nette impedanties die verzwakker aanstuur en afsluit.
Het aansturen gaat d.m.v. een NE5532 die ieder een uitgezochte 100 Ohm weerstand aan de uitgang hebben.
Deze weerstanden zijn ongeveer 0,1% lager in waarde dan de optimale 100 Ohm.
Dit is om de overgangsweerstand van de kabel en connectoren te compenseren en eeen heel klein beetje Ri van de 5532 opamps.
De opamp uitgang is ook niet "0" Ohm en deze is ondermeer afhankelijk van de gebruikte frequentie.
De frequentie die ik heb gekozen is 1KHz omdat ik op deze frequentie nauwkeurig kan meten.
Natuurlijk weet ik dat de verzwakker op hogere frequenties een ander gedrag kan en zal gaan vertonen.

Dit is de meetsetup
http://www.bramcam.nl/Arduino/Verzwakkers/Weinschel-Setup-01.png

Plaatje van de meetbank, het rechter printje bevat de NE5532 opamp.
http://www.bramcam.nl/Arduino/Verzwakkers/Weinschel-Setup-02.png

De Goede oude Fluke RMS meter :-)
Dit is de meting van een -8dB stap van een van de KAY verzwakkers.
http://www.bramcam.nl/Arduino/Verzwakkers/Weinschel-Setup-03.png

En als laatste een lijstje van de metingen in een excel sheet van een van de Weinschel verzwakkers.
http://www.bramcam.nl/Arduino/Verzwakkers/Weinschel-Setup-04.png

De metingen aan de KAY verzwakker heb ik ook gedaan, en deze zijn ook goed, maar een lijstje maken zoals die van de Weinschel is voor nu te veel werk, het is slaaptijd...

Gegroet,
Blackdog

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
rbeckers

Overleden

Bram, dat zijn mooie waardes.

Maar zoals je zelf al schrijft,

de verzwakker op hogere frequenties een ander gedrag kan en zal gaan vertonen.

Dus eigenlijk zegt dit niets over het RF gedrag. Een SA met TG of een VNA moet je gebruiken. Bijvoorbeeld je Rigol.

blackdog

Golden Member

Hi René

Dat klopt, deze metingen zeggen niet over gedrag bij zeg 250MHz...
Maar als de basis naukeurigheid al niet goed is dan heeft het verder weinig zin een redelijk nauwkeurige verzwaker testkastje te maken.

Al dit soort verzwakkers zijn direct afhankelijk van de aanstuur en afsluit impedantie.
Dus zijn ze b.v. wel reeeel maar aanstuur b.v. 49,5 Ohm en de afsluit impedantie ook reeel maar dan 52,1 Ohm.
Dan klopt het al van geen kanten meer.

Het wordt natuurlijk nog leuker als je kijkt naar de echte weerstand, o sorry, impedantie ;-)

Je hebt een bron die echt mooi reeel 50 Ohm is bij zeg 144MHZ en de uitgang gaat een 2M versterker trap in die een antenne kan aansturen.
Door de meestal rammelende SWR aan de ingang van die trap blijft er meestal al weinig meer over van de 1dB stap resolutie.
Live sucks *grin*

Het meeste werk ik op beneden de 100MHz en dan kan het soms handig zijn het niveau redelijk netjes te kunnen instellen.
De testen zijn natuurlijk ook gedaan om te kijken of de verzwakking stabiel was, en er geen ramemlende relais in zaten.
Gelukkig heb ik daar niets van gemerkt.

Later deze week zal ik ook wat plaatjes schieten gemaak met de SA.

Gegroet,
Blackdog

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
rbeckers

Overleden

Wat ik gebruik is een 50Ω splitser en achter het test object een vaste verzwakker van 20dB. Dat geeft betere resultaten.
Ik ben benieuwd naar o.a. de insertion loss.

Ha blackdog,

Ziet er goed uit dan werken je relais ik denk dat je niet veel meer kan meten.
Wat wel een belangrijk gegeven kan zijn is de in/uit reflectie demping.
Hier uit kan je in ieder geval concluderen of je nog 50Ω ben.
Voor de demping is het denk ik belangrijker je overall systeem te meten.
De apparatuur en componenten van Bruno en Lucas Weinschel zijn zo goed dat je die met de gangbare network anayzer niet kan meten ook nu 2016 nog niet Weinschel heeft de 50Ω standaard neer gezet.
Ik heb zelf een VM4A om verzwakkers te meten resolutie 0.001dB nauwkeurigheid 0.04dB tot 18GHz dit is ongekend en is tot op de dag van vandaag nog niet gehaald (althans niet zonder software gerommel)
Het meet principe is eigenlijk simpel maar uiterst nauwkeurig en is nog steeds beschermd.
Voor de 30MHz gebruik ik de VM7 verder werk ik nog met het sweep set tot 18GHz.
Om je demper verder te testen kan je uiteraard wel nuttige info verzamelen alleen in absolute zin heeft het weinig nut.

Groet Henk.

Everything should be as simple as possible, but not simpler.
leime

Golden Member

Hallo Blackdog,

Ik weet niet of je beschikking hebt over een ruisbron? Maar je kan eventueel met een Y-factor meting het noise figure van je verzwakkers bepalen. Je krijgt dan gelijk de gain van je verzwakkers hierbij cadeau.

groeten,
Emiel

Even snel...

Ik heb dit spreadsheet gemaakt van jou metingen.

Als ik de los gemeten dempingen als leidend beschouw, dan heb ik voor de 16 mogelijke combinaties uitgerekend wat de totale demping zou moeten zijn. Daarnaast een kolom met wat je gemeten hebt en de afwijking die daaruit volgt.

Met combinatie-nummer-12, hebben we een rare afwijking. Zou het kunnen dat daar een meetfout is?

Zonee, dan is het een hint dat het weinig zin heeft om met deze nauwkeurigheid de totale demping te voorspellen door de boel bij mekaar op te tellen. Dan heeft deze module gewoon 10-20-20-20 als dempingen en kan je dat beschouwen als 10-20-40, drie bits om 0-70dB demping in te stellen met stappen van 10dB.

Dan is hier de conclusie van deze meting dat het nog 1 tikkie beter kan: door x+z samen als de "40dB demping" module te gebruiken, is de afwijking nominaal nul. Dan gebruik je maar 8 van de 16 combinaties, maar wel met nominaal geen afwijking. (die jij toch wel gemeten hebt!).

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Ha leime,

Je kunt niets meer meten aan de verzwakkers van Weinschel deze zijn zo nauwkeurig dat je op rf microwave niets meer kunt doen.
Het meetset wat ik heb (ik denk dat er in Nederland nog nooit een verkocht is) is uiterst precies.
Met de Y methode zit je denk ik afhankelijk welke bron je gebruikt een aantal factors mis.
Je kunt deze dempers alleen maar volgens het calorimetrisch meetprincipe goed meten.
Voor het gebied waar in @blackdog deze gaat gebruiken zijn ze vlak binnen 0.025dB tot zeg 100MHz maar ook hier zijn verschillende krachten van toepassing denk aan temperatuur reflectie enz je mag verwachten dat zo'n demper per stap binnen .075dB zit en een combinatie van de stappen .1dB dat kan je zelf met een signaal generator en analyzer niet meten.

Groet Henk.

Everything should be as simple as possible, but not simpler.
blackdog

Golden Member

Hi rew, :-)

Weinig tijd vandaag gehad, ik ga morgen je post even doornemen en kijken of ik iets kan vinden wat niet klopt.

Henk
De Weinschel begingt bij 100MHz te zakken in amplitude, ik heb het dan over rond de 0,1dB.
Moet meer metingen doen om er enigzins zeker van te zijn dat het niet mijn meetmethode zijn die meer afwijkingen geven.

Gegroet,
Blackdog

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
blackdog

Golden Member

Hi,

Ik had al meer metingen gedaan aan de verzwakkers, ben alleen een deel van de metingen kwijt...

Dit zijn de gegevens van de KAY-C bij 1Khz gemeten.
-1dB = -1dB
-2dB = -2dB
-4dB = -4dB
-8dB = -7,98dB
-16dB = -16,02dB

Dit zijn de meetgegevens van de KEY-D verzwakker bij 1Khz gemeten.
-0,1db = -0,09dB
-0,2dB = -0,2dB
-0,4dB = -0,39dB
-0,8dB = -0,79dB
-1dB = -0,99dB
-2dB = -1,99dB
-4dB = -3,99dB
-8dB = -7,97dB

Hou er vooral rekening mee, dat de afwijking van 0,01dB rond 0,1% afwijking zit.
En we hebben hier hier over een 50 Ohm system, 1% van 50 ohm is 0,5 Ohm en 0,01% is nog 10x kleiner en dat is 0,05 Ohm.
Dit geeft al aan dat de verbindingen zeer goed moeten zijn, net al de overgangsweerstanden van de gebruikte relais in de verzwakkers en dat deze contactweerstanden van deze relais zeer stabiel blijven.
Dit alles is nu gemeten bij 1Khz met de daarbij nauwkeurig uitgemeten aanstuur en afsluit impedantie.

Hierna ben is gaan meten met de SA, dat is niet simpel!

Dit zijn de variabelen die meespelen:
Opwarmen van de SA.
Drift van de SA na opwarming als je een amplitude resolutie kiest van 0,1dB.
Uitgangs impedantie van de tracking generator in de SA.
Ingangsimpedantie van de SA.
Je gebruikte kabels.
Gedrag SMA koppelstukje voor het "nullen".
Aandraai moment connectoren.
Tracking generator uitgangs vemogen.
Verzwakkers op de uit in de ingang van de SA en ook afhankelijk van de demping van deze verzwakkers.
Enz enz.

Ik had dus een aantal metingen gedaan en ben deze kwijt, daar dit voor precisie metingen veel tijd kost ga ik deze voorlopig niet herhalen.
Zover ik het uit mijn hoofd heb onthouden, gingen de meeste verzwakkers rond de 100Mhz 0,1dB down en na een paar honderd Mhz kwam er een slinger in van rond de 1dB.
Ik heb het vermoede dat dit grotendeels door mijn meetsetup komt.

Ik maak mij hier verder niet zo druk om, het ging om het aansturen van de relais spoeltjes met een Arduino.
En ik ga niet de toegevoerde frequentie meten aan de verzwakker om die ook nog eens met een tabel optimaal te corrigeren ;-)
Ik heb al genoeg te doen...

rew
Ik heb net mijn lijstje bekeken en zag daar geen foutjes in.
Ook jou lijstje heb ik bekeken en ik weet niet goed wat je bedoeld met rara afwijking, bedoel je hiermee de +0,03dB te weinig wemping?

Gegroet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
rbeckers

Overleden

Dat een SA niet simpel is, hangt niet alleen af van de gebruiker. ;)
Wat helpt zijn o.a. screenshots, foto's, manuals, etc...
Bij een paar honderd MHz is een rimpel van ongeveer 0,5dB normaal.

Hi,

Dat is het punt met een scalar analyzer heb je tijdens het kalibreren geen informatie m.b.t. de fase.
Daarom is het gebruik van een vector analyzer een beter keuze maar ook duurder.
Ik kan de Rigol analyzer niet misschien kan je twee keer kalibreren per kanaal dan kan je open/short gebruiken je heb dan informatie m..b.t. 0° en 180°
Ik denk dat in het gebied waar @blackdog in is geïnteresseerd het geen probleem is om met de scalar anayzer de verzwaker te meten de looptijden zijn heel klein t.o.v. de golflengte.

Groet Henk.

Everything should be as simple as possible, but not simpler.
blackdog

Golden Member

Hi, morge :-)

De verzwakkers zoals deze gebruik ik meestal beneden de 200Mhz.
Ik wou met mijn lijstje van "problemen" alleen aangeven wat er allemaal meespeeld bij nauwkeurige metingen.
0,1dB resolutie is geen kinderspel en al helemaal niet als dit over frequenties gaat van 1Mhz tot boven de 100Mhz.

Die 0,1dB is grofweg 1% en als vergelijking kijk dan eens naar de Agilent 1272A handmultimeter, bij 1Khz op zijn best 1% + 25 digits.
Kom je boven de 1Khz dan wordt het al 1,5% + 25 digits tot 5Khz.

De output van de tracking generator in de Rigol SA is vrij krom met grote amplitude sprongen.
Ook is de Ri van de generator niet netjes 50 Ohm.
Dit zelfde geld voor de ingang alleen zover ik het heb kunnen achterhalen is de ingang een stuk vlakker wat betreft de SWR.
Het is en blijft een Low Cost SA, maar door trucjes kan je toch zeer aardige resultaten behalen.
Bij het meten gebruik ik zowel op de TG outgang als op de SA ingang een prof HP verzwakker van 10Ghz of meer bij 6dB.
Hierdoor ziet mijn te meten opject een veel reëlere impedantie aan de in en de uitgang.

Ik zal het er mee moeten doen, ik klaag niet ;-)

Gegroet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Ha blackdog,

Dat heb je goed ik denk dat het belangrijk is te onderkennen dat er aan elke meting beperkingen zitten nu zit dat aan jou kant wel goed :) maar er zijn hele volksstammen die de laatste digit toch nog even op nul moeten zetten :D
Voor wat de Rigol betreft ik denk een hele goede analyzer plus punt blijf ik vinden is de plots mooie documentatie dat is bij de oudere apparaten nog weleens een probleem :(
De verzwakkers is een goede oplossing om de reflectie demping te verbeteren mits je uiteraard goede verzakkers gebruikt anders werkt het averechts want ook een verzwakker heeft een eigen VSWR aan ingang en uitgang de looptijd tussen in en uit is op jouw golflengte klein en zullen bij elkaar op geteld worden let hier op.
Verder als ik naar je metingen kijk zijn de verzwakers in orde voor de ruis meetplaats waar ik mee bezig ben heb ik verzwakkers zelf samengesteld is ook geen 50 Ω en ik ga zoals je weet veel lager in frequentie dan zijn de dunnefilm elementen in de verzwakker niet zo goed meer.

Groet Henk.

Everything should be as simple as possible, but not simpler.