clc;
clear;
close all;
%读取数据
filename = 'iladata.csv'; %文件地址
data = csvread(filename,2,0); %读取csv文件
signal = data(:,1)+data(:,2)*1i; %转为复数信号
N = 16;%位宽
fs = 8e7;%采样率
realdata = data/(2^(N-1) - 1);
realsignal = signal/(2^(N-1) -1);
figurePlot(realdata, fs); %调用figurePlot函数
%%
%参数测量
n = length(realdata);
w = kaiser(n, 38);
rbw = enbw(w, fs);
[Pxx, F] = periodogram(realdata(:,1), w, n, fs, 'psd');
Pxx = 10*log10(Pxx*rbw);
[max_value, max_index] = max(Pxx); %求最大功率点与最大功率
[min_value, ~] = min(Pxx); %求最小功率点与最小功率
s_Fund = max_value; %Fund :dB Fs
s_nsd = min_value - max_value; %NSD :dBc
[r, harmPow, harmFreq] = thd(realdata(:,1),fs,5);
s_hd2 = harmPow(2) - harmPow(1); %HD2 :dBc
s_hd3 = harmPow(3) - harmPow(1); %HD3 :dBc
s_hd4 = harmPow(4) - harmPow(1); %HD4 :dBc
s_hd5 = harmPow(5) - harmPow(1); %HD5 :dBc
sumharmPow = 0;
for i =2: 5
sumharmPow = sumharmPow + 10^(0.1*harmPow(i));
end
s_thd = 10*log10((10^(0.1*harmPow(1)))/sumharmPow);%THD :dBc, THD = 10*log(S/D),S为信号功率,D为杂波功率
temp = Pxx(max_index-5:max_index + 5);
Pxx(max_index-5:max_index + 5) = min_value;
[next_max_value, next_max_index] = max(Pxx);
Pxx(max_index-5:max_index + 5) = temp;
s_next_supr = next_max_value - max_value; %Next Supr:dBc
s_sfdr = - s_next_supr; %SFDR: dBc
s_sinad = sinad(realdata(:,1),fs); %SINAD: dBc
s_enob = (s_sinad - s_Fund - 1.76)/6.02; %ENOB: Bits
s_snr = snr(realdata(:,1), fs); %SNR: dBc
%控制台输出
disp(['SNR:' num2str(s_snr) ' dBc']);
disp(['SFDR:' num2str(s_sfdr) ' dBc']);
disp(['THD:' num2str(s_thd) ' dBc']);
disp(['SINAD:' num2str(s_sinad) ' dBc']);
disp(['ENOB:' num2str(s_enob) ' Bits']);
disp(['Fund.:' num2str(s_Fund) ' dBc']);
disp(['Next supr:' num2str(s_next_supr) ' dBc']);
disp(['HD2:' num2str(s_hd2) ' dBc']);
disp(['HD3:' num2str(s_hd3) ' dBc']);
disp(['HD4:' num2str(s_hd4) ' dBc']);
disp(['HD5:' num2str(s_hd5) ' dBc']);
disp(['NSD:' num2str(s_nsd) ' dBc']);
%%
% 选通滤波滤波
BW = 3.5; %带宽3.5MHz
f_max = 2;
firoutdata = filter_my(realdata, fs, f_max, BW); %调用filter_my函数
figurePlot(firoutdata, fs);
没有合适的资源?快使用搜索试试~ 我知道了~
MATLAB数据自动分析源码
共4个文件
m:3个
csv:1个
17 下载量 52 浏览量
2023-08-04
10:47:16
上传
评论 1
收藏 34KB ZIP 举报
温馨提示
读取csv表格(ADC采样数据),对数据进行频谱分析,测量SNR、SFDR、THD、SINAD、ENOB、ENOB、Fund、Nextsupr等参数,并对信号进行自动滤波
资源推荐
资源详情
资源评论
收起资源包目录
source.zip (4个子文件)
figurePlot.m 534B
filter_my.m 382B
iladata.csv 78KB
fft_data.m 2KB
共 4 条
- 1
资源评论
ZDA2022
- 粉丝: 248
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功