matlab - 错误:不支持使用 abs 复杂整数
问题描述
我使用“audioread(filename, 'native')”获取类:int16 类型数据,这是一个数据 IQIQIQ... 流。然后,我使用 complex(I, Q) 来形成复杂的数据样本。当我执行 abs(complex(I, Q)) 来获取样本幅度时,出现错误:“错误:不支持使用 abs 复整数”。关于如何解决这个问题的任何建议?
解决方案
在调用之前转换complex(I,Q)
为 doubleabs()
可能是一种选择。然后可以将结果重新转换为 type int16
。我相信该abs()
函数需要 a或double
作为输入来计算幅度。由于数据很复杂,因此唯一允许的类型是和。假设您正在寻找复杂数据的大小,这可能就足够了。如果您只想获取调用通道/向量的组件的绝对值,并且在调用之前可能是一种选择。complex double
single
singles
doubles
abs()
I
Q
complex()
铸造为类型single
Audio = audioread("TETRA IQ.wav",'native');
I = Audio(:,1);
Q = Audio(:,2);
Complex_Pair = complex(I,Q);
Complex_Pair_Double = single(Complex_Pair);
Magnitude = uint16(abs(Complex_Pair_Double));
铸造为类型double
Audio = audioread("TETRA IQ.wav",'native');
I = Audio(:,1);
Q = Audio(:,2);
Complex_Pair = complex(I,Q);
Complex_Pair_Double = double(Complex_Pair);
Magnitude = uint16(abs(Complex_Pair_Double));
使用 MATLAB R2019b 运行
推荐阅读
- python - 如何将某些数字添加到 python 列表中的列表中?
- sql - 哪个舍入舍入日期时间在 SQL 中更有效
- excel - 如何链接两个excel文件和链接列
- java - 使用 Jackson 反序列化 POJO 的日期字段 - 无法正确反序列化日期字段
- wagtail - ChildPage.objects.child_of(self) 和 ParentPage.get_children() 有什么区别?
- python - 通过 PIP 安装时获取 CWD
- c++ - LNK2019 在 Visual Studio 2019 中链接 google 测试
- monetdb - 为什么我不能使用预定义的功能?
- android - 可以在用户级别跟踪 android 应用程序的卸载吗?
- java - 为什么是泛型
在返回类型之前?