summaryrefslogtreecommitdiff
path: root/Antennas_and_Wave_Propagation/chapter21.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Antennas_and_Wave_Propagation/chapter21.ipynb')
-rw-r--r--Antennas_and_Wave_Propagation/chapter21.ipynb343
1 files changed, 343 insertions, 0 deletions
diff --git a/Antennas_and_Wave_Propagation/chapter21.ipynb b/Antennas_and_Wave_Propagation/chapter21.ipynb
new file mode 100644
index 00000000..270e96e9
--- /dev/null
+++ b/Antennas_and_Wave_Propagation/chapter21.ipynb
@@ -0,0 +1,343 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 21: Antenna Measurements<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 21-2.1, Page number: 720<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi\n",
+ "\n",
+ "#Variable declaration\n",
+ "f = 900e6 #Frequency (Hz)\n",
+ "length = 25e-3 #Length of antenna (m)\n",
+ "len_cell = 110e-3 #Length of handset chassis (m)\n",
+ "c = 3e8 #Speed of light (m/s)\n",
+ "del_L = 0.5 #Peak to Peak measurement uncertainty (dB)\n",
+ "\n",
+ "#Calculations\n",
+ "Dm = length + len_cell #Maximum Dimension of antenna (m)\n",
+ "wave_lt = c/f #Wavelength (m)\n",
+ "r_rnf = (wave_lt/(2*pi)) #Outer boundary of reactive near field (m)\n",
+ "\n",
+ "r_ff = 2*(Dm**2)/wave_lt #Fraunhofer region (m)\n",
+ "\n",
+ "r2_ff = r_rnf/(10**(del_L/40)-1) \n",
+ " #Minimum distance where effect of near field is small (m)\n",
+ "\n",
+ "r3_ff = 2*Dm/(10**(del_L/10)-1)\n",
+ " #Minimum distance where effect of rotation of AUT is small (m)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Outer boundary of reactive near field is at a distance\", round(r_rnf,3),\"m\"\n",
+ "print \"The Fraunhofer region starts at a distance\", round(r_ff,3),\"m\"\n",
+ "print \"The Minimum distance where effect of near field is small enough is\",\\\n",
+ " round(r2_ff,1),\"m\"\n",
+ "print \"The Minimum distance where effect of rotation of AUT is small enough \\\n",
+ "is\", round(r3_ff,1),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Outer boundary of reactive near field is at a distance 0.053 m\n",
+ "The Fraunhofer region starts at a distance 0.109 m\n",
+ "The Minimum distance where effect of near field is small enough is 1.8 m\n",
+ "The Minimum distance where effect of rotation of AUT is small enough is 2.2 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 21-2.2, Page number: 720<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi\n",
+ "\n",
+ "#Variable declaration\n",
+ "horn_len = 350e-3 #Length of horn (m)\n",
+ "ap_wid = 200e-3 #Aperture width (m)\n",
+ "ap_hei = 150e-3 #Aperture height (m)\n",
+ "del_L = 0.2 #Peak to peak uncertainty (dB)\n",
+ "f = 10e9 #Frequency (Hz)\n",
+ "c = 3e8 #Speed of light (m/s)\n",
+ "\n",
+ "#Calculations\n",
+ "wave_lt = c/f #Wavelength (m)\n",
+ "r_rnf = wave_lt/(2*pi) ##Outer boundary of reactive near field (m)\n",
+ "\n",
+ "r_ff = 2*(ap_wid**2)/wave_lt #Fraunhofer region (m)\n",
+ "\n",
+ "r2_ff = r_rnf/(10**(del_L/40)-1) \n",
+ " #Minimum distance where effect of near field is small (m)\n",
+ "\n",
+ "r3_ff = 2*horn_len/(10**(del_L/10)-1)\n",
+ " #Minimum distance where effect of rotation of AUT is small (m)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Outer boundary of reactive near field is at a distance\", round(r_rnf,4),\"m\"\n",
+ "print \"The Fraunhofer region starts at a distance\", round(r_ff,1),\"m\"\n",
+ "print \"The Minimum distance where effect of near field is small enough is\",\\\n",
+ " round(r2_ff,2),\"m\"\n",
+ "print \"The Minimum distance where effect of rotation of AUT is small enough \\\n",
+ "is\", round(r3_ff,1),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Outer boundary of reactive near field is at a distance 0.0048 m\n",
+ "The Fraunhofer region starts at a distance 2.7 m\n",
+ "The Minimum distance where effect of near field is small enough is 0.41 m\n",
+ "The Minimum distance where effect of rotation of AUT is small enough is 14.9 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 21-2.3, Page number: 721<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "D = 0.5 #Antenna diameter (m)\n",
+ "f = 300e9 #Frequency (Hz)\n",
+ "c = 3e8 #Speed of light (m/s)\n",
+ "\n",
+ "#Calculations\n",
+ "wave_lt = c/f #Wavelength (m)\n",
+ "r_ff = 2*(D**2)/wave_lt #Fraunhofer region (m)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Fraunhofer region starts at a distance\", r_ff,\"m\"\n",
+ "print \"At 300 GHz the attenuation of the atmosphere is around 10dB/km making\\\n",
+ " the measurement difficult in full-size ranges\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Fraunhofer region starts at a distance 500.0 m\n",
+ "At 300 GHz the attenuation of the atmosphere is around 10dB/km making the measurement difficult in full-size ranges\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 21-4.1, Page number: 726<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi\n",
+ "\n",
+ "#Variable declaration\n",
+ "D = 1 #Diameter of antenna (m)\n",
+ "f = 10e9 #Frequency (Hz)\n",
+ "c = 3e8 #Speed of light (m/s)\n",
+ "\n",
+ "#Calculations\n",
+ "wave_lt = c/f #Wavelength (m)\n",
+ "hpbw = 70*wave_lt/D #Half power beamwidth (degrees)\n",
+ "mea_dist = 2*(D**2)/wave_lt #Measurement distance (m)\n",
+ "trav_dist = hpbw*pi*mea_dist/180 #Traverse distance (m)\n",
+ "taper = ((0.5/(trav_dist/2))**2)*(-3) #Amplitude taper (dB)\n",
+ "\n",
+ "#Result\n",
+ "print \"The amplitude taper is\", round(taper,1), \"dB\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The amplitude taper is -0.5 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 21-4.2, Page number: 735<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log10\n",
+ "\n",
+ "#Variable declaration\n",
+ "pat_lev1 = -22.3 #Pattern level maximum (dB)\n",
+ "pat_lev2 = -23.7 #Pattern level minimum (dB)\n",
+ "\n",
+ "#Calculations\n",
+ "S = abs(pat_lev2-pat_lev1) #Amplitude ripple (dB)\n",
+ "a = (pat_lev1+pat_lev2)/2 #Pattern level (dB)\n",
+ "\n",
+ "R = a + 20*log10((10**(S/20) - 1)/(10**(S/20) + 1))\n",
+ " #Reflectivity (dB)\n",
+ "\n",
+ "#Result\n",
+ "print \"The reflectivity is\", round(R),\"dB\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The reflectivity is -45.0 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 21-5.1, Page number: 739<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi, sin, cos, log10\n",
+ "\n",
+ "#Variable declaration\n",
+ "En = 1 #Field illuminating the AUT (unitless)\n",
+ "tilt_diff = 88 #Difference in tilt angles (degrees)\n",
+ "\n",
+ "#Calculations\n",
+ "En_pol = En*sin(tilt_diff*pi/180) #Co-polar component of field (unitless)\n",
+ "En_crosspol = En*cos(tilt_diff*pi/180)\n",
+ " #Cross-polar component of field (unitless)\n",
+ "meas_cross = 20*log10(En_crosspol)\n",
+ "\n",
+ "#Result\n",
+ "print \"The measure cross-polar level is\", round(meas_cross), \"dB\\\n",
+ " relative to the co-polar field\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The measure cross-polar level is -29.0 dB relative to the co-polar field\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 21-5.2, Page number: 743<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi, log10\n",
+ "\n",
+ "#Variable declaration\n",
+ "f = 1.4e9 #Frequency (Hz)\n",
+ "Tant = 687 #Increase in antenna temperature (K)\n",
+ "phy_ap = 2210 #Physical aperture (m^2)\n",
+ "S = 1590 #Flux density of Cygnus A (Jy)\n",
+ "k = 1.38e-23 #Boltzmann's constant (J/k)\n",
+ "c = 3e8 #Speed of light (m/s)\n",
+ "\n",
+ "#Calculations\n",
+ "wave_lt = c/f #Wavelength (m)\n",
+ "gain = (8*pi*k*Tant)/(S*(10**-26)*wave_lt**2) #Gain(unitless)\n",
+ "gain_db = 10*log10(gain) #Gain (dBi)\n",
+ "\n",
+ "Ae = gain*wave_lt**2/(4*pi) #Effective area (m^2)\n",
+ "\n",
+ "eff_ap = Ae/phy_ap #Aperture efficiency (unitless)\n",
+ "\n",
+ "#Result\n",
+ "print \"The gain of the antenna is\", round(gain_db), \"dBi\"\n",
+ "print \"The aperture efficiency is\", round(eff_ap,2),\"or\",round(eff_ap*100),\"percent\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The gain of the antenna is 55.0 dBi\n",
+ "The aperture efficiency is 0.54 or 54.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file