AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-6628096

Juha P's questions

Martin Hope
Juha P
Asked: 2023-08-21 01:50:48 +0800 CST

Por que os gráficos são invertidos ao usar freqz e comparar entre Octave e SciPy?

  • 5

Quando eu ploto a resposta desses coeficientes:

b=[1.01063287e+00, -1.46490341e+01,  9.94030209e+01, -4.19168764e+02, ...
  1.22949513e+03, -2.66000588e+03,  4.39112431e+03, -5.64225597e+03, ...
  5.70320516e+03, -4.55022454e+03,  2.85602975e+03, -1.39550096e+03, ...
  5.20372994e+02, -1.43160328e+02,  2.74037105e+01, -3.26098385e+00, ...
  1.81735269e-01];
a=[1.00000000e+00, -1.45159238e+01,  9.86464912e+01, -4.16614074e+02, ...
  1.22391361e+03, -2.65216678e+03,  4.38533779e+03, -5.64421414e+03, ...
  5.71487734e+03, -4.56742504e+03,  2.87187255e+03, -1.40575405e+03, ...
  5.25150201e+02, -1.44741759e+02,  2.77584882e+01, -3.30950845e+00, ...
  1.84797453e-01];

em Oitava (o que é OK):

  [h(:,1), w] = freqz(flip(b), flip(a),2048);
  
  plot((w/pi),20*log10(abs(h(:,1))));
  hold on;

insira a descrição da imagem aqui

e em Python:

    h = np.zeros(2048, float)
    w = np.zeros(2048, float)

    [h[:], w] = freqz(np.flip(b), np.flip(a), 2048)

    plt.plot((w/np.pi),20*np.log10(h[:]));
    plt.show()

insira a descrição da imagem aqui

, os resultados são quase iguais, mas, como visto nos gráficos, a última resposta é desenhada algo como duas vezes em comparação com o resultado do Octave.

O que está acontecendo e como obter um gráfico igual ao Octave do Python? Eu tentei remover o comando flip do código Python, mas a resposta continua a mesma.

matplotlib
  • 2 respostas
  • 32 Views
Martin Hope
Juha P
Asked: 2023-08-18 13:32:30 +0800 CST

Comando Octave freqz com fliplr --> Python synthax

  • 5

Estou tentando traduzir o comando

[h(:,m), w] = freqz(fliplr(b), fliplr(a),2048); % fliplr --> freqz works on powers of z^-1

de Octave para Python (w/ scipy (freqz) e numpy (fliplr)), mas resulta em erro quando escrito como está :

  File "<__array_function__ internals>", line 180, in fliplr
  File "/home/xxxx/yyyy/venv/lib/python3.8/site-packages/numpy/lib/twodim_base.py", line 98, in fliplr
    raise ValueError("Input must be >= 2-d.")
ValueError: Input must be >= 2-d.

Quais pontos para a função fliplr parecem funcionar de maneira diferente em comparação com a função fliplr do Octave.

Aqui estão minhas matrizes b e a :

b= [ 1.01063287e+00 -1.46490341e+01  9.94030209e+01 -4.19168764e+02
  1.22949513e+03 -2.66000588e+03  4.39112431e+03 -5.64225597e+03
  5.70320516e+03 -4.55022454e+03  2.85602975e+03 -1.39550096e+03
  5.20372994e+02 -1.43160328e+02  2.74037105e+01 -3.26098385e+00
  1.81735269e-01] 
a= [ 1.00000000e+00 -1.45159238e+01  9.86464912e+01 -4.16614074e+02
  1.22391361e+03 -2.65216678e+03  4.38533779e+03 -5.64421414e+03
  5.71487734e+03 -4.56742504e+03  2.87187255e+03 -1.40575405e+03
  5.25150201e+02 -1.44741759e+02  2.77584882e+01 -3.30950845e+00
  1.84797453e-01] 

Eu também tentei fatiar w/ ou w/o flipping:

[h[:, m], w] = freqz(np.flip(b[0:N]), np.flip(a[0:N]), 2048)

qual dos dois passa na compilação, mas os gráficos parecem estranhos.

Alguma sugestão de tradução?

python
  • 1 respostas
  • 24 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve