Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 傅里叶逆变换与信号重构_Matlab_Signal Processing - Fatal编程技术网

Matlab 傅里叶逆变换与信号重构

Matlab 傅里叶逆变换与信号重构,matlab,signal-processing,Matlab,Signal Processing,我将所谓的维纳滤波器应用于心跳ECG信号。我的问题是傅里叶变换和傅里叶逆变换,理论上应该很简单。 在得到Pxx和Pxxn之后。构造的期望信号的PSD和我们信号中的噪声在中心偏移了零频率。我很确定我是对的 % frequency response function for z= 1:Nfft Hf(z)=Pxx(z)/(Pxx(z)+(Pxxn(z))); end % fourier transform on one ecg cycle ecgf=fftshift(abs(fft(ecg(10

我将所谓的维纳滤波器应用于心跳ECG信号。我的问题是傅里叶变换和傅里叶逆变换,理论上应该很简单。 在得到Pxx和Pxxn之后。构造的期望信号的PSD和我们信号中的噪声在中心偏移了零频率。我很确定我是对的

% frequency response function
for z= 1:Nfft
Hf(z)=Pxx(z)/(Pxx(z)+(Pxxn(z)));
end

% fourier transform on one ecg cycle 
ecgf=fftshift(abs(fft(ecg(100:800),Nfft)));

% getting the output signal
Yf=ecgf.*Hf;
figure;
plot(f,Yf,'green');
% inverse fourier transform 
Y=real(ifft(fftshift((Yf)),Nfft));
figure;
plot(Y);

我做错了什么?ifft的输出长度是否可以更改为700以匹配输入信号。

您有什么问题?请说得更具体些。使用abs会破坏信号的相位分量。可能不是你想要的。