Criado em quarta-feira, 08 de outubro de 2008 20:04 Atualizado em Quinta-feira, 14 de Março de 2017 01:29 Escrito por Batuhan Osmanoglu Hits: 38973 Moving Average Em Matlab Muitas vezes eu me encontro na necessidade de calcular a média dos dados que tenho para reduzir o ruído um pouco pouco. Eu escrevi funções de casal para fazer exatamente o que eu quero, mas matlabs construído em função de filtro funciona muito bem também. Aqui Ill escrever sobre 1D e 2D média dos dados. 1D filtro pode ser realizado usando a função de filtro. A função de filtro requer pelo menos três parâmetros de entrada: o coeficiente de numerador para o filtro (b), o coeficiente do denominador para o filtro (a) e os dados (X), é claro. Um filtro de média em execução pode ser definido simplesmente por: Para dados 2D, podemos usar a função Matlabs filter2. Para obter mais informações sobre como o filtro funciona, você pode digitar: Aqui está uma implementação rápida e suja de um filtro de média móvel 16 por 16. Primeiro precisamos definir o filtro. Uma vez que tudo o que queremos é a contribuição igual de todos os vizinhos, podemos apenas usar a função uns. Nós dividimos tudo com 256 (1616) desde que nós não queremos mudar o nível geral (amplitude) do sinal. Para aplicar o filtro podemos simplesmente dizer o seguinte Abaixo estão os resultados para a fase de um interferograma SAR. Neste caso, Range está no eixo Y e Azimuth é mapeado no eixo X. O filtro tinha 4 pixels de largura em Alcance e 16 pixels de largura em Azimute. Login Searchmoving average Oi Steve Amphlett, muito obrigado pela sua resposta. Bem, eu tenho um fluxo de dados e eu gostaria de média dos dados a cada 60 segundos Eu não preciso remodelar o tamanho da janela Eu preciso manter a janela fixa. Por exemplo, tenho este conjunto de dados: Time PatientIndex 11:36:34 0.83741 11:36:35 0.83741 11:36:36 1.07294 11:36:37 1.18611 11:36:38 1.18611 11:36:39 1.18611 11:36 : 40 1.32703 11:36:41 1.32703 11:36:42 1.32703 11:36:43 1.32703 11:36:44 1.32703 11:36:45 1.32703 11:36:46 1.32703 11:36:47 1.32703 11:36:48 1.32703 11:36:49 1.32703 11:36:50 1.32703 11:36:51 1.32703 11:36:52 1.32703 11:36:53 1.32703 11:36:54 1.49615 11:36:55 1.54860 11:36:56 1.54860 11 : 36: 57 1.54860 11:36:58 1.54860 11:36:59 1.54860 11:37:00 1.54860 11:37:01 1.54860 11:37:02 1.54860 11:37:03 1.54860 11:37:04 1.49615 11:37 : 05 1.49615 11:37:06 1.49615 11:37:07 1.49615 11:37:08 1.49615 11:37:09 1.49615 11:37:10 1.49615 11:37:11 1.49615 11:37:12 1.49615 Eu preciso médio PatientIndex A cada 60 segundos, espero ter ficado claro. Sinta por favor livre contatar-me para todas as perguntas mais adicionais. Eu estarei esperando sua resposta Espero que você possa me ajudar com isso. Obrigado antecipadamente, Sam escreveu: gt gt gt Oi Steve Amphlett, muito obrigado pela sua resposta. Bem, eu tenho um fluxo gt de dados e eu gostaria de média dos dados a cada 60 gt segundos gt Eu não preciso remodelar o tamanho da janela Eu preciso manter a janela gt fixo. Por exemplo eu tenho este conjunto de dados: gt ltsnip, os dados gt Eu preciso de média PatientIndex a cada 60 segundos Espero ter feito gt-me claro. Então você quer reduzir seu amonut de dados de um valor por segundo para um valor médio por minuto Se assim você fizer algo como este: dados seus dados n comprimento (data / 60) Número de médias datareshape (data, 6, N) Então é só um caso de trabalhar nas colunas. Por exemplo: Você pode usar nanmean () da caixa de ferramentas stats para obter os meios: meansnanmean (dados) Untested - Eu não tenho essa TB E algo assim para Nan os valores ruins: dados) gt12 Locais de gt20 NaNs significa (nans ) Nan Olá Steve Amphlett, muito obrigado pela sua resposta. Uma outra pergunta como eu seria capaz de traçar um gráfico de PatientIndex contra o tempo. Desculpe, não estou muito familiarizado com matlab, ou seja, Como traçar o seguinte: Time PatientIndex 11:36:34 0.83741 11:36:35 0.83741 11:36:36 1.07294 11:36:37 1.18611 11:36:38 1.18611 11:36:39 1.18611 11:36:40 1.32703 11:36:41 1.32703 11:36:42 1.32703 11:36:43 1.32703 11:36:44 1.32703 11:36:45 1.32703 11:36:46 1.32703 11:36:47 1.32703 11:36:48 1.32703 11: 36:49 1.32703 11:36:50 1.32703 11:36:51 1.32703 11:36:52 1.32703 11:36:53 1.32703 11:36:54 1.49615 11:36:55 1.54860 11:36:56 1.54860 11:36: 57 1.54860 Estou ansioso para a sua resposta. Obrigado antecipadamente, Oi Steve Eu tentei o seu caminho, mas por algum motivo não funcionou eu não tenho certeza se eu fiz algo errado. Bem, eu escrevi um código e gostaria que você verificá-lo e ver se o seu ok e ele faz a média corretamente mais de 60 segundos. (F) (f) f (f, f) f (f) f (f) f (f) Erro) dados de entrada vazios ou N nulo.)) Return if (N 1) out no gráfico (t. Out) xlabel (Time (sec)) ylabel (Índice de Paciente (BSI)) title (BioSign0004 PatientID 0126 17/10/2006 ) Return end if if (N gt (2 (nx - 1))) fora nanmean (in) ones (tamanho (in)) return end if out zeros (tamanho (in)) nans sum (in for i 1. nx, Se (i - m) lt 1) ((im) lt nx) fora (i) nanmean (em (1 im)) elseif (i - m) gt 1) ) Nano (em (i - m. Im)) elseif (i - m) gt 1) ((im) gt nx) ) Lt 1) ((im) gt nx) fora (i) nanmean (in (1.nx)) elseif (nans gt 12) fora (i) nanmean (in) (BioSign0004 PatientID 0126 17/10/2006) Você pode pensar na sua lista de observação como segmentos que você marcou. Você pode adicionar tags, autores, threads e até mesmo resultados de pesquisa à sua lista de observação. Desta forma, você pode facilmente acompanhar os tópicos que você está interessado polegadas Para ver a sua lista de observação, clique no link quotMas newsreaderquot. Para adicionar itens à sua lista de observação, clique no link quotadd para assistir listquot na parte inferior de qualquer página. Como adicionar um item à minha lista de observação Pesquisa Para adicionar critérios de pesquisa à sua lista de observação, pesquise o termo desejado na caixa de pesquisa. Clique no botão quotAdicionar esta pesquisa ao meu link de listagem de visualizações na página de resultados de pesquisa. Você também pode adicionar uma tag à sua lista de observação procurando a tag com a diretiva quottag: tagnamequot onde tagname é o nome da tag que você gostaria de assistir. Autor Para adicionar um autor à sua lista de observação, vá para a página de perfil dos autores e clique no botão quotAdicionar este autor ao meu link de lista de observação no topo da página. Você também pode adicionar um autor à sua lista de observação, indo a um tópico que o autor postou e clicando no quotAdicionar este autor ao meu link listquot do relógio. Você será notificado sempre que o autor fizer um post. Tópico Para adicionar um tópico à sua lista de observação, vá para a página de discussão e clique no link Adicionar este tópico ao meu link de lista de atalhos na parte superior da página. Sobre Newsgroups, Newsreaders e MATLAB Central O que são newsgroups Os newsgroups são um fórum mundial aberto a todos. Grupos de notícias são usados para discutir uma enorme variedade de tópicos, fazer anúncios e trocar arquivos. As discussões são encadeadas ou agrupadas de uma forma que lhe permite ler uma mensagem postada e todas as suas respostas em ordem cronológica. Isto torna mais fácil seguir o fio da conversa e ver whatrsquos já foi dito antes de postar sua própria resposta ou fazer uma nova postagem. O conteúdo do grupo de notícias é distribuído por servidores hospedados por várias organizações na Internet. As mensagens são trocadas e gerenciadas usando protocolos de padrão aberto. Nenhuma entidade única ldquoownsrdquo os newsgroups. Existem milhares de newsgroups, cada um abordando um único tópico ou área de interesse. O MATLAB Central Newsreader publica e exibe mensagens no newsgroup comp. soft-sys. matlab. Como faço para ler ou publicar nos newsgroups Você pode usar o leitor de notícias integrado no site da MATLAB Central para ler e publicar mensagens neste newsgroup. MATLAB Central é hospedado por MathWorks. As mensagens enviadas através do Central Newsreader do MATLAB são vistas por todos os grupos de notícias, independentemente de como eles acessam os grupos de notícias. Há várias vantagens em usar o MATLAB Central. Uma Conta A sua conta do MATLAB Central está ligada à sua Conta MathWorks para facilitar o acesso. Use o endereço de e-mail da sua escolha O MATLAB Central Newsreader permite que você defina um endereço de e-mail alternativo como seu endereço de postagem, evitando a confusão na sua caixa postal principal e reduzindo o spam. Controle de Spam A maioria de spam do newsgroup é filtrada para fora pelo newsreader central de MATLAB. Marcação As mensagens podem ser marcadas com um rótulo relevante por qualquer usuário conectado. As tags podem ser usadas como palavras-chave para encontrar arquivos particulares de interesse ou como uma maneira de categorizar suas postagens marcadas. Você pode optar por permitir que outras pessoas visualizem suas tags e você pode exibir ou pesquisar outras tags, bem como as da comunidade em geral. Tagging fornece uma maneira de ver tanto as grandes tendências e as menores, mais obscuras idéias e aplicações. Listas de vigilância A configuração de listas de observação permite que você seja notificado das atualizações efetuadas nas postagens selecionadas por autor, segmento ou qualquer variável de pesquisa. As notificações da sua lista de observações podem ser enviadas por email (resumo diário ou imediato), exibidas em Meu leitor de notícias ou enviadas via feed RSS. Outras maneiras de acessar os grupos de notícias Use um leitor de notícias através de sua escola, empregador ou provedor de serviços de internet Pagar pelo acesso de grupos de notícias de um provedor comercial Usar Grupos do Google Mathforum. org fornece um leitor de notícias com acesso ao grupo de notícias comp. soft sys. matlab Execute seu próprio servidor. Para obter instruções típicas, consulte: slyck / ngpage2 Selecione Your CountryIm não certeza da solução correta, porém, uma vez que somar a média de cada amostra iria introduzir uma quantidade razoável de erro de arredondamento. Hmm. Gostaria de saber se seperating a parte fracionária de toda a parte iria ajudar. Divida a parte inteira de cada número pela contagem. Manter três somas correntes: 1) A média das partes inteiras, 2) O restante de cada divisão, e 3) A parte fracionária de cada número. Cada vez que a parte inteira de um número é dividida, o resultado da parte inteira é adicionado à soma corrente média e o restante é adicionado à soma corrente restante. Quando a soma corrente restante obtém um valor maior ou igual à contagem, a sua divisão pela contagem com o resultado da parte inteira adicionada à soma média corrente e o restante adicionado à soma restante em curso. Também, em cada cálculo, a parte fracionária é adicionada à soma de corrida fracionária. Quando a média é terminada, a soma corrente restante é dividida pela contagem e o resultado é adicionado à soma média corrente como um número flutuante. Por exemplo: Agora o que fazer com a soma de execução fracionada. O perigo de estouro é muito menos provável aqui, embora ainda possível, então uma maneira de lidar com isso seria dividir a soma de execução fracionária pela contagem no final e adicioná-lo ao nosso resultado: Uma alternativa seria verificar a execução fracionária Soma em cada cálculo para ver se ele é maior ou igual a contar. Quando isso acontece, basta fazer a mesma coisa que fazemos com o restante executando sum. Documentation tsmovavg saída tsmovavg (tsobj, s, lag) retorna a média móvel simples por para o tempo financeiro série objeto, tsobj. Lag indica o número de pontos de dados anteriores usados com o ponto de dados atual ao calcular a média móvel. A saída tsmovavg (vetor, s, lag, dim) retorna a média móvel simples para um vetor. Lag indica o número de pontos de dados anteriores usados com o ponto de dados atual ao calcular a média móvel. A saída tsmovavg (tsobj, e, timeperiod) retorna a média móvel ponderada exponencial para a série de tempo financeiro objeto, tsobj. A média móvel exponencial é uma média móvel ponderada, em que timeperiod especifica o período de tempo. As médias móveis exponenciais reduzem o desfasamento aplicando mais peso aos preços recentes. Por exemplo, uma média móvel exponencial de 10 períodos pondera o preço mais recente em 18,18. Percentual Exponencial 2 / (TIMEPER 1) ou 2 / (WINDOWSIZE 1). Saída tsmovavg (vetor, e, timeperiod, dim) retorna a média móvel ponderada exponencial para um vetor. A média móvel exponencial é uma média móvel ponderada, em que timeperiod especifica o período de tempo. As médias móveis exponenciais reduzem o desfasamento aplicando mais peso aos preços recentes. Por exemplo, uma média móvel exponencial de 10 períodos pondera o preço mais recente em 18,18. (2 / (intervalo de tempo 1)). A saída tsmovavg (tsobj, t, numperiod) retorna a média móvel triangular para a série de tempo financeiro objeto, tsobj. A média móvel triangular alisa os dados. Tsmovavg calcula a primeira média móvel simples com a largura da janela de ceil (numperíodo 1) / 2. Em seguida, calcula uma segunda média móvel simples na primeira média móvel com o mesmo tamanho de janela. Saída tsmovavg (vetor, t, numperiod, dim) retorna a média móvel triangular para um vetor. A média móvel triangular alisa os dados. Tsmovavg calcula a primeira média móvel simples com a largura da janela de ceil (numperíodo 1) / 2. Em seguida, calcula uma segunda média móvel simples na primeira média móvel com o mesmo tamanho de janela. A saída tsmovavg (tsobj, w, weights) retorna a média móvel ponderada para o objeto da série temporal financeira, tsobj. Fornecendo pesos para cada elemento na janela em movimento. O comprimento do vetor de peso determina o tamanho da janela. Se fatores de peso maiores forem usados para preços mais recentes e fatores menores para preços anteriores, a tendência é mais responsiva a mudanças recentes. A saída tsmovavg (vetor, w, pesos, dim) retorna a média móvel ponderada para o vetor fornecendo pesos para cada elemento na janela em movimento. O comprimento do vetor de peso determina o tamanho da janela. Se fatores de peso maiores forem usados para preços mais recentes e fatores menores para preços anteriores, a tendência é mais responsiva a mudanças recentes. A saída tsmovavg (tsobj, m, numperiod) retorna a média móvel modificada para o objeto da série de tempo financeiro, tsobj. A média móvel modificada é semelhante à média móvel simples. Considere o argumento numperiod como o atraso da média móvel simples. A primeira média móvel modificada é calculada como uma média móvel simples. Os valores subseqüentes são calculados adicionando o novo preço e subtraindo a última média da soma resultante. A saída tsmovavg (vetor, m, numperiod, dim) retorna a média móvel modificada para o vetor. A média móvel modificada é semelhante à média móvel simples. Considere o argumento numperiod como o atraso da média móvel simples. A primeira média móvel modificada é calculada como uma média móvel simples. Os valores subseqüentes são calculados adicionando o novo preço e subtraindo a última média da soma resultante. Dim 8212 dimensão para operar ao longo de inteiro positivo com valor 1 ou 2 Dimensão para operar ao longo, especificado como um inteiro positivo com um valor de 1 ou 2. dim é um argumento de entrada opcional, e se não for incluído como uma entrada, o padrão Valor 2 é assumido. O padrão de dim 2 indica uma matriz orientada a linha, em que cada linha é uma variável e cada coluna é uma observação. Se dim 1. a entrada é assumida como sendo um vetor de coluna ou uma matriz orientada a coluna, onde cada coluna é uma variável e cada linha uma observação. E 8212 Indicador para vetor de caracteres de média móvel exponencial A média móvel exponencial é uma média móvel ponderada, em que timeperiod é o período de tempo da média móvel exponencial. As médias móveis exponenciais reduzem o desfasamento aplicando mais peso aos preços recentes. Por exemplo, uma média móvel exponencial de 10 períodos pondera o preço mais recente em 18,18. Porcentagem Exponencial 2 / (TIMEPER 1) ou 2 / (WINDOWSIZE 1) período de tempo 8212 Duração do período de tempo não-negativo inteiro Selecione seu paísCriado em Quarta-feira, 08 de Outubro de 2008 20:04 Última atualização em Quinta, 14 Março 2017 01:29 Escrito por Batuhan Osmanoglu A média móvel em Matlab Muitas vezes eu me encontro na necessidade de calcular a média dos dados que tenho para reduzir o ruído um pouco. Eu escrevi funções de casal para fazer exatamente o que eu quero, mas matlabs construído em função de filtro funciona muito bem também. Aqui Ill escrever sobre 1D e 2D média dos dados. 1D filtro pode ser realizado usando a função de filtro. A função de filtro requer pelo menos três parâmetros de entrada: o coeficiente de numerador para o filtro (b), o coeficiente do denominador para o filtro (a) e os dados (X), é claro. Um filtro de média em execução pode ser definido simplesmente por: Para dados 2D, podemos usar a função Matlabs filter2. Para obter mais informações sobre como o filtro funciona, você pode digitar: Aqui está uma implementação rápida e suja de um filtro de média móvel 16 por 16. Primeiro precisamos definir o filtro. Uma vez que tudo o que queremos é a contribuição igual de todos os vizinhos, podemos apenas usar a função uns. Nós dividimos tudo com 256 (1616) desde que nós não queremos mudar o nível geral (amplitude) do sinal. Para aplicar o filtro podemos simplesmente dizer o seguinte Abaixo estão os resultados para a fase de um interferograma SAR. Neste caso, Range está no eixo Y e Azimuth é mapeado no eixo X. O filtro tinha 4 pixels de largura em Alcance e 16 pixels de largura em Azimute. Login Pesquisa
No comments:
Post a Comment