[新手求助]matlab的音频处理

2019-03-26 15:33发布

原信号x是没有虚部的,在傅里叶变换,低通滤波,傅里叶反变化后得到的xnew复数矩阵,
但如果取abs(xnew)复原,音频失真严重;但如果选择real(xnew)复原,则与原音频基本一致。
我想问xnew中的虚部为什么产生?虚部大小又代表什么?为什么信号的强度不能用abs(xnew)表示,要用
real(abs)表示?
[x,fs,bits]=wavread('c:UsersxpfabDesktopdsp3.wav');
sound(x,fs,bits);
X=fft(x);
n=length(x);
R=zeros(n,1);
for i=1:n
  R(i)=i;
end
magX1=abs(X);
R=R/100000;
R=[R R];

H=1./(1+2*j*R-2*R.^2-j*R.^3);

%H=[H H];
X=X.*H;
%X(0.1*n:n)=0;
magX=abs(X);
xnew=ifft(X);
xnew=real(xnew);
sound(xnew,fs,bits);
wavwrite(xnew,fs,bits,('c:UsersxpfabDesktopdsp3new.wav'));
subplot(211);plot(magX1);title('原始信号幅值');
subplot(212);plot(magX);title('处理后信号幅值'); 此帖出自小平头技术问答
0条回答

一周热门 更多>