信号与系统【x(t)*h(t)=y(t) 求h(t)】附matlab代码


问题描述

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
根据傅里叶变换性质可得:
在这里插入图片描述
编程:
1、求h(t)在t=[-10,10]的近似图像
2、将得到的h(t)与x(t)卷积看看y(t)的样子

代码运行

T0 = 50;
intervalT = 0.001;
t = 0:intervalT:T0;

W0 = 20;
intervalW = 0.001;
w = 0:intervalW:W0;

functionW = zeros(1,length(w)); 
for i = 1:length(w)
    if sin(w(i))>1e-6 %零值判断
        functionW(i) = sin(0.5*w(i))^2/(w(i).*sin(w(i)));
    else 
        functionW(i) = 0.25; %趋于零的点取极限0.25
    end;
end;
%求h
h = zeros(1,length(t));
for i = 1:length(t)
    for j=1:length(functionW)
        h(i) = h(i)+functionW(j)*cos(w(j)*t(i))*intervalW;
    end;
end;
h=2*h/pi;

%由于h(t)是偶函数 因此将图像翻转到负半轴
t = [-t(end:-1:2),t];
h = [h(end:-1:2),h];

%h(t)
subplot(2,1,1);
plot(t,h);

%这里验证求出的h(t)x(t)卷积后的y(t)是什么样子
newT = -10:intervalT:10;
y = zeros(1,length(newT));
for i = 1:length(newT)
    time = newT(i);
    for tao = -20:0.001:20
        hindex = 1+round((tao-t(1))/intervalT);
        if time-tao>0 && time-tao<2 && hindex>=1 && hindex<=length(h)
            y(i) = y(i)+h(hindex)*0.001;
        end;
    end;
end;

%y(t)
subplot(2,1,2);
plot(newT,y);

运行结果

在这里插入图片描述


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值