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.

Producing the sinc roll off of a DAC

Status
Not open for further replies.

jayo57

Newbie level 3
Joined
Mar 22, 2010
Messages
3
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
Ireland
Activity points
1,315
Producing sinc roll off of a DAC

Hi,

I'm trying to investigate a basic DDS system through the mathematical modelling of it’s operation. A generalized DDS architecture is depicted in the image below.

DDS.png

note that the DDS architecture has the following attributes:
• An accumulator comprising a binary adder and a common or garden synchronous latch.
• A phase to frequency converter, realized as a look-up table through a ROM device.
•A digital to analogue converter.

Strictly, the DAC should be followed by a reconstruction analogue filter, but I'm trying to produce the lower image frequency (a sin(x)/x response or sinc roll off) and in order to do this I need to design a mathematical model of the generalized DDS architecture using scilab/matlab for a candidate frequency setting word, and carry out a frequency analysis of the output using a fast fourier transform.

Basically I'm trying to produce the amplitude response(red) in the following image:

sinc roll off.png

Any pointers on how to do this would be much appreciated.

I have managed to plot the sinc roll off in scilab using the following equation:

A(fo) = sin(π*fo/fc)/(π*fo/fc)

Where fo is the output frequency and fc is the clock frequency

The code is as follows:

Fc=100;
Roll = [sin(%pi/Fc)/(%pi/Fc),sin(10*%pi/Fc)/(10*%pi/Fc),sin(20*%pi/Fc)/(20*%pi/Fc),sin(30*%pi/Fc)/(30*%pi/Fc),sin(40*%pi/Fc)/(40*%pi/Fc),sin(50*%pi/Fc)/(50*%pi/Fc),sin(60*%pi/Fc)/(60*%pi/Fc),sin(70*%pi/Fc)/(70*%pi/Fc),sin(80*%pi/Fc)/(80*%pi/Fc),sin(90*%pi/Fc)/(90*%pi/Fc),sin(100*%pi/Fc)/(100*%pi/Fc)]; etc.......

plot(Roll);
xlabel('Time index n'); ylabel('Amplitude');
title('Sinc Roll Off');

rect=[1 -0.3 55 1.1];
zoom_rect(rect)

I have also managed to plot it in the following way;

stacksize('max')
FS=192000;
fout=1920;
t=0:1:FS;
sig=sinc(2*%pi*t*fout/FS);
//playsnd(sig,FS)
plot2d(sig)
//plot(sig)
rect=[0 -0.4 2000 1.3];
zoom_rect(rect)


Thanks in advance.
 

Attachments

  • Sinc roll off.png
    Sinc roll off.png
    15.3 KB · Views: 143
Last edited:

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top