Font Size

Cpanel

RF-Powermeter

In diesem Beitrag wird der Aufbau eines preisgünstigen Leistungsmessgerätes mit Messmodul von SV1AFN gezeigt. Die recht übersichtliche Hardware besteht aus nur drei einzelnen Baugruppen, einem Arduino UNO, einem Farb-LCD und der Messbaugruppe von Makis, SV1AFN,  und ist dadurch schnell aufgebaut.

Der Messbereich erstreckt sich von 1 MHz bis zum 8 GHz-Bereich hinein, bei einer Empfindlichkeit von - 60 dBm ... 0 dBm. Interessant sind auch die Ausgabe-Modi "dBm", "W" und "Peak-Hold" die sich über den Touch-Screen einfach umschalten lassen. In einem weiteren Menü können die Messparameter konfortabel eingestellt werden.

Die hier verwendete Software ist von Dietmar, DL2SBA, entwickelt worden und steht unter RF Powermeter - Firmware 1.9.0 zum Download zur Verfügung. Dort können auch die benötigten Files (HMI und TFT) für das Nextion-Display heruntergeladen werden.

 

 

RF Power Modul   Links ist das RF-Power-Modul (22 x 34,5 mm) von Makis abgebildet. Es basiert auf dem logarithmischen Messwandler AD8318 und einem Analog-Digital-Konverter mit 12 Bit Auflösung (AD7887BRZ).
     
Arduino UNO Board   Die Verdrahtung der drei Module ist auf der Seite von Dietmar übersichtlich dargestellt.
     
Touch-Screen   Das verwendete TFT-LCD Touch Display NX3224T024 hat eine Größe von 2,4" und muss zur Verwendung zuerst noch Programmiert werden.
     
Nextion TFT wird initialisiert   Zur Programmierung des Displays werden die Files aus der NeoNextion Library benötigt. Sie werden mit Hilfe des Nextion Editor auf das Display geladen. Nach der erfolgreichen Programmierung wird dies auf der Anzeige bestätigt.
     
Startbildschirm   Der Startbildschirm ist recht einfach gehalten.
     
Testaufbau des RF-Powermeter   Der Testaufbau ist nun soweit abgeschlossen und das RF-Powermeter kann nun Kalibriert werden.
     
Messsender R&S SMIQ 03B   Zur Kalibrierung, in meinem Fall bis 3,3 GHz, wird der SMIQ 03B von R&S verwendet. Hier nochmals meinen Dank an Klaus, DK8TQ, für seine Unterstützung.

 

Auf der französischen Seite von Marc, F6ITU, wird die Kalibrierung sehr detailiert beschrieben. Leider wird die Seite mit dem Regressions Tool nicht mehr gefunden, so dass mit Google eine Alternative gesucht werden muss.

In meinem Fall habe ich hierzu mit der Tabellenkalkulation Numbers ein Tabellenblatt entwickelt, welches einem die vielen einzelnen Schritte der Umrechnung der Koefizienten abnimmt und die berechneten Werte als Textfile zur Verfügung stellt. Dieses kann dann einfach an die entsprechende Stelle im Arduino-Sketch hinein kopiert werden.

Die zur Kalibrierung erfassten Pegelwerte, zwischen 0 .. -60 dBm in Stufen von 5 dB, werden durch eine polynominale Regression 3. Grades umgesetzt. Die hierbei errechneten vier Koeffizienten werden dann, je Messbereich, in einem Array, abgelegt. 

 

Kalibrierdaten im Sketch   So werden die Koeffizienten a0 .. a3 im Sketch abgelegt.
     
Array calFreqSteps   Die einzelnen kalibrierten Frequenzbereiche werden auf diese Weise abgelegt. In der Datei data.h wird noch der Eintrag "#define CALFREQ_NUM 22" an die Zahl der Messbereiche angepasst.

 

Kleine Anmerkung zum Speicherbedarf

In den hierzu verwendeten Speicherbereich werden je Messbereich 4 Koefizienten zu je 4 Bytes (float) abgelegt. Daraus ergibt sich der Bedarf von 16 Bytes je Messbereich und entsprechend für 22 Bereiche 352 Bytes.

Dies wird auf der Seite von Marc, F6ITU, anders dargestellt, er geht in seiner Darstellung davon aus, dass je Kalibrierungspunkt (zB. 1 MHz: 0, -5, -10, .. -35, -40, -50, -60 dBm) ein Wert abgelegt wird, also in seinem Fall 11 x 4 = 44 Bytes je Messbereich. Das ist aber nach meiner Meinung nicht korrekt, tatsächlich werden ja nur die berechneten Koeffizienten im ROM abgelegt und das sind dann eben nur die 16 Bytes.

 

Vorbereitung der Daten zur Kalibrierung

Im Menü "Raw Value" können die Rohwerte für die einzelnen Stützpunkte ausgelesen werden, die dann in das Tabellenblatt übernommen werden.

 

Tabellenblatt RawData   So stehen die Rohdaten im Tabellenblatt, hier wird nur ein Ausschnitt gezeigt.
     
Raw Data 1 .. 100 MHz   Hier sind die Rohdaten von 1 MHz bis 100 MHz grafisch dargestellt. Die starke Nichtlinearität im Messbereich 1 und 2 MHz ist gut zu erkennen...
     
Raw Data 1200 ..  3300 MHz   In den höheren Messbereichen (1100 bis 3300 MHz) liegen die Rohdaten sehr linear im Diagramm.

 

 

Koeffizientenberechnung

Zur Berechnung der Stützwerte für die Polynominale Regression wird von folgender Gleichnug ausgegangen, die auch später zur Messwert-Berechnung im Sketch herangezogen wird:

 

f(x) = a3 * x^3 + a2 * x^2 + a1 * x + a0

 

Am Beispiel der Messreihe für 100 MHz soll das Verfahren aufgezeigt werden. Insgesammt sind je Frequenzbereich 13 Stützpunkte, von 0 dBm .. -60 dBm in 5 dB-Schritten, aufgenommen worden. Daraus ergibt sich der folgende Gleichungsansatz:

 

Gleichungen zur Koeffizientenberechnung   Hier sind die 13 Gleichnungen für die einzelnen Stützpunkte angesetzt.

 

Gleichunge als Matrix   Als Matrix A * x = b dargestellt, ergibt sich folgendes Bild.

 

Zur Lösung wird nun diese Matrix mit ihrer transponierten Form mutipliziert:

 

A^T * A*x = A^T * b

 

Normalengleichung Teil 1    
Normalengleichung Teil 2    
Normalengleichung Teil 3    

 

berechnete Normalengleichung   Links steht nun das Ergebnis der berechneten Normalengleichung und kann nun mit Hilfe des Gauß-Jordan Algorithmus gelöst werden.

 

Die Parameter a3 .. a0 werden nun aus der ausmultiplizierte Matrix mit dem Gauß-Jordan-Algorithmus berechnet.

 

Gauss-Jordan-Algorithmus  

Die Matrix wird im Gauß-Jordan-Algorithmus nun so umgeformt, dass sich eine Einheitsmatrix ergibt, die dann die Koeffizienten a3 .. a0 als Lösung enthält.

 

Auf diese Weise lassen sich nun alle Koeffizienten für die einzelnen Messbereiche ermitteln und auch wie oben schon erwähnt, durch das Tabellenblatt in eine geeignete "Text-Form" umsetzten, die dann einfach in das Array im Sketch kopiert wird.

 

Formatierte Kalibrierzeile   So sieht das Ergebnis der formatierten Zeile aus, die dann direkt in den Sketch übernommen werden kann.

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.