如何使用fft和ifft对复杂信号进行降噪

时间:2020-08-07 16:46:14

标签: matlab signal-processing fft

我在128x32的矩阵中有一个复杂的IQ信号。信号本身实际上是连续的,可以展开为复数值的单行4096向量(一次展开一列)。

我想去除一些信号噪声,因此我根据数据的FFT创建了一个图像(请参见下面的代码),并去除了图像中的噪声。现在,我想知道如何在没有噪声的情况下恢复原始的干净信号。

我不能使用ifft,因为已经从fft的绝对值中清除了噪点,所以干净的图像并不复杂。

比方说,IQ是保存128x32复数信号的变量。这是matlab代码:

img = abs(fft(IQ)); %this is also a 128x32 matrix

%normalizing the data
mu = mean(reshape(img, 1, []));
sig = std(reshape(img, 1, []), 1);

img = (img - mu) ./ sig;

%using some function on the image to clean it from noise
img = remove_noise(img)

从图像中去除噪点的功能仅将某些值替换为零。它不会改变其他频率。

现在,变量img包含清除信号后fft的绝对值。我不能只使用ifft 因为信号很复杂,而且图像是一个包含实数值的矩阵。

如何恢复原始信号?

谢谢。

0 个答案:

没有答案