php中文网 | cnphp.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 408|回复: 0

matlab程序:ADC的SNDR,THD,ENOB,SFDR,SNR计算程序

[复制链接]

3138

主题

3148

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

UID
1
威望
0
积分
7946
贡献
0
注册时间
2021-4-14
最后登录
2024-11-21
在线时间
763 小时
QQ
发表于 2022-11-6 22:10:14 | 显示全部楼层 |阅读模式
[mw_shl_code=applescript,true]%-------draft-----
clc,clear
% filename = 'SAR_ADC_DACoutput.csv';  %DAC输出数据
% table = csvread(filename,1,0);
table=xlsread('data.xlsx');
table;
x = table(:,1);
A = table;
B = size(A,2)-2;
c_min = min(A(:,B+2));
c_max = max(A(:,B+2));
nump = size(A(:,B+2));
N = 2^12;
%----------- set value ---------------
fs = 1;
Ts = 1/fs;
t = 0:TsN-1)*Ts;
noise_value = 100;
vout = [A(:,1) A(:,B+2)];
%------------SNR Calculation----------
vof = abs((fft(vout,N)))/N;
vof = vof/max(vof);
vof_db = db(vof);
vofh = vof(1:N/2);
[vs,is] = max(vofh(1:N/2));
Ps = vs^2;
Phar = norm(vofh(2:is-1))^2+norm(vofh(is+1:N/2))^2;
Pnoise = norm(vofh(find(db(vofh)<-noise_value)))^2;
SQNR = 10*log10(Ps/Pnoise)
SNDR = 10*log10(Ps/Phar)
NPWR = 10*log10(Phar);

freq = 0:fs/Nfs/2-fs/N);
figure, H = plot(freq*1e-3, vof_db(1:N/2), 'k-');
grid on;[/mw_shl_code]

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|php中文网 | cnphp.com ( 赣ICP备2021002321号-2 )

GMT+8, 2024-11-22 02:48 , Processed in 0.833210 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

申明:本站所有资源皆搜集自网络,相关版权归版权持有人所有,如有侵权,请电邮(fiorkn@foxmail.com)告之,本站会尽快删除。

快速回复 返回顶部 返回列表