Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Dynamic Range Scaling

Status
Not open for further replies.

Giro

Junior Member level 1
Joined
Apr 28, 2014
Messages
19
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
241
Hi all, first post on here and I must say I like it so far. :)

Perhaps a silly question but is there a method to expand a 16bit file into 32bit regarding dynamic range?

Google returns Audio Expander, Binary Scaling and Dynamic Range Scaling (not sure which is more appropriate). However applied; What I am doing is experimental, perhaps even a little crazy to you guys but in essence I'm trying to get a 16bit file to occupy the entire range 32bit fixed point provides without distorting signal in order use up all the quantizising steps available. Maybe its as simple as boosting the volume by a rediculous degree?

I would like to say why I want to do this but it will most likely sidetrack the thread.

Pointers to any kind of implimentation would be great.
Thanks
G
 

Do you have any experience with computer programming? You could do this in just about any common programming language. If you have Matlab (or the free equivalent, GNU Octave) I could write you a few lines of code to do this.

Why do you want to do this? It seems like all you will achieve is doubling your file size.
 

Hi, firstly, I'm glad at your response. :smile:

I did suspect it was possible.
I posted a thread on another forum and it got really messy, lots of input but no concise answer, partly due to my lack of understanding not limited to using incorrect terms at the wrong time.

I have no coding experience no. In the first instance I wanted to confirm if it was at all possible and now I am happy. :smile:

The reason I want to do this was to fully exploit all the precision 32 float offers/can accomodate, applying your code to a signal of lower depth before transfering onto subsequent 32 dsps within 32float, I'm thinking a (temporary) increase in precision would maximise capability of subsequent dsps in a chain.

Many people misunderstood and told me this stage is automatic (always, everywhere in every application) but I suspected this wasn't the case wtih this one particular application (music playback software that uses 32float) - 16 is usually 'passed onto' 32float and the 16bit depth is retained within the 32 float, everything below LSB is padded out and any subsequent 32bit dsps commonly operate using only input depth.
I think because the container and dsps are labelled '32bit' people assume depth is expanded automatically - though this may be the case for some dsp's and how they are implemented, including a depth increase would ensure that the subsequent chain is operating at max.

The increase in DR and size would be a problem if conversion and storage/mediums were issues here but that is not my question.
I merely want to (expand/enlarge - can you tell me the correct terminology?) *temporarily* for processing only - the output will eventually be rounded down to a more appropriate output, of course, but I want to focus on the upconversion regarding DR, that I can apply at the very beginming of a chain.
The playback software I wanted to experiment with has a chain function, so I wanted to expriment with various dsps (most are 32) at full capacity (by inserting this new dsp in front) to achieve desired result, rather than working at 16depth, within 32float - if you see.

I may be wrong but I'm confident I'm onto something (an inner calling)...
 

I don't hear anything about the nature of 16-bit data. If it's digital audio, dynamic expansion may be a useful manipulation. Just changing the data format without specific signal processing doesn't seem meaningful in any case.
 

So it can be done?
there will be pecific singal processing applied, specifically re-sampming (upsampling x64).

Can you help with a code? I don't mind contributing for your effort. :)
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top