├── results ├── raw.png └── quantized.png ├── __pycache__ └── sar.cpython-37.pyc ├── README.md ├── sar.py └── Example_SAR_ADC_with_ENOB.ipynb /results/raw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arutema47/sar-adc/HEAD/results/raw.png -------------------------------------------------------------------------------- /results/quantized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arutema47/sar-adc/HEAD/results/quantized.png -------------------------------------------------------------------------------- /__pycache__/sar.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arutema47/sar-adc/HEAD/__pycache__/sar.cpython-37.pyc -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # What is this repo? 2 | - Simulate ADC quantizations in python 3 | 4 | - Fast Simulations using Numpy 5 | 6 | - Can add noise for your design optimization! 7 | 8 | # Very simple SAR Simulation 9 | ```python 10 | # ADCBIT 11 | BIT = 12 12 | 13 | # ADC noise 14 | noise = 2/2**BIT # noise is 2LSB 15 | 16 | # create ADC 17 | adc = SAR(BIT, noise, 0, 0, 2) 18 | 19 | # ADC conversion 20 | adcout = adc.forward_fft(input, plot=True) 21 | ``` 22 | ```sh 23 | Simulating a 12 bit SAR ADC 24 | Capacitor mismatch not included 25 | plotting conversion results 26 | 27 | 28 | SNDR: [64.12131504] 29 | ENOB: [10.35902243] 30 | ``` 31 | 32 | # Further usage 33 | ```python 34 | # example.py 35 | 36 | from sar import SAR, normalize_input 37 | import numpy as np 38 | import matplotlib.pyplot as plt 39 | 40 | #bit = number of bits in ADC 41 | #ncomp = noise of the comparator 42 | #ndac = noise of the c-dac 43 | #nsamp = sampling kT/C noise 44 | #radix = radix of the C-DAC 45 | 46 | # make a ideal sin signal 47 | adcin = np.sin(np.arange(0, 10, 0.001)) 48 | 49 | # This simulates a standard 6-bit ADC 50 | bit = 6 51 | ncomp = 0.001 52 | ndac = 0 53 | radix = 2 54 | nsamp = 0 55 | 56 | # Define ADC 57 | myadc = SAR(bit, ncomp, ndac, nsamp, radix) 58 | 59 | # Normalize your input 60 | norm_input, center, maxbin = normalize_input(adcin) 61 | 62 | # Run ADC 63 | adcout=myadc.forward(norm_input) 64 | 65 | # Rescale ADC output to original 66 | adcout, _ , _ = normalize_input(adcout) 67 | adcout = adcout * maxbin + center 68 | 69 | #print it. 70 | print(adcout) 71 | plt.plot(adcin) 72 | plt.show() 73 | plt.plot(adcout) 74 | plt.show() 75 | ``` 76 | 77 | ## PLot results 78 | ![raw](results/raw.png) 79 | 80 | ![qunat](results/quantized.png) 81 | -------------------------------------------------------------------------------- /sar.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import numpy as np 4 | import matplotlib.pyplot as plt 5 | 6 | """ 7 | written by Ken Yoshioka 1/29/2018 8 | vectorized sar adc model 9 | 10 | 11 | 12 | adcin = input signal of the ADC 13 | 14 | bit = number of bits in SAR ADC 15 | ncomp = noise of the comparator 16 | ndac = noise of the c-dac 17 | nsamp = sampling kT/C noise 18 | radix = radix of the C-DAC 19 | """ 20 | 21 | class SAR: 22 | def __init__(self, bit, ncomp, ndac, nsamp, radix, addmismatch=False, mismatch=0.01): 23 | self.ncomp = ncomp 24 | self.ndac = ndac 25 | self.nsamp = nsamp 26 | self.bit = bit 27 | self.radix = radix 28 | 29 | print("Simulating a {} bit SAR ADC".format(bit)) 30 | 31 | if addmismatch: 32 | print("Adding capacitor mismatch") 33 | self.mismatch = mismatch # default 1% mismatch for unit cap 34 | else: 35 | print("Capacitor mismatch not included") 36 | self.mismatch = 0 37 | 38 | # create CDAC 39 | self.cdac = self.dac() 40 | 41 | 42 | def comp(self, compin): 43 | #note that comparator output suffers from noise of comp and dac 44 | comptemp = compin + np.random.randn(compin.shape[0])*self.ncomp + np.random.randn(compin.shape[0])*self.ndac 45 | 46 | #comp function in vectors 47 | out = np.maximum(comptemp*10E6, -1) 48 | out = np.minimum(out, 1) 49 | return out 50 | 51 | def dac(self): 52 | cdac = np.zeros((self.bit,1)) 53 | for i in range(self.bit): 54 | cdac[i] = np.power(self.radix,(self.bit-1-i)) 55 | # add mismatch 56 | mis = self.mismatch/np.sqrt(cdac[i]) 57 | cdac[i] += cdac[i]*np.random.randn()*mis 58 | 59 | #normalize to full scale = 1 60 | cdac = cdac/(sum(cdac)+(1+np.random.randn()*mis)) 61 | return cdac 62 | 63 | def forward(self, adcin, fft=False): 64 | #add sampling noise to input first 65 | adcin += np.random.randn(adcin.shape[0]) * self.nsamp 66 | adcout = np.zeros_like(adcin) 67 | 68 | #loop for sar cycles 69 | for cyloop in range(self.bit): 70 | compout = self.comp(adcin) 71 | adcin += compout * (-1) * self.cdac[cyloop] #update cdac output 72 | adcout += np.power(self.radix, self.bit-1-cyloop)*np.maximum(compout, 0) 73 | return adcout 74 | 75 | def forward_fft(self, adcin, plot=False): 76 | # inputs analog waveform and returns SNDR + ENOB 77 | adcout = self.forward(adcin.copy()) 78 | 79 | if plot: 80 | print("plotting conversion results") 81 | plt.plot(adcout[:100]) 82 | plt.show() 83 | 84 | # FFT 85 | F = np.fft.fft(adcout) 86 | 87 | # Spectrum analyze 88 | N = len(adcin) 89 | Amp = np.power(np.abs(F)[0:int(N/2)-1], 2) 90 | Amp[0] = 0 # cut DC 91 | freq = np.linspace(0, 1, N)*N # 周波数軸 92 | freq = freq[0:int(N/2)-1] 93 | #Amp = np.abs(F) 94 | #freq = freq 95 | 96 | # normalize 97 | Amp /= max(Amp) 98 | 99 | # plot 100 | if plot: 101 | plt.figure() 102 | plt.rcParams['font.family'] = 'Times New Roman' 103 | plt.rcParams['font.size'] = 17 104 | 105 | plt.plot(freq, Amp, label='|F(k)|') 106 | plt.xlabel('Frequency', fontsize=20) 107 | plt.ylabel('Amplitude', fontsize=20) 108 | plt.yscale('log') 109 | plt.grid() 110 | plt.show() 111 | 112 | # SNR calc 113 | sig_bin = np.where(Amp==np.abs(Amp).max())[0] 114 | signal_power = Amp[sig_bin] 115 | 116 | noise_power = Amp.sum() - signal_power 117 | 118 | SNDR = signal_power / noise_power 119 | SNDR = 10*np.log10(SNDR) 120 | 121 | ENOB = (SNDR-1.76) / 6.02 122 | print("SNDR:", SNDR) 123 | print("ENOB:", ENOB) 124 | return SNDR, ENOB 125 | 126 | def normalize_input(inp): 127 | center = np.mean(inp) 128 | out = inp - center 129 | 130 | maxbin = np.max(out) * 2 131 | out = out / maxbin 132 | 133 | return out, center, maxbin 134 | 135 | 136 | if "__name__" == "main": 137 | # lets test the adc by random vectors.. 138 | adcin = (np.random.rand(10000)-0.5)/2 139 | print(adcin) 140 | adc = SAR(10, 0, 0, 0, 2) 141 | adcout=adc.forward(adcin) 142 | 143 | #print it. 144 | adc.forward_fft(adcin) 145 | -------------------------------------------------------------------------------- /Example_SAR_ADC_with_ENOB.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# SAR ADC" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 17, 13 | "metadata": {}, 14 | "outputs": [], 15 | "source": [ 16 | "from sar import SAR" 17 | ] 18 | }, 19 | { 20 | "cell_type": "markdown", 21 | "metadata": {}, 22 | "source": [ 23 | "# Generate Signal" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "execution_count": 18, 29 | "metadata": {}, 30 | "outputs": [], 31 | "source": [ 32 | "# -*- coding: utf-8 -*-\n", 33 | "import numpy as np\n", 34 | "import matplotlib.pyplot as plt\n", 35 | "\n", 36 | "# データのパラメータ\n", 37 | "fs = 16384\n", 38 | "N = fs\n", 39 | "dt = 1/fs\n", 40 | "f1 = 1000 # freq\n", 41 | "t = np.arange(0, fs*dt, dt) # time\n", 42 | "freq = np.linspace(0, 1, fs)*fs # fft bins" 43 | ] 44 | }, 45 | { 46 | "cell_type": "code", 47 | "execution_count": 19, 48 | "metadata": {}, 49 | "outputs": [], 50 | "source": [ 51 | "# offset\n", 52 | "offset = 1/(2^12)\n", 53 | "\n", 54 | "# signal generation\n", 55 | "input = np.sin(2*np.pi*f1*t) #+ 0.001 * np.random.randn(N)" 56 | ] 57 | }, 58 | { 59 | "cell_type": "markdown", 60 | "metadata": {}, 61 | "source": [ 62 | "## Conversion and analyze ADC SNDR" 63 | ] 64 | }, 65 | { 66 | "cell_type": "code", 67 | "execution_count": 20, 68 | "metadata": {}, 69 | "outputs": [ 70 | { 71 | "name": "stdout", 72 | "output_type": "stream", 73 | "text": [ 74 | "Simulating a 12 bit SAR ADC\n", 75 | "Capacitor mismatch not included\n", 76 | "plotting conversion results\n" 77 | ] 78 | }, 79 | { 80 | "data": { 81 | "image/png": "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", 82 | "text/plain": [ 83 | "
" 84 | ] 85 | }, 86 | "metadata": { 87 | "needs_background": "light" 88 | }, 89 | "output_type": "display_data" 90 | }, 91 | { 92 | "data": { 93 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ8AAAEUCAYAAAD0lTuPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAA6HElEQVR4nO3dd5wU9fnA8c9zhXp0ODqcSEfpohTxAAtC1Nix5YdGURONsQY71mCJSezRqESjorELiCh6KjYERFFRQcVCEQQpR4d7fn/M7LE322b3tt3d83699nU735mdefZ7s/PMfOc7M6KqGGOMMemUk+kAjDHG1DyWfIwxxqSdJR9jjDFpZ8nHGGNM2lnyMcYYk3Z5mQ6gqmjevLkWFRUl9NnNmzdTv3795AZUDVk9+WP15J/VlT+pqqf58+f/oqotwo2z5ONTUVER8+bNS+izJSUlFBcXJzegasjqyR+rJ/+srvxJVT2JyPeRxlmzmzHGmLSz5GOMMSbtLPkYY4xJO0s+xhhj0s6SjzHGmLSz5GOMMSbtLPkYY4xJO0s+NdD8739l8cqNmQ7DGFOD2UWmNdCx970HwLLJYzMciTGmprIjH2OMMWlnyccYY0zaWfIxxhiTdjUy+YhIExG5Q0Quz3QsxhhTE9XI5APUBZoAtTMdiDHG1EQ1Mvmo6grgh0zHYYwxNVWNTD4uzXQAxhhTU9Xk5GOMMSZDqu1FpiJyDdAzzKhnVPWZdMdjjDFmj2qbfFT1+kzHYIwxJrya3OwmmQ7AGGNqqqxOPiKSJyKni8i3EcYPFZGnReROEblPROr7nG9HYBAwyH1vjDEmjUQ1ezt9icgpwDnAMFUVz7hewGygn6quFJHLgP1U9fgkLn8CMAGgZcuWA6ZOnZrQfEpLSykoKEhWWJU2fuZmAKaM9pWr0ybb6ilbWT35Z3XlT6rqacSIEfNVdWC4cVmdfABE5BzgvjDJ50Vgq6qOc4dbAStxEtW7yY5j4MCBOm/evIQ+W1JSQnFxcXIDqoSiidOB7LurdbbVU7ayevLP6sqfVNWTiERMPlnd7Oba5i0QkQbA4cCCQJmqrgJWAOPSF5oxxphEVIXkE05/IB9Y4ylfDfRLfzjGGGPiUVWTT6H7d62nfBPQIs2xGGOMiVNVTT6BE1VbPOW5wM40x2KMMSZOVTX5rHD/NvKUFxDaFGeMMSbLVNXksxjYAbT0lLcB5qY/HGOMMfGokslHVX8FpgFDAmUi0gZoDth924wxJstVheSTD87dDjzlNwAjRSRwZdTpwBOq+lE6gzPGGBO/rL6xqIiMBk51ByeJyBRVXQqgqgtF5CzgQRFZ5U5zRibiNMYYE5+sTj6qOhOYGWX8dGB6+iIyxhiTDFWh2c0YY0w1Y8nHGGNM2lnyMcYYk3aWfIwxxqSdJR9jjDFpZ8nHGGNM2lnyMcYYk3aWfIwxxqSdJR9jjDFpZ8nHGGNM2lnyMcYYk3aWfIwxxqSdJR9jjDFpZ8nHGGNM2lnyMcYYk3aWfIwxxqSdJR9jjDFpZ8nHGGNM2lnyMcYYk3Y1NvmIyEQRmZTpOIwxpiaqkclHRNoCZ2U6DmOMqalqZPLBSTxPZToIY4ypqWpc8hGR4cB7wI5Mx2KMMTVVjUo+IpILjFTVWZmOxRhjarK8TAeQCiJyDdAzzKiPgUfSHI4xxhiPapl8VPX6cOUiMhs4V0QAGrtlZZGmN8YYkxrVMvlEoqqjAu8D3awt8RhjTPpl7TkfEckTkdNF5NsI44eKyNMicqeI3Cci9dMdozHGmMSIqmY6hrBE5BTgHGCYqopnXC9gNtBPVVeKyGXAfqp6fJJjmABMAGjZsuWAqVOnJjSf0tJSCgoKkhlapYyfuRmAKaOzK19nWz1lK6sn/6yu/ElVPY0YMWK+qg4MNy5rkw+AiJwD3Bcm+bwIbFXVce5wK2AlTqJ6NxWxDBw4UOfNm5fQZ0tKSiguLk5uQJVQNHE6AMsmj81wJBVlWz1lK6sn/6yu/ElVPYlIxOSTtc1urm3eAhFpABwOLAiUqeoqYAUwLn2hGWOMSVS2J59w+gP5wBpP+WqgX/rDMcYYE6+qmHwK3b9rPeWbgBZpjsUYY0wCqmLyCZyk2uIpzwV2pjkWY4wxCaiKyWeF+7eRp7yA0KY4Y4wxWSju5CMih4jI2yIy3x3uLSIPikiP5IcX1mKcm4K29JS3AeamKQZjjDGVEFfyEZGTgVeBYUATAFX9FPgX8JGIDE56hB6q+iswDRgSFFcboDnwTKqXb4wxpvLiPfK5BngC2Bf4KVCoqvOA9cDtSYvMkQ/O3Q485TcAI0UkcFXU6cATqvpRkpdvjDEmBeK9t5uq6qkAIrLLM64eTjfopBCR0cCp7uAkEZmiqkvdIBaKyFnAgyKyyp3mjGQt2xhjTGrFm3yC77NWftcBETkI5y7Ry5MQEwCqOhOYGWX8dGB6spZnjDEmfeJtdntbRC533yuAiPQBHnaH/5PE2IwxxlRT8R753Ab8R0RWAnVE5GugE04SmwZcl+T4jDHGVENxJR9VLQNOE5FhwGE43Z1fAF63R1MbY4zxK6GHyanqHGBOcJmI5APdVXVRMgIzxhhTfUVMPiLSIY755OA0vx0KTKxsUMYYY6q3aEc+7wGt45zfl1jyMcYYE0O05HMPcApOd+ZtQBnQFTgSeBFY4pl+P5LY1doYY0z1FS353A+sVtWHAgUi8hqwv6p+4Z1YRGoDNyc/RGOMMdVNxOt8VPXX4MTjyg+XeNzpt+McGRljjDFRxXuRaT0RaRduhIgcCAyvfEjGGGOqu3iTz7+B90TkTBHpKSKFIjJARG4CZuDc8doYY4yJKt6LTB8QkdY454MkaJTg3PftgiTGZowxppqK+yJTVb1ORJ7FeYxBT2A7zgWn/1LVTUmOzxhjTDWU6B0OPgMu9paLSM9IHRKMMcaYgLiST5S7HgjQDDgKuLayQRljjKne4j3yWYb7KIUIvsOSjzHGmBjifpIp8CCwMsy4gwG7s7UxxpiY4k0+76nqOeFGuJ0Q7CJTY4wxMcV1nY+qHhhl3GfAbyodUQqJSCMR2SoiGvQak+m4jDGmpon3ItOIRKQZMDJZ80uR4cBBQAP39TTwZkYjMsaYGije3m5vRBhVF+gBfF7piFLrVVXdASAitYBdqro1wzEZY0yNE+85n2JgA7A+qEyBLcDLwBVJiSpFAonHdRDwVqZiMcaYmize5PMD0M29g3VVNwa4LdNBGGNMTRRv8jk/UuIRkQHAF9nQjCUi1+Dc+sfrGVV9xn3fWlVXpDEsY4wxrniTz4U4zWvhfApcA1xdqYiSQFWvjzZeRLoDi9MUjjHGGI+YyUdEgp/R09h9bo+EmbQt8H9kQfLxYSyRk6gxxpgU83PkkwvcBOzvDpdEmfaFSsZTTkTygNOAq1W1U5jxQ3Ee4bAKyAcuUdXNPmffV1X/lqxYjTHGxCdm8lHVN92jnXtweohNDjcZsBZ4LYmxnQicAezlHSEivYBngX6qulJELgOmAMf7mbGqnpbEOI0xxsRJVKPdJ9Qzscilqpq2HmIicg5wn6qKp/xFYKuqjnOHW+Hcb26Yqr6bxOVPACYAtGzZcsDUqVMTmk9paSkFBQXJCqvSxs90DhCnjK6f4UgqyrZ6ylZWT/5ZXfmTqnoaMWLEfFUdGG5cvE8yjZp4ROSPqnpPPPOMYVuYZTQADgeuCoprlYisAMYBSUs+qvoA8ADAwIEDtbi4OKH5lJSUkOhnU2LmdIDsioksrKcsZfXkn9WVP5mop4jJR0T6AduDHw4X5Xk+AO2A63Ca51KpP845njWe8tVAvxQv2xhjTBJEO/KZjXMng+CT/R8ChakMyIfA8td6yjcBLdMcizHGmARESz5XAaWeskeBAcAHwE7PuLbA+KRFFlngJNUWT3kuoTEZY4zJQhGTj6reG6b4IeClSCf1RaR2sgKLInBXgkae8gJCm+KMMcZkoXg7HHwNfB1lkvMqF44vi4EdhDaxtQFmpmH5xhhjKilpz/NxvZ3k+YVQ1V+BacCQQJmItAGaA89E+pwxxpjsEa2327+JLzm1B3pXOqKK8t1Y8lR1V1D5DcAMESlQ1VLgdOAJVf0oycs3xhiTAtGa3doBh8Y5P/9XrMYgIqOBU93BSSIyRVWXAqjqQhE5C3hQRFa505yRrGUbY4xJrWjJ50Gcm28+oKoxe5GJSDvg/WQFpqoziXIOR1WnA9OTtTxjjDHpEy35vAjs5SfxAKjqTyIyLjlhGWOMqc6idbXeBSwJN05E8nEe1lYb+E5V17ifSdqtbYwxxlRfcfd2E5GrcK6nWYDTzLZKREpEJNmdDYwxxlRTcV3n4z664HrgJ5zzLT8CTXCe9fOeiByoqh8nPUpjjDHVSryP0T4HJ/nc5D0XJCJnArcChyQpNmOMMdVUvM1ua1V1UrhOCKr6b0JveWOMMcaEiDf5vCEiEmW892jorPhDMsYYU93Fm3z+DvzJWygiBSJyDU737EBZS+DayoVnjDGmOor3nM/XQH0RuSPSBCLy18qFZIwxprqLN/m8CewCNsaYTnCe7zMykaCMMcZUb/EmnztVdbbfiUXkqzjnb4wxpgaI95zPm9FGishTnqLD4py/McaYGiDeh8mVicgInEdp18VpXgtoBRzjmX5ZZQM0xhhT/cR7h4MbgSuiTJK0RyoYY4ypvhK5w8EEnCeWbveMa4094sAYY4wP8Safee6dDML5XkRurmxAxhhjqr94OxzMF5FoCeuXygRjjDGmZog3+fwDODvcCBFpBdgFpsYYY2KKN/kMAK4Vkd3eF7AcaJn8EI0xxlQ3cV9kCmwBZgPbPOPaAqOSEVQyiEgT4Gpgjar+Naj8IOBQnKewPqKqn2coRJNCsz5fxX5FTWlSv1amQzGAqvLk3B85pn9b6uTn+vrM7jJFgJycaPcyNsl29xtLOKhrIfu2S+1DCuI98hGgl6qepKqne16HAp+mIMZE1cV50F3tQIGI1MdpGrzaff09XcGM+ec73FuyNKXLWL3Juz+QHZauLqVo4nSW/bI5LctbW7qdCY/N5+zH5qdleVXNrt1l3P/WN2zbubtC+Y/rtnDHa1+jGv8VEy9/siJkfsFmLFrFFc8v4h+vL/E9z72vmMGYO9+JOxZTObfP+poj7p6T8uXEm3xeVNVoW5CseZCcqq4AfvAUHwF8paplqroVqC0ifdMRzxcrN3LrzNTdbeiVRSsZdNNs3v9mbcqWkajnP/4JgFtmflnpeT3w9jfM//7XqNPs3O1sPL9fF7qqTvt0BbfGGcfa0u18uSrW7QxjU1Vmfb6KnbvLfH9mx64yfin1XtUAX63axN1v+N+QB3tm/k9MfuVL7vJ8/uzH5nPn7CV8sya+nYS5363j/Cc/5oZpX0ScZuM252krv27eEXVeX63aRNHE6Xzy43oAvly1Ka5YwPktFE2cXr7Mqk5VKSsLv0Pw+IffUzRxOpuq4HeNN/lMFZEhUca/UplgUsD7HxsArA4aXgV0T184zh5i70mvsm3nblSVn37dwkNzvmPrDmevceuO3RRNnM5FTy1k9D/eZuWGrXy/NvbGYO6ydQCc+Z+PfMfy4sLlccW+fssOFv20Ia7PAAR2pF/5bFXcnw1e9sZtO7l5xpcce9977NxdxoVPLeT1L36Oudxg5z3xMfeWfBNSvrZ0O5u37wo7n9H/fIfR/6j8HnjJ12uY8Nh87prtP2mc98QCBt74ekj50fe+y+2zvq6QyH4p3V6+HkWz1T1C2by94rTBRy47dpWFPZLZtnM3MxatrFAW2PDN/W4dP/26hbVhkmXgf/HUvB8pmhj5csA3vnR+njM+Wxky7rPlG6IeXQXc/abTwvD9L1uClq8cc++7zPxsFapK0cTpCSdvgJ27yyocIaoq23fFjs2vX0q3lyfqC59aSKcrZgAw8zMnsQZ2SB6a8x0AP28MrfNo1m/Zwa4wO0GJHPUmKt7kcy5wh4g8HOY1A+ifghiTqTEQvNu8EyhMZwDnP/kxG7ftYtWGbTz87jKG3fImN0z7gr/Nco6Kft7oNJ099/Fyvly1icF/fYODbivh9le/4sd1zo8p2gZm847dzP1uXfmwqvK3WV/xw9otIdNeMHUhrywK/ZEHTJ37A+u3OD+AbTt3c8jf3/Z1OP7ht2v5dk1pzOnCeXHhcrbsCE0Cfa9/jd6TZpUP97r2VZ7/eDlnPjov4R/91S98Vr63PuDG1znkjrcAWL1xG0t+3sSP67Zw/1vfsGbTnh/2kp838ez8n9gdYU80WMlXq9mwZc8eaWBjsmztFq56YVHUZsh3lqzhnjeXMsuTXOctW8eO3VqeQJ6e92P5uIE3vs4J/3q/fHjGopVR/w+qyvL1W3niw4oNBCLQ9apX6H71TFZv3Mb2XbspK1MemvMd3a+eyR8eX1BhHQs8XnLJ6lKG3fImA8IkSw1z85PdZcr1L3/B7MU/89RHPzBj0cqIR8d/fWUxv7lrDn94fEF52badu1mxfitFE6eHPeIPfuxl6fZdLPhhPX98YgHL128FnOalFz5eHvU38Oj7yyiaOJ2Plq3jnjeXsnjlRtaWbqfLla+w1+UzGDr5DX76dQv/nL2EblfNZF2MI7todu4uY9bnTnIceOPr9LvhNVSVFxauAODtr9dwzn+d73/z9MXOh9xqveuNJeXfK+D2V7+iaOL0kKOmsjKl7/WvcdkzoWdJgtfrDVt3cuCtb7B0dfxHn37E2+GgP9AHGBRhfFpvr+M+wK5nmFHPqOozYcrXAXWChusB8e/KJ0GZaoUfzL/nfMf4oUURp7/7zaXc/eZS7j2lP394fAF/PWZfWjeqQ/3aebRuVKfCtCf8632ePXcwLRvWYedu5a43ljLr859ZU7o95Mdx7uMLeHfiSNo2rluhfOnqTUx8bhETn1vEBaO6MO3TFRU2wuu37OCZ+T8xsnshnVoUAPDpT+s58u53y6dZNnksqlrhSOPCpxaSlyMUdyukT/tGNKlXi127lUb18vl2w26un7mw/LPgnIdo0aD8tF25Hbv27LWVlcGCH36lf4cmzPp8FfVrO6v16qB4V2/cxg2BHyzw4Nvf8tgH3wPw275tAVixYRu7dpdxwF9nEy63BO+xX/y/T7j2iJ6cuF976tXKY/XGbTQvqM3azTsYc+c7Ferq1uN6U9igdvnyPluxgW/XbOa/H/xAiwa1+ejKgyssZ8nPmzjtobkhy//p1y0cd//7FcqufP4zjhvQjtp5zkn8Rcs38PmKDfRq06h8Qx2oy4DANlmBUx78gGVrt/CbPq3Lf7zBO7/3lnzDlPeWcWSfNrz0yYry8smvLGbKGYNoWCefSA83fnjOd9w0YzF3juvHlc9/FjL+3aW/8PC73/Hwu9+FjPv4+/Xl74Pr/Y0vV7Nt527Wbd7BkMlvlJc/NOc7Bu/dLGQ+/160nfEz93x+d5ky7JY990f+81MLgYp1tGHrTs56dB5/O74P17zo9Ec63q332179imnnDyufdvn6rRXm90vpdr77pZRj73uf6X8axtg751A3P5cPrxxF/Vp5THz2U04b3JEj736XSUf0ZFSPlrRqVIdZn//MxGc/ZZPn6Hv8I3taMn738J51QkQ4/ZG5fOvuwLy4cAUvf7KCp84ezH5FTVn44/ryI8D/fvg94/brwL/e+oan5/9It5YNAXh+4XLuOLEvO3aVsWqz83v6MGinos91zs7en55cyIwLDgyp28qSeA6zRORa4GFguaqWeca1B95T1fbJDTFxIjIJQFUnucMnA8WqOsEdngucpaqfxJrXwIEDdd68eXHH8OO6Lbzz3gdcMafiXsn+ezWt8I8GOGlQB56c6z1NFV5+rpSf2wAYP6SIKe8tC5muW8sGfPVz9D2Xv5/Yh6P7tQPgf/N+ZGT3Qn7dspOD3SMBr/4dGrPgh/Xlw4Ef7vUvf1FhQzL74oNY8nMp5/w39on/sw/qxL/e+rZ8+Lu/juHHdVsZftubDNqraYU9ba8rx/TgphmLOWPoXiEbsn//biBrSrdz+XOLYsYAUCsvp0Jii6VZ/Vq8fP6w8g3hRYd05Y7Xvo6+jNwcdgQ1eTz4u4Gc9aizbv1pZGfufCO0Y8rcK0axauO2Csk94N+/G8hB3VrQ5co9rd63Hte7fM924uHdOX1oEc8tWM6JA9vz2Affc+1Ln/O7wR15fsFyNm3fxSE9W/Kae5QVq76D1cnPobhrITM/r9ik+sBpA5gQpcPHYb1a0qWwQfkGsrIO7lHIaYOLaFFQm/OeXMC3cZ63CqzDO3aV0f3qV8LufPjRoWk9flgX2srQtnFdRvUo5NH3vw8Z16ZRHVZsSF5noaGdm/Hu0j07tg1q54UktYDmBbXLm/A+vvoQHv/we26fFbr+endg/BKR+ao6MOy4OJNPV1WN+MsSkW9Ude8EYkwJEbkO0KDk0wB4HTgA56jnVeBA9VEJiSafaO3bydSiQe0Ke9vx+seJfWnVqA7jHvgAgOuO7MW1L/nrhb5s8lhe+mQFl/7vE7bHseGOZtIRPZn0cuQT2H6N2bcVMxYlfq7Jj5P371DedHXSoPY8OffHGJ+I3296t2bap5Gbh/y686R+/LhuC7e9Wr0etTWqeyGzv1wde8IIXr9oOAff8Tbj9mvP1I+S//+r6jKefKIsoAlwOzBeVf114t/z2TzgNOBqVe0UZvxQ4AKczgH5wCUxetwFPtcRuB+ndeFcVf3eLf8NMBQoAx5VVV+/wmxPPtXNwT0KeX1x4hsTE16kI2RjoklF8on3nI93xu1wEsNZQEMSO+dzInAGsFeY+fcCngX6qepKEbkMmAIcH2umbrI5PEz5NGBaAnGaNLLEkxqWeEy2SCj5iMgA4GLgOCAXp9fYOzhHFHFR1cfd5rBhYUbfDJSoaqC94VHgFhEZqqqhjd9JJiITcB4hQcuWLSkpKUn1Io0xJuukYtsX78PkjgQuAg7E6TSzC+eWO7eo6ioRSfSS8pCzbW5COhy4KlDmLmMFMA5IefJR1QeAB8BpdisuLo5/JjOt2c0YU7UltO2LIWbyEZE6wHjgQqAzTtJZAtwFnKiqFwZNfkASY+uPc45njad8NdAvicsxxhiTZlGTj/vY7LOBpjhJ53XgH6o6wx1/TPD0qprMezwELv70Xj22Cbt7tjHGVGmx7nDwNvAJTuK5HjgskHjSINB5wdtpPnCOyRhjTBUVNfmo6ixVPRjnnmhdga9F5EL37tCpFric2ntf7wJCm+KMMcZUIb7u7aaqH6vqyTh3rS7CSUJ/w3lsQTkRSea93RYDOwhtYmsDhN57xBhjTJUR141FVXWZql4A7INzn7SOIvKEiHR2J3kkWYGp6q841+OU30VbRNoAzYFw920zxhhTRcR7V2vASQyqehPOhaFvAdNF5BOcpJSIfCi/20GwG4CRIlLgDp8OPKGq/p8bYIwxJusklHwCVHW7qv4L6AU8lcg8RGQ0cKo7OCnoKApVXYhz94QHReTvOEc9Z1QmZmOMMZlXqdvrBKjqLuBmERmRwGdnAjOjjJ8O2JWaxhhTjVTqyMdLVbPmMdrGGGOyV1KTjzHGGOOHJR9jjDFpZ8nHGGNM2lnyMcYYk3aWfIwxxqSdJR9jjDFpZ8nHGGOqiPZN68aeqIqw5JNFrhrbgyvH9Mh0GNSvlZvpENLqt33bZDoEY8q1axI5wezVvCDiuK4tI4/LRpZ8ssiZB3birOGdMh0Gh+3TKu3L/O/v968wXNigdoXhcfu1566T7AG22eyATk1DyvZqHv7pK1NO3y/V4VRZg4pC6zFAVaOMS0U0qWPJJ03euSzuOw9lzC3H9qZtY2fvq7hbi4jTfX3j4SmLoWHd/PL3j/1+EJOP7c0Rfdrwl9Hdk76sPx/cNenzzEZzrxzle9p463lAxyZMnTA4pPyU/TuEnb5R0P/XVNSonlM3ZwzdK67PVbHcY8knW/Ru531mnqND03oJz3P2xQcl9Ln83BzOG+nc37VVwzoRp6uVl7zVJ0cqDj8yfs+ecar36Do2S7yOMylS8m9Wv1b5++DvVtgg8v+yss6OcMSeIxK2PBtdNrpbpkPg7IM6cdlh3bliTHeuGpv5JvhUsuSTBfp1aMzjZ+4fdlwLT/NTPBLZu2zdyNlAlblb/LRtOzzLadekLsM6N4/6kRyBN8Ik2D8U7x3fon1+ybG9W4ctz9RefKTkf80RPcvf53qzehKEOy95aK/wTbXH9m8Xtryt57xGrzYNKx9YJfVt1zjTISAIdWvlMmH43uTE+b+rOmneYcknzYLbwAMbjyvG9KBBnfAbsIO6Rm72SrbBnZrx6oXDgeCjjcRW6UgbnWCjgzZY4lmOn4Tw/B+G0qlF6EnWy+JoMnr/8pEVhk8c2D7itJEiGtixSfn7K8f0YMafDvS17Hop7NgxfkgR4PxPky3SUbrX7cf3KW9C8ipsUKdCxxY/R9H/O6dis17gOwLlzcSx9G3f2Nd0kNiO39NnD+bZc4fEnjAF2visA6/ThxZFHf+7wR0Tmm8slnzSpF2Tupw3ojMPBzUntXf3/ppE+IGO2bdVpfZm4t0jb924Dg3dJBjIPd6dr0sPi9w0sW/bPRulcCefvfJy98y8f8fGIePD5Z8DuzhHQ0+fPZg+cWxIIqmXX/GpIjcdHfl5iH5a/wob1qZnm4Yc0tP79PdQJ0RJdJV10aFdOWX/Dlw1tmfU6fJ87l3v03bPkUnwjsGDvxvIkX0S6y0444I9SfrPB3elQe3oT3gJTvIA3Vo1oE7+nh24SvNUxUWHhD8XWCsvh5fOG0rDOhXjfevSYgbt1dR3IgwnkQPV/5wxiIXXHML1R/VKaJmxzu9df1SizwiNzpJPmogIlxzWLWLvn3DuPWUA++0VfiP+6p+Hhy0PTgD5uTl8c/OYCud+LhvdjYIYP3LY06vGmwD+OKJzmKmd6YKn9bOhHrJ3c1o2dPYu83NyaFArxgeAfdo2YtnksQyKUC8Br1xwIHec0MdHFIl78HcDI47r3Tby0UEKWsJCNKyTz01H70vdGEdXB/eInSQBpp2/J1EE/69Hdi/kzgi9ECN9zcD62LFZfYrcc1Idmtbj42sOYXSvVhwRIZl5j4aDh4q7tShPBk9EaMIOxB7w9NmDeevS4j0FQSvtssljOWlQxc4SgSbMFgW16d2uMZ9OOqx83Lj92tOxWehv+/bj+/Dng7tEjCdafH4d1LUFjevVCrv8bGbJJ8Ua18unX2HizSsHdGoW0nRyaM+WYfv0H9ileUjTRG6OsHeLAurmOzGMH1IUcePXMKjpL9Ds5m0Oi+SjKw+uMBzrU6N7teKkQe159twh3HFCH3JyhGsHh99jjJXI3rykOKQ3YY/WDTnGR9NfQMklxbw7cWTU5r7RnvMa0b5jYDaBI7VgifSfSEXTR538HO44sQ//O2cwJwz0X1cS4T1QvjMRzd5hmkoB8nJzuP+0ARw3wF8swf8qkT312quNs4MSy6C9mia0wY6VIDToP3zcgHZcMKqL76Y4v7+3ZJsyur6vOksmSz4pVis3hwa1Qleo4CuVY/XmCm4KGj+kiLtODr+n2aReLerkh090/zljEEf1bUPd/NyQDWwgGV106J5mhmYFzmFIq0b+ekg1L9iz0Tmmf9sKXaUDDg1qiipsWBsRoV2TeuVJonndxFbHvZrXp32cvQJre84xFDWvH7W5ZOlNh1fYI58wvBMDOjahVl4O54Tp4HBITydRhWvSiLZ58V7vFODtDh5uI+9tlgp2uOfarVYN67Bo0mHUq5XHfkVNw66D3h5s/Ts0BqIf4X54xcEc3a9txDi8wq368ZznrBB34L0b3zc3j/E9n+DPhWsyPqZ/W6ZOOACAUw/YsyMQq1MMOEdsAzo2qbBx796qQYRp4wk49eL5X8bLkk8aeNenBVcfErHZLJxOLQo460Cnz3/rRnWonRf/kdSgvZryz3H9EJHyH1HAJe55nIJae5rjxu7bmntO7l9hA3TqAeGv2QgIfM/TDuhY4cdV3K0Fr190UMSkGeyJM/cvvzbkMPdIY68UNCeUn+CO8mMPnE8AZ6882BVjetCkfi2+vvFw9gtzUWC3Vg1YNnks+4Rpfou2rzEszJGSX5F2FJZNHst9pw6oUJaXK+Tnhv78mwZ1077ccx4lOO5o28hITbbRxJo03F558FFChffu29wc4ai985l0RPTzXgG92jQiP1c4b0TFZrJ92jbkjhP6sl9RU5ZNHss5B+3Z2Qh0zx7iIwn54bfKuhTGfzeDf5zYN+z/JNr/KZVN19U6+YhIExG5Q0Qu95RfJCJLRORjESlKd1xN69eiXtCGPpG9Hb/dg8Pp0bphhZOpfyjuzLLJYyt07RQRxvZuXWGje+Nv9wXgtQuHM+38YYCTkG47rnfgQ+XTBjdnTDl9EJ0LC6idl1t+TqpFQfjmmSGdm3PT0c5yTtm/A19cfxgd0ngdTnCtzrsq/qfCe4+ogg2IcmQC0W9rlOodYj9NgcE9IK87she18nIqff6qUtdw+Vj20V1qMT7oYs3DInQJB6eDzpKbxlTYAXj9ouE8edYBET/Tu11jPrnm0LCdLhL5iY7xdOefe+WoChcHX3tET4Z1bs7L7u8vHr/t1zakygob1I66M1uZ7Uws1Tr5AHWBJkD5lk5EOgNvAl2BxcAFmQkt+dJ1hXOXlg3K9+hv/O2+HO/22urjdsFtUs/Ze95/r6YhzT0vnTeUvx3fJ2xTlZeIVEjSsdx1Ur+ovfHAOXdyg89eQX46ZgQ8ceb+5OUIh/aMvHHz1kXI8jy9p245dt/y9362AfFsKCJNGvjO4bqBN3Djq5Wbw2mDi/j6xsOTtnGq7GyCz/lE8/th8d01oHNhg4iXQQRE6k7eMspFvSO7F4aULZs8lu6tKl7vVNigToWLgzsXNuC/Z+5Pnfxc3rlsBHP+Urk7p/xplP/OEMlWrZOPqq4AfvCULVXVj9VpG/gQ+CYjwcUp0o88uNdXfm6q94+ju2psT6adP4wit0ffU2cPDmnuERGOHdAubJNPZR3Rp03E3ngBnQsLOG1wUdIz9ZDOzVl68xhfFwZGmuL8kc6GIHDuacjekZty2jVJ7tHg2cM70a5JXZ4+ezCXH96dk8PcFueOE/py+eHdK3S7Dqf81IuP1fGIPs6efuO6Pro6eggV/43lzX0xPpMNLj60G3OvGBX1urJY2jetV+n1wHv7o3tP6V+p+cXD/65d1RV2MyMitYG9gYvSG05iwt1QcNaFw2nTuC77XPsqAFfHuKYjWCp+hLXycsKe48gm3u/t3UB6hxdec0jSeiAF9mpvPnpfPv5hPX8+uAtT3lsGVDynMfvig9hdpqwt3RF2Puf1rc0ZR1Ts5j3piJ70aN2Qlz9ZEbMbOoT2qurSsgFz/uJccHv2QeGPSls0qB1xnJ9lQGg384sP6cY5B+0d8+giXCwjwhw9QPQjwHDjThzYnqfm/RjX8qPx05SYmyMUNqzDLcf1Tuqy4+WtjzH7hr+LRyrUhOQTQkTqAjcD5wCrgRszG1Fiuras2GOmSX3/e4/Du7bgb6997Wvau0/ux7adZXHFlq0CvfJOPqAD/3rr26jnaAAa14t/jzySYV2a8/alI+jQrB7jBkXuvBHosfhL6faw4we2yqvQMQAoP6+R7u6y4Rw/oD0vLlwRco6r5JLikKbFnByJO/FAUNf+OI9gw6WlW47rzS2B85ZJlMmea+9NHMnc79bx56cWZi6IGKp88hGRa4Bwu/zPqOoz4T6jqluBC0VkBvAUVSD5JPvEXzx3B/hN7+rzvJvR7nmXiaO7c8mh3SI2/0W7m3dlxNN5IvhEcKau/0jEsC7NwybBojgusE6EnzyUbV2ZU6Ggdh5tGtcN2UHx69Zje3PZs58mOapQVT75qOr1lfjsayLySzLjicfh+7Tm7jeX0rR+4jcPNf6N6l5YnsRFJOw5MhHh7UtHUBjhYsnxQ4rSdr89v9dYJaI6boT3XBgdWSp7b2WDDy4fVX5BeaJO2K89V73wWUpuShusyicfHyqclxSRWkCuqm4VkTbAtEwFdtEhXTnzwL18Ne2cun9HZixayVF9Qy/6OqZ/W7bu2J2KEKu8//5+f75ft5krn//M92eiHZ1MOjKx+2clqkGdPDZt2xVx/M1H78sDb2d3n5mj+rZJ2qMVhuzdjN+GufDRe7eDqqTkkmK+W7s5KfNK1g7LousOTcp8osmK5CMiecBpwNWqGvJgEBEZitMlehWQD1yiqjH/WyLSERgEqIh0VNXvgbHAP0XkKWANcEXyvkl8cnLE9zmFDs3qlZ8Q9rrjhL4Vhh/7/SA+W76xsuFVC8O6NKfZSqeO+8e4zqYqOnn/DmF7psXivVVQKv1zXOyLi/16wnPNTfCtbJ6ccADPzP+x0nv+lRVvR8qi5vVT3iQZr0QuZI9XViQf4ETgDCCkE76I9AKeBfqp6koRuQyYAhwfa6ZusjncU/Y88LyfoERkAjABoGXLlpSUlPj5WAU7duxg586yhD6byGcCegAlJf560VRmOclUWlqaslgmH1iXQn6kpOSnlMzfj2jfLdK4Xbuco545784pL0tGPe1fdxUlJT/7nj7T60ik5ZeVOZv6t99+m/wc4eDG8NZbb5WP99ZVpPfJtHar0zln+/btEZeR6LLj+dyiNRWPmEtKSkJ64gXml8rfXiRZkXxU9XERaQCEu2z3ZqBEVVe6w48Ct4jIUFV9N8VxPQA8ADBw4EAtLi6Oex75775Ofv5u4vrszOkA8X0mAX/hGzZv30Vxceaf4AjODyHV3zkTOi94i6WrS8N+t2ldNlC6fRcHRHjuTt6br8KuXQwbNgxmzwKgoKAg8Xpy162RI3xenJimdTHScgMiLT/ntRns3q0MHz487N56+ToV/D1S/J2Wr98Kb71Bndq1Q5eR4LJPXb+I+rXyKC72/+gI+XoNzJ9bPlxcXIy8Or1CAgrEkYnfXlYkH9c2b4GbkA4HrgqUqeoqEVkBjANSmnySJVuboM+N84mfJjHP/WFIxGt2/F4XlanzGM+eO5gPvl2XmYXjPKl2Y5RzXvHefb2qCtzaKh6Bi5X/NKpLyE1iC2rnhb12MJ2yKfmE0x/nHM8aT/lqIHkNycakUMM6+RUeVxGPzG4eYEDHpgzoGPui1VQJ96TacKpaJ4N06FxYwJy/jKBNo7ohd96Yd9XBKe/NFku2314ncAnzWk/5JiB9z5c2JgtccmjX8hu6GkfzCDeozaRMH1EEa9ekXthbPuXlhL+reTpl+5FP4L+4xVOeC+xMcyzGZNR57r3fSpZkOJA0uPXY3jGfwgrwv3MG8/63azO+IQ2nul9TVFnZnnxWuH+9DeMFhDbFGVNt1bTN2An7+bvhZvum9Xw/SPCwXv4eGV4TZENizPbksxjYAXjXmjbAzPSHY0x6ZVMTTlWWznve2b/Mn6xOPqr6q4hMA4YA9wK4dyVoDoS9b5sx1VGy9lRf+ONQymr41nHfto1iPpXXpF42JZ98cO52oKrBfStvAGaISIGqlgKnA0+o6keZCNKYdGpYN5/NSbx1Ut84bihbXSXyFNB4RNtPuGJMdzZujdx1vCbJiuQjIqOBU93BSSIyRVWXAqjqQhE5C3hQRFa505yRiTiNSbepEw7gzS9Xx/VUVZNZ0Q4sJwy3a+sCsmKNVtWZRDmHo6rTgemRxhtTXXVsVr/8WT3GVCfZ1z+xmqnhzevGGBOWJZ90yHyvRmNMmmVBb+asZsnHGGNSwFo9orPkY4wxNcSU0wdxaM+WZPi2bkCWdDgwxpjqJhub3YZ3bcHwND0GPhY78slCTeoldgdkY0zmWXObP3bkk4VeuWA43/5SmukwjDGVkI1HPtnEkk8WatWoDq0a1cl0GMYYkzLW7GaMMSbtLPkYY4xJO0s+xhhj0s6SjzHGJJFi3d38sOSTcrYiGlMTid1XKypLPmlgq6AxNUeO28e6Tr5tXqOxrtbGGJNE7ZrU5eJDuvLbfm0zHUpWs+RjjDFJJCKcP6pLpsPIenZcaIwxJu0s+RhjjEk7Sz7GGGPSzpKPMcaYtLPkY4wxJu0s+RhjjEk7Sz7GGGPSzpKPMcaYtBO1Z776IiJrgO8T/Hhz4JckhlNdWT35Y/Xkn9WVP6mqp46q2iLcCEs+aSAi81R1YKbjyHZWT/5YPflndeVPJurJmt2MMcaknSUfY4wxaWfJJz0eyHQAVYTVkz9WT/5ZXfmT9nqycz7GGGPSzo58jDHGpJ0lH2OMMWlnD5NLIREZClwArALygUtUdXNmo0odEWkB3AmMBtYDDwK3qOpud3wDd/wGoBVwu6rO88zjKOAkYC2wGbg88Hm/86hqRKQ2sBCnrqa4ZfnA7TjrTWPgUVWd6flc1PXLzzyqEhEZApwAfAvMU9X33PKrgY4433O2qj7q+VwPYBKwAmiKU09rPNNEnUe2E5E84GqgAc5vpwj4p6p+FjRNdq1TqmqvFLyAXu4/sLU7fBnwv0zHleLv/DJwE07yeA5Q4Mqg8W8A57vv27n10y5o/CjgO6CuO3wvcJtnGVHnURVfwPVuXY0PKnsE+Jv7vgD4Aegfz/oVax5V6YWTPJ4B6nnKrwWedd/nAp8AvwkaX4iTdPq4wycAHwA5fudRFV7ud7gnaLid+/+uF1SWVetUxiutur6AF4GpQcOt3A3M0EzHlqLv2w041VP2BvCD+/5oYBdQEDR+JvBg0PBCYHLQ8AHuZzr6nUdVewH7APcFJx+gnzvcPWi6+4HX/K5ffuZRVV7AlcBHQB1PeWtgKzA6qGwi8DV7OlP9E/ggaHwuUAqc4nceVeHl/nYu85StAgZk6zpl53xSwG0aOhxYEChT1VU4e2DjMhVXim0AHveUvYjTzAHOHufXqloaNH4+cIKI5IhIN6APQXWG84MS4Dg/80jKt0gjN+YbgMs9o04Atqjql0Fl84FRItLC5/oVdR7J/SapIyL9geuA/1PVbZ7RRwJ1qLjOzAe6AP3d4eOpWE+7cY5sxsUxj6pgLXCuiDQFEJEuOIlisTs+69apKveDrSL647SJrvGUr8bZe6h2VHWVurtCQfJxmjjAOYoJVx8NgU7ueIKncTc2G9lTZ7HmUdX8CXhMVdd7yg8g9D5bq3EScR/8rV+x5lFVXIOTLI4SkRkiMk9ETnLHHYCzgV0bNP1q928/EemIc2QTq54iziM5XyEtbgDaA++IyADgbuC3qrrFHZ9165Qln9QodP+u9ZRvAqrMXmcSHAbc4r4vJHx9gFMnfuos1jyqDHfD2E9Vnwsz2uoKEJH6OJ1XfsK5CPI3wPvAEyIyCuc7rtegDikkVk/R5lElqGoJzlFeJ2AecLeqfhg0SdatU5Z8UiNwBLDFU54L7ExzLBkhIvvj/Khfc4uU8PUBTp34qbNY86hK/gr8JcI4qytHJ6A28LSqrlXVMuAqYBtwKVZPXq1xkvRa4EkRGRk0LuvqypJPaqxw/zbylBcQelhb7YhIXZyTtmcGFa8gfH2AUyd+6izWPKoEETkVeN1tUw/H6soRiLf8HJ+qbgA+BLpj9VRORE4BRqnqBexpHntWRJq5k2RdXVnySY3FwA6gpae8DTA3/eGkj4gIznUAE90NRcBCwtfHKpzumgvdsvJp3GaXhuyps1jzqCp+DzwkIhp4ueWPiMgyIn/PXTgnhP2sX7HmURX86P5t7ilfibN3vxAocNeTgDbu37k468XPxK6naPOoKm4AngRQ1aXAwTjXcQY66ywky9YpSz4poKq/AtOAIYEyEWmD8yN6JlNxpcl1ON01vwoUiEgh8BjQ1z0qCugDPKeOL3BW4CGe8TuAl9zhqPNI/ldJmbNwTuIGv8C5VmMMzvdsISKdgz7TB5ilqpt8rl9R55H8r5R8qvoT8DEw1DOqKfA68BTO+jE4aFwf4HNVXew20z1OxXrKB3qwp56iziN53yblGuN8D6A8Ac3C6QwA2bhOZbp/enV9AX1xDlML3OErgcczHVeKv/M1wD04J4lHA2NxuhGfjbOj8wEwzp22yK2fNkGfHwt8BuS6ww8CNwWNjzmPqvoi9CLT/+EcPYKzYfke90JJv+tXrHlUhRcwEuduGe3c4bY4R7mF7vBtwP3u+3xgERWv2WmL0yOrgzt8CjCHoGt4Ys2jKrxwrmd6JGg4D3jH8/vKqnXK7mqdQiIyFjgV5/AfnH/a9gyGlDIicjFOc5vXbqCtqv7sHgH9A1iOcwHbraq6yDOf03E2OBtxmkxu0KCV1M88qiK36e103XN7nfrsuY1QC+DfqvqW5zNR1y8/86gKRORI4Ayca0qKgL+re9sYEcnFSR61cM4/vKSeHoRu55eLcZJWQ+Av6uzp43ce2c69RdOtQH3gC6AZTovA/KBpsmqdsuRjjDEm7eycjzHGmLSz5GOMMSbtLPkYY4xJO0s+xhhj0s6SjzHGmLSz5GOMMSbtLPkYY4xJO0s+xhhj0i4v0wEYk61EZChwDPBnnB21V3FuogjOrf73xbnR4gh1nqdijPHJ7nBgTAwiMg8YADTRoKeOikg9YCpwhyUfY+JjzW7GxFYarlCdRxRfCGxObzjGVH3W7GZMJajqN8A3mY7DmKrGjnyMSZB7J29EpJOIXCUin4vIeBG5QkQ2iMjUoGmPFpFpIvKBiKwUkZtFJM8zv34i8ryIvC0in4jIvSLypIj8n4i0FZFPPQ+fQ0T+JiKb3fLxnvlFXKaIjBaRqSLyq4jsIyITRWS6iKwVkUvDfNejReQNN7YlInKbiNQSkUYisjrowXjfiEgj9zP7ishyt/yepFa+qfoy/RwKe9kr219ACc7zdhoHlQ0EHnLfdwdudKeZDhwJ3Avc6Y4/C3gZqOMOn+1Oe3PQ/A7FeUzEfu5wDvAooc/5edX52VaI76Qw0/lZ5r1u2WSgnlt2M1AGdA6a7kLgW6C1O3yM+7l/usNN3PEKNPPEdg4wJdP/Q3tl38uOfIzxb5qIlIjIuzgJKRdAVb8E3nSneU9VX1LVP6jqn9znn9yG81yUbe70/8J5DPTFIlLP7bjwKE6y+sidJvAUTq+Vscr8LNOd9Bf37/3qnL8C90FrQH93Xm1xktONqhpYzus4DxGr5877V+Aid1zgsc0BxwK3hInZ1HB2zscY/36jbm83t2npgqBxu92/yz2fGQw0Au4Nbi7DeTpnKdAB6InTZfsdz2cTffCgn2V+iXOE4xVIQoFHlY/Gecha+UPJVHUjzkPdgr2I88jrK0TkEVXdISI9gTKtWo+jNmliyceYBKjqBuB6H5O2dP+eoqo/hZtARH7rvv013PgExFymD+L+beX+zY82saqqiFwHvAD8HrgPOA+4K8Hlm2rOmt2MSa317t9jvSNEpI2INAd2ukUdfczPz4V5fpbp11r3b/8w82orIoEkhaq+CCzAOfppCQwBZsSxLFODWPIxJrZc969EnSr8NO8BW4G/isiZIpILICKtgPuBjcBcd9ozIyw32Bb383XDjAss288y/X6f2TgJ7wIRKT/6cZPO71TVmwwnAe2AV4D/uOeujAlhyceYKESkFnvOb3SJMmmgeWrf4EL3ZPw1OOdQHgRKRWQZ8BPwoqruUNV3cDosHCsiD4nIMBE5Cqf5yutj9+9wN75mwGluWTO/y3SnDxxptQ6af9PgMlVdAtyDc17qBTe2A4HHgLe9wanqyzjnh7oAD4eJ3xhHprvb2cte2foCrsTZYKv72gK8H2a663FO5AemmxNmmv8DPgd2AEuBszzjG+L0eCvF6bRwGTCC0C7UtYD/AuuAp4BLgUNweq79Byj2s0zgOZwOBwqsAc7HOWpZ75ZtA+5xp80BJgI/uPGVAEOi1NuEwGftZa9IL7u3mzFZSkSKcY6ITlfVKRkNJg4i8jJwqTpd0I0Jy5rdjDFJIyL9oPzaJ2Misq7WxmSvQs/frCQifwSuAObhnBs6KrMRmarAjnyMyUIicgvwb3fwehH5bybjiWEtzjmrtjg94L7IcDymCrBzPsYYY9LOjnyMMcaknSUfY4wxaWfJxxhjTNpZ8jHGGJN2lnyMMcak3f8D+OIhsZJn1r4AAAAASUVORK5CYII=", 94 | "text/plain": [ 95 | "
" 96 | ] 97 | }, 98 | "metadata": { 99 | "needs_background": "light" 100 | }, 101 | "output_type": "display_data" 102 | }, 103 | { 104 | "name": "stdout", 105 | "output_type": "stream", 106 | "text": [ 107 | "SNDR: [64.12131504]\n", 108 | "ENOB: [10.35902243]\n" 109 | ] 110 | } 111 | ], 112 | "source": [ 113 | "# ADCBIT\n", 114 | "BIT = 12\n", 115 | "\n", 116 | "# ADC noise\n", 117 | "noise = 2/2**BIT # noise is 2LSB\n", 118 | "\n", 119 | "# create ADC\n", 120 | "adc = SAR(BIT, noise, 0, 0, 2)\n", 121 | "\n", 122 | "# ADC conversion\n", 123 | "adcout = adc.forward_fft(input, plot=True)" 124 | ] 125 | }, 126 | { 127 | "cell_type": "markdown", 128 | "metadata": {}, 129 | "source": [ 130 | "## Or you can use adc.forward(input) and compute FFT manually" 131 | ] 132 | }, 133 | { 134 | "cell_type": "code", 135 | "execution_count": 21, 136 | "metadata": {}, 137 | "outputs": [ 138 | { 139 | "data": { 140 | "text/plain": [ 141 | "[]" 142 | ] 143 | }, 144 | "execution_count": 21, 145 | "metadata": {}, 146 | "output_type": "execute_result" 147 | }, 148 | { 149 | "data": { 150 | "image/png": "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", 151 | "text/plain": [ 152 | "
" 153 | ] 154 | }, 155 | "metadata": { 156 | "needs_background": "light" 157 | }, 158 | "output_type": "display_data" 159 | } 160 | ], 161 | "source": [ 162 | "adcout = adc.forward(input)\n", 163 | "plt.plot(adcout[:100])" 164 | ] 165 | }, 166 | { 167 | "cell_type": "code", 168 | "execution_count": 22, 169 | "metadata": {}, 170 | "outputs": [], 171 | "source": [ 172 | "# 高速フーリエ変換\n", 173 | "F = np.fft.fft(adcout)\n", 174 | "\n", 175 | "# 振幅スペクトルを計算\n", 176 | "Amp = np.power(np.abs(F)[0:int(N/2)-1], 2)\n", 177 | "Amp[0] = 0 # cut DC\n", 178 | "freq = freq[0:int(N/2)-1]\n", 179 | "#Amp = np.abs(F)\n", 180 | "#freq = freq\n", 181 | "\n", 182 | "# 正規化\n", 183 | "Amp /= max(Amp)" 184 | ] 185 | }, 186 | { 187 | "cell_type": "code", 188 | "execution_count": 23, 189 | "metadata": {}, 190 | "outputs": [ 191 | { 192 | "data": { 193 | "image/png": "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", 194 | "text/plain": [ 195 | "
" 196 | ] 197 | }, 198 | "metadata": { 199 | "needs_background": "light" 200 | }, 201 | "output_type": "display_data" 202 | } 203 | ], 204 | "source": [ 205 | "# グラフ表示\n", 206 | "plt.figure()\n", 207 | "plt.rcParams['font.family'] = 'Times New Roman'\n", 208 | "plt.rcParams['font.size'] = 17\n", 209 | "\n", 210 | "plt.plot(freq, Amp, label='|F(k)|')\n", 211 | "plt.xlabel('Frequency', fontsize=20)\n", 212 | "plt.ylabel('Amplitude', fontsize=20)\n", 213 | "plt.yscale('log')\n", 214 | "plt.grid()\n", 215 | "#leg = plt.legend(loc=1, fontsize=25)\n", 216 | "#leg.get_frame().set_alpha(1)\n", 217 | "plt.show()" 218 | ] 219 | }, 220 | { 221 | "cell_type": "code", 222 | "execution_count": 24, 223 | "metadata": {}, 224 | "outputs": [ 225 | { 226 | "name": "stdout", 227 | "output_type": "stream", 228 | "text": [ 229 | "SNR: [64.1664245]\n", 230 | "ENOB: [10.3665157]\n" 231 | ] 232 | } 233 | ], 234 | "source": [ 235 | "# SNR計算\n", 236 | "sig_bin = np.where(Amp==np.abs(Amp).max())[0]\n", 237 | "signal_power = Amp[sig_bin]\n", 238 | "\n", 239 | "noise_power = Amp.sum() - signal_power\n", 240 | "\n", 241 | "SNR = signal_power / noise_power\n", 242 | "SNR = 10*np.log10(SNR)\n", 243 | "\n", 244 | "ENOB = (SNR-1.76) / 6.02\n", 245 | "print(\"SNR:\", SNR)\n", 246 | "print(\"ENOB:\", ENOB)" 247 | ] 248 | }, 249 | { 250 | "cell_type": "code", 251 | "execution_count": null, 252 | "metadata": {}, 253 | "outputs": [], 254 | "source": [] 255 | }, 256 | { 257 | "cell_type": "code", 258 | "execution_count": null, 259 | "metadata": {}, 260 | "outputs": [], 261 | "source": [] 262 | } 263 | ], 264 | "metadata": { 265 | "kernelspec": { 266 | "display_name": "Python 3.7.10 ('pytorch')", 267 | "language": "python", 268 | "name": "python3" 269 | }, 270 | "language_info": { 271 | "codemirror_mode": { 272 | "name": "ipython", 273 | "version": 3 274 | }, 275 | "file_extension": ".py", 276 | "mimetype": "text/x-python", 277 | "name": "python", 278 | "nbconvert_exporter": "python", 279 | "pygments_lexer": "ipython3", 280 | "version": "3.7.10" 281 | }, 282 | "vscode": { 283 | "interpreter": { 284 | "hash": "08258e7919826ba5eddd4f6562e975318b6a55f3823e3049b45016e7861790cc" 285 | } 286 | } 287 | }, 288 | "nbformat": 4, 289 | "nbformat_minor": 2 290 | } 291 | --------------------------------------------------------------------------------