matlab做傅立叶变换
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/03 04:00:18
matlab做傅立叶变换
用MATLAB做傅立叶变换,频谱图像不正确
T=4;
N=400;
t=linspace(-T/2,T/2-T/N,N)';
x=sin(pi*t)./(pi*t);
h=cos(100*pi*t);
y=x+h;
z=y+0.5*y.^2;
OMG=16*pi;
K=200;
omg=linspace(-OMG/2,OMG/2-T/N,K)';
Z=0*OMG;
for k=1:K
Z(k)=0;
for n=1:N
Z(k)=Z(k)+T/N*z(n)*exp(-j*om
g(k)*t(n));
end
end
zs=0*t;
for n=1:N
zs(n)=0;
for k=1:K
zs(n)=zs(n)+OMG/2/pi/K*Z(k)*exp(j*omg(k)*t(n));
end
end
plot(omg,Z)
用MATLAB做傅立叶变换,频谱图像不正确
T=4;
N=400;
t=linspace(-T/2,T/2-T/N,N)';
x=sin(pi*t)./(pi*t);
h=cos(100*pi*t);
y=x+h;
z=y+0.5*y.^2;
OMG=16*pi;
K=200;
omg=linspace(-OMG/2,OMG/2-T/N,K)';
Z=0*OMG;
for k=1:K
Z(k)=0;
for n=1:N
Z(k)=Z(k)+T/N*z(n)*exp(-j*om
g(k)*t(n));
end
end
zs=0*t;
for n=1:N
zs(n)=0;
for k=1:K
zs(n)=zs(n)+OMG/2/pi/K*Z(k)*exp(j*omg(k)*t(n));
end
end
plot(omg,Z)
t=linspace(-T/2,T/2,N)';这一行这样改就可以.按原来的写法,t里会出现一个0,带入exp函数后导致出错.
再问: 这个是sinc(pi/t)的傅里叶变换图像,为什么这个不是滤波器的形状。。。。才学这个求指点。。。。。代码的问题吗????
再答: 我运行做出来的图不是那样的。核对一下代码吧。clear all; close all
T=4;
N=400;
t=linspace(-T/2,T/2,N)';
x=sin(pi*t)./(pi*t);
h=cos(100*pi*t);
y=x+h;
z=y+0.5*y.^2;
OMG=16*pi;
K=200;
omg=linspace(-OMG/2,OMG/2-T/N,K)';
Z=0*OMG;
for k=1:K
Z(k)=0;
for n=1:N
Z(k)=Z(k)+T/N*z(n)*exp(-1j*omg(k)*t(n));
end
end
zs=0*t;
for n=1:N
zs(n)=0;
for k=1:K
zs(n)=zs(n)+OMG/2/pi/K*Z(k)*exp(1j*omg(k)*t(n));
end
end
plot(omg, Z)
再问: 这个是sinc(pi/t)的傅里叶变换图像,为什么这个不是滤波器的形状。。。。才学这个求指点。。。。。代码的问题吗????
再答: 我运行做出来的图不是那样的。核对一下代码吧。clear all; close all
T=4;
N=400;
t=linspace(-T/2,T/2,N)';
x=sin(pi*t)./(pi*t);
h=cos(100*pi*t);
y=x+h;
z=y+0.5*y.^2;
OMG=16*pi;
K=200;
omg=linspace(-OMG/2,OMG/2-T/N,K)';
Z=0*OMG;
for k=1:K
Z(k)=0;
for n=1:N
Z(k)=Z(k)+T/N*z(n)*exp(-1j*omg(k)*t(n));
end
end
zs=0*t;
for n=1:N
zs(n)=0;
for k=1:K
zs(n)=zs(n)+OMG/2/pi/K*Z(k)*exp(1j*omg(k)*t(n));
end
end
plot(omg, Z)