FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > DSP

DSP comp.dsp newsgroup, mailing list

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 12-01-2009, 03:13 AM
akeane01
Guest
 
Posts: n/a
Default ADSP2101 low level Audio Signals

Hi,


below is a sample of the filter to process de-emphasis on audio signals o
a receiver card with a ADSP2101. When i run the code without this filte
the linearity of the audio signals is good down to 80dB below full scal
which is around -60dBm. So -10dBm input equals -10dBm output for goo
linearity and so on. What i notice is that when i add this filter t
compensate from the pre-emphasized signal from the transmitter, my lo
level linearity response is starts dropping off at -50dBm input. If I ad
gain before the filter then the better the low level signal response but
lose that range on the high level signals. Is there anything that can b
done to this 1.15 fractional mode filter for low level signals?





/* load loop count and coefficents */

/* setup pointers to buffer */


DIS M_MODE;


startDemph:

CNTR = ar; /* load counter */

DO to_lrs UNTIL CE; /* loop until count expires, en
of buffer */


SR0 = dm(I7,M6); /* load sample from buffer */
MX1 = dm(l_last_in); /* previous samples */
AR = dm(l_last_out);
MY0 = dm(de_a0); /* load 1st coefficient */
MR = MX0 * MY0 (SS);
MY0 = dm(de_a1); /* load 2nd coefficient */
MR = MR + MX1 * MY0 (SS);
MY0 = dm(de_b1); /* load 3rd coefficient */
MR = MR + AR * MY0 (SS);
MR = MR (RND);
IF MV SAT MR;
dm(l_last_out) = MR1;
dm(l_last_in) = MX0;
dm(I7,M7) = MR1; /* store new filtered sample
*/

to_lrs:



Reply With Quote
  #2 (permalink)  
Old 12-01-2009, 04:08 AM
Jerry Avins
Guest
 
Posts: n/a
Default Re: ADSP2101 low level Audio Signals

akeane01 wrote:
> Hi,
>
>
> below is a sample of the filter to process de-emphasis on audio signals on
> a receiver card with a ADSP2101. When i run the code without this filter
> the linearity of the audio signals is good down to 80dB below full scale
> which is around -60dBm. So -10dBm input equals -10dBm output for good
> linearity and so on. What i notice is that when i add this filter to
> compensate from the pre-emphasized signal from the transmitter, my low
> level linearity response is starts dropping off at -50dBm input. If I add
> gain before the filter then the better the low level signal response but i
> lose that range on the high level signals. Is there anything that can be
> done to this 1.15 fractional mode filter for low level signals?


Double precision.

Jerry
--
Engineering is the art of making what you want from things you can get.
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
Reply With Quote
  #3 (permalink)  
Old 12-01-2009, 05:38 AM
Vladimir Vassilevsky
Guest
 
Posts: n/a
Default Re: ADSP2101 low level Audio Signals



akeane01 wrote:

> Hi,
>
>
> below is a sample of the filter to process de-emphasis on audio signals on
> a receiver card with a ADSP2101. When i run the code without this filter
> the linearity of the audio signals is good down to 80dB below full scale
> which is around -60dBm. So -10dBm input equals -10dBm output for good
> linearity and so on. What i notice is that when i add this filter to
> compensate from the pre-emphasized signal from the transmitter, my low
> level linearity response is starts dropping off at -50dBm input. If I add
> gain before the filter then the better the low level signal response but i
> lose that range on the high level signals. Is there anything that can be
> done to this 1.15 fractional mode filter for low level signals?
>
>
>
>
>
> /* load loop count and coefficents */
>
> /* setup pointers to buffer */
>
>
> DIS M_MODE;
>
>
> startDemph:
>
> CNTR = ar; /* load counter */
>
> DO to_lrs UNTIL CE; /* loop until count expires, end
> of buffer */
>
>
> SR0 = dm(I7,M6); /* load sample from buffer */
> MX1 = dm(l_last_in); /* previous samples */
> AR = dm(l_last_out);
> MY0 = dm(de_a0); /* load 1st coefficient */
> MR = MX0 * MY0 (SS);
> MY0 = dm(de_a1); /* load 2nd coefficient */
> MR = MR + MX1 * MY0 (SS);
> MY0 = dm(de_b1); /* load 3rd coefficient */
> MR = MR + AR * MY0 (SS);
> MR = MR (RND);
> IF MV SAT MR;
> dm(l_last_out) = MR1;
> dm(l_last_in) = MX0;
> dm(I7,M7) = MR1; /* store new filtered sample
> */
>
> to_lrs:


^^^^^^^^^^^^^^^^^^^^^^^^^^
What a lousy code.

Here is how to do this filter, plus the noise shaping:

do loop until ce;
mr = mr + mx0*my0(ss), mx0 = dm(i0,m1) , my0 = pm(i4,m4);
mr = mr + mx0*my0(ss), mx0 = dm(i0,m2) , my0 = pm(i4,m4);
mr = mr + mx1*mf(ss);
if mv sat mr;
dm(i7,m7) = mr1, mf = pass mr1;
loop: mr1 = 0;



Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com

Reply With Quote
  #4 (permalink)  
Old 12-01-2009, 06:16 AM
Al Clark
Guest
 
Posts: n/a
Default Re: ADSP2101 low level Audio Signals

Jerry Avins <[email protected]> wrote in news:3N%Qm.35013$[email protected]:

> akeane01 wrote:
>> Hi,
>>
>>
>> below is a sample of the filter to process de-emphasis on audio signals on
>> a receiver card with a ADSP2101. When i run the code without this filter
>> the linearity of the audio signals is good down to 80dB below full scale
>> which is around -60dBm. So -10dBm input equals -10dBm output for good
>> linearity and so on. What i notice is that when i add this filter to
>> compensate from the pre-emphasized signal from the transmitter, my low
>> level linearity response is starts dropping off at -50dBm input. If I add
>> gain before the filter then the better the low level signal response but i
>> lose that range on the high level signals. Is there anything that can be
>> done to this 1.15 fractional mode filter for low level signals?

>
> Double precision.
>
> Jerry


Jerry is right that double precision will take care of the noise issue.

Why are you using a ADSP-2101? I have used ADI DSPs almost exclusively since
the early 1990s and I have never used a 2101 (although I did use a lot of the
$9.90 ADSP-2105 in the 1990s).

There are many choices today that would work much better. An easy solution
would be a SHARC. In fixed point, you have 1.31 fractional math. You also
have floating point as an option.

Assuming you need more that a few, I would be glad to work with you on a more
modern design.

Al Clark
www.danvillesignal.com
Reply With Quote
  #5 (permalink)  
Old 12-01-2009, 10:14 PM
Jerry Avins
Guest
 
Posts: n/a
Default Re: ADSP2101 low level Audio Signals

Jerry Avins wrote:
> akeane01 wrote:
>> Hi,
>>
>>
>> below is a sample of the filter to process de-emphasis on audio
>> signals on
>> a receiver card with a ADSP2101. When i run the code without this filter
>> the linearity of the audio signals is good down to 80dB below full scale
>> which is around -60dBm. So -10dBm input equals -10dBm output for good
>> linearity and so on. What i notice is that when i add this filter to
>> compensate from the pre-emphasized signal from the transmitter, my low
>> level linearity response is starts dropping off at -50dBm input. If I add
>> gain before the filter then the better the low level signal response
>> but i
>> lose that range on the high level signals. Is there anything that can be
>> done to this 1.15 fractional mode filter for low level signals?

>
> Double precision.


[email protected] wrote:
> alan keane visited DSPRelated.com and clicked on your name from this

page:
> http://www.dsprelated.com/showmessage/121010.php
> to contact you. His message follows:
>
> Jerry,
>
> you mention using double precision to help solve my problem. Is there

an example of how to do this. I am not that familiar with it..
>
> thanks
> Alan Keane


Technical questions belong in the newsgroup, where many can respond and
where others can be correct my mistakes. The exact details of
implementing double precision depend on the resources provided bu the
processor. Addition is fairly easy, but multiplication is a bit messy.

Double precision uses twice as many bits to represent a number, It is
divided into high and low parts, To add two numbers a and b, Perform
a_low + b_low = sum_low, then a_high + b_high (with the carry from the
first addition) = sum_high. Multiplication is done similarly, accounting
for the cross terms, and produces a quad-precision result. Typically,
the low bits will be discarded and therefor needn't be computed in
detail, but carries resulting from them need to be accounted for.

This is basic assembly programming. AD's web site may have a tutorial.

Jerry
--
"The rights of the best of men are secured only as the
rights of the vilest and most abhorrent are protected."
- Chief Justice Charles Evans Hughes, 1927
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ


--
Engineering is the art of making what you want from things you can get.
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
Reply With Quote
  #6 (permalink)  
Old 12-02-2009, 03:04 PM
akeane01
Guest
 
Posts: n/a
Default Re: ADSP2101 low level Audio Signals

>Jerry Avins <[email protected]> wrote i
news:3N%Qm.35013$[email protected]:
>
>> akeane01 wrote:
>>> Hi,
>>>
>>>
>>> below is a sample of the filter to process de-emphasis on audi

signals on
>>> a receiver card with a ADSP2101. When i run the code without thi

filter
>>> the linearity of the audio signals is good down to 80dB below ful

scale
>>> which is around -60dBm. So -10dBm input equals -10dBm output for good
>>> linearity and so on. What i notice is that when i add this filter to
>>> compensate from the pre-emphasized signal from the transmitter, m

low
>>> level linearity response is starts dropping off at -50dBm input. If

add
>>> gain before the filter then the better the low level signal respons

but i
>>> lose that range on the high level signals. Is there anything that ca

be
>>> done to this 1.15 fractional mode filter for low level signals?

>>
>> Double precision.
>>
>> Jerry

>
>Jerry is right that double precision will take care of the noise issue.
>
>Why are you using a ADSP-2101? I have used ADI DSPs almost exclusivel

since
>the early 1990s and I have never used a 2101 (although I did use a lot o

the
>$9.90 ADSP-2105 in the 1990s).
>
>There are many choices today that would work much better. An eas

solution
>would be a SHARC. In fixed point, you have 1.31 fractional math. You als


>have floating point as an option.
>
>Assuming you need more that a few, I would be glad to work with you on

more
>modern design.
>
>Al Clark
>www.danvillesignal.com
>

Al,

This is an old legacy design so I cannot change it. I was trying to lear
something about the filter,how it works and what i could do if anythin
with improving the linearity by 10dB. I have been trying to read up o
double precision but not sure how that helps with low level signals when i
appears i am at the bottom of the usable range of the signals. Its eve
more fun since the code loads multiple boot pages, which prevents me fro
any effective use of an emulator. Any help would be appreciated..


Reply With Quote
  #7 (permalink)  
Old 12-02-2009, 08:35 PM
Jerry Avins
Guest
 
Posts: n/a
Default Re: ADSP2101 low level Audio Signals

akeane01 wrote:

> ... I have been trying to read up on
> double precision but not sure how that helps with low level signals when it
> appears i am at the bottom of the usable range of the signals. Its even
> more fun since the code loads multiple boot pages, which prevents me from
> any effective use of an emulator. Any help would be appreciated..


You wrote that gain could fix low amplitudes, but then you had trouble
with high amplitude. Double precision will increase "headroom" at the
top. It the entire signal fits into the range of your A-to-D converter
with enough resolution at the low end, careful analysis of what you need
may avoid the need for extending the precision (but maybe not).

Jerry
--
Engineering is the art of making what you want from things you can get.
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
Reply With Quote
  #8 (permalink)  
Old 12-04-2009, 05:34 AM
Al Clark
Guest
 
Posts: n/a
Default Re: ADSP2101 low level Audio Signals

"akeane01" <[email protected]> wrote in
news:[email protected] :

>>Jerry Avins <[email protected]> wrote in

> news:3N%Qm.35013$[email protected]:
>>
>>> akeane01 wrote:
>>>> Hi,
>>>>
>>>>
>>>> below is a sample of the filter to process de-emphasis on audio

> signals on
>>>> a receiver card with a ADSP2101. When i run the code without this

> filter
>>>> the linearity of the audio signals is good down to 80dB below full

> scale
>>>> which is around -60dBm. So -10dBm input equals -10dBm output for good
>>>> linearity and so on. What i notice is that when i add this filter to
>>>> compensate from the pre-emphasized signal from the transmitter, my

> low
>>>> level linearity response is starts dropping off at -50dBm input. If I

> add
>>>> gain before the filter then the better the low level signal response

> but i
>>>> lose that range on the high level signals. Is there anything that can

> be
>>>> done to this 1.15 fractional mode filter for low level signals?
>>>
>>> Double precision.
>>>
>>> Jerry

>>
>>Jerry is right that double precision will take care of the noise issue.
>>
>>Why are you using a ADSP-2101? I have used ADI DSPs almost exclusively

> since
>>the early 1990s and I have never used a 2101 (although I did use a lot of

> the
>>$9.90 ADSP-2105 in the 1990s).
>>
>>There are many choices today that would work much better. An easy

> solution
>>would be a SHARC. In fixed point, you have 1.31 fractional math. You also

>
>>have floating point as an option.
>>
>>Assuming you need more that a few, I would be glad to work with you on a

> more
>>modern design.
>>
>>Al Clark
>>www.danvillesignal.com
>>

> Al,
>
> This is an old legacy design so I cannot change it. I was trying to learn
> something about the filter,how it works and what i could do if anything
> with improving the linearity by 10dB. I have been trying to read up on
> double precision but not sure how that helps with low level signals when

it
> appears i am at the bottom of the usable range of the signals. Its even
> more fun since the code loads multiple boot pages, which prevents me from
> any effective use of an emulator. Any help would be appreciated..
>
>


I think we are all looking at this problem wthout seeing enough details.
The assumption is that the precision of the filter is causing the noise
floor to increase. This is likely given the dynamic range and 16 bit math.

Double precision is possible with the 2101. There is an ADI book, Using the
ADSP-2100 Family Volume 1 & 2, that might help you with this. It is
available as a download at http://www.analog.com/en/embedded-processing-
dsp/ADSP-21xx/processors/manuals/resources/index.html.

The 2101 has limited memory. It has 8 possible boot pages. If they used
multiple pages it might be difficult to add a lot of code. That said,
Vladimir pointed out the the original code was not well written (and he was
correct).

This suggests that the originator probably did not understand DSP very well
or the assembly langauge of the part. You can probably find ways to rewrite
the code more efficently and include a double precision filter.

The never was an emulator for the 2101, regardless of boot pages.

Al Clark





Reply With Quote
  #9 (permalink)  
Old 12-04-2009, 08:25 PM
Jerry Avins
Guest
 
Posts: n/a
Default Re: ADSP2101 low level Audio Signals

Al Clark wrote:
> "akeane01" <[email protected]> wrote in
> news:[email protected] :
>
>>> Jerry Avins <[email protected]> wrote in

>> news:3N%Qm.35013$[email protected]:
>>>> akeane01 wrote:
>>>>> Hi,
>>>>>
>>>>>
>>>>> below is a sample of the filter to process de-emphasis on audio

>> signals on
>>>>> a receiver card with a ADSP2101. When i run the code without this

>> filter
>>>>> the linearity of the audio signals is good down to 80dB below full

>> scale
>>>>> which is around -60dBm. So -10dBm input equals -10dBm output for good
>>>>> linearity and so on. What i notice is that when i add this filter to
>>>>> compensate from the pre-emphasized signal from the transmitter, my

>> low
>>>>> level linearity response is starts dropping off at -50dBm input. If I

>> add
>>>>> gain before the filter then the better the low level signal response

>> but i
>>>>> lose that range on the high level signals. Is there anything that can

>> be
>>>>> done to this 1.15 fractional mode filter for low level signals?
>>>> Double precision.
>>>>
>>>> Jerry
>>> Jerry is right that double precision will take care of the noise issue.
>>>
>>> Why are you using a ADSP-2101? I have used ADI DSPs almost exclusively

>> since
>>> the early 1990s and I have never used a 2101 (although I did use a lot of

>> the
>>> $9.90 ADSP-2105 in the 1990s).
>>>
>>> There are many choices today that would work much better. An easy

>> solution
>>> would be a SHARC. In fixed point, you have 1.31 fractional math. You also
>>> have floating point as an option.
>>>
>>> Assuming you need more that a few, I would be glad to work with you on a

>> more
>>> modern design.
>>>
>>> Al Clark
>>> www.danvillesignal.com
>>>

>> Al,
>>
>> This is an old legacy design so I cannot change it. I was trying to learn
>> something about the filter,how it works and what i could do if anything
>> with improving the linearity by 10dB. I have been trying to read up on
>> double precision but not sure how that helps with low level signals when

> it
>> appears i am at the bottom of the usable range of the signals. Its even
>> more fun since the code loads multiple boot pages, which prevents me from
>> any effective use of an emulator. Any help would be appreciated..
>>
>>

>
> I think we are all looking at this problem wthout seeing enough details.
> The assumption is that the precision of the filter is causing the noise
> floor to increase. This is likely given the dynamic range and 16 bit math.
>
> Double precision is possible with the 2101. There is an ADI book, Using the
> ADSP-2100 Family Volume 1 & 2, that might help you with this. It is
> available as a download at http://www.analog.com/en/embedded-processing-
> dsp/ADSP-21xx/processors/manuals/resources/index.html.


Here is the reconstructed URL:
http://www.analog.com/en/embedded-pr...ces/index.html

> The 2101 has limited memory. It has 8 possible boot pages. If they used
> multiple pages it might be difficult to add a lot of code. That said,
> Vladimir pointed out the the original code was not well written (and he was
> correct).
>
> This suggests that the originator probably did not understand DSP very well
> or the assembly langauge of the part. You can probably find ways to rewrite
> the code more efficently and include a double precision filter.
>
> The never was an emulator for the 2101, regardless of boot pages.


Jerry
--
Engineering is the art of making what you want from things you can get.
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Computing the power level of 8 bit mono audio byte data J_Y_C DSP 19 08-26-2008 10:24 PM
chipscope pro , lower level signals not visible ni FPGA 1 04-17-2008 03:00 AM
ADSP2101 PROM SPLITTER [email protected] DSP 1 12-12-2007 01:30 AM
EDK8.2: bidirectional signals when top-level is ISE MM FPGA 1 09-13-2006 01:41 AM
test signals for testing of leaf level entities in a design Nachiket Kapre FPGA 0 09-11-2003 04:13 AM


All times are GMT +1. The time now is 04:31 AM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved