问题

我认为P157中部的卷积公式是错的,f(x)h(x-m)应当写为f(m)h(x-m)

解决方法

为了证明,我就用我蹩脚的python实现一下图4.28左列

源代码如下

 import numpy as np
import matplotlib.pyplot as plt m = np.arange(-1000,1000)#本来想设置为0-1000呢,但是有h(-m)存在,只能设置为(-1000,1000) #实现函数f(m)并绘制
fm = np.zeros(2000)
fm[1000:1300] = 3
f1 = plt.figure(1)
p1 = plt.subplot(511)
p1.plot(m,fm)
plt.xlabel('m')
plt.ylabel("f(m)")
plt.xlim(-1000,1000) #实现h(m)
hm = np.zeros(2000)
hm[1000:1200] = 2
p2 = plt.subplot(512)
p2.plot(m,hm)
plt.xlabel('m')
plt.ylabel("h(m)")
plt.xlim(-1000,1000) #实现h(-m)
h_m = np.zeros(2000)
for i in range(2000):
h_m[i] = hm[1999-i]#哈哈,初中的知识诶
p3 = plt.subplot(513)
p3.plot(m,h_m)
plt.xlabel('m')
plt.ylabel("h(-m)")
plt.xlim(-1000,1000) #实现h(x-m)
x = 800
h_x_m = np.zeros(2000)
h_x_m[800:2000] = h_m[800-x:2000-x]#左加右减,至于为啥选800-2000,这是为了适应x的值,x的范围是0-800
p4 = plt.subplot(514)
p4.plot(m,h_x_m)
plt.xlabel('m')
plt.ylabel("h(x-m)")
plt.xlim(-1000,1000) #实现f(x)卷积g(x)
fx_gx = np.zeros(2000)
for x in range(800):
h_x_m[800:2000] = h_m[800 - x:2000 - x] # 左加右减
sum = 0
for m_temp in range(400):
sum += fm[1000+m_temp]*h_x_m[1000+m_temp]
fx_gx[1000+x] = sum
p5 = plt.subplot(515)
p5.plot(m,fx_gx)
plt.xlabel('m')
plt.ylabel("f(x)*g(x)")
plt.xlim(-1000,1000) plt.show()

使用f(m)h(x-m),得到书中的结果,如下:

和书中的结果相同,若使用f(x)h(x-m),得到如下结果:

与书中结果不一致

结论

f(x)h(x-m)应当写为f(m)h(x-m)

最新文章

  1. Xftp连接linux(ubuntu)时提示ssh服务器拒绝了密码,请再试一次
  2. [ROS] Studying Guidance
  3. jprofiler_监控远程linux服务器的tomcat进程(实践)
  4. CSS-dl+dt+dd的应用(非常实用)
  5. 如何搭建Java开发环境(包括下载、安装和配置JDK)和Eclipse的安装
  6. js 随笔
  7. QT笔记
  8. iOS之01-基本语法
  9. 嵌入资源的方式让Winform使用系统没有的字体,无需安装字体
  10. Day9 summary
  11. Asp.Net MVC 中实现跨域访问
  12. Redis学习笔记(6)-SortedSet
  13. ChatForFun 公众号使用说明
  14. storyBoard中切换应用启动的切入点方法
  15. 轻松学习Linux之自动执行任务
  16. Web Capacity Analysis Tool 压力测试工具使用笔记
  17. (转)asp.net基础-HttpModule
  18. python 解析xml 文件: DOM 方式
  19. java多线程向数据库写入数据
  20. Qt学习 之 多线程程序设计(QT通过三种形式提供了对线程的支持)

热门文章

  1. MonoBehaviour.StartCoroutine开启协同程序
  2. Task.Result跟 Task.GetAwaiter.GetResult()相同吗?怎么选?
  3. SSH网上商城二
  4. ora-06502 ORA-06512问题解决
  5. Json序列化帮助类
  6. Python实用笔记 (11)高级特性——迭代器
  7. git和github入门指南(6)
  8. 【部分】ASP.NET MVC5 - 地址栏传参两种方法
  9. 服务消费者(Feign-下)
  10. html中map area 热区自适应的原生js实现方案