ferrarichen 发表于 2012-9-4 15:28

请大侠指导矩形窗和三角窗的傅里叶变换和反变换

本帖最后由 ferrarichen 于 2012-9-4 15:31 编辑

最近开始研究信号的傅里叶变换问题,写了一段代码原意是把矩形窗和三角窗进行傅里叶变换和反变换:我个人理解变换后应该得到相同的矩形窗和三角窗。
现在遇到几个问题,应该比较基本的。
问题(1)我理解的能得到原来的矩形窗和三角窗,这个理解是不是对的?
问题(2)请帮我查看一下matlab的代码是否有问题,重点在FT和IFT两个函数;
问题(3)用三角窗进行变换和反变换,能得到一个三角窗,但是幅度有巨大变化,具体请看图,能给一些解释吗?还是我的代码有问题?
问题(4)用矩形窗进行变换和反变换,得不到矩形窗,具体请看图,能给一些解释吗?还是我的代码有问题?
请各位大侠不吝赐教。matlab代码如下:
clear;
pi=3.1415926;

N=101;

%%%%%%%%%%%%%%%%%%%%%%%设置n序列

start=0;
n=start:1:start+N-1;

%%%%%%%%%%%%%%%%%%%%%%%生成时序函数x

x=bartlett(N); %(x=rect(N));

%%%%%%%%%%%%%%%%%%%%%%%设置频率域采样间隔和范围

m=1;
k=linspace(-m*pi,m*pi,1000);

%%%%%%%%%%%%%%%%%%%%%%%进行傅里叶变换和反变换

X=FT(k,x,n);

%(
   %temp=0;
   %for i=1:length(k)
   %    temp=temp+X(i);
   %end
   %cur=temp/length(k);
   %Z=X-cur;
   %Y=IFT(k,Z,n);
%)

Y=IFT(k,X,n);

%%%%%%%%%%%%%%%%%%%%%%%%画出时序函数x,频谱X和反变换的时序函数Y

figure
plot(n,x,'g');
figure
plot(k,abs(X),'r');
figure
plot(n,abs(Y),'b');

%%%%%%%%%%%%%%%%%%%%%%%傅里叶变换函数 k:频率序列 x:时序函数;n:时序序列

function y=FT(k,x,n);

pi=3.1415926;

for t=1:length(k)
    y(t)=sum(x.*(exp(-j*k(t).*n)));
end

%%%%%%%%%%%%%%%%%%%%%%%%%傅里叶反变换函数 K:频率序列 x:频谱; n:时序序列

function y=IFT(k,x,n);

pi=3.1415926;

for t=1:length(n)
    y(t)=sum(x.*(exp(j*n(t).*k)))/(2*pi);
end

%%%%%%%%%%%%%%%%%%%%%%%%%生成N点三角窗函数

function y=bartlett(N);

if (mod(N,2)==0)   
    N1=(N-2)/2;
else
    N1=(N-1)/2;
end

for i=1:N1+1
    y(i)=2*(i-1)/(N-1);
end
for i=N1+2:N
    y(i)=2-2*(i-1)/(N-1);
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%生成N点矩形窗函数

function y=rect(N);

i=1:N;
y(i)=1;



PS1:另外写了一段 “隔直”的代码,就是代码中用“()”括起来 并注释掉的部分,请问是这样进行隔直吗?
PS2:刚刚开始研究,可能很多低级错误,请各位不吝赐教。先谢过!


ferrarichen 发表于 2012-9-4 15:32

补充说明:6幅图依次是 三角窗->傅里叶变换->反变换;矩形窗->傅里叶变换->反变换。
页: [1]
查看完整版本: 请大侠指导矩形窗和三角窗的傅里叶变换和反变换