DC offset flip: 8 bit data, 16 bit output!

Dat flippen gebeurt al. Wel met de eerste bit. Bij 0 is het positief en bij 1 negatief (of andersom). De andere 15 bits bepalen de amplitude.
In jouw geval 8 bits + 1 "clock bit" = 9 bits. Geen 16.
 
wat jij bedoeld is inverten, dus 0 word 1 en vice versa... dat is dus een DC verschuiving maar daar heb ik het niet over...
ik bedoel het omkeren van de byte, dus 10011010 word 01011001

de data ansich is 8 bit maar word in de 16 bits 'geplaatst'. afhankelijk van de DC offset dus in bit 0-7 dan wel 8-15...
 
Ok, dan heb je dus nog een bit nodig voor negatief en positief. 17 bits. Het werkt wel maar in principe werk je met een 9 bits word lengte. 8 bits per waarde.
Hetzelfde als ik zou zeggen bij normaal 16 bits, waarbij de eerste bit het sign bit is (- of +) en ik dan twee 16 bit reeksen zou samenvoegen tot 32 bits. Het is dan geen 32 bits maar twee 16 bits reeksen in een 32 bits reeks.

Meest nadelige is dat als je 2 waardes in 1 reeks stopt je bepaalde berekeningen 2 keer moet doen in plaats van 1 keer. Zoals truncaten en als je de waardes ook omkeert ook bitshiften.
 
Origineel geplaatst door 6 trak
wat jij bedoeld is inverten, dus 0 word 1 en vice versa... dat is dus een DC verschuiving maar daar heb ik het niet over...
ik bedoel het omkeren van de byte, dus 10011010 word 01011001

de data ansich is 8 bit maar word in de 16 bits 'geplaatst'. afhankelijk van de DC offset dus in bit 0-7 dan wel 8-15...

Wel mooi gevonden maar, geluid is periodisch, dat wil niet zeggen dat de Amplitude altijd het gespiegelde en daarvan geïnverteerde is. De amplitude in één periode (positief-negatief) kan verschillend zijn !! Doch het signaal kan nog altijd periodisch zijn.
 
qua helft hebben we het hier over de cycle...
 

Attachments

  • dcflip2.jpg
    dcflip2.jpg
    17,4 KB · Bekeken: 89
ah ok, maar dan heb je nog altijd een bit nodig die zegt dat je de eerste helft niet verandert en de 2 de wel. De methode die jij dan toepast op de 2de helft heeft 2 bewerkingen nodig en die men algemeen toepast slechts één.
 
Origineel geplaatst door Toon
ah ok, maar dan heb je nog altijd een bit nodig die zegt dat je de eerste helft niet verandert en de 2 de wel.
dat word getrolled door de clock osc (zie 1ste post)

Origineel geplaatst door Toon
De methode die jij dan toepast op de 2de helft heeft 2 bewerkingen nodig en die men algemeen toepast slechts één.
correct, maar daar tegenover staat dat je de helft aan data nodig hebt en precies daar ging het nu vanaf het begin om...
 
Ik probeer het te snappen..

attachment.php

Dit plaatje heeft dus 256 + 256 = 512 mogelijke waarden?

Twee keer 8 bit is dus 512?

1 is 2^0
2 is 2^1
4 is 2^2
8 is 2^3
16 is 2^4
32 is 2^5
64 is 2^6
128 is 2^7
256 is 2^8
512 is .......
 
Laatst gewijzigd:
6 je lult uit je nek zoals een paard uit de kroeg.

Het 1e bit is het signed bit. Positief of negatief. Als je dat gaat knipperen dan krijg je wat jij bedoeld. Maar dan met 15 bits. Je zou ook kunnen zeggen als je de bovenste helft hebt dan weet je de onderste helft (het negatieve deel) ook.
Dan kan maar is in de praktijk dus praktisch nooit zo. Alleen bij OSC of LFO's.
Het enige wat je dan doet is d'r een bit bij optellen. Omdat je de freq toch spiegelt in tijd én in polariteit.

En bij de oudere hybride synths werden dit soort basic golfvormen voor de OSC's wel half gesampled en later intern gespiegeld via een inverterschakeling. Maar dat was puur omdat geheugen zo verdomde duur was.
Nu heeft je electronische tandeborstel al meer geheugen dan menige oude hybride synth.
En stel je dan even voor hoe het werkt. De OSC gaat met die sample aan de gang en speelt hem af. 1x normaal 1x geinverteerd 1x normaal 1x geinverteerd etc etc etc etc etc etc enne etc.
 
16 bit resolutie:
16 2^16 = 65536
15 2^15 = 32768
14 2^14 = 16384
13 2^13 = 8192
12 2^12 = 4096
11 2^11 = 2048
10 2^10 = 1024
09 2^9 = 512
08 2^8 = 256
07 2^7 = 128
06 2^6 = 64
05 2^5 = 32
04 2^4 = 16
03 2^3 = 8
02 2^2 = 4
01 2^1 = 2
00 2^ 0 = 1

8 bit resolutie:
08 2^8 = 256
07 2^7 = 128
06 2^6 = 64
05 2^5 = 32
04 2^4 = 16
03 2^3 = 8
02 2^2 = 4
01 2^1 = 2
00 2^ 0 = 1

Als je dus 2 x 8 bit hebt heb je 256 + 256 = 512, 9 bit.

ECHTER!
Als je 8 bit combineert met nog 8 bits heb je 16 bit diepte = 65536 waarden
Wat je dan doet is een 9 bit signaal maken en dit over een 16 bit resolutie verdelen.

Dus ergens heeft iedereen een beetje gelijk!
En ik lekker helemaal...

volgens mij is de maximale waarde bij 8 bit 255 (de nul telt immers ook mee, dus 2^8 -1 als maximum waarde) en bij 16 bit 65535 (zelfde verhaal 2^16 -1). Mocht je dit bestrijden, bedenk dan: 'meneer van dalen wacht op antwoord'.

Flame me!

-C-
 
Origineel geplaatst door 6 trak
dat word getrolled door de clock osc (zie 1ste post)


Dat gaat alleen werken bij een constante frequentie. Als de frequentie niet constant is heb je echt een extra bit nodig. Een sign bit.

correct, maar daar tegenover staat dat je de helft aan data nodig hebt en precies daar ging het nu vanaf het begin om...

Nog een keer. Jij gebruikt 8 bits (maar hebt er 9 nodig). In 16 bits wordt 15 bits gebruikt voor amplitude en 1 bit voor het sign bit.
8 is wel de ongeveer de helft van 15 bits maar je gebruikt in principe een lagere bitdiepte. Dus misschien wel de helft aan data maar ook de helft aan inhoud.
 
Je krijgt dus een 16 bit signaal met de kwaliteit van een 9 bits signaal? Dat bedoel je?
 
Origineel geplaatst door ProtoHuman
Je krijgt dus een 16 bit signaal met de kwaliteit van een 9 bits signaal? Dat bedoel je?
:eureka:
 
ergens klopt er zowieso iets niet 6 :) Als we even simpele tekenkunsten gebruiken en even simpele logica dan zie je dat je zowieso niet je perfecte golvorm terug krijgt.

als we een sinus nemen van 8 bits en dit dus even simpel in 8 stappen onderverdelen dan begint de eerste stap bij 0 en eindigt de laatste ook bij 0 omdat hij immers eerst een curve naar boven maakt naar zijn maximale piek en daarna van die piek naar beneden gaat naar de volgende piek die in het negatieve gedeelte zal zitten (minus waarde). Echter hij kruist daarbij de 0 wat hij doet in het midden van de cyclus. Maar nu komt het. als je dit neemt als b asis dan zal je zien dat bit 1 waarde 0 heeft en bit 8 ook waarde 0. Gaat men dit spiegelen dan word waarde 1 (eigenlijk 9) ook 0 en waarde 8 (eigenlijk 16) ook 0. Wat klopt er nu niet aan dit verhaal? Opzich is het verhaal goed maar de golf niet meer want je krijgt nu 2 bits achterelkaar met de waarde 0 omdat je die immers spiegelt. Dit kan dus al niet...
 
Origineel geplaatst door 6 trak
juist...

Bedoel je juist in van, ja, ik ben het eens dat er kwaliteits verlies optreedt?
:confused:

Vraag me echt af of je het het niet begrijpt, het niet wil begrijpen of je zo overtuigd bent van je eigen gelijk.

Doet me idd sterk denken aan een vorige thread waar het ineens stil werd aan de andere kant. Waarschijnlijk toen het kwartje viel.
 
Origineel geplaatst door 6 trak
juist...

Onjuist dus.

Loop je de boel weer ouderwets te stangen of ben je echt serieus vraag ik me af.
 
Back
Top