有人解释我如何沥青改性工作吗?

1视图(30天)
这就跟你问声好!
请一个人解释我如何修改工作。我不明白到底是什么做的。我得到一个错误消息的功能。有人知道为什么吗?我想修改一些波文件,但首先想知道什么。
谢谢提前
这是代码:
% %沥青改性
[x Fs nBits] = wavread(文件名);
x = x (:);
sent_L =长度(x);
半音程=圆(半音程);
如果半音程> 12 |半音程< -12
半音程= 0;
流(“半音程在[-12 12],那里\ n”)
结束
规模= 2 ^(半音程/ 12);
勒= 160;
S =勒/ 4;
重叠= Le年代;
地板Nframe = ((sent_L-overlap) / S);% lefele kerekit
Lq =圆(Le *规模);
一个= 0.50;
b = -0.50;
n = 1:勒;
赢得(12 (S) /√(4 * ^ 2 + 2 * b ^ 2) * (Le) * (a + b * cos(2 *π* n / Le));
赢得=赢(:);
n = 1:江西;
winq = sqrt (S) /√(4 * ^ 2 + 2 * b ^ 2) * Lq) * (a + b * cos(2 *π* n / Lq));
winq = winq (:);
Nit = 4;
xfinal = 0 (sent_L, 1);
U =(赢得)/ (S)总和;
k = 1;
kk = 1;
h = waitbar (0,“请等待…”);
n = 1: Nframe
如果凯西:k + Lq-1 < = sent_L
纳= winq。* x (k, k + Lq-1) / U;
其他的
纳= winq。* [x(凯西:sent_L); 0 (Lq - (sent_L-k + 1), 1)] / U;
结束
frm_resamp =重新取样(勒纳,Lq);
xSTFTM = abs (fft (frm_resamp));
如果k + 1 < = sent_L
res = xfinal (k, k + e 1);
其他的
res = [xfinal (k: sent_L); 0 (Le - (sent_L-k + 1), 1)];
结束
x_recon = iterated_recon (xSTFTM, res,没用的人,赢得);
如果(k + 1 < = sent_L)
xfinal (k, k + 1) = xfinal (k, k + 1) + x_recon;
其他的
xfinal(凯西:sent_L) = xfinal(凯西:sent_L) + x_recon (1: sent_L-k + 1);
结束
k = k + S;
waitbar (n / Nframe h)
结束
关闭(h)
输出文件=[文件名(1:end-4),“_pitch_recon.wav”];
wavwrite (xfinal Fs,输出文件);
函数x_recon = iterated_recon (xSTFTM x_res,没用的人,赢了)
j = sqrt (1);
我= 1:没用的人
φ=阶段(fft(赢。* x_res)) + randn(大小(x_res)) * 0.01 *π;
%随机相位purturbation将减少一些共振。
x = xSTFTM。* exp (j *φ);% M-constraint
x_recon =传输线(x);
x_res =实际(x_recon);
结束
x_recon = x_res;

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2013年9月3日
之前的文件的一部分“功能”线在MATLAB上被称为“脚本”。它是不允许在MATLAB来存储“脚本”和“功能”在同一个文件中。你需要移动iterated_recon.m函数到文件

更多的答案(0)

类别

找到更多的在应用程序构建帮助中心文件交换

社区寻宝

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

开始狩猎!