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

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

近期厌恶了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. [Android学习笔记]LinearLayout布局,剩余空间的使用

    转自:http://segmentfault.com/q/1010000000095725 如果使得一个View占用其父View的剩余空间? 答案是使用:android:layout_weight = ...

  2. Mysql rr和rc隔离

    REPEATABLE READ This is the default isolation level for InnoDB. For consistent reads, there is an im ...

  3. 为了树莓派IIraspberrypi安装emacs+ecb+cedet+session+color-theme+cscope+linum

    类似这篇文章写的不多,为了避免以后大家转来转去而忽略了写文章的时间,这些特别加上是2014年6月28日,省的对不上一些软件的版本号(下文中有些"最新"的说法就相应这个时间).假设转 ...

  4. Matlab图像彩色转灰色

    Matlab图像彩色转灰色 时间:2014年5月7日星期三 网上找的程序.实现图像彩色转灰色: I1=imread('C:\Users\Yano\Desktop\matlab\test1\4.jpg' ...

  5. spring-bean属性配置解析

    autowire属性值有 byName 根据Bean定义时的“id"属性上指定的别名与Setter名称是否一致进行自动装配 byType 根据PoJo的setXXX()方法所接受的类型判断b ...

  6. python语言学习7——数据类型和变量

    整数 python可以处理任意大小的整数,包括负整数,在程序中的表示方法和数学上的写法一样 计算机由于使用二进制,有时候采用十六进制表示整数比较方便,十六进制数用0x前缀 浮点数 简单的小数就直接用小 ...

  7. 我写过的软件之FileExpert

    公司要做一个项目,跟MP4有点关系.到网上找了规范文档看了看,理解还是不够深入.干脆花点时间做一个Parser.取名FileExpert.眼下仅仅支持解析ISO_IEC_14496-12的文件格式.取 ...

  8. poj2479(dp)

    题目链接:http://poj.org/problem?id=2479 题意:求所给数列中元素值和最大的两段子数列之和. 分析:从左往右扫一遍,b[i]表示前i个数的最大子数列之和. 从右往左扫一遍, ...

  9. Struts2 拦截器具体配置过程

    拦截器差点儿遍布每个程序中,所以贴出拦截器配置的具体过程,希望可以帮到大家. Struts2 拦截器具体配置过程 <interceptors> <!-- 先定义拦截器 --> ...

  10. CH BR4思考熊(恒等有理式-逆波兰表达式求值)

    恒等有理式 总时限 10s 内存限制 256MB 出题人 fotile96 提交情况 4/43 描述 给定两个有理式f(X)与g(X),判断他们是否恒等(任意A,如果f(A)与g(A)均有定义,那么f ...