在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 422|回复: 5

virtuoso数据导出到matlab做FFT分析

[复制链接]
发表于 2025-2-24 14:53:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
参考资料:
https://www.bilibili.com/video/B ... 7f8262a594bb22a901c

---
这里以sigma-deltaADC的输出码流为例,展示virtuoso数据导出到matlab做FFT分析的完整过程
首先选中你需要导出的波形
![[Pasted image 20250224101834.png]]

然后在工具栏找到这个选项
![[Pasted image 20250224101926.png]]
然后需要对数据做一些设置,clip是裁剪数据,下面的选项是滤掉一些数据,我的采样时钟是1M,所以我只需要每隔1u取一个点就好了,其他的点我是不需要的。

![[Pasted image 20250224102007.png]]


然后数据就可以导入到matlab里面进行分析了。
![[Pasted image 20250224102334.png]]

然后使用下面这一段代码就可以得到FFT的图

% 1. 读取CSV文件
filename = 'FFT_NOSYS.csv'; % 替换为你的CSV文件名
data = readmatrix(filename); % 读取CSV文件
time_series = data(:, 2); % 假设数据在第一列

% 2. 提取最后8192个数据点
num_samples = 8192; % 需要的样本数量
if length(time_series) >= num_samples
    time_series = time_series(end - num_samples + 1:end); % 提取最后8192个数据
else
    error('数据长度不足8192个样本,请检查数据文件。');
end

% 3. 对时间序列数据减去0.9
time_series = time_series - 0.9;

%%计算SNR
bw=2000;  %信号带宽
Fs=1e6;  %采样频率
Fin=7*Fs/N;  %相干采样 ,要注意信号的频率在信号带宽内
w=hann_pv(N);%加窗
f=Fin/Fs;%归一化频率
fB=N*(bw/Fs); %输入信号的频点数
sdmout=zeros (1,N);
time_series=time_series';
[snr,ptot]=calcSNR(time_series(1:N),f,1,fB,w,N);
ENOB = (snr-1.76)/6.02


%% 绘图
figure(1);clf
semilogx(linspace(0,Fs/2,N/2),ptot(1:N/2),'r');
grid on;
title('PSD of ds modulator ')
xlabel('Frequency [Hz]');
ylabel('PSD [dB]');
axis([0 Fs/2 -150 0]);
%text(floor(Fs/128/2),-40,sprintf("ENOB=%4.1fbit",ENOB));


% 在图的左上角添加标注
annotation('textbox', [0.7, 0.8, 0.2, 0.1], 'String', sprintf('ENOB = %.1f bits\nSNR = %.1f dB', ENOB, snr), ...
    'FitBoxToText', 'on', 'EdgeColor', 'none', 'FontSize', 10, 'BackgroundColor', 'w');

set(gcf, 'Position', [100, 100, 800, 600]); % 设置图形窗口的大小(左下角坐标和宽高)

virtuoso数据导出到matlab做FFT分析.pdf

396.25 KB, 下载次数: 44 , 下载积分: 资产 -2 信元, 下载支出 2 信元

 楼主| 发表于 2025-2-24 15:23:18 | 显示全部楼层
因为是用markdown编辑的,导致复制进来图片有点问题,可以下载pdf
发表于 2025-2-24 21:00:33 | 显示全部楼层
thanks
发表于 2025-2-25 00:26:12 | 显示全部楼层
Thanks
发表于 2025-2-25 23:17:41 | 显示全部楼层
多谢分享
发表于 6 天前 | 显示全部楼层
MATLAB 2019b前的版本没有readmatrix函数,可以用csvread函数,用法参考https://blog.csdn.net/kakiebu/ar ... sharefrom=from_link
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-3-6 21:16 , Processed in 0.021221 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表