Jump to content

chatGPT, crie macros só com a descrição ou troque um papo com a ia sobre varios assuntos


Omesmo

Recommended Posts

13 horas atrás, sorel disse:

quem tem acesso a chapght pergunte=

Como criar um algoritmo para detectar os dois primeiros números de uma loteria?
objetivo = encontrar resultados que começam
 com uma determinação dupla, se acertar esta dentro, se errar errar!! fora simples assim

 exemplo MEGA 2565= 09 13  X   X X X

 

Veja:

[]

Para criar um algoritmo que detecte os dois primeiros números de uma loteria, você pode seguir os seguintes passos:

  1. Obtenha os resultados dos sorteios da loteria que deseja analisar.

  2. Analise os resultados e extraia os dois primeiros números de cada sorteio.

  3. Armazene os resultados em uma lista ou array.

  4. Crie uma função que receba como entrada um número e verifique se ele está contido nos dois primeiros números de algum dos sorteios da loteria.

  5. Utilize a função criada para verificar se os números sorteados em um determinado sorteio começam com a determinação dupla desejada.

  6. Exiba o resultado da verificação (se acertou ou errou) para o usuário.

Segue abaixo um exemplo de implementação em Python:

 

def detectar_determinacao_dupla(sorteios, determinacao):
    for sorteio in sorteios:
        if sorteio[0] == determinacao[0] and sorteio[1] == determinacao[1]:
            return "dentro"
    return "fora"

# Exemplo de uso
sorteios = [
    [9, 13, 22, 35, 46, 49],
    [1, 2, 3, 4, 5, 6],
    [7, 8, 9, 10, 11, 12]
]

determinacao = [9, 13]

resultado = detectar_determinacao_dupla(sorteios, determinacao)

print(resultado) # "dentro"
 

Nesse exemplo, a função detectar_determinacao_dupla recebe uma lista de sorteios e uma determinação dupla (no caso, [9, 13]) como entrada. A função itera sobre os sorteios e verifica se os dois primeiros números de cada sorteio correspondem à determinação dupla. Se encontrar um sorteio que corresponda, a função retorna "dentro". Caso contrário, ela retorna "fora".

Você pode adaptar esse exemplo para o tipo de loteria que deseja analisar, mas é importante lembrar que as regras e formatos das loterias podem variar bastante.

 

[]

 

Sorel, gostaria de informar a você, que a análise de um par (duque) seja ele em posição for, depende do seu enfoque, o método científico vai na direção de saber qual a probabilidade a priori, quantas ocorrências em n sorteios e verificar se está de acordo com a probabilidade.

 

A partir daqui traçar estratégia se é conveniente apostar/excluir alguma dupla.

 

Lembrando que o fato de sair ou não sair independe de ter saído ou não nos sorteios anteriores, haja vista os sorteios são independentes.

 

O máximo que se pode inferir é proporção, mas isso não garante que proximamente seja sorteado.

 

Por isso aquela formulinha de duques pra cálculo a priori da probabilidade, depois contar os sorteios e analisar a proporcionalidade, agora sortear ou não proximamente em n sorteios a frente é sorte !!

 

Sds,

Sphgf

 

 

  • Like 1
Link to comment
Share on other sites

ok sphgf muito bom se pode usar nas 3 primeiras dezenas da lotofacil é so adaptar

olhe na centena jb se acerta o 1º digitos digamos 4 voce so tem 99 para filtrar, se acerta a frente ou começo evita

 muito filtro  porque tem rerefencia( a dupla inicial) é um bom caminho para evitar uma porrada de filtro e tambem nao se anda em circulos , boa sphgh, abraço

  • Like 1
Link to comment
Share on other sites

sphgf,= dividir para vencer no acAso acertar  dividir aqui em 3 duques ou duas trintas a mega ou qualquer loteria de 6 numeros, DIVIDA E VENÇA, como temos mais dois duplas alem da 1ª pode ser uma das tres obedeça o padrao de repetiçao, sphgf, temos 4 grupos ii pp ip pi para filtrar por grupos e a dupla frontal vai de 01 a maximo 50 em 90% 80% ja serve, antes do ultimo deu 07 08= que é pi/pp ja neste ultimo 09 13 = pi/ii ou seja se filtrar por grupos

 quer so um par peque as termiançoes 78  par 93

isto é so um filtro se ou outros dois pares determina queem é a1ª dupla bom isto tem fazer um estudo com a chapght se errar a 1ª dupla voce ja esta fora, voce acerta pode pegar premios secundarios

  • Like 1
Link to comment
Share on other sites

Em 19/02/2023 em 16:34, sorel disse:

ola sghgf, desculpa fiz a pergunta errado, detectar ou rastrear a dupla inicial é facil  a pergunta é como chegar a tal dupla, ou como prever o começo da loteria, e nao suas estatisticas !

 

Estava procurando um tal Pairwise Shuffle para usar na loteria e tentar prever as duas primeiras dezenas, você pode me orientar em como usar uma analise pairwise ?

 

 

Pairwise Shuffle é uma técnica estatística para análise de dados que envolve comparar pares de observações em um conjunto de dados. A ideia básica é comparar cada par de observações em relação a uma determinada característica e, em seguida, utilizar essas comparações para gerar previsões.

No contexto da loteria, você pode usar uma análise pairwise para comparar pares de números sorteados em jogos anteriores. Por exemplo, você pode comparar o número 1 com o número 2, o número 1 com o número 3, o número 1 com o número 4 e assim por diante, até comparar todos os pares possíveis. Depois de comparar todos os pares, você pode identificar quais pares aparecem com mais frequência e usá-los para gerar previsões para os próximos sorteios.

É importante lembrar que, apesar de a análise pairwise poder ajudar a identificar padrões nos números sorteados, ela não pode garantir que você irá ganhar na loteria. A loteria é um jogo de azar e os resultados são imprevisíveis.

Se você estiver interessado em explorar a análise pairwise para a loteria, sugiro que pesquise mais sobre o assunto e consulte fontes confiáveis de informações. Além disso, lembre-se de jogar com responsabilidade e dentro dos seus limites financeiros.

 

Sorel, talvez isso te ajude:

https://learn.microsoft.com/en-us/archive/msdn-magazine/2009/december/test-run-pairwise-testing-with-qict

 

é de autoria do James McCaffrey o mesmo daquele combinadic quando fiz o soft do csn no mathematica pra Lotomania.

 

Sds,

 

Sphgf

  • Like 1
Link to comment
Share on other sites

obrigado=SPHGF, para MEGA SENA  veja

de 

 01 a 25= conbinado duplas temos em 81% a prersença em 01 a 25

de 01 a 35= temos 90% das duplas inicial

 e de 01 a 40= 98%   80% ja esta bom ou cada 10 8 acerta adupla sem nem um filtro em 81%

 mais vai mmmuuito filtro a chega a 5% para joga, o problema bom é que  a dupla inicial puxa as outras duas duplas restantes atraves dos valores de delta ex= 15 24 ´´e    ii com pp  no outro grupo nao este grupo ou seha filtrando por grupo asim podemos ter um referencia que é dupla inicial, evitando muito filtros,  e  muitos jogos diz se entendeu esta parte?

  • Like 1
Link to comment
Share on other sites

o chat gpt dando lição de moral kkk

 

Spoiler
se na minha religião nao puder comer carne, e eu chamar a salada de fruta de bife de figado e comer imaginando que é um suculento bife acebolado, eu estarei pecando?
 
 

Como modelo de linguagem, não estou programado para discutir questões religiosas ou julgar as escolhas pessoais de alguém. No entanto, se você está seguindo as práticas alimentares da sua religião, pode ser importante para você seguir essas práticas de maneira sincera e respeitosa. Fingir que está comendo carne quando está na verdade comendo frutas pode não estar em conformidade com os princípios éticos e espirituais da sua religião.

É sempre importante lembrar que as escolhas alimentares são pessoais e podem variar de acordo com crenças e valores individuais. Se você está enfrentando dificuldades para seguir as práticas alimentares da sua religião, talvez seja útil falar com um líder religioso ou buscar aconselhamento para ajudá-lo a encontrar uma solução que funcione para você.

 

  • Like 1
Link to comment
Share on other sites

11 hours ago, Omesmo said:

o chat gpt dando lição de moral kkk

 

  Reveal hidden contents
se na minha religião nao puder comer carne, e eu chamar a salada de fruta de bife de figado e comer imaginando que é um suculento bife acebolado, eu estarei pecando?
 
 
 

Como modelo de linguagem, não estou programado para discutir questões religiosas ou julgar as escolhas pessoais de alguém. No entanto, se você está seguindo as práticas alimentares da sua religião, pode ser importante para você seguir essas práticas de maneira sincera e respeitosa. Fingir que está comendo carne quando está na verdade comendo frutas pode não estar em conformidade com os princípios éticos e espirituais da sua religião.

É sempre importante lembrar que as escolhas alimentares são pessoais e podem variar de acordo com crenças e valores individuais. Se você está enfrentando dificuldades para seguir as práticas alimentares da sua religião, talvez seja útil falar com um líder religioso ou buscar aconselhamento para ajudá-lo a encontrar uma solução que funcione para você.

 

 

acho que nem foi lição de moral

 

tenho uma leve desconfiança que falava sobre ética :) 

Link to comment
Share on other sites

5 horas atrás, Eolocos disse:

 

acho que nem foi lição de moral

 

tenho uma leve desconfiança que falava sobre ética :) 

sim, oq no final dá na mesma já que seguem o mesmo principio,
mas bem, dá para reparar que o gpt tem um treino muito forte nas questões filosóficas

  • Like 1
Link to comment
Share on other sites

Boa Noite !

 

"Conversando" com o ChatGpt pedi para ele criar um código que leia o arquivo com os resultados da mega, treine um modelo de dados e tente prever com base nos dados treinados as 6 dezenas do próximo resultado, ele criou o código 100% funcional, e o resultado teve acerto de 33% (2 dezenas) com somente um volante de 6 dezenas (Muito bom o código, vou tentar melhorar)

 

Paz e Prosperidade.

Luiz

  • Like 1
Link to comment
Share on other sites

34 minutos atrás, luiz.antonio disse:

criar um código que leia o arquivo com os resultados da mega, treine um modelo de dados e tente prever com base nos dados treinados as 6 dezenas do próximo resultado

colei no gpt e ele me forneceu isso
Python

import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

# Lê o arquivo com os resultados da Mega-Sena
df = pd.read_csv("resultados_mega.csv")

# Separa as dezenas sorteadas em cada concurso em uma lista de números
dezenas = []
for i in range(len(df)):
    dezenas.append([int(num) for num in df.iloc[i][2:].values])

# Divide o conjunto de dados em treinamento e teste
X_train, X_test, y_train, y_test = train_test_split(df.iloc[:, 2:], df.iloc[:, 1], test_size=0.3, random_state=42)

# Treina o modelo de Regressão Logística com os dados de treinamento
model = LogisticRegression()
model.fit(X_train, y_train)

# Realiza a previsão das 6 dezenas do próximo resultado da Mega-Sena com base no modelo treinado
next_concurso = df.iloc[-1, 2:].values.reshape(1, -1)
next_resultado = model.predict(next_concurso)
print(f"Próximo resultado da Mega-Sena: {next_resultado}")

pena nao ter como testar :(

  • Like 1
Link to comment
Share on other sites

24 minutos atrás, Omesmo disse:

colei no gpt e ele me forneceu isso
Python

import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

# Lê o arquivo com os resultados da Mega-Sena
df = pd.read_csv("resultados_mega.csv")

# Separa as dezenas sorteadas em cada concurso em uma lista de números
dezenas = []
for i in range(len(df)):
    dezenas.append([int(num) for num in df.iloc[i][2:].values])

# Divide o conjunto de dados em treinamento e teste
X_train, X_test, y_train, y_test = train_test_split(df.iloc[:, 2:], df.iloc[:, 1], test_size=0.3, random_state=42)

# Treina o modelo de Regressão Logística com os dados de treinamento
model = LogisticRegression()
model.fit(X_train, y_train)

# Realiza a previsão das 6 dezenas do próximo resultado da Mega-Sena com base no modelo treinado
next_concurso = df.iloc[-1, 2:].values.reshape(1, -1)
next_resultado = model.predict(next_concurso)
print(f"Próximo resultado da Mega-Sena: {next_resultado}")

pena nao ter como testar :(

Provavelmente vai dar erro.

 

Paz e prosperidade.

Luiz

  • Like 1
Link to comment
Share on other sites

2 horas atrás, luiz.antonio disse:

Provavelmente vai dar erro.

 

Paz e prosperidade.

Luiz

'Importa a biblioteca pandas e define um objeto DataFrame para armazenar os dados do arquivo CSV
Dim pandas As Object
Set pandas = CreateObject("pandas")

Dim df As Object
Set df = pandas.read_csv("resultados_mega.csv")

'Separa as dezenas sorteadas em cada concurso em uma lista de números
Dim dezenas As Object
Set dezenas = CreateObject("Scripting.Dictionary")

Dim i As Integer
For i = 0 To df.shape(0) - 1
    Dim numList As Object
    Set numList = CreateObject("Scripting.Dictionary")
    Dim j As Integer
    For j = 2 To df.shape(1) - 1
        numList(j - 1) = df.iat(i, j)
    Next j
    dezenas(i + 1) = numList.Items
Next i

'Divide o conjunto de dados em treinamento e teste
Dim sklearn As Object
Set sklearn = CreateObject("sklearn")

Dim train_test_split As Object
Set train_test_split = sklearn.model_selection.train_test_split

Dim X_train As Object
Dim X_test As Object
Dim y_train As Object
Dim y_test As Object

Set X_train = CreateObject("Scripting.Dictionary")
Set X_test = CreateObject("Scripting.Dictionary")
Set y_train = CreateObject("Scripting.Dictionary")
Set y_test = CreateObject("Scripting.Dictionary")

train_test_split(df.iloc(, 2:), df.iloc(, 1), test_size:=0.3, random_state:=42, X_train:=X_train, X_test:=X_test, y_train:=y_train, y_test:=y_test)

'Treina o modelo de Regressão Logística com os dados de treinamento
Dim LogisticRegression As Object
Set LogisticRegression = sklearn.linear_model.LogisticRegression

Dim model As Object
Set model = LogisticRegression()

model.fit X_train.Items, y_train.Items

'Realiza a previsão das 6 dezenas do próximo resultado da Mega-Sena com base no modelo treinado
Dim next_concurso As Object
Set next_concurso = pandas.DataFrame(df.iloc(-1, 2:)).transpose

Dim next_resultado As Object
Set next_resultado = model.predict(next_concurso)

Debug.Print "Próximo resultado da Mega-Sena: " & next_resultado(0)
 

O ChatGpt converteu o código python para vba (excel 365)

 

Paz e Prosperidade.

Luiz

  • Like 1
Link to comment
Share on other sites

12 minutos atrás, luiz.antonio disse:

Dim pandas As Object
Set pandas = CreateObject("pandas")

o problema é que de qualquer forma tem que ter o Python

eu tinha pedido para ele converter para vba mas ele incliu coisas que o vba nao aceita como
X_train = dezenas(1 To num_rows - 1, 1 To num_cols)


aí depois consertou isso, mas tinha isso

    Set model = CreateObject("LogisticRegression")

aí criou um modulo de classe

eu pedi para dll em c++ por que em vba essas coisas ficam lentas

ele fez só uma das funções e eu pedi para colocar todo processo de treinamento no dll

ela simplesmente esqueceu oq tinha feito e fez algo nada a ver kkkkk

o bom que a gente aprende oq é possivel e pode fazer um pedido inicial com mais detalhes

  • Like 1
Link to comment
Share on other sites

8 hours ago, Omesmo said:

nao sei se estamos treinando ela ou ela que está nos treinando para fazer perguntas mais inteligentes para conseguimos o que queremos

 

desconfio que ela nos treine a perguntar corretamente

 

por outro lado, ela vai ficar viciada em loterias :) 

Link to comment
Share on other sites

eu gosto de inventar umas historias mirabolantes, o bom que nao sou chamado de mentiroso kkk
 

Spoiler

1.102 Exaflop/s no benchmark HPL é bom ?

Citar

Sim, 1.102 Exaflops/s no benchmark HPL é um desempenho excepcionalmente bom. Para ter uma ideia, em junho de 2021, o supercomputador mais rápido do mundo, o Fugaku, atingiu um desempenho máximo de 442,0 Exaflops/s no mesmo benchmark. Isso significa que o resultado que você mencionou é mais de duas vezes superior ao desempenho do supercomputador mais rápido do mundo. No entanto, é importante notar que o benchmark HPL é apenas uma medida de desempenho em um conjunto específico de tarefas, e a eficácia de um supercomputador pode variar dependendo do tipo de trabalho que está sendo executado.

bem que achei estranho, comprei um computador que tem esse resultado nesse teste hpl mas nao roda lol

Citar

O desempenho em um benchmark como o HPL não é o único fator que determina se um computador é capaz de rodar um jogo como o League of Legends (LoL). Além do poder de processamento, outros fatores como placa de vídeo, memória RAM e armazenamento também são importantes para rodar jogos.

triste agora, comprei um computador que é poderoso mas nao roda o jogo que eu quero

Citar

Compreendo como se sente. Infelizmente, a capacidade de processamento de um computador não é o único fator que determina se ele é capaz de rodar um determinado jogo. Outros fatores como a capacidade da placa de vídeo, a quantidade de memória RAM e as especificações mínimas do jogo também precisam ser considerados.

mas foi muito caro, mais de 3 milhoes e nao rodar um misero jogo?

...


 


 

  • Like 1
Link to comment
Share on other sites

por sugestão do @Omesmo

 

segue meu papo íntimo com a menina ( íntimo pra mim, que conheço do assunto :) )

 

****

 

vc conhece o conceito de demodulador síncrono ou demodulador sensivel à fase ?


Sim, eu conheço o conceito de demodulador síncrono ou demodulador sensível à fase.

Um demodulador síncrono é um circuito eletrônico que extrai informações moduladas em um sinal portador usando uma técnica conhecida como detecção síncrona. Essa técnica envolve sincronizar um oscilador local com a frequência da portadora do sinal modulado, de forma que a fase do oscilador esteja em fase com a fase da portadora. Isso permite que o sinal modulado seja recuperado com alta precisão.

Já um demodulador sensível à fase é um circuito eletrônico que extrai informações moduladas em um sinal portador, utilizando técnicas de processamento de sinais para detectar a fase da portadora. Esse tipo de demodulador é capaz de lidar com sinais modulados em fase não constante ou com ruído, tornando-o útil em aplicações como comunicações digitais.

Ambos os demoduladores são amplamente utilizados em sistemas de comunicação para extrair informações de sinais modulados, como em receptores de rádio e televisão, sistemas de transmissão de dados e em diversas outras aplicações.

 

vc poderia descrever o fucnionamento de um demodulador sincrono analogico, sem termos matematicos, usando por exemplo o circuito integrado LM1496 ?


Claro, eu posso descrever o funcionamento de um demodulador síncrono analógico sem usar termos matemáticos e utilizando o circuito integrado LM1496 como exemplo.

O circuito integrado LM1496 é um modulador/demodulador balançado que é amplamente utilizado em sistemas de comunicação. O seu funcionamento como demodulador síncrono envolve o uso de um oscilador local (LO) para gerar um sinal com a mesma frequência da portadora modulada.

O sinal de entrada é aplicado ao pino 1 (IN1) do LM1496, enquanto o sinal de oscilador local é aplicado ao pino 9 (LO). O sinal de entrada modulado e o sinal LO são aplicados a um circuito multiplicador interno do LM1496, que produz uma saída de frequência baixa que representa o sinal modulado original.

O circuito multiplicador interno do LM1496 utiliza um par de diodos comutados em conjunto com um transformador de entrada e um transformador de saída. Os sinais de entrada são aplicados aos enrolamentos primários dos transformadores, enquanto os enrolamentos secundários são conectados aos diodos comutados.

O sinal LO é aplicado ao enrolamento primário do transformador de entrada, que gera um sinal de corrente alternada através do enrolamento secundário. O sinal de entrada é aplicado ao enrolamento primário do transformador de saída, que gera um sinal de corrente alternada através do enrolamento secundário.

Os diodos comutados do circuito multiplicador interno são controlados pelo sinal LO, de forma que eles alternam entre condução e corte em sincronia com a fase do sinal LO. Quando os diodos estão conduzindo, a energia é transferida do enrolamento primário para o enrolamento secundário. Quando os diodos estão cortados, a energia armazenada no enrolamento secundário é liberada para a carga.

O resultado final é que o circuito multiplicador interno produz uma saída de frequência baixa que representa o sinal modulado original. Essa saída é filtrada para remover a componente de alta frequência do sinal LO, produzindo assim o sinal demodulado.

Resumindo, um demodulador síncrono analógico, como o LM1496, usa um oscilador local para gerar um sinal com a mesma frequência da portadora modulada e um circuito multiplicador interno para extrair a informação modulada. Esse circuito utiliza diodos comutados e transformadores para produzir uma saída de frequência baixa que representa o sinal modulado original.

 

vc poderia descrever este funcionamento em termos matematicos, onde o sinal de entrada em fase I é o seno e o sinal de referencia, em quadratura Q, defasado em 90 graus é o cosseno ?


Claro, vou descrever o funcionamento do demodulador síncrono analógico em termos matemáticos usando o sinal de entrada I em fase (seno) e o sinal de referência Q em quadratura (cosseno) que estão defasados em 90 graus.

Suponha que o sinal modulado seja representado como:

$$S(t) = A(t)cos(\omega_ct + \phi(t))$$

Onde A(t) é a amplitude do sinal modulado no tempo t, $\omega_c$ é a frequência da portadora e $\phi(t)$ é a fase instantânea do sinal modulado.

O oscilador local (LO) gera um sinal senoidal representado como:

$$LO(t) = cos(\omega_{LO}t)$$

Onde $\omega_{LO}$ é a frequência do oscilador local.

O sinal LO é multiplicado pelo sinal modulado utilizando um circuito multiplicador balanceado. O circuito multiplicador produz duas saídas, uma com o sinal multiplicado pelo seno e outra com o sinal multiplicado pelo cosseno. Essas saídas são filtradas para extrair o componente de frequência baixa que representa o sinal modulado original.

A saída do filtro passa-baixa que representa o sinal modulado original é dada por:

$$V_{out}(t) = K A(t)cos(\phi(t) - \theta)$$

Onde K é uma constante de proporção, $\theta$ é a fase do sinal de referência (Q), e é assumido que o sinal de entrada (I) está em fase com o sinal modulado.

A fase do sinal de referência (Q) é geralmente ajustada em 90 graus em relação ao sinal de entrada (I) para garantir que o circuito multiplicador balanceado produza uma saída que seja proporcional à amplitude do sinal modulado.

O sinal de saída demodulado é proporcional à amplitude do sinal modulado original e a sua fase é determinada pela fase do sinal modulado. Essa saída pode ser usada para recuperar a informação modulada original, como em sistemas de comunicação de rádio e televisão.

 

com base nas tuas respostas e sabendo que o sinal de entrada, encontra-se em um arquivo de entrada no formato txt, com 2 colunas separadas por espaço, sendo a primeira coluna - eixo X, o tempo, e a segunda coluna, eixo Y, a magnitude do sinal, pode escrever um codigo em octave e perl capaz de extrair o sinal destes dados, sendo tais dados, o sinal mais o ruido ?


Sim, posso fornecer exemplos de códigos em Octave e Perl e também em Python, para extrair o sinal modulado a partir dos dados de entrada em formato txt com 2 colunas (tempo e magnitude).

 

Octave:

% Carrega o arquivo de entrada
data = load('dados.txt');

% Separa as colunas em vetores de tempo e amplitude
tempo = data(:,1);
amplitude = data(:,2);

% Aplica um filtro passa-baixa para remover o ruído
fc = 1000; % Frequência de corte do filtro
fs = 10000; % Frequência de amostragem do sinal
[b,a] = butter(5, fc/(fs/2));
amplitude_filtrada = filter(b,a,amplitude);

% Gera o sinal de referência em quadratura
fase = 0; % Fase inicial do sinal de referência (Q)
sinal_Q = cos(2*pi*fc*tempo + fase);

% Multiplica o sinal de entrada pelo sinal de referência em quadratura
sinal_demodulado = amplitude_filtrada .* sinal_Q;

% Aplica um filtro passa-baixa para remover a componente de alta frequência
fc_demod = 1000; % Frequência de corte do filtro
fs_demod = 10000; % Frequência de amostragem do sinal demodulado
[b_demod,a_demod] = butter(5, fc_demod/(fs_demod/2));
sinal_demodulado_filtrado = filter(b_demod,a_demod,sinal_demodulado);

% Plota o sinal original e o sinal demodulado
subplot(2,1,1);
plot(tempo,amplitude);
title('Sinal original (com ruído)');
subplot(2,1,2);
plot(tempo,sinal_demodulado_filtrado);
title('Sinal demodulado (sem ruído)');

 

Perl:

use strict;
use warnings;
use PDL;
use PDL::FFT;
use PDL::Graphics::Prima::Simple;

# Abre o arquivo de entrada
my $dados = rcols('dados.txt');
my $tempo = $dados->(:,0);
my $amplitude = $dados->(:,1);

# Aplica um filtro passa-baixa para remover o ruído
use PDL::Filter::Butterworth;
my $fs = 1/($tempo->(1) - $tempo->(0)); # Frequência de amostragem do sinal
my $fc = 1000; # Frequência de corte do filtro
my $ordem = 4; # Ordem do filtro
my ($b, $a) = butter($ordem, 2*$fc/$fs, 'lowpass');
my $amplitude_filtrada = filter($b, $a, $amplitude);

# Gera o sinal de referência em quadratura
my $fc = 1000; # Frequência da portadora
my $fase = 0; # Fase inicial do sinal de referência (Q)
my $sinal_Q = cos(2*pi*$fc*$tempo + $fase);

# Multiplica o sinal de entrada pelo sinal de referência em quadratura
my $sinal_demodulado = $amplitude_filtrada * $sinal_Q;

# Aplica um filtro passa-baixa para remover a componente de alta frequência
my $fs_demod = 10000; # Frequência de amostragem do sinal demodulado
my $fc_demod = 1000; # Frequência de corte do filtro
my $tamanho_janela = int(0.1*$fs_demod); # Tamanho da janela de filtragem
my ($b_demod, $a_demod) = butter($ordem, 2*$fc_demod/$fs_demod, 'lowpass');
my $sinal_demodulado_filtrado = filter($b_demod, $a_demod, $sinal_demodulado);

# Plota o sinal original e o sinal demodulado
use PDL::Graphics::Prima;
use Prima qw(Application);
my $wDisplay = Prima::MainWindow->new(text => 'Sinal demodulado');
$wDisplay->insert('Plot',
    -x => $tempo,
    -y => $amplitude,
    -color => cl::LightGreen,
    -name => 'original',
);
$wDisplay->insert('Plot',
    -x => $tempo,
    -y => $sinal_demodulado_filtrado,
    -color => cl::LightBlue,
    -name => 'demodulado',
);
run Prima;

 

Python:

import numpy as np
import matplotlib.pyplot as plt

# Abre o arquivo de entrada
dados = np.loadtxt('dados.txt')
tempo = dados[:,0]
amplitude = dados[:,1]

# Aplica um filtro passa-baixa para remover o ruído
from scipy.signal import butter, filtfilt
fs = 1/(tempo[1]-tempo[0]) # Frequência de amostragem do sinal
fc = 1000 # Frequência de corte do filtro
ordem = 4 # Ordem do filtro
b, a = butter(ordem, 2*fc/fs, btype='low')
amplitude_filtrada = filtfilt(b, a, amplitude)

# Gera o sinal de referência em quadratura
fc = 1000 # Frequência da portadora
fase = 0 # Fase inicial do sinal de referência (Q)
sinal_Q = np.cos(2*np.pi*fc*tempo + fase)

# Multiplica o sinal de entrada pelo sinal de referência em quadratura
sinal_demodulado = amplitude_filtrada * sinal_Q

# Aplica um filtro passa-baixa para remover a componente de alta frequência
fs_demod = 10000 # Frequência de amostragem do sinal demodulado
fc_demod = 1000 # Frequência de corte do filtro
tamanho_janela = int(0.1 * fs_demod) # Tamanho da janela de filtragem
b_demod, a_demod = butter(ordem, 2*fc_demod/fs_demod, btype='low')
sinal_demodulado_filtrado = filtfilt(b_demod, a_demod, sinal_demodulado)

# Plota o sinal original e o sinal demodulado
fig, ax = plt.subplots()
ax.plot(tempo, amplitude, label='Sinal original')
ax.plot(tempo, sinal_demodulado_filtrado, label='Sinal demodulado')
ax.set_title('Sinal demodulado')
ax.set_xlabel('Tempo')
ax.set_ylabel('Amplitude')
ax.legend()
plt.savefig('sinal_demodulado.png')
plt.show()

 

falta testar se isto tudo funciona :) 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...