ΣSigmaStudio Ask AI Русский Log in

DSP Evaluation Kits - High Sampling Rate.

SigmaDSP & SigmaStudio Sim Apr 29, 2016 00:00 9 replies Original on forum ↗
Subscribe
Sim Question
Apr 29, 2016 00:00

Hi,

I am working on a prototype of an Ultrasonic device, using the ADAU1701 evaluation board.

Due to the updated requirements, I am currently interested to test several Phased Array algorithms.

As a result, delays in resolution of ~1[microsec] should be implemented.

The sampling rate of the ADAU1701 platform is 1/192000=0.0000052[sec]=5.2[microsec].

Therefore, currently searching for an Evaluation Board with the desired sampling rate.

Will be glad to have an advice - which platform may answer the sampling rate requirements.

Thanks in Advance.

Audio Signal Processors

SigmaDSP Audio Processors

adau1701

DaveThib Reply
Apr 29, 2016 00:00

Hello Sim,

Can you clarify a little? So you are looking for an evaluation board that can sample at 1 MHZ? (1 us ). Or this will be the resolution of the processing of the samples, as in the instruction rate?

The ADAU1442 evaluation board can be modified with just a little soldering to run at 192kHz fs. But, this is not our fastest DSP but it is faster than the ADAU1701. The ADAU1452 is our fastest processor but the only evaluation board that is available is a small "MINI" eval board. Changing that board to allow control of the codec so the sample rate can be changed is not a simple exercise.

Here is a link to the ADAU1442 eval board. If you decide to go this route I can supply you with the instructions for modifying this board so SigmaStudio can control the codecs. Then you can run the board at 192kHZ fs.

EVAL-ADAU1442 Evaluation Board | Analog Devices

I also just re-read your text. If you have the ADAU1701 evaluation board then you can just simply set the board to run at 192kHz. The part can do that but it leave you will very few instructions per sample period for your DSP program.

Dave T

Sim Reply
Apr 29, 2016 00:00

Hi Dave,

Thank you for the fast reply.

The 1[microsec] is the required processing resolution.

The input BW is 10Khz only, the output is 40Khz - so the A2D/D2A answers the demand.

Seems that the minimal delay element possible in ADAU1701 is 1/192Khz = 5.20833E-06 = 5.2[microsec], however this is not enough for my application.

For the delay value of 3 samples compared to 1 for 60Khz signal, the shift is ~10.4[microsec].

The minimal delay required is 1[microsec].

As a result, it seem that ADAU1442 will not be enough.

What are the faster DSPs available?

Thanks.

dc556083c8eb19fced4bd34790123748.png
dc556083c8eb19fced4bd34790123748.png
dc556083c8eb19fced4bd34790123748.png-254x56.png
dc556083c8eb19fced4bd34790123748.png-254x56.png
53be00d6ed4e3820bf1fdb1fdf7e0891.png
53be00d6ed4e3820bf1fdb1fdf7e0891.png
53be00d6ed4e3820bf1fdb1fdf7e0891.png-254x56.png
53be00d6ed4e3820bf1fdb1fdf7e0891.png-254x56.png
530f228a9107a6a117571f09c394c6cb.png
530f228a9107a6a117571f09c394c6cb.png
530f228a9107a6a117571f09c394c6cb.png-575x179.png
530f228a9107a6a117571f09c394c6cb.png-575x179.png
DaveThib Reply
Apr 29, 2016 00:00

Hello Sim,

It is not a question of if it is fast enough, it is a question of the sample rate. You can actually obtain values of samples that are between the sample points in time. Let me explain.

First, understand that the SigmaDSP is a deterministic style of DSP core. It will run its program once during every sample period and then wait for the next sample to come in.

So a delay line only has the current sample and the number of samples it is set to held in its memory. So if it is set to one, then it has the current sample and the one before it. It will release the one before it for the current calculation to be performed and then store the current sample for the next time it runs the program. (the next sample period). We did anticipate the need for obtaining delays that are less than one sample period so there is a fractional delay cell in the library.

What this cell does is to use the two data points, the current sample and the last sample, and interpolate the value in-between the two data points. The setting is a percentage. So 50% will give you a value that is half way between the two data points. It is not exactly linear but I do not know exactly how it functions because there are some things we keep secret. See if this might help you with your application.

Dave T

b5f3113285dd01441bdbbd9f083517f8.jpg
b5f3113285dd01441bdbbd9f083517f8.jpg
b5f3113285dd01441bdbbd9f083517f8.jpg-533x339.jpg
b5f3113285dd01441bdbbd9f083517f8.jpg-533x339.jpg
Sim Reply
May 2, 2016 00:00

Hello Dave,

Thank you very much for the information.

Seems that Fractional Delay is the needed Cell, as can be seen below:

Following are two 40Khz signals sampled at 192Khz and aligned.

The distance between the samples is 2.5usec.

The Max Fractional delay was set to 1920 - equivalent to 10usec.

When the current fractional delay is 0% - the two signals are aligned.

Setting the current fractional delay to 10% - yields a phase of 1usec - Required Resolution.

Setting the current fractional delay to 20% - yields a phase of 2usec.

Setting the current fractional delay to 50% - yields a phase of 50usec.

Setting the current fractional delay to 100% - yields a phase of 10usec.

Regards,

Sim.

d3e35132536057ce6d784f28fd827d59.png
d3e35132536057ce6d784f28fd827d59.png
d3e35132536057ce6d784f28fd827d59.png-394x238.png
d3e35132536057ce6d784f28fd827d59.png-394x238.png
5ceee1fbe569dec4c897d7e210044077.png
5ceee1fbe569dec4c897d7e210044077.png
5ceee1fbe569dec4c897d7e210044077.png-410x140.png
5ceee1fbe569dec4c897d7e210044077.png-410x140.png
0e41af6c87df1aa5216d98aa0371b56e.png
0e41af6c87df1aa5216d98aa0371b56e.png
0e41af6c87df1aa5216d98aa0371b56e.png-575x346.png
0e41af6c87df1aa5216d98aa0371b56e.png-575x346.png
Sim Reply
May 24, 2016 00:00

Hi,

When implementing an SSB modulation, interested to use 2 LUTs with sine and cosine values as below(40Khz@192Khz):

However, the structure marked in red does not yield the required sine/cosine waves.

What is the correct way to implement a 40Khz sine and cosine waves sampled at 192Khz in SigmaStudio?

Thanks.

efab8dfe94d3d58e23c1f21ff9ead544.png
efab8dfe94d3d58e23c1f21ff9ead544.png
efab8dfe94d3d58e23c1f21ff9ead544.png-527x289.png
efab8dfe94d3d58e23c1f21ff9ead544.png-527x289.png
c4468ddf3d5e5fd4497f8f5d1cf95879.png
c4468ddf3d5e5fd4497f8f5d1cf95879.png
c4468ddf3d5e5fd4497f8f5d1cf95879.png-1464x692.png
c4468ddf3d5e5fd4497f8f5d1cf95879.png-1464x692.png
DaveThib Reply
May 24, 2016 00:00

Hello Sim,

You simply have to delay the signal by 90 degrees.

Here are my calculations. First you will have a 40kHz signal out of the oscillator. So I calculated the period of a 40kHz wave and divided it by 4 to get the amount of time I need to delay the signal. I got 6.25us.

Then I divided that by the sampling period 1/192kHz and this gave me a result of 1.2. So we need to delay the sine wave by 1.2 samples to achieve a 90 degree phase shift.

Here is how I implemented it on the 1701:

I used the sine tone generator for the 40kHz signal. Then I used the fractional delay cell. This is located here:

I set the maximum delay to 2 samples. Then I set it to delay 60% of the 2 samples which is exactly 1.2 sample periods.

Here is a screenshot of the resulting output:

It is a little difficult to see but it is really close to 90 degrees of phase shift. You may have to slightly adjust the percentage to get this closer if you need to. There is some interpolation but it looked pretty good to me. On a real scope (rather than a USB scope I have at my desk) you could read out the phase difference.

Now for others reading this I would like to mention that on the Sigma300 (ADAU1452 family) this is really easy to do. The sine wave generator has controls for phase shift. So you place one in your project and grow it to have two outputs. Then you delay one of them by 90 degrees and you have it. But this cell is not available on the 1701.

Dave T

9470fdecc12c51c7e8a5143409d5701d.jpg
9470fdecc12c51c7e8a5143409d5701d.jpg
9470fdecc12c51c7e8a5143409d5701d.jpg-620x218.jpg
9470fdecc12c51c7e8a5143409d5701d.jpg-620x218.jpg
de4aea0393d75ff2cf3131a92d5c011a.jpg
de4aea0393d75ff2cf3131a92d5c011a.jpg
de4aea0393d75ff2cf3131a92d5c011a.jpg-226x106.jpg
de4aea0393d75ff2cf3131a92d5c011a.jpg-226x106.jpg
aada45d8ddc902b01c9c2dcbbe981608.jpg
aada45d8ddc902b01c9c2dcbbe981608.jpg
aada45d8ddc902b01c9c2dcbbe981608.jpg-620x428.jpg
aada45d8ddc902b01c9c2dcbbe981608.jpg-620x428.jpg
e34d8addc6137bf9f4128bdb4c20d60a.jpg
e34d8addc6137bf9f4128bdb4c20d60a.jpg
e34d8addc6137bf9f4128bdb4c20d60a.jpg-262x246.jpg
e34d8addc6137bf9f4128bdb4c20d60a.jpg-262x246.jpg
Sim Reply
May 25, 2016 00:00

Hello Dave,

Thank you for the fast reply.

Following you previous answer regarding the Fractional Delay module, I have initially started from trying to make the Cosine wave out of a sine tone generator.

However, due to a high sensitivity to even minimal additional shift to the 90 intended, I have prefered to use the Look Up Table method.

I will definitely try the fractional delay technique and use the X-Y Mode/Lissajous Curve to minimize the error and update.

However, wondered whether you can meanwhile also help me out with the the LUT method I have detailed in my previous post.

Many thanks in Advance.

DaveThib Reply
May 25, 2016 00:00

Hello Sim,

Can you attach the project? I need to look more closely at what you were doing.

Thanks,

Dave T

Sim Reply
May 25, 2016 00:00