完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在尝试使用matlab从N9010A信号分析仪捕获跟踪数据。
以ASCII格式捕获数据时,MATLAB捕获的数据与信号分析仪显示匹配。 但是,当以32位浮点数或32位整数格式读取数据时,数据看起来与显示类似,并且缩放了几个数量级。 我必须有数据转换问题,但我无法弄清楚我做错了什么。 使用下面的相关代码以32位整数格式捕获数据:+%通过GPIB连接到N9010A信号分析器+ + obj = gpib('ni',1,18); + + fopen(obj); + +%重置 到已知状态+ + fprintf(obj,'* RST'); + +%设置数据格式+ + fprintf(obj,':FORM:DATA INT,32'); + +%查询跟踪数据+ + fprintf(obj,':TRAC :DATA?TRACE1'); + +%读取数据+ + data = binblockread(obj,'int32'); +有没有人能够洞察我做错了什么? 编辑:Chris8529于2015年1月29日12:42编辑:Chris8529于2015年1月29日下午12:44编辑:Chris8529于2015年1月29日12:45 PM 以上来自于谷歌翻译 以下为原文 I'm trying to capture trace data from a N9010A Signal Analyzer using Matlab. When capturing data in ASCII format, the data MATLAB captures matches the Signal Analyzer display. However, when reading the data in 32-bit float or 32-bit integer format, the data looks nothing like the display and is scaled by several orders of magnitude. I must have a data conversion issue, but I'm unable to figure out what I'm doing wrong. Using the relevant code below to capture the data in 32-bit integer format: +% Connect to N9010A Signal Analyzer over GPIB+ +obj= gpib('ni', 1, 18);+ +fopen(obj);+ +% Reset to known state+ +fprintf(obj,'*RST');+ +% Set data format+ +fprintf(obj,':FORM:DATA INT,32');+ +% Query trace data+ +fprintf(obj,':TRAC:DATA? TRACE1');+ +% Read data+ +data = binblockread(obj,'int32');+ Does anyone have insight into what I'm doing wrong? Edited by: Chris8529 on Jan 29, 2015 12:42 PM Edited by: Chris8529 on Jan 29, 2015 12:44 PM Edited by: Chris8529 on Jan 29, 2015 12:45 PM |
|
相关推荐
2个回答
|
|
我不确定这是浮点数还是int问题,但数据转换可能是因为转换问题,例如表单分贝到离散值。
如果这不是问题,请附加一些文件ASCII,SCREEN和INT。 以上来自于谷歌翻译 以下为原文 Am not sure if this is a float or int issue but the data conversion can be because of conversion issues such as form decibels to discrete values. Kindly attach some files ASCII, SCREEN and INT if this is not the issue. |
|
|
|
我的猜测是你的字节序不正确。
尝试更改obj.byteOrder默认情况下应该是'littleEndian'。 尝试在binblockread()之前将其切换为“bigEndian” 以上来自于谷歌翻译 以下为原文 My guess is you have the endianness incorrect. Try changing obj.byteOrder It should be 'littleEndian' by default. Try switching it to 'bigEndian' before the binblockread() |
|
|
|
只有小组成员才能发言,加入小组>>
1288 浏览 0 评论
2375 浏览 1 评论
2194 浏览 1 评论
2064 浏览 5 评论
2951 浏览 3 评论
1116浏览 1评论
关于Keysight x1149 Boundary Scan Analyzer
755浏览 0评论
N5230C用“CALC:MARK:BWID?”获取Bwid,Cent,Q,Loss失败,请问大佬们怎么解决呀
929浏览 0评论
1291浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 12:49 , Processed in 1.326406 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号