matlab验证傅里叶变换的线性性质(纯代码附运行结果)

傅里叶变换性质验证:产生时域信号f1(t)和f2(t),并分别画出时域波形;求f1(t)和f2(t)的频谱和,并分别画出频谱;验证一个傅里叶变换性质(线性性质),要求画出相应的图形进行对比并分析。 

subplot(3,2,1); 
A = 2;
tao  = 4;
X = [-tao/2 -tao/2 tao/2 tao/2];
Y = [0 3 3 0];
plot(X,Y);
title('门信号f1')
axis([-tao,tao,0, 4]);
box off; 
subplot(3,2,2); 
tao  = 8;
X = [-tao/2 -tao/2 tao/2 tao/2];
Y = [0 4 4 0];
plot(X,Y);
axis([-tao,tao,0, 4]);
title('门信号f2')
axis([-6,6,0, 6]);
box off;
w1 = -4 * pi;
w2 = 4 * pi;
t1 = -2;
t2 = 2;
N = 500;
wk = linspace(w1,w2,N); 
F = zeros(1,N); 
Fw1 = @ (w)(quad(@(t)((A + 1)*rectpuls(t,4).*exp(- 1i * w * t)),t1,t2));
for k = 1 : N
    F(k) = Fw1(wk(k));
end
subplot(3,2,3);
plot(wk,real(F));
yscale = get(gca,'ylim');
set(gca,'ylim',[yscale(1),yscale(2)+0.2]);
label = {'-2\pi';'-\pi';'0';'\pi';'2\pi'}';
x = [-2*pi -pi 0 pi 2*pi];
y = yscale(1) * ones(1,5) - 0.2;
set(gca,'xtick',[-2*pi -pi 0 pi 2*pi],'xticklabel',[]);
text(x,y,label);
xlabel('\omega');                                                        
title('g_{4}(t)');
grid;
box off;
Fw2 = @ (w)(quad(@(t)((A + 2)*rectpuls(t,8).*exp(- 1i * w * t)),t1,t2));
for k = 1 : N
    F(k) = Fw2(wk(k));
end
subplot(3,2,4);
plot(wk,real(F));
yscale = get(gca,'ylim');
set(gca,'ylim',[yscale(1),yscale(2)+0.2]);
label = {'-2\pi';'-\pi';'0';'\pi';'2\pi'}';
x = [-2*pi -pi 0 pi 2*pi];
y = yscale(1) * ones(1,5) - 0.2;
set(gca,'xtick',[-2*pi -pi 0 pi 2*pi],'xticklabel',[]);
text(x,y,label);
xlabel('\omega');                                                        
title('g_{8}(t)');
grid;
box off;
subplot(3,2,5);
t1=-4.01:0.01:4;
a = 2;
b = 3;
A = 2;
f1 = (A+1) * rectpuls(t1, 4);
f2 = (A+2) * rectpuls(t1, 8);
f3 = a * f1 + b * f2;
plot(t1,f3);
title('矩形脉冲信号')
axis([-6,6,0, 20]);
box off;
subplot(3,2,6);  
set(0, 'defaultfigurecolor', 'w');
syms t w;
F3 = sym(str2sym('12 *(heaviside(x+4) - heaviside(x+2))+ 18*(heaviside(x + 2)- heaviside(x-2)) + 12*(heaviside(x-2) - heaviside(x-4))')); 
Fw3 = fourier(F3);
fplot(Fw3,[-10*pi, 10*pi]);
axis([-6*pi 6*pi -40 150]);
grid;
title('Fourier transform of a * g_{4}(t) + b * g_{8}(t)');
yscale = get(gca,'ylim'); 
set(gca,'ylim',[yscale(1),yscale(2)+0.2]);
label = {'-2\pi';'-\pi';'0';'\pi';'2\pi'}';
x = [-2*pi -pi 0 pi 2*pi];
y = yscale(1) * ones(1,5) - 0.2;
set(gca,'xtick',[ -2*pi -pi 0 pi 2*pi ],'xticklabel',[]);
text(x,y,label);
xlabel('\omega');                                     
ylabel('F_{3}(j\omega)');
box off;

运行结果:

 直接打开matlab运行即可。

  • 4
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值