Создание оси Y в двоичном коде (код Грея) в Python для квантователя - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь реализовать код, который представляет квантователь.Вход должен быть треугольной волной, а квантователь должен делать это в течение 6 битов.Я должен сделать так, чтобы значения в оси Y отображались в двоичном виде с использованием кода Грея.

Мой код следующий:

import matplotlib.pyplot as plt
from scipy import signal
from sympy.combinatorics.graycode import GrayCode

import numpy as np
Q=6
A=2

def uniform_midrise_quantizer(x, Q):
    # limiter
    x = np.copy(x)
    idx = np.where(np.abs(x) >= 1)
    x[idx] = np.sign(x[idx])
    # linear uniform quantization
    xQ = Q * (np.floor(x/Q) + .5)

    return xQ

t2=GrayCode(6)
t1=np.linspace(0,1,40*5000)
x=A*signal.sawtooth(2*np.pi*5000*t1,0.5)
xQ=uniform_midrise_quantizer(x,Q)
plt.plot(t1,xQ)
plt.xlim(0,4/5000)
plt.xlabel("Time[s]")
plt.ylabel("")
plt.title("Uniform midrise quantizer for input y(t)")

Может кто-нибудь помочь мне поместить двоичные файлы кода Грея вY-ось.Для десятичных чисел вывод должен быть:

output

...