查看: 141|回复: 0|关注: 0

[未答复] 实序列信号的FFT、IFFT分别怎么加窗和复原??谢谢大佬们!

[复制链接]

新手

12 麦片

财富积分


050


9

主题

33

帖子

0

最佳答案
发表于 6 天前 | 显示全部楼层 |阅读模式
本帖最后由 Moriin 于 2020-7-1 16:09 编辑

1.请问一组信号(一组序列)经FFT后,把幅度Y恢复成真实值(Y=2*fuzhi/N;Y(1)=Y(1)/2;),再IFFT所得的时域波形图、和直接FFT后没有把Y变成真实值后再IFFT得到的时域波形图是一样的吗?什么原因呢?
2.进一步,请问如果想把原始信号只在频域某几个频点进行处理比如置零,然后其它频点的信息保持不变恢复时域图,一定需要在FFT后把Y恢复成真实值(Y=2*fuzhi/N;7Y(1)=Y(1)/2;)再进行处理吗?

3.频域处理只处理了幅值,用原始的相位和经过处理后的幅度写成下面代码中的函数 Q(1:wow+1)=fuzhi.*exp(1i.*xiangjiao(1:wow+1));,得到处理后逆变换的时域波形,是正确的吗?N为奇数和N为偶数时对称轴不同所以对称的区间也不一样对吗,比如N等于奇数时,2/N+1和直流分量是没有对称性的?但是偶数的时候只有直流分量是没有对称性的?

4.关于窗函数
a.
时域想进行加窗再FFT、频域处理后IFFT想恢复原始信号的代码应该怎么写?如何加窗如何恢复?
之前试过比如汉明窗,
FFT:win = hamming(N);L=fft(C.*win,N);   
IFFT: D=real(W)./win'; 但是未经处理后的波形也不能恢复原图表示不对,请问是哪里除了问题?
b.
频域处理后的非周期波形经过IFFT后在时域产生两端强烈的截断效应,请问可以通过什么方法进行消除或者减小?比如频域可以加窗函数然后IFFT到时域怎么才能恢复成原始波形呢?窗函数小弟初学了解的还不多,实际就是时域加窗FFT在恢复和频域加窗到时域恢复的代码怎么写问题,能够讲明或者给出相关资料链接都可以的!感谢各位大佬!!!
下图是是把仅有的两个频率滤除后与零的差值时域波形图,我认为中间这部分震荡是由于频谱泄露问题造成的没有完全滤除清导致的,左右两端我认为是截断效应导致的,不知道对不对
1.png

代码:
%FFT频谱
N=length(C); %采样点个数N=length(x); %采样点个数%信号C%N为奇数
L=fft(C,N);
wow=floor(N/2);
signalFFT=abs(L);%真实的幅值
fuzhi=signalFFT(1:wow+1);%区间幅值
xiangjiao=angle(L);%相位
Y=2*fuzhi/N;
Y(1)=Y(1)/2;
%Y=abs(Y).^2;
f=(0:wow)*(fs/N);
figure;plot(f,Y(1:wow+1));hold on
title('频谱');

%IFFT
Q(1:wow+1)=fuzhi.*exp(1i.*xiangjiao(1:wow+1));
        Q(wow+2:N)=conj(Q(wow+1:-1:2));
        W=ifft(Q);
        D=real(W);%%%%%%%%%%%D=real(W)./win';

回复主题 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表