diff options
Diffstat (limited to 'Analog_and_digital_communication/Chapter7.ipynb')
-rwxr-xr-x | Analog_and_digital_communication/Chapter7.ipynb | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/Analog_and_digital_communication/Chapter7.ipynb b/Analog_and_digital_communication/Chapter7.ipynb new file mode 100755 index 00000000..59c34938 --- /dev/null +++ b/Analog_and_digital_communication/Chapter7.ipynb @@ -0,0 +1,224 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:5d045633a134a6b88641045e0705da6aba6d8735cb400399955dbb6bc55628cc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 - Sampling Theory and Pulse modulation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the nyquist rate\n",
+ "\n",
+ "import math\n",
+ "#given\n",
+ "#analog signal x(t) = 3*cos(50*math.pi*t) + 10*sin(300*math.pi*t) - cos(100*math.pi*t)\n",
+ "#comparing signal with x(t) = 3*cos(w_1*t) + 10*sin(w_2*t) - cos(w_3*t)\n",
+ "#therefore\n",
+ "w_1 = 50*math.pi;#first frequency in rad/sec\n",
+ "w_2 = 300*math.pi;#second frequency in rad/sec\n",
+ "w_3 = 100*math.pi;#third frequency in rad/sec\n",
+ "\n",
+ "#calculations\n",
+ "f_1 = w_1/(2*math.pi);#first frequency in Hz\n",
+ "f_2 = w_2/(2*math.pi);#second frequency in Hz\n",
+ "f_3 = w_3/(2*math.pi);#third frequency in Hz\n",
+ "f_m = f_2#maximum frequency \n",
+ "f_s = 2*f_m#nyquist rate for a signal\n",
+ "\n",
+ "#results\n",
+ "print \"Nyquist rate (Hz) = \",f_s\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Nyquist rate (Hz) = 300.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 325"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Nyquist rate and interval\n",
+ "import math\n",
+ "#given\n",
+ "#x(t) = (1/()2*math.pi))*cos(4000*math.pi*t)*cos(1000*math.pi*t)\n",
+ "#expanding\n",
+ "print(\"x(t) = (1/(2*math.pi)*cos(4000*math.pi*t)*cos(1000*math.pi*t)\");\n",
+ "print(\"x(t) = (1/(4*math.pi)*2*cos(4000*math.pi*t)*cos(1000*math.pi*t)\");\n",
+ "print(\"x(t) = (1/(4*math.pi))*[cos(4000*math.pi*t + 1000*pi*t)*cos(4000*math.pi*t - 1000*math.pi*t)]\")\n",
+ "print(\"x(t) = (1/(4*math.pi))*[cos(5000*math.pi*t + cos(3000*math.pi*t))]\")\n",
+ "#by comparing above equation with x(t) = (1/(4*math.pi))*[cos(w_1*t) + cos(w_2*t)] \n",
+ "w_1 = 5000.*math.pi\n",
+ "w_2 = 3000.*math.pi\n",
+ "\n",
+ "#calculations\n",
+ "f_1 = w_1/(2*math.pi);\n",
+ "f_2 = w_2 /(2*math.pi);\n",
+ "f_m = f_1\n",
+ "f_s = 2*f_m#Nyquist rate\n",
+ "T_s = 1/f_s#Nyquist interval\n",
+ "\n",
+ "#results\n",
+ "print \"Nyquist rate (Hz) = \",f_s\n",
+ "print \"Nyquist interval (msec) = \",T_s*1000\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x(t) = (1/(2*math.pi)*cos(4000*math.pi*t)*cos(1000*math.pi*t)\n",
+ "x(t) = (1/(4*math.pi)*2*cos(4000*math.pi*t)*cos(1000*math.pi*t)\n",
+ "x(t) = (1/(4*math.pi))*[cos(4000*math.pi*t + 1000*pi*t)*cos(4000*math.pi*t - 1000*math.pi*t)]\n",
+ "x(t) = (1/(4*math.pi))*[cos(5000*math.pi*t + cos(3000*math.pi*t))]\n",
+ "Nyquist rate (Hz) = 5000.0\n",
+ "Nyquist interval (msec) = 0.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the discrete time signal for all conditions\n",
+ "\n",
+ "#given\n",
+ "#x(t) = 8*cos(200*%pi*t)\n",
+ "f= 100.#highest frequency component of continuous time signal in hertz\n",
+ "f_s2 = 400.#sampling frequency in hertz for second condition\n",
+ "f_s3 = 400.#sampling frequency in hertz for third condition\n",
+ "f_s4 = 150.#sampling frequency in hertz for fourth condition since 0 < f_s4 < f_s2/2 \n",
+ "\n",
+ "#calcultions\n",
+ "NR = 2*f#Nyquist rate\n",
+ "F_1 = f/NR;\n",
+ "F_2 = f/f_s2;\n",
+ "F_3 = f/f_s3;\n",
+ "F_4 = f/f_s4;\n",
+ "f_4 = f_s4*F_4;\n",
+ "\n",
+ "#results\n",
+ "print \"The discrete time signal x(n) for the first condition is x(n) = 8*cos(2*pi*\",F_1,\"*n)\"\n",
+ "print \"the discrete time signal x(n) for the second condition is x(n) = 8*cos(2*pi*\",F_2,\"*n)\"\n",
+ "print \"the discrete time signal x(n) for the third condition is x(n) = 8*cos(2*pi*\",F_3,\"*n)\"\n",
+ "print \"The discrete time signal x(n) for the fourth condition is x(n) = 8*cos(2*pi*\",f_4,\"*t)\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The discrete time signal x(n) for the first condition is x(n) = 8*cos(2*pi* 0.5 *n)\n",
+ "the discrete time signal x(n) for the second condition is x(n) = 8*cos(2*pi* 0.25 *n)\n",
+ "the discrete time signal x(n) for the third condition is x(n) = 8*cos(2*pi* 0.25 *n)\n",
+ "The discrete time signal x(n) for the fourth condition is x(n) = 8*cos(2*pi* 100.0 *t)\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the nyquist rate\n",
+ "import math\n",
+ "#given\n",
+ "#x(t) = 6*cos(50*math.pi*t) + 20*sin(300*math.pi*t) - 10*cos(100*math.pi*t)\n",
+ "#by comparing with standard eqn x(t) = A_1*cos(w_1*t) + A_2*sin(w_2*t) + A_3*cos(w_3*t) we get \n",
+ "w_1 = 50*math.pi#frequency in rad/sec\n",
+ "w_2 =300*math.pi#frequency in rad/sec\n",
+ "w_3 = 100*math.pi#frequency in rad/sec\n",
+ "\n",
+ "#calculations\n",
+ "f_1 = w_1/(2*math.pi)#frequency in hertz\n",
+ "f_2 = w_2/(2*math.pi)#frequency in hertz\n",
+ "f_3 = w_3/(2*math.pi)#frequency in hertz\n",
+ "if f_1 > f_2 and f_1> f_3:\n",
+ " f_max = f_1\n",
+ "elif f_2 > f_1 and f_2> f_3:\n",
+ " f_max = f_2\n",
+ "elif f_3 > f_1 and f_3> f_2:\n",
+ " f_max = f_3\n",
+ "\n",
+ "f_s = 2*f_max;#nyquist rate\n",
+ "\n",
+ "#results\n",
+ "print \"Nyquist rate for a continuous signal (Hz) = \",f_s\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Nyquist rate for a continuous signal (Hz) = 300.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file |