TSTE16: Continuous-time simulation and wideband spectrum

I noticed that several of you have bumped into the wall trying to simulate the continuous-time path in your project. It is very tricky to get it fully accurate and you have to live with approximations. My suggestion is to use a kind of virtual interpolation. I hope to be able to post a code here shortly (or add to the daisyProjSetup/m path in your project directories). The virtual interpolation can be neatly done after the DAC, simply use a sample-and-hold strategy, such as e.g.:

stretchDacData = reshape((dacData*ones(1,stretchFactor))', ...
1,stretchFactor*length(dacData));

You as a team/group must also decide what is more beneficial for you in terms of time plan. We noticed that quite a few of you are spending a lot of time on the top level and you should distribute the work between you instead. While one person is working on matlab top level, you should be able to assign someone else to do a cadence top level too.

I also noticed that quite a few of you are mixing up the wide-band spectrum concept from lab2 with the single-tone concept from the project. The two cases are not fully comparable. Well they can be, but just watch out, step back and give it a thought: “what is what”? The wide-band spectrum is a signal that has its power distributed over the whole signal band, whereas the single tone has its power concentrated at one bin only. To compare the two power levels with each other you need to sum up (integrate) the whole band to get the numbers to align: Psignal = BW*PSD. The peak sine signal you can use is +/- 1 giving a maximum power of 1/2. So, to compare the injected carrier at -3dBFS with the wideband signal: the wideband signal level (what you see in the FFT) is -10log(BW)+3 below the intereferer (!).

One thought on “TSTE16: Continuous-time simulation and wideband spectrum”

1. I’ve added a function to the

\$HOME/TSTE16/daisyProjSetup/m/tste16ProjTop.m

directory for all of you to take a look at. It uses a virtual implementation by a factor of 12 or 8 or so. This number should be as large as possible to make as small errors as possible. Also notice that the analog filter orders have to be generated in parallel as I use digital filters instead. NOTICE though that you can use the same passband edges, attenutation and stuff that you use for the digital synthesis filter. Just put those values into the filter generation function and report the analog filter order.

Also NOTICE this is just a suggestion on how to solve the problem… Not necessarily the correct one.

This site uses Akismet to reduce spam. Learn how your comment data is processed.