Python在信号与系统(1)——Hilbert兑换,Hilbert在国家统计局的包络检测应用,FIR_LPF滤波器设计,格鲁吉亚也迫使高FM(PM)调制...

谢谢董老师,董老师是个好老师。

心情久久不能平静,主要是高频这门课的分析方法实在是让我难以理解,公式也背只是,还是放放吧。

近期厌恶了Matlab臃肿的体积和频繁的读写对我的Mac的损害,所以学习了一下Python这一轻量级的脚本。发现“Python自诞生那天就跟科学计算分不开”这个事实。

无聊,写写心得。

配置环境什么的还是弄了几个晚上的。

在Mac下用PyCharm还是非常好滴。装上NumPy,SciPy等等一众免费的,非常不错的Python包。就能够灰了。

1.Hilbert变换及其在单边带(SSB)包络检波的应用

定义神马的,性质神马的自己百度去。我也懒得写公式了。大家将就着看。

先定义个东西,H(t)为Hilbert变换后的时域信号,f(t)为原始时域信号。那么其包络为:

Envelop = sqrt(H^2(t)+f^2(t))。

好了,写代码什么的都简单了。

import numpy as npimport pylab as plimport scipy.signal as signalfrom scipy import fftpackt = np.arange(0, 0.3, 1/20000.0)x = np.sin(2*np.pi*1000*t) * (np.sin(2*np.pi*20*t) + np.sin(2*np.pi*8*t) + 3.0)hx = fftpack.hilbert(x)pl.subplot(221)pl.plot(x, label=u"Carrier")pl.plot(np.sqrt(x**2 + hx**2), "r", linewidth=2, label=u"Envelop")pl.title(u"Hilbert Transform")pl.legend()

然后是它的结果。看,是不是逼格高高的不可一世。~~



2.FIR_LPF设计

用Python这样的动态语言写几百个參数的有限冲激响应数字低通滤波器(Finite Impulse Response-Low Pass Digital Filter)。实在是太难为人家了。还是用内置的函数或者内嵌C吧。看那一长串,我还想再打一遍,有限冲激响应数字低通滤波器,逼格高高的!

以下是代码。FIR滤波器在这里我预计參数不下100,所以内嵌吧,否则慢死。

import numpy as npimport pylab as plimport scipy.signal as signalfrom scipy import fftpackdef h_ideal(n, fc):return 2*fc*np.sinc(2*fc*np.arange(-n, n, 1.0))b = h_ideal(30, 0.25)b2 = signal.firwin(len(b), 0.6)w, h = signal.freqz(b)w2, h2 = signal.freqz(b2)#pl.figure(figsize=(8,6))pl.subplot(222)pl.plot(w/2/np.pi, 20*np.log10(np.abs(h)), label=u"h_ideal")pl.plot(w2/2/np.pi, 20*np.log10(np.abs(h2)), label=u"firwin")pl.xlabel(u"Normalized Frequency Rad/Sample")pl.ylabel(u"Magnitude (dB)")pl.title(u"FIR Low Pass Filter")pl.legend()pl.subplot(224)pl.plot(b, label=u"h_ideal")pl.plot(b2, label=u"firwin")pl.legend()pl.show()





看这逼格高高的,都不说了。。



3.以下是董老师指导我的,尽管非常easy。

FM调制


董老师说mf的參数调小了,我看果然是。课本不可信。给的參数都mv毫伏级,坑爹。

码代码这样的小事就简单多了

import numpy as np
import pylab as pl
import scipy as sp
from scipy import integrate
from scipy import fftpacksample_rate = 10000t = np.arange(0, 1.0, 1.0 / sample_rate)  # generate time samplingomega_base = 40
omega_carrier = 800mf = 1
v0 = 5
v_omega = 10base = np.cos(omega_base * t)pm = v0 * np.cos(omega_carrier * t + v_omega * base)
pl.plot(base)
pl.plot(pm)
pl.show()


绿的是最后的信号。蓝的是原始信号。


好了,说完了第一部分,第二部分写啥还没有想好,到时再说,嗯。

今天好娘快。晚上继续学高频。


董老师是个好人。好人一生平安。。。

。。

近期我这样的傻事怎么。。

。!

版权声明:本文博主原创文章。博客,未经同意不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399486.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在WP-Config中设置WordPress错误日志

https://baijiahao.baidu.com/s?id1622279671500148245&wfrspider&forpc 你想在wp-config文件中设置WordPress错误日志吗?WordPress中的wp-config文件不仅控制您的WordPress网站设置,它也是一个非常有用的调试工具,可帮助您查找和修…

[再寄小读者之数学篇](2014-04-22 平方差公式在矩阵中的表达)

设 $A,B$ 都是 $n$ 阶复方阵, 且 $A^2B^22AB$. 证明: (1) $AB-BA$ 不可逆; (2) 如果 $\rank(A-B)1$, 那么 $ABBA$. 转载于:https://www.cnblogs.com/zhangzujin/p/3712973.html

C#:ref和out的联系及区别。

总结以上四条得到ref和out使用时的区别是:①:ref指定的参数在函数调用时候必须初始化,不能为空的引用。而out指定的参数在函数调用时候可以不初始化;②:out指定的参数在进入函数时会清空自己,必须在函数内部…

wordpress启用侧边栏小工具

http://www.seo628.com/1872.html wordpress后台默认不显示小工具选项,开发者需要启用小工具功能并把小工具在相应的前台位置调用出来,这样才能在后台直接拖动生成侧边栏。 激活小工具 激活小工具需要在functions.php中注册至少一个侧边栏 register_s…

comparator接口与Comparable接口的区别

Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的…

详解 Spotlight on MySQL监控MySQL服务器

前一章详解了Spotlight on Unix 监控Linux服务器 ,今天再来看看Spotlight on MySQL怎么监控MySQL服务器。 注:http://www.cnblogs.com/Javame/p/3685512.html 第一步: 下载并安装mysql-connector-3.5x Spotlight on MySQL 连接mysql必须使用mysql-connec…

lua------------------Unity3D研究院编辑器之打开unity不可识别的文件(十三)

Unity3D研究院编辑器之打开unity不可识别的文件(十三) 雨松MOMO 【Unity3D拓展编辑器】 围观8597次 9 条评论 编辑日期:2017-03-02 字体:大 中 小 有些特殊后缀名的文件在unity里是不可识别的。如下图所示,这里我把文本…

一起Polyfill系列:Function.prototype.bind的四个阶段

昨天边参考es5-shim边自己实现Function.prototype.bind,发现有不少以前忽视了的地方,这里就作为一个小总结吧。 一、Function.prototype.bind的作用 其实它就是用来静态绑定函数执行上下文的this属性,并且不随函数的调用方式而变化。 示例&am…

Window 通过cmd查看端口占用、相应进程、杀死进程等的命令【转】

一、 查看所有进程占用的端口 在开始-运行-cmd,输入:netstat –ano可以查看所有进程 二、查看占用指定端口的程序 当你在用tomcat发布程序时,经常会遇到端口被占用的情况,我们想知道是哪个程序或进程占用了端口,可以用该命令 ne…

盘点18个免费的WordPress主题后台选项开发框架

https://yusi123.com/3205.html/3 13.Warp Framework Warp框架不仅支持WordPress和Joomla,还可以可扩展到其他的适用Web程序。使用Warp框架你可以轻松的定制你需要的功能。 该框架是来自Yootheme团队。看看他们出的主题,你就知道这个绝对是精品了。精心设计的界面和…

lua----------------使用VS2015搭建lua开发环境的一些侥幸成功经验,

所以本篇博文介绍在Windows平台下,使用VS2015搭建lua开发环境的一些侥幸成功经验,安装过程参考网上教程,安装过程如下(参考http://www.byjth.com/lua/33.html) 一 生成lua5.3.lib 1、下载并编译lua源码 首先进入lua官…

中国剩余定理求解“六位教授必须首次都停止上课”问题

问题: 六位教授在周一至周六开始上课,这六位教授分别每2,3,4,1,6,5天授课一次, 该学校禁止周天上课,因此周天必须停课,问什么时候所有六位教授首次发现他们必须同时停课?(中国剩余定理知识求解) 求解&#…

wordpress 主题开发

https://www.cnblogs.com/welhzh/p/6937243.html wordpress 主题开发 https://yusi123.com/3205.html https://themeshaper.com/2012/10/22/the-themeshaper-wordpress-theme-tutorial-2nd-edition/ https://codex.wordpress.org/Theme_Frameworks https://lorelle.wordpre…

CentOS6.4下安装TeamViewer8

今天测试selenium调用firefoxdriver,该驱动无法在无界面环境中运行,需要远程连接到服务器进行操作,于是有了下面安装TeamViewer的过程。 先前尝试很多次也没有运行起来TeamViewer8,主要问题是安装后启动时候,没有出现授…

关于std::ios::sync_with_stdio(false)

std::ios::sync_with_stdio(false); 很多C的初学者可能会被这个问题困扰,经常出现程序无故超时,最终发现问题处在cin和cout上,(甚至有些老oier也会被这个问题困扰,每次只能打scanf和printf,然后一堆的占位符…

debian下安装repo

1、去google网站上下载repo脚本(用php语言写成的脚本) https://gerrit.googlesource.com/git-repo//stable/repo 可以将脚本复制下来并保存即可 2、将其拷贝到/bin 目录下 并加权限 sudo chmod 777 repo 3、修改配置文件 /root/.bashrc 在最后一行添加如…

明细表达到15亿了

MSSQLserver2005 建好索引,速度还是可以的。转载于:https://www.cnblogs.com/jjoo/p/3718372.html

WordPress 添加网页图标

wp_site_icon(); 参考:https://www.wpdaxue.com/wordpress-4-3-site-icon.html

input表单只允许输入大于0的整数

1.<input type"tel" name"num" maxlength"5" οnkeyup"carNum($(this))"/> type"tel"表示是输入类型用于应该包含电话号码的输入字段&#xff0c;是html5的input属性 maxlength&#xff1a;表示input表单输入的个数…

日期相减的研究

两个日期相减&#xff0c;结果为TimeSpan&#xff0c;为时间间隔。http://msdn.microsoft.com/zh-cn/library/system.timespan(vvs.110).aspx123456//日期相减DateTime vBeginDate DateTime.Parse("2014-05-09 12:00");DateTime vEndDate vBeginDate.AddDays(1);in…