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.

Extract info. of DeltaSigma ADC modulator output simulated by Cadence with Matlab?

Status
Not open for further replies.

hyleeinhit

Member level 3
Joined
Aug 11, 2008
Messages
58
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Location
U.S.
Activity points
1,696
Hi, guys,

I designed a 1 order DeltaSigma ADC modulator. Simulation is run by Cadence virtuoso. I exported simulation result to Matlab with command "importdata" following guidelines in the following link: https://eda.engineering.wustl.edu/wiki/index.php/How_to_export_Cadence_plot_data_into_MATLAB

Now I need a Matlab counter to sum up digital '1' numbers on modulator output. I tried two ways:
1. Try to extract digital 1 and 0 from Cadence simulation results. The problem is that Cadence simulation outputs are lots of data in very tiny flexible time step and many of these data needs to be discarded. However, the transient simulation step is not fixed.
2. Matlab has a counter in Simulink. It does not have clock input.

How can I realized a Matlab counter which is suitable to process Cadence Virtuoso simulation data of DeltaSigma ADC modulator?
 

1. Try to extract digital 1 and 0 from Cadence simulation results.
.....................
However, the transient simulation step is not fixed.
2. Matlab has a counter in Simulink. It does not have clock input.
Resample data by invoking a function,interp1q() in MATLAB.

Ts = 1/fs;
Nfft = 2^15;
xstart = xdiscarded + Ts/4; % Adjust value between 0 < xstart-xdiscarded < Ts, xdiscarded is a discarded period.
xstop = xstart + Nfft * Ts;
xstep = Ts;

x_new = [xstart:xstep:xstop].';
y_new = interp1q( x_org:)), y_org:)), x_new:)) );

BTW, if you can run MATLAB on Linux, you can access psf data directly from MATLAB by using Spectre/RF Matlab Toolbox.
 
Last edited:
Grrrrrrrrrrreat! Thanks for you help!!
Resample data by invoking a function,interp1q() in MATLAB.

Ts = 1/fs;
Nfft = 2^15;
xstart = Ts/4; % Adjust value between 0 < xstart < Ts
xstop = xstart + Nfft * Ts;
xstep = Ts;

x_new = [xstart*xste:xstop].';
y_new = interp1q( x_org:)), y_org:)), x_new:)) );

BTW, if you can run MATLAB on Linux, you can access psf data directly from MATLAB by using Spectre-MATLAB Toolbox.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top