czk108 发表于 2010-9-27 18:28

FFT的实现过程问题

本帖最后由 czk108 于 2010-9-27 18:28 编辑

对一信号加窗作FFT,加窗相当于信号乘以窗函数,FFT结果相当于信号的傅里叶变换与窗函数的傅里叶变换的卷积(时域相乘 频域卷积)
现在想通过信号谱与窗谱的卷积得到加窗信号的频谱    但是与信号加窗后做FFT得到的结果不同    是什么原因呢?    在MATLAB中信号加窗时用的是点乘,信号点数与窗长一样,FFT后频谱长度也一样。用谱卷积时存在卷积后点数增大的现象
该怎么在matlab中用卷积来实现信号加窗FFT的过程呢?还有就是窗谱中的w取值范围与长度N应该怎么选择?
谢谢大家   急求高手解答

雪缘 发表于 2010-9-27 22:50

建议把你的代码贴出来。以便大家分析

songjianjiang 发表于 2010-9-27 23:50

理论上来说,时域相乘等于频域卷积。但是实际上我们处理的有限信号都是加了矩形窗进行截断的。如果你要看加窗后对信号谱的影响,可以用整周期数据。比如:采样频率1000Hz,分析点数1024,信号频率1000/10.24Hz,做出来的频谱没有泄露,可以很明显的看到加窗的效果了。

czk108 发表于 2010-9-28 09:09

回复 songjianjiang 的帖子

我主要是想看用频域卷积得到的信号的频谱与直接用fft函数得到的频谱有什么区别,或者fft后频谱如何消除窗函数的影响?
谢谢

songjianjiang 发表于 2010-9-28 09:28

实际上,这涉及到连续与离散的问题。你要看频域卷积后的信号的频域与直接用fft函数得到的频谱的区别,最好用连续信号从理论上分析。因为我们计算机处理的是DFT,而不是实际的FFT,在有些情况下还是有很大差别的。消除fft后频谱的窗函数的影响,你可以用频谱校正的办法,这是专门研究加窗对频谱影响的技术。

czk108 发表于 2010-9-29 09:10

我现在想用matlab仿真信号加窗后FFT得到的频谱和信号频谱与窗谱卷积得到的频谱是否一样,但是卷积这一块窗谱中参数w和窗长N怎么设置   跟什么有关不太明白

songjianjiang 发表于 2010-9-29 09:39

不同的参数w和窗长N,会产生不同的窗谱,至于你要验证的仿真信号加窗后FFT得到的频谱和信号频谱与窗谱卷积得到的频谱是否一样,可以明确的说:理论上是一致的,实际计算总有一定的误差,当然比较小。你要验证的话:建议你用整周期数据,这样可以避免泄露带来的影响,而且看的比较直接。

czk108 发表于 2010-9-29 09:50

回复 songjianjiang 的帖子

就是不明白怎么选择w和N才能使得窗谱与加长N的窗是等效的    而且卷积的话结果数据长度会加长

songjianjiang 发表于 2010-9-29 09:59

你用的是什么窗,代码贴出来啊!还有离散情况下,卷积肯定会使数据加长;在时域的情况下,我一般选择中间等长的数据。

czk108 发表于 2010-9-29 10:32

本帖最后由 czk108 于 2010-9-29 10:35 编辑

回复 songjianjiang 的帖子

r1=;
k=;
figure(1)
plot(r1,k);grid;
%窗谱设置
N=32;
w=-pi/2:.01:pi/2;
Wr=exp(-j*((N-1)/2)*w).*sin(N*w/2)./sin(w/2);
size(Wr)
figure(3)
plot(w,Wr);grid;
kk=conv(k,Wr);
size(kk)
figure(4)
plot(abs(kk));
想用图1得到的结果与窗谱进行卷积,窗谱不知道怎么设置。还有就是卷积的时候直接用的k和Wr卷积是有问题的吧   是不是要用k和r1之间的表达式和Wr卷积呢?在画图4时是否应该取abs呢   差距很大

songjianjiang 发表于 2010-9-29 10:52

本帖最后由 songjianjiang 于 2010-9-29 10:53 编辑

刚才用代码测了一下,有几个问题,如下
1。你用的时域卷积,而不是频域卷积
2。你的时域数据太短了,远没有窗长,这是不合逻辑的
3。你究竟想验证什么,我没弄得清楚,整个过程我只理解为滤波,或者平滑,但是时域数据又比较短。

czk108 发表于 2010-9-29 11:01

回复 songjianjiang 的帖子

为什么是时域卷积呢?我把图1得到的图形当做是一个频谱图了,窗谱是直接带的公式,窗谱太长是因为不知道w的范围应该怎么取,还有就是间隔太大的话窗谱失真会很严重,因而选择间隔为0.01,导致窗谱的长度很长。图1的图形我是将他看做一个信号的频谱图的大概形状是那样,这样两个频谱进行卷积不是频域卷积吗?我不是很明白,谢谢

songjianjiang 发表于 2010-9-29 11:21

Wr是个很明显的窗的形状,好像是指数窗,而且频谱一般都是复数,所以肯定是时域处理,和频谱没有一点关系,这一点毋庸置疑的。

czk108 发表于 2010-9-29 15:30

回复 songjianjiang 的帖子

Wr是矩形窗,它的公式就是矩形窗的频率特性公式。那你能不能告诉我就是怎么用卷积的方法来得到信号的频谱?3q

songjianjiang 发表于 2010-9-29 15:49

不太理解你的意思,如果你想验证时域乘积=频域卷积,大可以选择任意一个窗函数,然后各做一下频谱,卷积一下,看看时域乘积的频谱同频域卷积的效果是否一致。
页: [1] 2
查看完整版本: FFT的实现过程问题