>> Untitled 错误使用 embedded.fi.quantize_fi_private 参数 3 (rhs3)的输入无效: 值必须为字符串。 出错 embedded.fi/quantize (line 161) y = embedded.fi.quantize_fi_private(x,Ty,rm,om); 出错 Untitled (line 13) xq = quantize(x_fi, nt, 0, 1); % 进行PCM编码
时间: 2023-12-08 08:06:32 浏览: 83
这个错误提示意味着您在使用 `quantize()` 函数时,输入的第三个参数应该是一个字符串,但是实际输入的类型不是字符串。这个问题可能是由于您在输入参数时不小心出错导致的。
要解决这个问题,您可以检查 `quantize()` 函数的第三个参数,确保它是一个字符串类型的变量,例如 `'Floor'`、`'Round'` 或 `'Ceiling'` 等。如果第三个参数不是字符串类型,可以将其转换为字符串,例如 `char('Round')`。
下面是一个示例代码,演示如何修改以解决上述问题:
```matlab
% 生成待传输的数字信号
N = 10000;
data = randi([0 1], 1, N);
% PCM编码
bits_per_sample = 8; % 每个采样位数
L = 2^bits_per_sample; % 量化级数
delta = 2/L; % 量化间隔
x = data*(2-delta) + delta/2; % 将二进制序列转换为模拟信号
x_fi = fi(x, 1, bits_per_sample, bits_per_sample-1); % 将模拟信号转换为固定点类型
nt = numerictype(1, bits_per_sample, bits_per_sample-1, 'SignednessBool', 1); % 创建numerictype对象
xq = quantize(x_fi, nt, char('Round'), 1); % 进行PCM编码,将第三个参数转换为字符串类型
% 并行传输
M = 4; % 子信道数
xq_m = reshape(xq, [], M); % 将编码后的
阅读全文