Amplitude ideal de um


7

Um sinusóide de tempo contínuo de amplitude real de zero a pico (por exemplo, para , ) é quantificado em resolução de bits, arredondando-o para número inteiro mais próximo (Fig. 1). Qual é a amplitude ideal para diferentes ?UMA2m-1 1-0,5m=16UMA32767,5mm24

insira a descrição da imagem aqui
Figura 1. Para , um sinusóide da amplitude máxima permitida (linha sólida azul), sua quantização (linha tracejada laranja) e o complemento mais negativo e positivo de dois bits de 4 bits assinam números inteiros -8 e 7 ( amarelo).m=4UMA=7,5

Uma resposta é desejada para cada uma das duas definições alternativas de otimização:

  1. maximizar a relação sinal-ruído (SNR), onde o sinal é o sinusóide original e o ruído é o erro de quantização, e
  2. minimizar a distorção harmônica total (THD), que é normalizada em relação à amplitude da frequência fundamental na série de Fourier do sinusóide quantizado.

Oi ! Ok, agora vejo uma razão pela qual você está interessado no cálculo extremamente preciso dos 5º e 7º harmônicos do erro de quantização quando a entrada é um ideal sinusoidal puro ... ;-) ENTÃO, acho que você precisa dizer algo sobre o estratégia de amostragem utilizada?
Fat32

11
@ Fat32 É mais parecido com a história dos lasers. Não há amostragem aqui. Se a otimização por qualquer critério seria levada a um cenário de amostragem específico é uma questão interessante por si só. Por exemplo, com amostragem aleatória, otimização por def. 1 será mantido. Com def. 2, talvez o Root Mean Square erro relativo a de aproximar uma sinusóide de amplitude irá ser minimizado por uma sinusóide de quantização de amplitude ideal . Mas eu não tenho certeza. BBUMA
Olli Niemitalo 29/03/19

11
Ainda não entendi bem o que você está tentando fazer aqui: você quantifica uma onda senoidal contínua em tempo. É um quantizador uniforme ou você pode usar um quantizador ideal? Se é uniforme: você está apenas deslocando a grade de quantização para cima e para baixo sobre a onda senoidal para encontrar o melhor? Se sim: por quê? Isso só faria diferenças extremamente pequenas.
Hilmar

11
Obrigado, isso ajuda. Então você não está mudando a grade, está esticando-a (ou mantenha a cintura constante e estique a onda senoidal, a mesma coisa). Mais uma pergunta, se puder: como o sinal é periódico, também será o ruído da quantização. Qual é a diferença entre RMS e THD de ruído? Deveria ser o mesmo que talvez o TDH não inclua o erro de quantização no fundamental?
Hilmar

11
oh, não há amostragem, apenas quantização da forma de onda. Penso que os seguintes livros serão úteis para sua análise exaustiva sobre quantização: Quantização Noise_B. Quantização de Drow e Vetor e Compressão de Sinais_Gersho & Gray ... Como você também sabe, a quantização é vista principalmente de uma perspectiva estatística para fins de codificação de origem, nunca vista este tipo de otimização, mas acho que pode ter algumas implicações agradáveis também ...
Fat32

Respostas:


4

A fase do sinusóide não importa: uma mudança de fase de um sinusóide é equivalente a uma mudança no tempo, o que resulta em uma mudança no tempo do sinusóide quantificado e do erro de quantização. O espectro de potência é invariável às mudanças de tempo . Escolhemos trabalhar com sinusóideUMAporque(x).

Optimalidade por def. 1 1

Equivalentemente à maximização da relação sinal-ruído (SNR), podemos minimizar o erro de quantização do quadrado médio da raiz em relação ao quadrado médio da raiz 1 1/2UMA do sinusóide, RRMSE = 1 1/SNR. É o suficiente para fazer a análise no primeiro trimestre da onda cosseno, porque o restante da onda cosseno e o erro de quantização são idênticos ao seu primeiro trimestre até uma inversão de sinal e / ou reversão do tempo. Deixeix estar no primeiro trimestre da onda cosseno, 0 0<x<π/2. Ao longo das linhas da Eq. 2 da minha resposta a uma pergunta relacionada , a onda cosseno quantizada atinge um valor inteirok0 0rovocênd(UMA) quando:

(1)0 0<x<umacos(rovocênd(UMA)-0,5UMA),E se k=rovocênd(UMA),umacos(k+0,5UMA)<x<umacos(k-0,5UMA),E se 1 1krovocênd(UMA)-1 1,umacos(0,5UMA)<x<π2,E se k=0

Cada valor de k dá ao erro quadrático médio relativo ReeuMSE uma contribuição aditiva de:

2)2MSEkUMA2=2UMA21 1π/2x0 0x1 1(UMAporque(x)-k)2dx=2pecado(x1 1)porque(x1 1)-2pecado(x0 0)porque(x0 0)π+8k(pecado(x0 0)-pecado(x1 1))πUMA+4k2(x1 1-x0 0)πUMA2+2x1 1-2x0 0π,

Onde x0 0 e x1 1 denotar, conforme definido separadamente para cada kos limites x0 0<x<x1 1dada pela Eq. 1. O erro quadrático médio total de quantização relativo é então:

(3)RelMSE=2MSEA2=k=0round(A)2MSEkA2=2asin(12A)π4A212πA2(2A2+4round(A)2)asin(2round(A)12A)πA2(6round(A)+1)4A2(2round(A)1)22π(A2+2round(A)2)2πA2+1πA2k=1round(A)1((2A2+4k2)(asin(2k+12A)asin(2k12A))+(6k1)4A2(2k+1)2(6k+1)4A2(2k1)22),A>0.5.

Para otimizar pela definição 1, a tarefa é encontrar o valor de A que minimiza o erro relativo de quantização do quadrado médio da raiz RRMSE =RelMSE. sob a restriçãoA2m10.5. Eq. 3 pode ser avaliado em Python usando a mpmathbiblioteca de precisão arbitrária:

import mpmath as mp
def RelMSE(A):  # valid for A >= 0.5
    A = mp.mpf(A)
    return 2*mp.asin(1/(2*A))/mp.pi - mp.sqrt(4*A**2-1)/(2*mp.pi*A**2) - (2*A**2 + 4*mp.floor(A + 0.5)**2)*mp.asin((2*mp.floor(A + 0.5) - 1)/(2*A))/(mp.pi*A**2) - ((6*mp.floor(A + 0.5) + 1)*mp.sqrt(4*A**2 - (2*mp.floor(A + 0.5) - 1)**2) - 2*mp.pi*(A**2 + 2*mp.floor(A + 0.5)**2))/(2*mp.pi*A**2) + mp.nsum(lambda k: (2*A**2 + 4*k**2)*(mp.asin((2*k+1)/(2*A)) - mp.asin((2*k-1)/(2*A))) + ((6*k-1)*mp.sqrt(4*A**2 - (2*k + 1)**2) - (6*k + 1)*mp.sqrt(4*A**2 - (2*k - 1)**2))/2, [1, mp.floor(A + 0.5)-1])/(mp.pi*A**2)

RRMSE parece ter um mínimo local entre cada par de números inteiros sucessivos A (Figura 1).

insira a descrição da imagem aqui
Figura 1. RRMSE (linha sólida azul e quadrados azuis) e sua aproximação 1/6/A (linha tracejada laranja) com base na variação 1/12 distribuição uniforme da largura 1, para várias faixas de A.

Uma seleção de opções ideais A são apresentados na Tabela 1, juntamente com o RRMSE resultante, também para alguns outros valores comuns de A. Em maioresm, A redução de RRMSE pela escolha ideal será marginal. As entradas da tabela, que mostram apenas dígitos iguais entre dois cálculos usando configurações de precisão diferentes, podem ser geradas pelo seguinte script Python (continuação), cuja execução levou dias:

def approx_optimal_A(m):
    m = mp.mpf(m)
    return 2**(m-1) - 1 + mp.mpf("0.156936321399") + mp.exp(-1.2749819017 - 0.3464088917*m)  # Eq. 8
    # return 2**(m-1) - 1  # This less informed guess gives identical results but slower convergence

def to_max_digits(f, prec_1, prec_2, max_digits):  # return the at most max_digits digits of function f that are agreed about by both precision settings
    prec = mp.mp.prec
    mp.mp.prec = prec_1
    y_prec_1 = f()
    mp.mp.prec = prec_2
    y_prec_2 = f()
    digits = max_digits
    while mp.nstr(y_prec_1, digits, strip_zeros=False) != mp.nstr(y_prec_2, digits, strip_zeros=False):  # Beware: a possible infinite loop
        digits -= 1
    return mp.nstr(y_prec_2, digits, strip_zeros=False)
    prec = mp.mp.prec

double_digits = 15  # Print at most this many digits
dB_digits = 9

for m in range(2, 25):
    optimal_A = to_max_digits(lambda: mp.findroot(lambda A: mp.diff(RelMSE, A), approx_optimal_A(m)), 80, 100, double_digits)
    RelMSE_optimal = to_max_digits(lambda: 10*mp.log10(RelMSE(mp.mpf(optimal_A))), 80, 100, dB_digits)
    RelMSE_1 = to_max_digits(lambda: 10*mp.log10(RelMSE(2**(m-1)-1)), 80, 100, dB_digits)
    RelMSE_2 = to_max_digits(lambda: 10*mp.log10(RelMSE(2**(m-1)-0.5)), 80, 100, dB_digits)
    print(str(m)+"&"+optimal_A+"&"+RelMSE_optimal+"&"+RelMSE_1+"&"+RelMSE_2+"\\\\")

Tabela 1. Ótimo A pela definição 1 para diferentes m24 eo RRMSE resultante, com o RRMSE para algumas escolhas comuns de A listado para comparação. m=1foi deixado de fora porque não pode ser tratado pela Eq. 3 e porque um único bit não representa nenhum número positivo como representação de complemento de dois. Observe que RRMSE em dB é convertido em SNR em dB por um sinal de inversão, porqueSNR = 1/RelMSE = 1/RRMSE2.

moptimal ARRMSE (dB)A=optimal2m112m10.521.2682794946153011.11280538.9272980510.176464533.2380094212103718.820693717.958886317.888200447.2165859792940725.516767325.090304824.7375654515.200718133195531.812709431.577553731.2013629631.188875671425737.936488037.797788337.4726954763.180083539419043.985891043.900111443.64143088127.17361362552350.004951849.950005349.75278179255.16889473636156.013474355.977338255.830720010511.16547918889062.020002261.995763861.8884975111023.16302205377-68.0278661-68.0113689-67.9337180122047.16126264484-74.0380590-74.0267095-73.9708981134095.16000722516-80.0505958-80.0427267-80.0028089148191.15911371601-86.0651409-86.0596541-86.03120091516383.1584789666-92.0812822-92.0774410-92.05720791632767.1580286428-98.0986407-98.0959437-98.08157981765535.1577094659-104.116904-104.115007-104.10482118131071.157483397-110.135830-110.134493-110.12727619262143.157323352-116.155234-116.154291-116.14918120524287.157210089-122.174984-122.174318-122.170701211048575.15712995-128.194979-128.194509-128.191950222097151.15707326-134.215150-134.214818-134.213008234194303.15703317-140.235446-140.23521-140.233931248388607.15700481-146.255831-146.2557-146.25476

Optimalidade por def. 2

Uma função periódica como um senoide quantizado possui uma série de Fourier; é uma soma de sinusóides harmônicos, ou seja, sinusóides de frequências harmônicas de uma frequência fundamental. Sinusóides harmônicos são ortogonais. Portanto, o quadrado médio da função periódica é igual à soma dos quadrados médios dos sinusóides harmônicos. O quadrado médio da soma dos harmônicos não fundamentais pode então ser calculado subtraindo o quadrado médio do fundamental do quadrado médio da função periódica. Para uma onda cosseno quantizadarovocênd(UMAporque(x)) isso permite calcular a distorção harmônica total (THD) como:

4)THD=MS-uma1 12/2uma1 12/2=MSuma1 12/2-1 1,

onde MS é o quadrado médio da onda cosseno quantizada, uma1 12/2 é o quadrado médio do fundamental e uma1 1 é o coeficiente da frequência fundamental cosseno na série Fourier de rovocênd(UMAporque(x)), calculado usando a Eq. 3 da minha resposta a uma pergunta relacionada e simplificando para:

(5)a1=2πA(round(A)4A2(2round(A)1)2+k=1round(A)1k(4A2(2k1)24A2(2k+1)2)).

O quadrado médio da onda cosseno quantizada é calculado em seu primeiro trimestre por:

(6)MS=1π/20π/2round(Acos(x))2dx=round(UMA)2π/2umacos(rovocênd(UMA)-0,5UMA)+1 1π/2k=1 1rovocênd(UMA)-1 1k2(umacos(k-0,5UMA)-umacos(k+0,5UMA))

O THD é calculado e minimizado pelo seguinte script Python (continuação), usando Eqs. 4, 5 e 6:

def a_1(A):
    A = mp.mpf(A)
    return 2*(mp.floor(A + 0.5)*mp.sqrt(4*A**2 - (2*mp.floor(A + 0.5) - 1)**2) + mp.nsum(lambda k: k*(mp.sqrt(4*A**2 - (2*k - 1)**2)-mp.sqrt(4*A**2 - (2*k + 1)**2)), [1, mp.floor(A + 0.5) - 1]))/(mp.pi*A)

def MS(A):
    A = mp.mpf(A)
    return mp.floor(A + 0.5)**2*mp.acos((mp.floor(A + 0.5)-0.5)/A)/(mp.pi/2) + mp.nsum(lambda k: k**2*(mp.acos((k - 0.5)/A) - mp.acos((k + 0.5)/A)), [1, mp.floor(A + 0.5) - 1])/(mp.pi/2)

def STHD(A):  # Square of THD
    MS_1 = a_1(A)**2/2
    return MS(A)/MS_1 - 1

for m in range(2, 25):
    optimal_A = to_max_digits(lambda: mp.findroot(lambda A: mp.diff(STHD, A), approx_optimal_A(m)), 80, 100, double_digits)
    B = to_max_digits(lambda: a_1(mp.mpf(optimal_A)), 80, 100, double_digits)
    THD_optimal = to_max_digits(lambda: 10*mp.log10(STHD(mp.mpf(optimal_A))), 80, 100, dB_digits)
    THD_1 = to_max_digits(lambda: 10*mp.log10(STHD(2**(m-1)-1)), 80, 100, dB_digits)
    THD_2 = to_max_digits(lambda: 10*mp.log10(STHD(2**(m-1)-0.5)), 80, 100, dB_digits)
    print(str(m)+"&"+optimal_A+"&"+B+"&"+THD_optimal+"&"+THD_1+"&"+THD_2+"\\\\")

insira a descrição da imagem aqui
Figura 2. THD (dB) em função da amplitude não quantificada UMA. Os máximos locais estão em amplitudes que fazem com que uma protrusão estreita apareça nos extremos do sinusóide quantizado.

insira a descrição da imagem aqui
Figura 3. Amplitude uma1 1 (linha sólida azul) da frequência fundamental na quantização de uma onda cosseno de amplitude UMA, com a linha de identidade (linha tracejada laranja) plotada para referência.

Tabela 2. Ótimo UMA pela definição 2 para diferentes m24 eo THD resultante, com o THD para algumas escolhas comuns de UMAlistado para comparação. Surpreendentemente, o THD é minimizado pelo mesmoUMAque maximizam o SNR (Tabela 1), também quando testados com uma precisão muito maior do que o mostrado aqui. Se o sinal for considerado um sinusóide de amplitudeuma1 1 em vez de amplitude UMA, os valores SNR são obtidos invertendo o sinal dos valores THD.

mótimo UMAuma1 1THD (dB)UMA=ótimoUMA=ótimo2m-1 1-1 12m-1 1-0,521.268279494615301.17011951948679-10.7629578-10.1492078-10.572856233.238009421210373.19552705145171-18.7633376-18.2533980-18.337009447.216585979294077.19632525078776-25.5045573-25.1895549-25.0267366515.200718133195515.1907044658090-31.8098475-31.6159563-31.3681507631.188875671425731.1838597476996-37.9357894-37.8138122-37.5642711763.180083539419063.1775601103885-43.9857175-43.9071306-43.69027098127.173613625523127.172343338577-50.0049084-49.9531877-49.77833449255.168894736361255.168255766598-56.0134634-55.9788184-55.843912710511.165479188890511.165158147298-62.0199994-61.9964656-61.8952456111023.163022053771023.16286093052-68.0278654-68.0117064-67.9371468122047.161262644842047.16118185697-74.0380588-74.0268736-73.9726322134095.160007225164095.15996674788-80.0505958-80.0428071-80.0036830148191.159113716018191.15909344706-86.0651409-86.0596937-86.03164051516383.158478966616383.1584688212-92.0812822-92.0774606-92.05742861632767.158028642832767.1580235662-98.0986407-98.0959534-98.08169051765535.157709465965535.1577069262-104.116904-104.115011-104.10487718131071.157483397131071.157482127-110.135830-110.134495-110.12730419262143.157323352262143.157322717-116.155234-116.154293-116.14919520524287.157210089524287.157209771-122.174984-122.174319-122.170708211048575.157129951048575.15712979-128.194979-128.194509-128.191953222097151.157073262097151.15707318-134.215150-134.21482-134.213010234194303.157033174194303.15703313-140.235446-140.235212-140.233932248388607.157004818388607.15700479-146.25583-146.25567-146.25476

A equivalência das duas definições de otimização é válida mesmo quando a precisão numérica é aumentada significativamente, aqui com m=4 pelo menos até 200 casas decimais, em Python (continuação):

m = 4
mp.mp.dps = 200
mp.findroot(lambda A: mp.diff(RelMSE, A), 2**(m-1)-1+0.157)
mp.findroot(lambda A: mp.diff(STHD, A), 2**(m-1)-1+0.157)

que gera valores ótimos numericamente idênticos para UMA para as duas definições de otimização:

mpf('7.21658597929406951556806247230383254685067097032105786583650636819627678717747461433940963299310318715204551609940031954265317274195597248077934451075855527')
mpf('7.21658597929406951556806247230383254685067097032105786583650636819627678717747461433940963299310318715204551609940031954265317274195597248077934451075855527')

Limite m

Em geral m torna-se difícil otimizar diretamente mnumericamente, então outra abordagem é desejável. Uma aproximação de Taylor do sinusóide em relação ao seu pico, onde mais difere de uma função linear, é um polinômio quadrático. Isso pode ser usado para analisar os efeitos da quantização no limitem UMA. A diferença entre o erro de quantização MS de um sinusóide com amplitudeUMA e o erro de quantização MS 1 1/12 de uma função linear é proporcional a (Fig. 4):

(7)MS-1 112f(uma)=0 04uma+2/2((x2-uma)2-1 112)dx+k=1 14uma+4k-2/24uma+4k+2/2((x2-uma-k)2-1 112)dx=1 160(4uma+216uma2-4uma-1 1+k=1 1(4uma+4k+2(16uma2+4uma(8k-1 1)+16k2-4k-1 1)-4uma+4k-2(16uma2+4uma(8k+1 1)+16k2+4k-1 1))),

quando a amplitude UMA é um número inteiro mais um número real -0,5<uma0,5. A soma na Eq. 7 parece convergir, enquanto deixar de fora o termo-1 112 resultaria na seqüência de somas parciais crescendo sem limite, indicando que não importa qual valor de uma é escolhido, (MS-1 112)/MS0 0 e MS1 112 Como m.

insira a descrição da imagem aqui
Figura 4. f(uma) e f(uma)da Eq. 7. A forma def(uma) parece idêntico ao formato do RRMSE para grandes m na Fig. 1.

Diferenciando simbolicamente f(uma)definido na Eq. 7 em relação auma (Fig. 4) e encontrando o zero de f(uma) perto uma=0,157, o ideal uma às m pode ser calculado com bastante precisão, em Python (continuação):

def f(a):
    a = mp.mpf(a)
    return (mp.sqrt(4*a + 2)*(16*a**2 - 4*a - 1) + mp.nsum(lambda k: (mp.sqrt(4*a + 4*k + 2)*(16*a**2 + 4*a*(8*k - 1) + 16*k**2 - 4*k - 1) - mp.sqrt(4*a + 4*k - 2)*(16*a**2 + 4*a*(8*k + 1) + 16*k**2 + 4*k - 1)), [1, mp.inf]))/60

def Df(a):  # Derivative of f(a)
    a = mp.mpf(a)
    return mp.sqrt(2)*(16*a**2 + 4*a - 1)/(12*mp.sqrt(2*a + 1)) + mp.nsum(lambda k: (mp.sqrt(4*a + 4*k - 2)*(16*a**2 + 4*a*(8*k + 1) + 16*k**2 + 4*k - 1) - mp.sqrt(4*a + 4*k + 2)*(16*a**2 + 4*a*(8*k - 1) + 16*k**2 - 4*k - 1))/(12*mp.sqrt(2*a + 2*k + 1)*mp.sqrt(2*a + 2*k - 1)), [1, mp.inf])    

to_max_digits(lambda: mp.findroot(lambda a: Df(a), 0.157), 63, 83, double_digits)

que dá uma0.156936321399. Isso pode ser usado para criar uma aproximação do melhorUMA em função de m, destinado a grandes m20:

(8)UMA2m-1 1-1 1+0.156936321399+e-1.2749819017-0.3464088917m,

onde os coeficientes no expoente foram calculados por um ajuste linear em m{21,22} a uma linearização do ideal UMA valores da Tabela 1 ou tabela 2. Equivalentemente, o erro ao usar a aproximação é mostrado na Fig. 5.

insira a descrição da imagem aqui
Figura 5: Erro absoluto na aproximação do valor ótimo UMApela Eq. 8 em função dem. Param{21,22}, que foram usados ​​para montagem e para m{23,24}, o erro absoluto de aproximação foi menor que 10-8.

Por curiosidade, eu também calculei o pior caso uma que fornece o maior erro de quantização do MS, como m, encontrando o zero de f(uma) perto uma=-0,43, que acabou por estar em uma-0.433510875868.

Conclusão

As duas definições de otimalidade parecem equivalentes, à precisão numérica convincente. Comom, o valor ideal de UMA aproxima-se aproximadamente 2m-1 1-1 1+0.156936321399 (ou mais precisamente para grandes ma aproximação da Eq. 8) e a redução do erro de quantização (por definição 1 SNR ou por definição 2 THD) em dB ao escolher o valor ideal aproxima-se de zero, em comparação com a escolha de outro valor grande, comoUMA=2m-1 1-1 1 ou a escolha quase pior dos casos UMA=2m-1 1-0,5.

Na amplitude ideal UMA, o sinusóide de mínimos quadrados (LS) tem a mesma frequência e fase que o sinusóide sendo quantizado, mas tem uma amplitude um pouco menoruma1 1dado na Tabela 2. Isso é um pouco contra-intuitivo. Minimizar THD (ou maximizar SNR com o sinusóide sendo aproximado como sinal) de aproximar um sinusóide de amplitudeuma1 1 usando uma forma de onda de mnúmeros de bits com valores no intervalo -2m-1 12m-1 1-1 1 que é construído quantizando (arredondando para o número inteiro mais próximo) um sinusóide de amplitude UMA, é preciso escolher o ideal uma1 1 e UMA que não são iguais.

Os resultados são aplicáveis ​​ao tempo contínuo sem amostragem ou à amostragem no limite ffs, Onde f é a frequência sinusóide e fsé a frequência de amostragem. Em geral, a otimização não é preservada por amostragem. A amostragem aleatória com tempos aleatórios das amostras preservará a otimização da SNR da definição 1, se a distribuição da fase senoidal (módulo2π) nas amostras é uniforme. Além disso, para irracionalf/fs, a mesma otimização é preservada pelo mesmo motivo, consulte o teorema da equidistribuição . Definição 1 A otimização do SNR desaparece com o racionalf/fs, porque a distribuição das fases sinusóides não será uniforme.


A fase importa muito, de acordo com meus resultados numéricos na outra questão. Não é um WLOG se livrar dele, ignorando-o, você estuda um subconjunto extremamente pequeno de uma solução geral.
Cedron Dawg

@CedronDawg não há amostragem, portanto a fase não importa. Para uma mudança de fase diferente de zero do cosseno, o senoide e sua quantização seriam deslocados de forma idêntica no tempo e, portanto, o ruído de quantização também seria alterado no tempo de forma idêntica e teria potência idêntica (quadrado médio) e espectro de potência em comparação com o caso de mudança de fase zero.
Olli Niemitalo 29/03/19

Em outras palavras, em tempo contínuo, a quantização é um modelador de ondas e um modelador de ondas invariante no tempo, e uma mudança de fase de um sinusóide é equivalente a uma mudança de tempo. Uma mudança de tempo não altera o espectro de potência.
Olli Niemitalo 29/03/19

"Basta fazer a análise no primeiro trimestre do cosseno": não creio que seja uma suposição segura, pois uma grade numerada par centrada no zero é sempre assimétrica. Para 16 bits, vai de -32768 a +32767. Como a função densidade de probabilidade da onda senoidal é máxima nesse intervalo e você está observando diferenças muito pequenas, isso provavelmente fará uma diferença não trivial. Em outras palavras: sua amplitude ideal será diferente para uma meia onda positiva e uma negativa.
Hilmar

@ Hilmar a pergunta afirma que um sinusóide é quantizado. Um sinusóide é antiperiódico. A pergunta afirma que a quantização é feita arredondando para o número inteiro mais próximo. Por exemplo, para m = 16, as amplitudes do sinusóide que resultam no arredondamento de partes do sinusóide para -32768 são proibidas na questão, porque o arredondamento também produziria 32768 (na fase oposta) que não é um número de 16 bits .
Olli Niemitalo 30/03/19
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.