将部分音频信号恢复为完整的信号

使用电脑采集了一段语音,现在需要使用MATLAB提取一部分语音信号,然后使用程序恢复为整段的语音,希望各位帮忙

[y,fs,]=audioread( 'D:\2.wav' ); 

X=0;

for i=0:20
sample=y(i*4096+1024+1:i*4096+5120);%   
%sound(sample,fs,bits);
Y=fft(sample,4096);
k=1:4096;
x(1:4096)=0;%    初始化
for n=1:4096
if abs(Y(n))>0    %此处的语句可以比较精确地控制重构后的效果
P=Y(n);
x(n)=P;
end
end
X1=ifft(x,4096); %    反快速傅里叶变换进行信号重构
X=[X,X1]; %    实现不同分段的信号的拼接
end
x=fft(X,4096);
subplot(311);plot(y(1024+1:20*4500+5120));title('原始信号波形');
subplot(312);plot(abs(Y));title('原始信号频谱');
subplot(313);plot(X);title('重构后的信号');
subplot(414);plot(abs(x));title('重构信号的频谱');
sound(X,fs);%    回放重构后的乐曲

这段程序是提取了一部分语音,总共十三秒的语音只播了四五秒,却没办法播放恢复整段语音,是哪的代码出问题了么?希望各位帮忙,最好有完整的代码解答,谢谢谢谢。。。

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。