Projetos PET-Tele. Desenvolvimento de código Octave para busca de máximos em sondagem de canal rádio móvel

Documentos relacionados
Comparação entre métodos de sondagem do canal rádio móvel em banda larga na presença de imperfeições nas sondas

Introdução ao kit de desenvolvimento Arduino. Mini Projetos

Divulgações PET-Tele. Artigos PET-Tele

Tutoriais PET-Tele. Introdução à Amostragem de Sinais com o kit Arduino (Versão: A2016M06D21)

Apostila do Curso de GeoGebra Para o Ciclo Básico de Engenharia

Dicas PET-Tele. Apostila Básica de Funções em C

Aula 15 Variáveis Indexadas (vetores)

2 Modelos de Sinais para Sistemas DS-CDMA

MAC 2166 Introdução à Computação para Engenharia

Introdução à Algoritmos INF 1005 e INF Programação I

Universidade Federal Fluminense Escola de Engenharia Curso de Engenharia de Telecomunicações Programa de Educação Tutorial.

5 Metodologia de Captura e Análise de Dados

Configuração de Juros e Multa na Condição de Pagamento

Interferência Co-canal e Interferência do Canal Adjacente. CMS Bruno William Wisintainer

MANUAL TERMINAL DE CIRCULAÇÃO (BILIOTECA) Este tutorial irá servir como base para o uso do Terminal de Circulação.

Módulo 3 Controle de Fluxo

Instituto de Física Segundo Semestre de Diurno. Prova Substitutiva 15/12/2000

FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS CAMPUS

Cap. 3 Entrada e Saída e Controle de Fluxo

Apostila para Introdução à Linguagem de

7 a Lista de Exercícios Assunto: Funções e passagem por referência com vetor e matriz (Tópico 7)

Introdução. Introdução. Introdução. Introdução. Filtragem

Criando uma Solução de Problemas. Acessar o módulo Oportunidades de Melhoria e escolher a opção Soluções de Problemas.

5 Busca Tratamento das Palavras-Chave de Entrada

TUTORIAL. Tarefa. (papeltutor) AVA/UNESP. (versão3.3)

Aprendizagem de Máquina

Aula 17 Variáveis indexadas de vários índices (matrizes)

Tópicos Cap. 3 Entrada e Saída e Controle de Fluxo Livro printf e scanf if e? while for switch break continue Entrada e Saída Entrada e Saída

FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS CAMPUS

Estruturas de Repetição WHILE e DO- WHILE

INTRODUÇÃO À PROGRAMAÇÃO

Leni Joaquim de Matos. Influência da Vegetação na Dispersão dos Sinais Rádio-Móveis. Tese de Doutorado

4. Algoritmos de Busca em Vetores

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo

Laços de repetição for, while, do-while

Estatísticas e Relatórios. Treinamento OTRS Help Desk

Exercícios Repetição

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

MAC 2166 Introdução à Computação para Engenharia

Ajuste de Estoque. Para realizar o ajuste do estoque proceda da seguinte forma:

INF 1620 P1-18/09/04 Questão 1 Nome:

Ao clicar no menu indicado, é possível realizar a movimentação do caixa fazendo

INF PROGRAMAÇÃO II LISTA DE EXERCÍCIOS DE REVISÃO

Universidade Católica de Petrópolis Centro de Engenharia e Computação Campus Barão de Amazonas Programação II - Matlab

Capítulo VI Carga Móvel

Propriedades da Convolução

Universidade Federal Fluminense - UFF Escola de Engenharia - TCE Curso de Engenharia de Telecomunicações - TGT

4 Metodologia Levantamento de Dados

Prova Fundamentos Computação Gráfica

Algoritmos e Ciclo de Desenvolvimento Aula 02: 01/03/2012

LINGUAGEM C: ARRAY: VETORES E MATRIZES

C Comandos de Controle

Complexidade Computacional do Algoritmo de Detecção de Energia

Disciplina de Algoritmos e Programação. Vetor e Matriz

Para os demais formatos, o relatório será gerado mas virá com configurações incorretas.

Simulação MATLAB - Transmissão PCM em Banda Base e Diagrama de Olho. Testar o efeito de filtros sem ISI no espectro e na curva BERXE b /N 0.

CADERNO DE EXERCÍCIOS 3F

Configurações de Metas. Como cadastrar a Meta:

Contagem de manchas solares em diferentes dias. Alunos do ensino básico.

Tutorial. Metodologia de Cálculo de Enlace por Satélite

Totalizadores nos Relatórios

Questão 1 Exemplo de execução 1 (com N=6): Exemplo de execução 2 (com N=4):

Outras funcionalidades do módulo CCT. (versão 22/01/2019)

Estruturas de Repetição

1. Para cada pergunta selecione uma opção. Resposta correta +2, incorreta -1. [12 pontos]

Manual do Visual Practice

5. Resultados Variabilidade do sinal

Laboratório 3 Comandos de repetição while, do-while e for

Geração de Necessidades de Materiais. Sumário

Estruturas de repetição

Passo-a-passo para desenvolver um Programa usando a Linguagem Python

Lista de Exercícios Complementares 1 - Prof. Red. Entrada e Saída de Dados

C Comandos de Controle

Analisador de Espectros

Adiantamento com o Compromisso de Pagamento.

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

Transmissão e comunicação de dados. Renato Machado

Interferência e Capacidade do Sistema

CADERNO DE EXERCÍCIOS ALGORITMOS

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Matrizes. Prof. Alex Camargo

10. Páginas internas. Note que este poderá não ser o Menu que você está acostumado, pois cada ambiente é customizado de uma maneira diferente.

1. Contabilidade Parâmetros

Prof. MSc. David Roza José 1/27

Dicas PET-Tele. Instalação do módulo CGILua no Apache 2.2

Acessar e Visualizar Treinamentos. Treinamento & Desenvolvimento

4 Detecção de Silhueta

Um Estudo das Técnicas de Obtenção de Forma a partir de Estéreo e Luz Estruturada para Engenharia

Exercícios de Laboratório de ICC Engenharia Ambiental 2º Semestre de 2004

4ª Lista de Exercícios de Programação I

FÍSICA III AULAS 21 E 22: TEORIA ONDULATÓRIA EXERCÍCIOS PROPOSTOS

4 Equipamento Experimental e Medições

Disciplina: Processamento Estatístico de Sinais (ENGA83) - Aula 05 / Detecção Binária Baseada em

Aula 15: Repetição (Parte 3)

PMR2560 Visão Computacional Detecção de bordas. Prof. Eduardo L. L. Cabral

2 Modelando a Propagação do Som

ponteiros INF Programação I Prof. Roberto Azevedo

Uso de microarrays e RNA-seq para a medida de níveis relativos de transcrição

Transcrição:

Universidade Federal Fluminense UFF Escola de Engenharia TCE Curso de Engenharia de Telecomunicações TGT Programa de Educação Tutorial PET Projetos PET-Tele Desenvolvimento de código Octave para busca de máximos em sondagem de canal rádio móvel (Versão: A2013M06D20) Autores: Carina Ribeiro Barbio Corrêa Tutor: Alexandre Santos de la Vega Niterói RJ Junho / 2013

1 Introdução O presente trabalho foi desenvolvido com o intuito de colaborar com o trabalho de tese de doutoramento do professor Carlos Eduardo Salles (UFF/TCE/TET), realizado na Pontifícia Universidade Católica do Rio de Janeiro (PUC-RJ). Nas sondas utilizadas para a caracterização dos ambientes nos quais se propagam os sinais eletromagnéticos podem ser detectados diversos sinais que chegam ao receptor por diferentes trajetos, cada qual com seu atraso, amplitude e fase. O primeiro problema é: i) separar os raios reais detectados pela sonda dos sinais espúrios e ruídos que podem mascarar o resultado, ii) calcular o seu valor complexo e iii) calcular o instante de chegada de cada um deles. A Figura 1 apresenta uma imagem do resultado de uma medição, mostrando três raios recebidos que devem ser separados dos sinais espúrios através do estabelecimento de um limiar. Figura 1: Resultado de uma medição mostrando três raios recebidos. Em decorrência do método de sondagem, das distorções e dos ruídos, os resultados podem se apresentar de uma forma em que seja difícil identificar o máximo de cada trajeto detectado pela sonda, como indica a sequência de imagens apresentada na Figura 2. Nestas imagens, existem três grupos (clusters) de máximos, dos quais só interessa um único valor, relativo a um único instante em cada cluster. Três funções foram criadas para a identificação tanto de clusters quanto do valor máximo dentro de cada cluster. Na função filtraraios, os raios são comparados, de forma a localizar os que têm os maiores picos e, depois, retornar uma matriz com os respectivos tempos e amplitudes desses picos. Na função analisasinais, o objetivo é comparar o sinal original com o sinal de cada método utilizado na análise (STDCC, filtro casado e OFDM) e, depois, imprimir o resultado que mais se aproxima do sinal original. A função filtraregioes tem como objetivo agrupar os máximos em clusters e, dentro de cada um deles, escolher um único par instante-valor que represente o máximo absoluto do cluster. Cada uma das funções criadas é descrita a seguir. No Apêndice A, as funções são listadas, sem comentários. 1

2 Função filtraraios Figura 2: Sinais que possuem três clusters. A função filtraraios receberá uma matriz representando um sinal. Esta matriz terá um número arbitrário de linhas e apenas duas colunas. A primeira coluna referir-se-á ao tempo e a segunda à amplitude do sinal, registrados em determinados pontos de observação. Cada linha da matriz representa um par instante-valor. Com isso, a quantidade de linhas da matriz será igual à quantidade de pontos de observação. Esta função analisará o sinal, procurando por valores máximos de amplitude, acima de um patamar de ruído. O patamar de ruído será definido na chamada da função. O patamarruido é o valor utilizado para filtrar os ruídos e qualquer valor abaixo deste será desconsiderado. Como resultado, ela retornará uma matriz com os valores máximos de amplitude e seus respectivos tempos. A chamada da função define que ela possui dois parâmetros de entrada, que são amplitudes e patamarruido, e um parâmetro de saída, raios. function [raios] = filtraraios(amplitudes, patamarruido) Primeiramente, será iniciado o vetor do parâmetro raios. Depois, será obtido o número de linhas da matriz. raios = [ ]; nraios = 0; npontos = size(amplitudes, 1); if npontos <= 1 return; No primeiro if será verificado se a primeira amplitude é um ponto de máximo. No if mais interno será verificado se há um ponto de máximo entre amplitudes que são iguais. if amplitudes(1,2) > amplitudes(2,2) if amplitudes(1, :) >= patamarruido raios = [ raios; amplitudes(1, :) ]; nraios = nraios + 1; 2

No for é verificado se os pontos intermediários são raios, sem considerar o último. Para um ponto ser um raio, sua amplitude precisa ser maior (ou igual) que a do ponto anterior e maior que a do ponto posterior. No final, verifica-se se o último ponto é um raio, bem como armazenam-se o tempo e a amplitude de cada raio em uma nova matriz. for i = 2 : npontos - 1 if(amplitudes(i, 2) >= amplitudes(i-1, 2) && amplitudes(i,2) > amplitudes(i+1, 2) ) if amplitudes(i, 2) >= patamarruido raios = [ raios; amplitudes(i, :) ]; nraios = nraios + 1; if( amplitudes(npontos, 2) > amplitudes(npontos-1, 2) ) if amplitudes(npontos, 2) >= patamarruido raios = [ raios; amplitudes(npontos, :) ]; nraios = nraios + 1; Para executar a função, devemos proceder da seguinte forma: inicialmente, é digitada a matriz desejada, com 2 colunas e um número de linhas qualquer. Após digitada a matriz, a função será chamada. No exemplo abaixo, usaremos o patamar de ruído como so 0.15. amps = [ 0 0.1; 1 0.1; 2 0.1; 3 0.14; 4 0.13; 5 0.12; 6 0.18; 7 0.2; 8 0.19; 9 0.17; 10 0.2; 11 0.20; 13 0.27; 14 0.27; 15 0.35; 16 0.38; 17 0.34 ]; raios = filtraraios(amps, 0.15); Como resultado da função, teremos uma matriz de duas colunas com os valores dos máximos de amplitude acima de um patamar de ruído. 3 Função analisasinais Esta função tem como objetivo comparar o sinal original com o sinal de cada método utilizado na análise: STDCC, filtro casado e OFDM. Ela irá receber quatro matrizes de duas colunas: uma do sinal original e as outras dos três métodos. Primeiramente, serão capturados os raios de cada método, descartando o ruído de acordo com o patamar utilizado na função filtraraios. Depois desse procedimento, serão encontrados os máximos de cada sinal. Por último, será calculado o delta dos máximos de cada método referente ao sinal original, e será mostrado como resultado o método que possuir o menor delta. Na chamada da função, é informado que a mesma possui cinco parâmetros de entrada: original, metodo1, metodo2, metodo3 e patamarruido, bem como sete parâmetros de saída: raiosoriginal, raiosmetodo1, raiosmetodo2, raiosmetodo3, delta1, delta2, delta3. 3

function [raiosoriginal, raiosmetodo1, raiosmetodo2, raiosmetodo3, delta1, delta2, delta3] = analisasinais (original, metodo1, metodo2, metodo3, patamarruido) Primeiro, os raios de cada método serão capturados, descartando os ruídos de acordo com o patamar definido. Depois, serão achados os picos de cada método e o delta de cada método será calculado. raiosoriginal = filtraraios(original, patamarruido); raiosmetodo1 = filtraraios(metodo1, patamarruido); raiosmetodo2 = filtraraios(metodo2, patamarruido); raiosmetodo3 = filtraraios(metodo3, patamarruido); picooriginal = max( raiosoriginal(:, 2) ); picometodo1 = max( raiosmetodo1 (:, 2) ); picometodo2 = max( raiosmetodo2 (:, 2) ); picometodo3 = max( raiosmetodo3 (:, 2) ); delta1 = picooriginal - picometodo1; delta2 = picooriginal - picometodo2; delta3 = picooriginal - picometodo3; Após os raios terem sido encontrados, os picos de cada método terem sido capturados e os deltas calculados, as informações serão impressas. fprintf( ************************************\n ); fprintf( Sinal original\n ); fprintf( Numero de raios: %d\n, size(raiosoriginal, 1) ); for i = 1:size(raiosOriginal, 1) fprintf( tempo: %f amplitude: %f\n, raiosoriginal(i, 1), raiosoriginal(i, 2) ); fprintf( \nmaior amplitude: %f\n, picooriginal); fprintf( *************************************\n ); fprintf( Metodo 1\n ); fprintf( Numero de raios: %d\n, size(raiosmetodo1, 1) ); for i = 1:size(raiosMetodo1, 1) fprintf( tempo: %f amplitude: %f\n, raiosmetodo1(i, 1), raiosmetodo1(i, 2) ); 4

fprintf( \nmaior amplitude: %f\n, picometodo1); fprintf( delta: %f\n, delta1); fprintf( ***************************************\n ); fprintf( Metodo 2\n ); fprintf( Numero de raios: %d\n, size(raiosmetodo2, 1) ); for i = 1:size(raiosMetodo2, 1) fprintf( tempo: %f amplitude: %f\n, raiosmetodo2(i, 1), raiosmetodo2(i, 2) ); fprintf( \nmaior amplitude: %f\n, picometodo2); fprintf( delta: %f\n, delta2); fprintf( ***************************************\n ); fprintf( Metodo 3\n ); fprintf( Numero de raios: %d\n, size(raiosmetodo3, 1) ); for i = 1:size(raiosMetodo3, 1) fprintf( tempo: %f amplitude: %f\n, raiosmetodo3(i, 1), raiosmetodo3(i, 2) ); fprintf( \nmaior amplitude:\%f\n, picometodo3); fprintf( delta: %f\n, delta3); fprintf( ***************************************\n ); Por último, será descoberto qual método é o mais eficaz e que melhor se aproxima do sinal original. menordelta = min( [abs(delta1) ; abs(delta2) ; abs(delta3) ] ); fprintf( Metodos com menor delta: ); if( abs(delta1) == menordelta ) fprintf( metodo 1 ); if( abs(delta2) == menordelta ) fprintf( metodo 2 ); if( abs(delta3) == menordelta ) fprintf( metodo 3 ); fprintf( \n ) 5

O procedimento para executar a função será o seguinte: primeiramente, serão digitadas as quatro matrizes. Depois, a função será chamada. O patamar de ruído utilizado no exemplo abaixo também será de 0.15. original = [ 0 0.10; 1 0.15; 2 0.25; 3 0.20 ; 4 0.05; 5 0.20; 6 0.30; 7 0.45; 8 0.30 ]; metodo1 = [ 0 0.50; 1 0.10; 2 0.12; 3 0.10; 4 0.05; 5 0.20; 6 0.30; 7 0.28 ]; metodo2 = [ 0 0.00; 1 0.54; 2 0.40; 3 0.25; 4 0.40; 5 0.35]; metodo3 = [ 0 0.00; 1 0.14; 2 0.28; 3 0.44; 4 0.36; 5 0.29; 4 0.20; 5 0.12; 6 0.18; 7 0.27; 8 0.35; 9 0.40]; analisasinais(original, metodo1, metodo2, metodo3, 0.15); 4 Função filtraregioes Esta função tem como objetivo procurar os pontos de máximo em uma região. Ela irá receber um patamar de ruído e uma distância mínima entre os picos. Após todas as posições terem sido verificadas, teremos um valor máximo dentro de cada região. A função possui três parâmetros de entrada: amplitudes, partamarruido (que é o valor utilizado para filtrar os ruídos) e distminraios (distância temporal mínima entre os raios). Se dois raios estiverem a uma distância temporal menor que este último valor, o menor raio será descartado. Por sua vez, há apenas um parâmetro de saída: raios. function [raios] = filtraregioes(amplitudes,patamarruido, distminraios) Primeiro, a função filtraraios será chamada para obter os raios. raios = filtraraios(amplitudes, patamarruido); Agora, a matriz já possui os raios. É necessário percorrer essa matriz verificando se existem raios cuja distância seja menor que o parâmetro distminraios. No if, os raios são comparados para ver qual possui maior amplitude. i = 1; while i < size(raios, 1) if raios(i+1,1) - raios(i,1) <= distminraios if raios(i, 2) > raios(i+1, 2) raios = [ raios(1:i, :) ; raios(i+2:, :) ]; if raios(i+1, 2) > raios(i, 2) raios = [ raios(1:i-1, :) ; raios(i+1:, :) ]; Nesse caso, os dois raios têm a mesma amplitude. Esse caso pode ocasionar um funcionamento incorreto do programa. Então, os dois raios ficarão na matriz. Os raios serão percorridos, para ver se há outro raio na região que será maior que eles. 6

ii = i+1; j = i+2; while j < size(raios, 1) if raios(j, 1) - raios(i, 1) <= distminraios Neste ponto percebe-se que há outro raio na região. O raio j será eliminado e não será mais necessário incrementar o índice j. No ponto i = j é verificado que saímos da região. if raios(i, 2) > raios(j, 2) raios = [ raios(1:j-1, :) ; raios(j+1:, :) ]; if raios(i, 2) < raios(j, 2) raios = [ raios(1:i-1, :) ; raios(ii+1:, :) ]; break ii = ii + 1; i = j; break i = i+1; Para executar essa função, o procedimento é o seguinte: primeiro, definem-se as amplitudes. Depois, ela é chamada. Os valores para o patamarruido e para o distminraios são definidos pelo usuário. amps = [ 0 0.1; 1 0.1; 2 0.1; 3 0.14; 4 0.13; 5 0.12; 6 0.18; 7 0.2; 8 0.19; 9 0.17; 10 0.2; 11 0.20; 13 0.27; 14 0.27; 15 0.35; 16 0.38; 17 0.34 ]; raios = filtraregioes(amplitudes, patamarruido, distminraios); 7

Apêndice A Listagens das funções Função filtraraios function [raios] = filtraraios2(amplitudes, patamarruido) raios = []; nraios = 0; npontos = size(amplitudes, 1); %obto número de linhas if npontos <= 1 return; if amplitudes(1,2) > amplitudes(2,2) if amplitudes(1, :) >= patamarruido raios = [ raios; amplitudes(1, :) ]; nraios = nraios + 1; for i = 2:nPontos-1 if(amplitudes(i, 2) >= amplitudes(i-1, 2) && amplitudes(i,2) > amplitudes(i+1, 2) ) if amplitudes(i, 2) >= patamarruido raios = [ raios; amplitudes(i, :) ]; nraios = nraios + 1; if( amplitudes(npontos, 2) > amplitudes(npontos-1, 2) ) if amplitudes(npontos, 2) >= patamarruido raios = [ raios; amplitudes(npontos, :) ]; nraios = nraios + 1; 8

Função analisasinais function [raiosoriginal, raiosmetodo1, raiosmetodo2, raiosmetodo3, delta1, delta2, delta3] = analisasinais(original, metodo1, metodo2, metodo3, patamarruido) raiosoriginal = filtraraios2(original, patamarruido); raiosmetodo1 = filtraraios2(metodo1, patamarruido); raiosmetodo2 = filtraraios2(metodo2, patamarruido); raiosmetodo3 = filtraraios2(metodo3, patamarruido); picooriginal = max( raiosoriginal(:, 2) ); picometodo1 = max( raiosmetodo1(:, 2) ); picometodo2 = max( raiosmetodo2(:, 2) ); picometodo3 = max( raiosmetodo3(:, 2) ); delta1 = picooriginal - picometodo1; delta2 = picooriginal - picometodo2; delta3 = picooriginal - picometodo3; fprintf( ******************************************\n ); fprintf( Sinal original\n ); fprintf( Numero de raios: %d\n, size(raiosoriginal, 1) ); for i = 1:size(raiosOriginal, 1) fprintf( tempo: %f amplitude: %f\n, raiosoriginal(i, 1), raiosoriginal(i, 2) ); fprintf( \nmaior amplitude: %f\n, picooriginal); fprintf( ******************************************\n ); fprintf( Metodo 1\n ); fprintf( Numero de raios: %d\n, size(raiosmetodo1, 1) ); for i = 1:size(raiosMetodo1, 1) fprintf( tempo: %f amplitude: %f\n, raiosmetodo1(i, 1), raiosmetodo1(i, 2) ); fprintf( \nmaior amplitude: %f\n, picometodo1); fprintf( delta: %f\n, delta1); fprintf( *******************************************\n ); fprintf( Metodo 2\n ); fprintf( Numero de raios: %d\n, size(raiosmetodo2, 1) ); 9

for i = 1:size(raiosMetodo2, 1) fprintf( tempo: %f amplitude: %f\n, raiosmetodo2(i, 1), raiosmetodo2(i, 2) ); fprintf( \nmaior amplitude: %f\n, picometodo2); fprintf( delta: %f\n, delta2); fprintf( *******************************************\n ); fprintf( Metodo 3\n ); fprintf( Numero de raios: %d\n, size(raiosmetodo3, 1) ); for i = 1:size(raiosMetodo3, 1) fprintf( tempo: %f amplitude: %f\n, raiosmetodo3(i, 1), raiosmetodo3(i, 2) ); fprintf( \nmaior amplitude: %f\n, picometodo3); fprintf( delta: %f\n, delta3); fprintf( *******************************************\n ); % Descobrindo o método mais próximo menordelta = min( [abs(delta1) ; abs(delta2) ; abs(delta3) ] ); fprintf( Metodos com menor delta: ); if( abs(delta1) == menordelta ) fprintf( metodo 1 ); if( abs(delta2) == menordelta ) fprintf( metodo 2 ); if( abs(delta3) == menordelta ) fprintf( metodo 3 ); fprintf( \n ) 10

Função filtraregioes function [raios] = filtraregioes(amplitudes, patamarruido, distminraios) raios = filtraraios2(amplitudes, patamarruido); i = 1; while i < size(raios, 1) %i n~ao deve chegar ao último raio if raios(i+1,1) - raios(i,1) <= distminraios if raios(i, 2) > raios(i+1, 2) raios = [raios(1:i,:) ; raios(i+2:,:)]; if raios(i+1, 2) > raios(i, 2) raios = [raios(1:i-1, :) ; raios(i+1:,:)]; ii = i+1; j = i+2; while j < size(raios, 1) if raios(j, 1) - raios(i, 1) <= distminraios if raios(i, 2) > raios(j, 2) raios = [raios(1:j-1,:) ; raios(j+1:,:)]; if raios(i, 2) < raios(j, 2) raios = [raios(1:i-1,:) ; raios(ii+1:,:)]; break ii = ii + 1; i = j; break i = i+1; 11