2016-12-31

2016总结

这篇早早的开始写,因为我担心到31号,我还是什么都没有写。

今年是重要的一年。

在这一年,我大学毕业了;

在这一年,我开始研究生生涯;

在这一年,我第一次实习,体验到了工作的感觉;

在这一年,我拿到3个MOOC的证书;

在这一年,我第一次接触到了计算机视觉、机器学习,我为之着迷;

在这一年,我先拿到了5k+15k的奖学金;

在这一年,我以每月工资的形式拿到了生活补贴,虽然只有500.

在这一年,我又选择重新开始wordpress!

......

在这一年,还有很多事,有好的有坏的。每次站在当下总觉得过去的我很不成熟。就好像现在回想起过去,总结过去,就觉得自己很天真;将来某一天,看现在的我也一定是幼稚的。

2016-12-23

如何理解拉普拉斯变换(Laplace transform)


最近在复习现代信号处理。于是自己又翻出以前的书看了看,发现对拉式变换又有了新的理解。于是把新的体会写下来。








 

要理解Laplace变换首先要明白什么是傅里叶变换。傅里叶变换的思想就是用一些列复指数周期函数进行线性组合来表示另一个函数(信号)。而我们选的这些基函数就是线性时不变系统的特征函数(eigenfunctions)。



而Laplace transform就是Fourier transform的一般化,Z变换是则对应的是离散时间。因此相比于傅里叶变换,拉氏变换少了些约束条件。因此能进行拉氏变换的信号类型就比傅里叶变换多。拉氏变换和Z变换都具有许多傅里叶变换的性质。


 

2016-12-10

抱歉在此留言的各位游客

之前在网友的提醒下,我发现wordpress的原生评论系统,不能够自动发送评论回复通知邮件。于是我在网上搜索了好久,找到StCR的插件,配合WP Email SMTP插件最终实现评论回复邮件通知。

但这种解决方案却出现了邮件内容错发,重复发送,不够智能的问题。

email

由于最近也没时间折腾,所以只能暂时将就~给你们的邮箱造成垃圾表示十分sorry~

PS:此篇以日志的形式发表,尝试此种模式~(*^__^*) ……

PSS:算了,好丑

2016-12-04

2016最后一个月

不知道写点什么。2016马上就有过去了。已经进入期末考状态。计划这学期完成的项目看样子是完成不了了。不要急躁~~年末发一篇总结。试试wordpress的状态~

如何理解四个基本子空间

Four Fundamental Matrix Spaces

  1. Row space of A

  2. Column space of A

  3. Nullspace of A

  4. Nullspace of A’


A system of linear equations Ax=b is consistent if and only if b is in the column space of A.

We already known that elementary row operations do not change the row space of a matrix.

And elementary row operations do not change the nullspace of matrix.

However this result dost not apply to the column space. Therefore only its row space is preserved under elementary operations.

If a matrix R is in row-echelon form then:

  1. The row vectors with the leading 1’s form a basis for the row space of R.

  2. The column vector with the leading 1’s of the row vectors form a basis for the column space.


Therefor we put it in row-echelon form and extract the row vectors with a leading 1 to find a basis for the row space of a matrix.

2016-11-11

Verilog一段错误代码分析

[code]
reg [3:0] Count_EN;
localparam PWen=4'd12;
always@(posedge CLK or negedge RST)
begin
if(!RST)
Count_EN<=0;
else if(Count_EN==PWen)
Count_EN<=0;
else
Count_EN<=Count_EN+1'b1;
end
[/code]

此电路存在一个问题即:

Count_EN没有初始化值。

也就是说:当RST从一开始的时候就是1的话,即不满足条件一,Count_EN<=0不执行。那么Count_EN将一直处于不定态。于是else语句的加1操作相当于在一个不定态加1,得出的结果自然还是不定态。所以电路最终不能实现计数功能!

从仿真结果看:

counter_en_x

2016-11-08

学习笔记之:HDL的优缺点

HDL具有通用性并且允许对电路的实现进项各种各样的控制。但即是优点也是缺点。

优点是:开发者可以针对硬件进行针对性的优化设计。但这也带来了缺点,即是:开发者必须深入到每一个细节进行精细的控制,包括数据和流程控制。因此对于复杂算法的编程相当困难。

为了解决上面的缺点,于是对高级语言,尤其是C语言进行硬件综合方面进行了相当多的研究。但硬件本身是并行的,每一步或者每一个运算都有独立的硬件执行。相比之下,软件通过重复使用CPU进行运算,使之本质上是串行的。这也是HDL描述电路时,与编程思维不同的原因。

所以时刻牢记FPGA开发属于硬件设计工作是十分重要的。进行硬件设计与进行软件设计需要不同的能力。即使是基于C语言的来描述设计,时刻牢记正在构建或者算法本身所暗指的结构也是非常重要的。并不是所有的软件算法都可以很好的映射到硬件上。例如,除非很好的保持上下文内容并将之调用,否则递归就不能被很好的映射到硬件上。因此这项工作需要面向硬件的思维模式。

2016-11-03

Verilog学习笔记——之重点

verilog原本被设计成一种仿真语言,而不是一种综合语言,所以verilog HDL中很多逻辑描述没有相应的硬件可以对应。因此如果程序只用于仿真,那么verilog中的所有语句和语法都可以使用。但如果用于硬件电路的实现,则许多的语句和描述方式都是不可综合的。

  • 只有寄存器类型的信号才可以在always和initial 语句中进行赋值,类型定义通过reg语句实现。

  • always 语句是一直重复执行,由敏感表(always 语句括号内的变量)中的变量触发。

  • always 语句从0 时刻开始。

  • 在begin 和end 之间的语句是顺序执行,属于串行语句。书写规范

  • 用有意义的有效的名字如 Sum 、CPU_addr等。

  • 用下划线区分词。

  • 采用一些前缀或后缀,如时钟采用Clk 前缀:Clk_50,Clk_CPU;低电平采用_n 后缀:Enable_n;

  • 统一一定的缩写 如全局复位信号 Rst。

  • 同一信号在不同层次保持一致性,如同一时钟信号必须在各模块保持一致。

  • 自定义的标识符不能与保留字同名。

  • 参数采用大写,如SIZE 。


2016-10-24

为什么是“硬件描述语言”而不是“硬件设计语言”

“描述”一词说明电路不是凭空设计出来的,而是在能够实现的基础之上通过某种语言来描述他们的互联关系。早期的数字电路设计采用原理图设计方法,其本质上也是对电路的一种描述。它用原理图的形式将各种逻辑电路互联在一起。但随着电路的发展,采用原理图来设计数字电路已经显得力不从心了,因此便采用所谓的硬件描述语言来描述电路的互联关系。

由此也可以看出,硬件描述语言和计算机编程语言有着本质的差别。HDL必须基于硬件的实现基础之上,也就是说硬件描述语言所描述的电路必须是能够实现的。而计算机编程语言则不在乎电路的实现。因此当编写或阅读硬件描述语言的时候,从硬件结构的角度而不是从顺序算法的角度来考虑的话,将更容易理解。

也因为这个缘故,在编写代码的时候,应以导出电路为目的,而不是描述一个顺序的C语言算法。如果不能做到这一点,则会经常导致代码的不可综合,实现复杂,或仿真和综合之间存在差异。例如,同一个变量在多个always块中被赋值。在verilog语法中是允许这种情况,并且可以仿真。但是却无法综合。

:-)

2016-10-22

什么是JTAG

JTAG是IEEE标准(1149.1),开发与1980年代。真早。早期的JTAG用于大批量电路板的检测。TAG通过四个端口来检测电路板中ICs的PIN脚。通过TDI输入与TDO输出,各芯片形成所谓的JTAG-chain。这样一来,通过传输数据,就可以确认芯片各引脚的链接正确与否,此种方法就是传说中的”IC Boundary test”.
但随着技术发展,JTAG也不仅仅只用于IC边界测试。还用于debug、通过JTAG来设置FPGA。JTAG可以通过

  • Parallel (printer) port

  • USB port

  • Ethernet port


来连接PC。最简单的控制是采用·Parallel (printer) port。

一个并行端口可以视为是计算机的一个12位输出以及一个5位输入的端口。当然JTAG只需要3位输出,1位输入即可。

从C语言的角度,控制JTAG很简单。例如控制TCK,代码如下:

[c]

#define lpt_addr 0x378

#define TCK 0x01

&nbsp;

void toggle_TCK()

{

outport(lpt_addr, 0);

outport(lpt_addr, TCK);

outport(lpt_addr, 0);

}

[/c]

jtag

2016-10-21

USB Blaster 驱动安装

给学校借了DE2-70 FPGA开发板来学习。安装USB Blaster驱动很简单,只是我很久没有发表文章了。

install-usb-blaster-1

第一步当然是插上开发板,然后选择驱动目录。

2016-10-04

Matlab中最出名的美女

lena

没错就是Lena Söderberg!这张图来自《1972 Playboy Magazine - The "Lenna" Edition》 It is a picture of Lena Söderberg, a Swedish model, shot by photographer Dwight Hooker.

From wikipedia:
Lenna is the name given to a standard test image which has been in use since 1973. It comprises 512×512 pixels, and was originally cropped from the centerfold of the November 1972 issue of Playboy magazine. It is a picture of Lena Söderberg, a Swedish model, shot by photographer Dwight Hooker. The test image is often used for image processing algorithms (such as compression and denoising) and related scientific publications.

1972年出版playboy,1973年马上就被工程师拿来当测试用。看来作为一名合格的工程师,也要什么都看,包括nudie magazines^_^其中有个小细节,虽然他叫lena,但是playboy却是打印城lenna。我一开始以为是出错了,后来发现原来当年的Playboy真的是这么写的“Lenna”.好在我在一篇文章中找到了解释:
Although her name is spelled “Lena”, Playboy spelled her name as “Lenna” in the magazine. It’s not a typo. It was common practice to anglicize foreign names into something “more English” sounding.

1972 Playboy Magazine - The "Lenna" Edition

此时,就像看到易知难一样,我就想看看现在她是什么样的。比易知难好找多了。The Lenna Story

而且直到1988年,瑞典一家计算机出版社来采访她。她才知道,原来她的照片在计算机领域如此的广泛应用。后来她居住在了瑞典,并且快乐的结婚,生了3个小孩,找了一份工作。

nov72playboy

至于原图,由于担心法律问题。所以请自己看这里。(18禁!)

2016-10-03

Windows C盘目录下eula.*.txt install.exe VC_RED.MSI是什么

remove-eula-windows

C盘目录下莫名多了eula.1028.text , install.res.1028.dll, vc_red.msi 这些文件,能不能删除呢?查查Google。What is eula.1028.text on (c:),具体原因在这里详细说明《VCRedist from VC++ 2008 installs temporary files in root directory》

导致会产生这些临时文件的原因是:
These temporary files are erroneously generated by the installer into the root directory of one of your drives, instead of the temp directory.

2016-10-02

Matlab 图像滤波快速入门


  • Matlab读取图像:imread();

  • Matlab创建滤波器:h = fspecial(type, parameters);

  • Matlab滤波器三维图像:surf(h);

  • Matlab滤波器二维图像:imagesc(h);

  • Matlab图像滤波:imfilter(I,h);


matlab-image-filter

2016-10-01

Computer Vision:棋盘阴影错觉

这是一张经典的计算机视觉入门的图。用来解释计算机视觉的难处再好不过了。

checkershadow_illusion4med

这张图是MIT计算机视觉教授Edward H. Adelson于1995提出的。人眼一眼就能判断出方块b是处于阴影中。但是真的是这样吗?

2016-09-29

解决Matlab imaqhwinfo 找不到设备

最近做点MATLAB computer vision的仿真,用到IMAQ工具箱。但是却无法找到设备。可是webcamlist却可以找到。google一番,发现原来是缺少硬件支持。此文记录我的解决过程。

imaqhwinfo-problem
No Image Acquisition adaptors found.Image acquisition adaptors may be available as downloadable support packages. Open Support Package Installer to install additional vendors.

这是Google查到的解释

2016-09-27

放弃Hexo,重回WP

Hexo唯一缺点就是麻烦!文章插入图片要上传到图库,发表文章要deploy。太麻烦了。这不,今天本来打算发一篇文章的。结果上传图库的时候出现bug。也懒得再折腾。索性趁着奖学金发放,买个便宜主机,彻底放弃Hexo,重回WP怀抱。

管他臃肿不臃肿,对我这只小菜来说,目前来说是好用的。

又是一次搬家,不过这次应该会简单许多了。但是鉴于我已经开学,且事情很多。所以只能在慢慢来了。其实也是为自己的拖延症找借口吧。

文章搬家慢,但是友情链接怎么办?所以先把友情链接处理了。

世界,您好!

欢迎使用WordPress。这是您的第一篇文章。编辑或删除它,然后开始写作吧!

2016-09-02

如何下载Google Drive文件

好不容易在网上找到了重要的程序,却由于是用google drive分享,且文件很大。多次下载尝试,都不能成功。

迅雷下载

好像是迅雷特别对Google Drive的链接进行阻止。反正我即使连上代理,也不能下载。真坑爹。

Google Drive客户端下载

好不容易吧客户端下载下来了,却没法登陆。也没法设置代理。郁闷。

IDM

最后想说用用IDM试看看。
居然可以用,而且速度还很快。
IDM-Google-Drive

2016-09-01

Cadence IC51 下载

网上找个Cadence IC51真不容易。好不容易找到了,就分享出来吧。
附有eetop的安装教程、license。实测可用。
Cadence IC51 Download

留言告诉我你需要,我就会尽快发给你~

2016-08-31

如何理解半导体能带

一直对能带、价带、导带没有一个感性的理解。知道今天在Quora上看到一个回答,瞬间明白了。一张图就能清晰的解释这一切。
energy-gap
能带就是介于导带和价带之间的能量带。
能带就相当于是阻碍。阻碍电子的跃迁。所以用能带的大小来区分导体的导电性。

  • large in case of insulator
  • overlap in case of metal
  • moderate in case of semiconductor

半导体的能带不大不小,提供大于energy gap(>1eV)的能量就能够使电子从价带跃迁到导带。从而具有导电性。这就像一个开关,控制半导体,要么导电,要么绝缘。
How do semiconductors work and what are they used for?

2016-08-30

第一次网赚到账

想当年,为了赚点钱也是相当认真的。加入百度经验回享计划。写点所谓的技术经验,赚点点击费。1年一共是109大洋。上个月申请提现,今天下午终于收到。虽说钱不多,但是还是很高兴。 😄
百度经验

2016-08-19

VMware Centos磁盘扩展

装个软件遇到各种问题,加上最近实在没时间折腾。至今软件都没装好。
现在又遇上了磁盘空间不足的问题。
看我见招拆招! 😱

扩展磁盘容量

disk-extend
中文设置没什么好说的。

分区

GParted
一开始只是简单的认为将sda2分区直接扩展就可了。然而并没有这么简单。
同时这一步骤,要用GParted live CD 进行扩展。否则唯一的主分区是不能够在挂载情况下扩展的。

PS:VMware应该设置EFI启动而非BIOS引导

VMware-EFI

LVM

磁盘扩展,其实是关于LVM的问题。我也是第一次接触LVM。
LVM HOWTO这个网站详细介绍了LVM的各个方面,我看来了觉得很好。

VGdisplay

vgdisplay

LVextend

在man中看到一个lvextend的例子。这个例子正好我需要~哈哈 😊
man lvextend
依葫芦画瓢
lvextend

最后的最后

之做了上面的部分还是不行。一开始我就一直卡在这里。直到最后我看到 xfs_growfs我才知道原来还有最后一步。 😄 我就是在这一步消耗最长的时间的。
sudo xfs_growfs /dev/centos/root
xfs_growfs
最后放一张完结的截图:
finish

2016-08-17

乌云压城,城不摧

最近烦心事特多。

新的开始

我已决定要结束这段感情。
实在是不想再这样下去了,放下也需要勇气。

掀起波澜 🏥

奶奶生病了,是夹层动脉瘤。需要花大笔的钱手术。
没有人可以照顾健忘的爷爷了。
两个家庭微妙的平衡突然间被打破了。
平静的生活不再平静了。
钱、生活、工作,等等,大家都很烦恼。
只能走一步算一步了。

2016-08-07

Cadence IC615 Installscape安装环境

实际上Installscape不用安装,直接运行即可。但是运行时却发现Centos7环境并不是完美适应。
也就是还要在装些其他的软件。不过好在,把补丁补上了,安装器就可以正确运行了。

问题1

/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
bad ELF interpreter
解决办法是:
How to fix /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
yum -y install glibc.i686

问题2

libXext.so.6: cannot open shared object file: No such file or directory
libXext.so.6
解决办法是:
CentOS: error: libXext.so.6: cannot open shared object file: No such file or directory
sudo yum install libXext.i686

问题猜测

两个问题,从问题提示上来猜,基本可以确定他们是同一个原因的。
我想大概是因为在一台64位的虚拟机上要跑一个32位的java的程序吧。❓ ❓
cadence-installscape

VMware虚拟机拖放文件

要做一件事总是那么多的插曲。就像我准备安装cadence ic615一样。各种bug一大堆,然后就是debug。不过这也不错,因为让我有东西写。very9s不至于看上去什么都没有。
废话不多说。开始记录我debug的过程。

VMware虚拟机拖放文件

最小化安装Centos,貌似不能够通过鼠标拖放传输文件。可能是因为vmware-tools没有安装吧。
所以就安装呗~

加载虚拟光驱

在VM的安装目录下有几个.ISO文件。这几个文件就是用来安装vmware-tools的。
导入iso虚拟光驱
导入后,记得Connect上虚拟光驱。
连接虚拟光驱

安装

挂载上虚拟光驱。把虚拟光驱里面的压缩包拷贝出来,解压。
安装程序
解压后,里面有个READ.TXT。看看里面都说了啥?
reading-how-to-install
写的很清楚嘛。😆
只要运行vmware-install.pl就好了。
一切都默认设置

大功告成

嗯,看似简单,其实我弄了有点久。因为在安装后的配置过程中,总是提示我配置gcc path。明明配置正确了,还是提示“无效地址”。找了好久资料,始终没有解决办法。随后索性不管,跳过配置path。没想到居然可以。💖
drag and drop
现在可以开始装ic615咯~

2016-08-06

Centos光驱安装软件

起因

打算自己在虚拟机上安装破解Cadence ic615。所以试着安装个Centos7。最小化安装,然后通过CDROM安装GNOME桌面环境。

修改yum设置

修改 /etc/yum.repos.d/Centos-Media.repo
Centos-Media.repo
设置enabled=1
顺便阅读下注释,写的清清楚楚,如何用CDROM安装软件。

挂载CDROM

挂载CDROM很简单,但是要注意虚拟机设置要连接上CD/DVD设备。
CD/DVD
然后就是挂载命令:
mount /dev/cdrom /media/cdrom
mount-cdrom

安装软件

根据注释的提示,有两种通过CDROM安装软件的命令。

1
2
yum -enablerepo=c7-media [command]
yum -disablerepo=\* --enablerepo=c7-media [command]

install-gnome

2016-07-28

Github被墙,从此代理

难得Hexo要发布一篇文章,发现居然连不上Github!莫非现在连Github都墙了?
github-gfw
嗨~ 💔 只能翻墙了。

Git设置

git config --global http.proxy 127.0.0.1:8087
只能为Git添加上代理了。还好还有GAE。

吐槽双创

这个月有点懒,写没几篇。没有了最初的热情,想写些什么,都只在脑子里想却迟迟没有动手。昨天请了一个礼拜的假,今天逼着自己写点东西。写多少算多少吧。

吐槽双创

这个月帮公司去开了一个关于创业政府补贴的会议。一开始我觉得,政府在这块做到还是不错的。申请流程很简约,并不算麻烦。也挺为创业者考虑的,政府很给力嘛。
后来人事部的告诉我,我们老总准备申请这一批的创新创业补贴。

我:什么?我们公司不是已经申请过了吗?还能再申请?补贴怎么可能重复给?
C:不,是准备申请一家空壳公司,然后拿这家公司去申请补贴。
我:可是政府会派人实地考核的。
C:所以在想办法。
我:这样不好吧,能成吗?
C:老总要啊。整栋楼可以说都在骗经费啊。

现在我懂了 大家都这样,政府怎么可能不知道。但是大家都维持着一种巧妙的默契,这种默契就是:你要补贴,我要政绩。其实也不能完全怪这帮政府人员。因为他们其实也只是政策的执行者。正如某官员在会议上所说:“你们做什么,我们也都看不懂;你们开的设备清单,没一样听过的,但是每样都上万上十万甚至上百万。我们确实不懂。”。他们能做的也就只有实地考查,看看公司是否真的在运行。大概意思说白了也就是说:骗经费可以,但是别太低级了。
吐槽双创。
创新?狗屁! 💩
我们公司:研发部仅靠4个在读研究生支撑。我工资最低,其他最高也就1200。谈创新真是搞笑(PS:没有销售部哦)。
隔壁公司:日常上班,公司几乎是空的,只有2个人在公司里撑门面。
对面公司:我看也好不到哪里。
创业?骗钱吧~
政府的钱应该是锦上添花,而不是雪中送炭。企业应该具有造血能力。但是现在这补贴却被浪费了,也许真正想要创业的,却什么也得不到。


这届双创ZF,等下届上台,看能创出什么。即使创出了什么,也要有一双明慧双眼仔细看清。

2016-07-07

i miss you

突然想念初恋女友。怀念初恋的那段时光,真美好。只是很短暂。😭 昨晚想了好久,发了QQ询问你的近况。我们的聊天好像不能再像之前那样,字字句句充满感情了。有的只是像普通朋友的问候。得知你选上选调生,于是又为自己的未来感到焦虑起来。突然好想听周杰伦的《晴天》

但偏偏 雨渐渐
大到我看你不见
还要多久 我才能在你身边

但偏偏 风渐渐
把距离吹得好远

但故事的最后
你好像还是说了 拜拜
😢

Ubuntu SSR setting

使用electron-ssr客户端 https://github.com/shadowsocksrr/electron-ssr 设置proxy