> "akeane01" <akeane01@harris.com> wrote in
> news:3MmdnetxcK1u7ovWnZ2dnUVZ_jadnZ2d@giganews.com:
>
>>> Jerry Avins <jya@ieee.org> wrote in
>> news:3N%Qm.35013$cd7.16736@newsfe04.iad:
>>>> 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.
Jerry
--
Engineering is the art of making what you want from things you can get.
�����������������������������������������������������������������������
Reply by Al Clark●December 4, 20092009-12-04
"akeane01" <akeane01@harris.com> wrote in
news:3MmdnetxcK1u7ovWnZ2dnUVZ_jadnZ2d@giganews.com:
>>Jerry Avins <jya@ieee.org> wrote in
> news:3N%Qm.35013$cd7.16736@newsfe04.iad:
>>
>>> 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 by Jerry Avins●December 2, 20092009-12-02
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 by akeane01●December 2, 20092009-12-02
>Jerry Avins <jya@ieee.org> wrote in
news:3N%Qm.35013$cd7.16736@newsfe04.iad:
>
>> 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..
Reply by Jerry Avins●December 1, 20092009-12-01
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.
akeane01@harris.com 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 by Al Clark●December 1, 20092009-12-01
Jerry Avins <jya@ieee.org> wrote in news:3N%Qm.35013$cd7.16736@newsfe04.iad:
> 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 by Vladimir Vassilevsky●December 1, 20092009-12-01
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 by Jerry Avins●November 30, 20092009-11-30
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 by akeane01●November 30, 20092009-11-30
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: