我需要转换的阶段(而不是振幅)声音和创建一个新的声音文件,然而传输线()转换后的数组中出现复杂的,不能写入音频。下面是我的代码:
%读取音频文件和傅里叶变换
[x, Fs] = audioread (
“Sample.m4a”
);
y = fft (x, Fs);
%计算DFT的x
Xf_mag = abs (y);
%的阶段产生的频率本随机打乱
Xf_phase =角(y);
Xf_phase_new = shuffle (Xf_phase);
%被back-transformed phase-shuffled频域数据
%的时间域使用傅里叶反变换
Xf_new = Xf_mag。* exp (1 * Xf_phase_new);
x_new =传输线(Xf_new);
%编写一个新的声音文件
文件名=
“test.m4a”
;
audiowrite(文件名、x_new Fs);
我得到以下错误:
错误使用audiowrite(第170行)
预期的输入是真实的。