Copyright (c) 2007 Takuichi Hirano (Tokyo Institute of Technology)
[Keywords]
Generalized Scattering Matrix (GSM), Scattering Matrix (S-Matrix), Microwave
Circuit, Antenna, High Frequency, Electromagnetic Wave, Distributed Constant
Circuit, Connection, Mode, Transmission Line, Waveguide, Microstrip Line,
Coaxial Cable, Simulator
Generalized Scattering Matrix (GSM) Solver is a free software to solve connected scattering matrix network. User can specify arbitrarily-connected scattering matrix network by using two input files. One input file specifies scattering matrices of each block, another one describes connection network, excitation and matched-load terminal condition.
Fig.1 Arbitrarily-connected scattering matrix network.
Copyright (c) 2007 Takuichi Hirano (Tokyo Institute of Technology). All rights reserved.
GSM Solver is a freely-available software. Like all software, it is copyrighted. I do not have any responsibilities for problems which will be caused by using this software. It can be included in commercial software packages. I only ask that proper credit be given to the author.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer listed in this license
in the documentation and/or other materials provided with the distribution.
- Neither the name of the copyright holders nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.
- If you redistribute with modification by retaining LAPACK routines, you
must follow restrictions on the use of LAPACK software because GSM Solver
uses "zgesvd.f
plus dependencies" of LAPACK.
The content of the following distributions are completely the same. The only difference is the kind of archivers. Please download a favorite archive.
Download! :Windows Console Application (gsm_v1_0.lzh)
Download! :Windows Console Application (gsm_v1_0.zip)
Download! :Windows Console Application (gsm_v1_0.tar.gz)
Passed virus scan by Trend Micro Virus Buster 2007 (Program Ver.: 15.00.1433, Engine Ver.: 8.32.1003, Pattern File No.: 4.169.50).
This distribution includes:
* Readme.txt (Simple document and copyright declaration)
* gsm.exe (Windows EXE file; 32-bit executable binary file for console application)
* s_matrix.dat (Sample S-matrix input file of "1. Quarter Wavelength
Transformer" in page[1])
* topology.dat (Sample topology input file of "1. Quarter Wavelength
Transformer" in page[1])
[1] http://www-antenna.ee.titech.ac.jp/~hira/free_software/gsm_solver/sample/
Download!: Fortran 90 Source File (gsm.f90)
You need "zgesvd.f plus dependencies" of LAPACK for complete compile because this software uses zgesvd subroutine.
Fig.2 Quater-wavelength line with lumped impedance termination.
As an example, let us consider the structure as shown in Fig.2 (a). Quarter-wavelength line is connected to the impedance Z. In order to calculate the input impedance from the terminal port, S-parameter representation in Fig.2 (b) is used in GSM Solver. Lengths of connection lines between the blocks are zero (only topology is represented). You can express the length of connection line by S-matrix of a delay line as shown in Fig.2 (b). The followings are input two files to express this situation.
[S-matrix Input File (s_matrix.dat)]
"-------- GSM SOLVER (S-MATRIX INPUT FILE) --------" "NO. OF BLOCKS", 2 "NO. OF PORTS IN BLOCK 1", 2 "S(1,1) [dB, deg]=", -100.0, 0.0 "S(1,2) [dB, deg]=", 0.0, -90.0 "S(2,1) [dB, deg]=", 0.0, -90.0 "S(2,2) [dB, deg]=", -100.0, 0.0 "NO. OF PORTS IN BLOCK 2", 1 "S(1,1) [dB, deg]=", -6.9897, 63.6439 |
* Character strings between double or single quotations are
for human-friendly and will be ignored in the program.
* The first line is string comment.
* The second line specifies the number of blocks.
* From the third line, the number of blocks and S-matrix of each block are
specified.
* If Block M have N ports, the size of scattering matrix [S(i,j)] is N by
N. This will be represented by N lines in the S-matrix input file with the
form of "S(i,j) [dB, deg]=", Magnitude[dB], Phase[deg]". Variables
i and j are outer and inner loop, respectively.
[Toplogy Input File (topology.dat)]
CM -------- GSM SOLVER (TOPOLOGY INPUT
FILE) -------- CM CM; COMMENTS CM CN BLOCKi PORTi BLOCKj PORTj; CONNECT CM EX BLOCKi PORTi MAG[dB] PHA[deg]; EXCITE CM LD BLOCKi PORTi; MATCHED LOAD CM OP BLOCKi PORTi IN_OUT[1=IN, 2=OUT]; OUTPUT CM ED; END CN 1 2 2 1 EX 1 1 0.0d0 0.0d0 OP 1 1 2 OP 2 1 1 OP 2 1 2 ED |
Command |
Function |
---|---|
CM [COMMENTS] | Comments. The rest of "CM" will be neglected by the program. |
CN [BLOCKi] [PORTj] [BLOCKk] [PORTl] | Connects Port j of Block i and Port l of Block k. |
EX [BLOCKi] [PORTj] [MAG(dB)] [PHA(deg)] | Excitate Port j of Block i. Magnitude and phase can be specified. |
LD [BLOCKi] [PORTj] | Terminat Port j of Block i with matched load (no reflection). |
OP [BLOCKi] [PORTj] [IN OR OUT(1=IN, 2=OUT)] | The result of Port j of Block i will be displayed in output file. You can specify input or output. |
ED | End of topology input file. |
* Excitation port is terminated by a matched-load.
* If you do not specify termination at ports, those ports will be terminated
by matched-loads.
* The topology input file is read from the top to the bottom line. But the
order of commands is not important.
* If "ED" command appears, the rest of commands are neglected.
Usage: gsm [input S-matrix file] [input topology file] [output file]
Output is written in output file (result.dat) as follows.
**** INPUT **** ---- READ S MATRICES ---- NO. OF TOTAL BLOCKS= 2 NO. OF TOTAL PORTS= 3 -- BLOCK 1 -- S( 1, 1)= -100.000000000000 [dB], 0.000000000000000E+000 [deg] S( 1, 2)= 0.000000000000000E+000 [dB], -90.0000000000000 [deg] S( 2, 1)= 0.000000000000000E+000 [dB], -90.0000000000000 [deg] S( 2, 2)= -100.000000000000 [dB], 0.000000000000000E+000 [deg] -- BLOCK 2 -- S( 1, 1)= -6.98970000000000 [dB], 63.6439000000000 [deg] ---- END OF READ S MATRICES ---- ---- READ TOPOLOGY ---- CM CM CM CM CM CM CN 1 2 2 1 EX 1 1 0.000000000000000E+000 0.000000000000000E+000 OP 1 1 2 OP 2 1 1 OP 2 1 2 ED ---- END OF READ TOPOLOGY ---- NO. OF GSM UNKNOWNS= 5 **** BUILD GSM MATRIX **** **** SOLVE **** CONDITION NUMBER= 4.75277868641375 **** OUTPUT **** (BLOCK, PORT, IN[1] OR OUT[2])=MAGNITUDE [dB], PHASE [deg] ( 1, 1, 2)= -6.98976897770091 [dB], -116.354722391180 [deg] ( 2, 1, 1)= 1.724490571454202E-005 [dB], -89.9997704000476 [deg] ( 2, 1, 2)= -6.98968275509429 [dB], -26.3558704000476 [deg] **** FINISHED **** |
PDF File: gsm_technical_notes.pdf
[History of GSM Solver releases]