Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Список использованных источников

РефератПомощь в написанииУзнать стоимостьмоей работы

Вишневский В. М., Портной С. Л., Шахнович С. Л. Энциклопедия WiMAX. Путь к 4G — М.: Техносфера, 2010. Таненбаум Э. Компьютерные сети 5-е изд. СПб.: Питер, 2012. EPC Radio-Frequency Identity Protocols Generation-2 UHF RFID/ Ed. By EPCglobal Inc, 2015. Self. collision_prob = 0 if tx_slots == 0 else float (self.ncollisions) / tx_slots. Def sim_nrounds (nrounds, tparams, ntags=5, prob_rn16=0.7… Читать ещё >

Список использованных источников (реферат, курсовая, диплом, контрольная)

  • 1. EPC Radio-Frequency Identity Protocols Generation-2 UHF RFID/ Ed. By EPCglobal Inc, 2015
  • 2. Vishnevsky V.M., Larionov A.A., Ivanov R.E. Analysis and Simulation of UHF RFID Vehicle Identification System / Communications in Computer and Information Science (CCIS). Distributed Computer and Communication Networks. Heidelberg: Springer International Publishing AG, 2016. Volume 678
  • 3. Минниханов Р. Н. (общая редакция) Опыт применения систем видеофиксации нарушений правил дорожного движения (на примере Республики Татарстан). — Казань: ГУ «НЦ БЖД», 2009
  • 4. В. М. Вишневский, Р. Н. Минниханов. Автоматизированная система безопасности на автодорогах с использованием RFID-технологий и новейших беспроводных средств. Проблемы информатики. 2012. № 1
  • 5. Вишневский В. М., Портной С. Л., Шахнович С. Л. Энциклопедия WiMAX. Путь к 4G — М.: Техносфера, 2010
  • 6. Вишневский В. М., Минниханов Р. Н. Патент № 99 207 от 10.11.2010 «Автоматизированная система контроля нарушений ПДД на базе широкополосных беспроводных сетей и RFID-технологии».
  • 7. Вишневский В. М. Теоретические основы проектирования компьютерных сетей. — М.: Техносфера, 2003
  • 8. Таненбаум Э. Компьютерные сети 5-е изд. СПб.: Питер, 2012
  • 9. Романов Б. Н., Краснов С. В. Теория электрической связи. Сообщения, сигналы, помехи, их математические модели. Ульяновск: 2008
  • 10. Компания «ДатаКарт». «RFID — радиочастотная идентификация». URL: http://www.datakrat.ru/technology/7942.html (дата обращения 08.04.2017)
  • 11. «RFID. Что это такое?». Классификация RFID — меток. URL: http://www.avislab.com/blog/rfid_ru/ (дата обращения 20.04.2017)
  • 12. «Основные принципы работы RFID». Характеристики RFID-систем. URL: http://megaobuchalka.ru/6/22 860.html (дата обращения 08.04.2017)

Приложение 1

Код программы.

import random.

import numpy as np.

from matplotlib import pyplot as plt.

import pandas as pd.

from pandas import DataFrame.

%matplotlib notebook.

class RfidSimulator (object):

def __init__(self, Tquery, Tqrep, Trn16, Tack, Tresp, T1, T2, T3, Q=4):

self.Tquery = Tquery.

self.Tqrep = Tqrep.

self.Trn16 = Trn16.

self.Tack = Tack.

self.Tresp = Tresp.

self.T1 = T1.

self.T2 = T2.

self.T3 = T3.

self.Q = Q.

self.sim_time = 0.

self.nreads = [].

self.ncollisions = 0.

self.nempty_slots = 0.

self.t_read = [].

self.reading_prob = 0.

self.collision_prob = 0.

self.mean_t_read = 0.

def refresh (self):

self.sim_time = 0.

self.nreads = [].

self.ncollisions = 0.

self.nempty_slots = 0.

self.t_read = [].

self.reading_prob = 0.

self.collision_prob = 0.

self.mean_t_read = 0.

def run (self, ntags, nrounds, prob_rn16=0.7, prob_resp=0.7,.

verbose=False):

self.nreads = [0] * ntags.

self.t_read = [0] * ntags.

for i_round in range (nrounds):

reader_slot = 0.

while reader_slot < 2 ** self. Q:

if reader_slot == 0:

self.sim_time += self.Tquery.

tag_slots = [].

for i in range (0, ntags):

tag_slots.append (random.randrange (0, 2 ** self. Q, 1)).

else:

self.sim_time += self.Tqrep.

replying_tags = [].

for i in range (0, len (tag_slots)):

if tag_slots[i] == 0:

replying_tags.append (i).

if verbose:

print («Slot #{}: tag slots: {}, replying tags: {} «.format (.

reader_slot, tag_slots, replying_tags)).

n_resp_tags = len (replying_tags).

test_prob_rn16 = random. uniform (0, 1).

test_prob_resp = random. uniform (0, 1).

if n_resp_tags == 0:

self.sim_time += self. T3.

self.nempty_slots += 1.

elif n_resp_tags == 1:

if test_prob_rn16 < prob_rn16:

self.sim_time += (self.Tack + self. T1 +.

self.Tresp + self. T2).

if test_prob_resp < prob_resp:

for i in replying_tags:

# first time read.

if self. nreads[i] == 0:

self.t_read[i] = self. sim_time.

self.nreads[i] += 1.

else:

self.sim_time += self. T1 + self. T2.

self.ncollisions += 1.

reader_slot += 1.

for i in range (0, len (tag_slots)):

tag_slots[i] -= 1.

if verbose:

p_str = «test_prob_rn16: {}, test_prob_resp: {} nreads: {}» .

print (p_str.format (test_prob_rn16, test_prob_resp,.

self.nreads)).

read_tags = len ([1 for x in self. nreads if x ≠ 0]).

self.reading_prob = float (read_tags) / ntags.

tx_slots = nrounds * 2 ** self. Q — self. nempty_slots.

self.collision_prob = 0 if tx_slots == 0 else float (self.ncollisions) / tx_slots.

for i, tr in enumerate (self.t_read):

if tr == 0:

self.t_read[i] = self. sim_time.

self.mean_t_read = sum (self.t_read) / ntags.

return self. reading_prob, self. collision_prob, self. mean_t_read.

params = [{'Tquery': 209.38, 'Tqrep': 59.38, 'Trn16': 89.84, 'Tack': 150.00,.

'Tresp': 527.34, 'T1': 44.97, 'T2': 78.12, 'T3': 112.31},.

{'Tquery': 406.25, 'Tqrep': 106.25, 'Trn16': 179.69, 'Tack': 287.50,.

'Tresp': 527.34, 'T1': 85.59, 'T2': 156, 'T3': 193.75},.

{'Tquery': 603.13, 'Tqrep': 153.13, 'Trn16': 269.53, 'Tack': 425.00,.

'Tresp': 1582.03, 'T1': 123.86, 'T2': 234.36, 'T3': 310.71},.

{'Tquery': 800.00, 'Tqrep': 200.00, 'Trn16': 359.38, 'Tack': 562.50,.

'Tresp': 2109.38, 'T1': 164.50, 'T2': 312.50, 'T3': 479.45}].

def sim_t_params (ntags, nrounds):

for ps in params:

simulator = RfidSimulator (**ps).

simulator.run (ntags=ntags, nrounds=nrounds).

print_str = ('nreads={} ncollisions={:<3} P_reading={:<7.3} ' +.

'P_collision={:<6.3} mean_t_read={:<5} us').

print (print_str.format (simulator.nreads, simulator. ncollisions,.

simulator.reading_prob, simulator. collision_prob,.

int (simulator.mean_t_read))).

def sim_ntags (ntags, tparams, nrounds=6, prob_rn16=0.7, prob_resp=0.7, n=200):

reading_probs = np. zeros (ntags.shape).

collision_probs = np. zeros (ntags.shape).

mean_treads = np. zeros (ntags.shape).

simulator = RfidSimulator (**tparams).

for i, nt in enumerate (ntags):

rps = np. zeros (n).

cps = np. zeros (n).

trs = np. zeros (n).

for j in range (n):

simulator.refresh ().

rp, cp, tr = simulator. run (nt, nrounds, prob_rn16, prob_resp).

rps[j] = rp.

cps[j] = cp.

trs[j] = tr.

reading_probs[i] = rps. mean ().

collision_probs[i] = cps. mean ().

mean_treads[i] = trs. mean ().

return reading_probs, collision_probs, mean_treads.

def sim_nrounds (nrounds, tparams, ntags=5, prob_rn16=0.7, prob_resp=0.7, n=200):

reading_probs = np. zeros (nrounds.shape).

collision_probs = np. zeros (nrounds.shape).

mean_treads = np. zeros (nrounds.shape).

simulator = RfidSimulator (**tparams).

for i, nr in enumerate (nrounds):

rps = np. zeros (n).

cps = np. zeros (n).

trs = np. zeros (n).

for j in range (n):

simulator.refresh ().

rp, cp, tr = simulator. run (ntags, nr, prob_rn16, prob_resp).

rps[j] = rp.

cps[j] = cp.

trs[j] = tr.

reading_probs[i] = rps. mean ().

collision_probs[i] = cps. mean ().

mean_treads[i] = trs. mean ().

return reading_probs, collision_probs, mean_treads.

def sim_prob (probs, tparams, nrounds=6, ntags=5, n=200):

reading_probs = np. zeros (probs.shape).

collision_probs = np. zeros (probs.shape).

mean_treads = np. zeros (probs.shape).

simulator = RfidSimulator (**tparams).

for i, prob in enumerate (probs):

rps = np. zeros (n).

cps = np. zeros (n).

trs = np. zeros (n).

for j in range (n):

simulator.refresh ().

rp, cp, tr = simulator. run (ntags, nrounds, prob, prob).

rps[j] = rp.

cps[j] = cp.

trs[j] = tr.

reading_probs[i] = rps. mean ().

collision_probs[i] = cps. mean ().

mean_treads[i] = trs. mean ().

return reading_probs, collision_probs, mean_treads.

def show_plots (x, r_probs, c_probs, mean_trs, figno):

plt.figure (figno, figsize=(8,3)).

ax1 = subplot2grid ((1,3), (0,0)).

ax2 = subplot2grid ((1,3), (0,1)).

ax3 = subplot2grid ((1,3), (0,2)).

ax1.plot (x, r_probs, 'g').

ax2.plot (x, c_probs, 'b').

ax3.plot (x, mean_trs, 'r').

ax1.set_title ('reading probability').

ax2.set_title ('collision probability').

ax3.set_title ('mean first read time, us').

ax1.set_yticks (np.arange (0, 1.1, 0.1)).

ax2.set_yticks (np.arange (0, 1, 0.1)).

subplots_adjust (wspace=.4, hspace=0.0).

tight_layout ().

plt.savefig ('{}.png'.format (figno)).

Показать весь текст
Заполнить форму текущей работой