matlab中计算sinad,FFT频谱测试法Matlab代码
FFT频谱测试法Matlab代码如下: adc_data=[];%采样得出的数据形成的矩阵 data_num=size(adc_data);
numpt=data_num(1,1);%采样点的总数
no=1;vin=2;d9=3;d8=4;d7=5;d6=6;d5=7;d4=8;d3=9;d2=10;d1=11;d0=12;%标示样本矩阵的列 vref=2;
fclk=1e6;%A/D转换器的采样频率 adc_bit=10; for i=1:1:numpt
dout(i)=(adc_data(i,d9)/2+adc_data(i,d8)/4+adc_data(i,d7)/8+adc_data(i,d6)/16+adc_data(i,d5)/32+adc_data(i,d4)/64+adc_data(i,d3)/128+adc_data(i,d2)/256+adc_data(i,d1)/512+adc_data(i,d0)/1024)*vref;%通过转换器出来的结果,恢复原来的波形
doute(i)=dout(i)-1;%将正弦波的共模电平偏置为0V end figure(3) plot(doute);
doutw=doute.*hanning(numpt)';%加汉宁窗
dout_spect=fft(doutw);%进行FFT变换,然后利用下面的算法求出SNR、SINAD、SFDR
dout_dB=20*log10(abs(dout_spect)); maxdB=max(dout_dB(1:numpt/2));
x=([0:numpt/2-1].*fclk/numpt)/1000; % fclk/numpt为频谱分辨率,因为FFT频谱图关于中心对称所以只要分析一半的频谱图即可 y1=dout_dB(1:numpt/2)-maxdB; figure(1) plot(x,y1);
axis([0,200,-120,5]); grid off;
title('1024-Samples FFT spectrum'); xlabel('Frequency (kHz)');
ylabel('Magnitude (dB)');%画出FFT的幅频特性曲线
figure(2) plot(dout_dB);
fin=find(dout_dB(1:numpt/2)==maxdB);%找出幅度最大的频率点 span=max(round(numpt/200),5); spanh=2;
spectp=(abs(dout_spect)).*(abs(dout_spect));%幅度的平方 Pdc=sum(spectp(1:span));
Ps=sum(spectp(fin-span:fin+span));%信号的幅度平方和 Fh=[]; Ph=[];
for har_num=1:10%寻找1至10次谐波分量 tone=rem((har_num*(fin-1)+1)/numpt,1); if tone>0.5 tone=1-tone; end
Fh=[Fh tone];
har_peak=max(spectp(round(tone*numpt)-spanh:round(tone*numpt)+spanh));
har_bin=find(spectp(round(tone*numpt)-spanh:round(tone*numpt)+spanh)==har_peak);
har_bin=har_bin+round(tone*numpt)-spanh-1;
Ph=[Ph sum(spectp(har_bin-1:har_bin+1))]; %计算谐波分量 end
Pd=sum(Ph(2:5));
Pn=sum(spectp(1:numpt/2))-Pdc-Ps-Pd; format;
SNR=10*log10(Ps/Pn) SINAD=10*log10(Ps/(Pn+Pd)) SFDR=10*log10(Ph(1)/max(Ph(2:10))) ENOB=(SINAD-1.76)/6.02
matlab中计算sinad,FFT频谱测试法Matlab代码相关推荐
- matlab中计算sinad,软件无线电之Σ-Δ A/D转换技术详述
描述 1 引言 软件无线电主要由天线.射频前端.宽带A/D和D/A转换器.数字信号处理器(DSP)及各种软件组成.软件无线电体系结构的一个重要特点是将A/D和D/A尽量靠近射频前端.为减少模拟环节,在 ...
- MATLAB中,信号的频谱图该怎么绘制?横坐标如何标注出频率值?
一.什么是频谱? 频谱的全称是频率谱密度.在对时域信号进行认识和研究的过程中非常不便,那我们该如何更直观地认识信号,更清楚地了解信号的特点呢? 利用傅里叶变换将时域信号变换到频域. 我们知道,在通信领 ...
- matlab三角形面积,matlab中计算三角形面积?
问题描述: matlab中计算三角形面积? 在X,Y矩阵中存有一组点的x,y坐标: X=[5 7 2 8 7 4 3 6 9] ,Y=[4 5 9 3 6 5 3 2 8] 矩阵B中保存了每三个点构成 ...
- matlab曲面的最小值,在matlab中计算曲面的曲率
我想计算点云中某些点的均值和高斯曲率. 我有x,y,z,它们是坐标并且是1d数组.我想使用下面的代码,但在输入参数中,X,Y和Z是2d数组,我不知道这意味着什么,以及如何计算与它们对应的2d数组. 非 ...
- matlab中计算运行时间的函数,【谁能都我一个计算时间的函数?是计算:例如上午08:00...-计算时间的函数-数学-伊凡渴同学...
概述:本道作业题是伊凡渴同学的课后练习,分享的知识点是计算时间的函数,指导老师为干老师,涉及到的知识点涵盖:[谁能都我一个计算时间的函数?是计算:例如上午08:00...-计算时间的函数-数学,下面是 ...
- matlab计算地转流程序,geostrophy 用于海洋科学中计算地球流的一系列matlab程序 联合开发网 - pudn.com...
geostrophy 所属分类:matlab例程 开发工具:matlab 文件大小:14259KB 下载次数:76 上传日期:2016-03-25 08:36:07 上 传 者:楠楠 说明: 用于海 ...
- matlab中e用什么表示什么,matlab中e怎么表示
方法/步骤 1.自然数对数 log(x) 我们在MATLAB主窗口中输入a1=log(2.7183),回车,我们可以看到a1近似为1,e约等 于2. MATLAB中 如何输入对数函数? 方法/步骤 1 ...
- fname什么意思matlab,matlab中f(:,1)是什么意思 matlab中f(:,:,3)是什么意思?
导航:网站首页 > matlab中f(:,1)是什么意思 matlab中f(:,:,3)是什么意思? matlab中f(:,1)是什么意思 matlab中f(:,:,3)是什么意思? 相关问题: ...
- matlab的length是什么,大家好!matlab中length是什么意思?,matlab中的length表示什么?应该如何使用?...
导航:网站首页 > 大家好!matlab中length是什么意思?,matlab中的length表示什么?应该如何使用? 大家好!matlab中length是什么意思?,matlab中的leng ...
- java 求导函数_在MATLAB中计算数值导数的最佳方法是什么?
这些只是一些快速而肮脏的建议 . 希望有人会发现它们有用! 1. Do you have a symbolic function or a set of points? 如果您有符号功能,您可以分析计 ...
最新文章
- Unity2D游戏开发基础教程1.2项目、资源和场景
- TF31003:您的用户帐户没有连接到 Team Foundation Server 的权限
- Java中Date及Timestamp时间相关内容【转】
- 【图像分割应用】医学图像分割(三)——肿瘤分割
- 【学亮IT手记】HashMap集合精讲
- python小程序_小会计的实用Python小程序(三):人民币大写金额转换器
- wannafly-day1 Problem A - Birthday
- initramfs文件解压方法
- msfconsole使用手册
- HDB3码编码规则通俗易懂讲解
- 彩信SMIL文件解析
- 【Python+Selenium】输入关键词自动下载论文
- miniGui交叉编译
- 假想的憧憬,浮云遮住了双眼,
- Java #JDK下载以及环境配置
- 基于GeoHash算法的地理位置检索
- ElasticSearch + Kibana
- Liferay使用管理中的一些常见问题
- python3 scrapy爬取智联招聘存mongodb
- 【艺术评析】陈全胜先生山水画