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

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

近期厌恶了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 np
import pylab as pl
import scipy.signal as signal from scipy import fftpack t = 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 np
import pylab as pl
import scipy.signal as signal from scipy import fftpack def 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()

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhlbmduYW5sZWU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

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

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

FM调制

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

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

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

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

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

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

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

。。

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

。!

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

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

  1. [开发技巧]·Python实现信号滤波(基于scipy)

    [开发技巧]·Python实现信号滤波(基于scipy) 个人网站--> http://www.yansongsong.cn GitHub主页--> https://github.com/ ...

  2. python使用信号机制实例:

    python使用信号机制实例: 程序会一直等待,直到其他程序发送CTRL-C信号给本进程.需要其他程序配合测试. 或者打开新的终端使用kill -sig PID 向一个进程发送信号,来测试. from ...

  3. Python 练习题:统计系统剩余内存

    #!/usr/bin/env python #-*- coding:utf-8 -*- ''' 统计系统内存信息 ''' with open('/proc/meminfo') as fd: for l ...

  4. April Fools Day Contest 2016 C. Without Text 信号与系统

    C. Without Text 题目连接: http://www.codeforces.com/contest/656/problem/C Description You can preview th ...

  5. Matlab 信号与系统课设 - BiRadio仿真电台

    BiRadio Matlab 信号与系统课设 - BiRadio仿真电台 Author : Benjamin142857 Date : 2018-12 Video : BiliBili Github ...

  6. 教你用python爬虫监控教务系统,查成绩快人一步!

    教你用python爬虫监控教务系统,查成绩快人一步!这几天考了大大小小几门课,教务系统又没有成绩通知功能,为了急切想知道自己挂了多少门,于是我写下这个脚本. 设计思路:设计思路很简单,首先对已有的成绩 ...

  7. 信号与系统实验序章0——MATLAB基础命令入门

    本次开启新的系列,关于用Matlab实现常见信号和函数的生成和变换. 同时如果没有MATLAB基础,那么可以跟着本文一步一步学习Matlab的相关操作,本文旨在记录在信号与系统课程中MATLAB的学习 ...

  8. 形象地展示信号与系统中的一些细节和原理——卷积、复数、傅里叶变换、拉普拉斯变换、零极图唯一确定因果LTI系统

    看懂本文需要读者具备一定的微积分基础.至少开始学信号与系统了本文主要讲解欧拉公式.傅里叶变换的频率轴的负半轴的意义.傅里叶变换的缺陷.为什么因果LTI系统可以被零极图几乎唯一确定等等容易被初学者忽略但 ...

  9. Python解决网吧收费系统,远控网吧电脑设备!

    python破解网吧收费系统,远控网吧电脑设备! 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更 ...

随机推荐

  1. R语言数据框行转列实例

    目的:须要把数据框的行列进行转置 方法: # 原始数据框 > hrl_jd_mon     年份 一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月 1 2010年 51 ...

  2. wkhtmtopdf--高分辨率转HTML成PDF--目录篇

    原文:wkhtmtopdf--高分辨率转HTML成PDF--目录篇 wkhtmtopdf--高分辨率转HTML成PDF(一):简述wkhtmtopdf的简介和安装 wkhtmtopdf--高分辨率转H ...

  3. docs/pcs/rest/file data apis list - 百度开发者中心

    docs/pcs/rest/file data apis list - 百度开发者中心 更新通知: 2013.6.20 上传.下载新域名正式上线使用,相关接口“上传单个文件”.“分片上传-文件分片上传 ...

  4. Perl语言学习笔记 9 正则表达式处理文本

    1.更换 s/PATTERN/REPLACE/; #返回是否更换成功布尔值 能够使用捕获变量,如:s/(\w)/$1/ 匹配失败则不做不论什么处理 2.定界符 对于没有左右之分的定界符.反复三次就可以 ...

  5. Android自己定义组件系列【2】——Scroller类

    在上一篇中介绍了View类的scrollTo和scrollBy两个方法,对这两个方法不太了解的朋友能够先看<自己定义View及ViewGroup> scrollTo和scrollBy尽管实 ...

  6. 使用jquery+一般处理程序异步载入信息

    需求:有时候.web界面对性能要求比較高.我们就不考虑使用asp.net控件.而是使用html标签+jquery+一般处理程序来进行异步处理. watermark/2/text/aHR0cDovL2J ...

  7. HDU 4454 - Stealing a Cake(三分)

    我比较快速的想到了三分,但是我是从0到2*pi区间进行三分,并且漏了一种点到边距离的情况,一直WA了好几次 后来画了下图才发现,0到2*pi区间内是有两个极值的,每个半圆存在一个极值 以下是代码 #i ...

  8. 以todomvc为例分析knockout、backbone和angularjs

    一.整体结构 项目github地址https://github.com/tastejs/todomvc/ 排除通用的css样式文件和引用的js库文件,仅看html和js 1.1 knockoutjs版 ...

  9. Eclipse中的SVN的冲突解决方案详解

    版本冲突原因: 假设A.B两个用户都在版本号为100的时候,更新了kingtuns.txt这个文件,A用户在修改完成之后提交kingtuns.txt到服务器,这个时候提交成功,这个时候kingtuns ...

  10. U9文件与文件系统的压缩和打包

    1.在Linux的环境中,压缩文件的扩展名大多为:*.tar,*.tar.gz,*.tgz,*.bz2. 2.gzip可以说是应用最广的压缩命令了.目前gzip可以揭开compress,zip和gzi ...