变换fft阶段编写音频

13个视图(30天)
泽Sayali
泽Sayali 2021年6月22日
回答: 马修•诺伊 2021年6月23日
我需要转换的阶段(而不是振幅)声音和创建一个新的声音文件,然而传输线()转换后的数组中出现复杂的,不能写入音频。下面是我的代码:
%读取音频文件和傅里叶变换
[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行)
预期的输入是真实的。

接受的答案

马修•诺伊
马修•诺伊 2021年6月23日
你好
你传输线后取实部:
x_new =实际(传输线(Xf_new));

更多的答案(0)

下载188bet金宝搏


释放

R2020b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!