- 博客(67)
- 资源 (1)
- 收藏
- 关注
原创 简单理解卷积码
卷积码(convolutional code)是信道编码的一种。信道编码被用于物理层,目的是减少因不完美信道造成的误码。卷积码的生成方式是将待传输的信息序列通过线性有限状态移位寄存器。接收方使用最大似然法解码(maximum likelihood decoding)。编码卷积码的编码器如图 1 所示,由 KKK 个能存储 kkk 个比特的 stage 和 nnn 个莫二加法运算器以及一个 n...
2018-11-18 11:21:32
32093
10
原创 两个独立同分布且元素独立同分布的序列相加
问题存在两个相互独立的序列 X=X1,X2,⋯,XnX={X_1,X_2,⋯,X_n } 和 Y=Y1,Y2,⋯,YnY={Y_1,Y_2,⋯,Y_n },若每个序列的各个元素之间相互独立且服从相同分布,序列 Z=X+Y=Z1,Z2,⋯,Zn=X1+Y1,X2+Y2,⋯,Xn+ZnZ=X+Y={Z_1,Z_2,⋯,Z_n }={X_1+Y_1,X_2+Y_2,⋯,X_n+Z_n } 内各个元素是否相
2017-12-26 12:48:25
11498
2
原创 一张图区分常量指针和指针常量
常量指针(const pointer)和指针常量(pointer to const)是 C++ 初学者容易搞混的部分,我发现如何完善文字表述都不如上图痛快。每一列的左边方框代表存放指针的内存,右边代表一段存放变量的内存,笑脸代表变量。
2017-08-19 14:01:36
489
原创 C++ const 与 nonconst 的简单关系
一个 const variable 可以拷贝值给一个 nonconst varible 来初始化,却不能让 nonconst variable reference 绑定:const int ci = 1024;int r1 = ci; // ok!int $r2 = ci; // error!这样的关系看起来比较乱,其实不然。因为 const variable 除了不
2017-08-19 10:49:46
1200
原创 Android Studio 下导入 Vitamio 框架
Vitamio 是一款简洁易用的流媒体播放框架,可以用于手机端直播软件的开发。然而在其官方网站下如何插入框架的介绍对于我这样的小白来说,很难看懂。经过一番摸索和搜索,我最终成功。现在将我的步骤写下来,供有需要的人参考。我的 IDE 环境是 Android Studio 14 ,在挂了 VPN 的情况下导入的。毕竟 Android Studio 集成了 Gradle ,如果不()很难正常配置
2016-01-02 17:16:17
6111
1
原创 向量维数与向量空间维数的区别
最近复习做题发现维数这个概念不难理解,但是一会是列的个数,一会又是行的个数,混乱了。一查书,果然是将概念搞混了。向量的维数和向量空间的维数是不同的,本文的向量是列向量。向量的维数指的向量分量的个数。用大白话来讲就是描述一个向量需要用到好几个元素,有几个元素这个向量就有几维。比如最直观的三维向量,分别用x、y、z描述,所以这个向量就是三维的。比如第一张图。但是向量空间的维数就不同
2015-07-20 11:22:00
42327
6
原创 离散信号端点受影响
离散信号对于点的把握十分重要。对于连续阶跃信号的加减,定义域的确定是十分简单的。比如说:很明显,对于非零区域的确定:这是没有错的,如图所示。 但是在离散时间域就要小心了,注意端点是被处理过的。我们通常习惯性确定离散信号的非零区域为: 其实不对,下面将这两个信号以及两个信号叠加产生的结果展示出来:可见,应该是
2015-06-27 21:56:02
738
原创 分块矩阵求逆不能想当然
分块矩阵给实际运算带来了很大的方便,对于行列数都很大的矩阵,可以将其分割成一个个小块进行计算,减少了运算的繁琐程度。分块矩阵的求逆有两个非常有用的公式,能帮助我们快速得出正确结果:但是是不对的,只能假设逆矩阵,再通过求多元方程组得出逆矩阵的每一位系数。
2015-06-26 09:50:45
7044
原创 斜坡函数有条长长的尾巴
考虑这个信号函数(正半轴)的画图:很容易以为会是这样的:这是错的。这样错在没有充分考虑到斜坡函数对正半轴的影响,它是一条射线,只要没有限定,它可以影响无限远。这里无论是第一、二、三个斜坡信号,都会对第四个的走势产生影响,使其不能按照原样描绘。为了充分展示这一点,这里将信号逐个加上去描绘。用 Matlab 实现的代码非常简单
2015-06-25 19:05:13
3114
原创 离线信号与连续信号伸缩变换的不同
考虑两个连续信号:虽然在时间轴上输入输出有一倍的差,但是物理意义是不一样的。连续信号是信号被拉伸,而离散信号由于本身是在连续时间上的采样,可以理解为被采样的连续信号被拉伸了,但是采样信号还是很死板地在原地采样。
2015-06-24 21:51:51
1631
原创 java (自写)程序包不存在问题解决
初学者在没有 IDE 下第一次运行打包文件的时候会出现这样的情况。这是没有正确放置文件引起的。首先要知道,类A、B 是相互独立的,而不是同 Exam 类放在一起。而后,程序能够运行,互相调用,最重要的不是后缀名为 .java 的文件,而是后缀名为 .class 的文件。这里为了说明各个类之间的关系,我用了一张图表示:由于图上的关系,在A类中需要有打包语句:p
2015-05-21 17:54:32
13453
原创 使用 163 邮箱接收 ASP.NET 用户反馈
这里主要介绍如何正确设置 Web. config 文件以达到接收用户反馈邮件。一般教程里的 Web. config 文件设置不会介绍到国内用的邮箱,而只是介绍默认的配置: 然而如果你使用的是 163 邮箱,这是不成功的,因为 163 邮箱不仅需要配置特定的端口,还要通过 SSL 加密,此时,就需要如下配置:
2015-05-20 09:33:32
3794
原创 阅读代码从 main 开始
前段时间有人拿出一段吕凤翥编著的《Java 语言程序设计》中的程序,说看不懂,很乱,于是我写了一些注释,里面包含了阅读的思路以及顺序,在这里贴一下。我觉得无论是什么语言,都应该从 main 开始,模仿执行代码的顺序阅读,这样才比较好。public class Exam3_6{ //看程序一般从main方法开始看起。所以,跳到第68行。 private int year,month,day
2015-05-19 15:34:15
660
原创 Sublime Text 注释乱码解决
为了日后维护方便,写代码的时候通常需要增加注释,有时候需要增加中文注释,但是编译环境并不能通过。此时就要在 Sublime Text 内进行设置,打开 View ==>> Show Console,或者使用快捷键 Ctrl+~,打开了一个命令行窗口。窗口内容和本人不一样没有关系,只需要根据目前你所用的软件版本输入如下代码(复制黏贴即可):Sublime Text 3:imp
2015-05-13 21:16:44
6468
原创 SerializationException 无法捕捉(catch)
try{ if (CheckChanged()) { CurrenExcuse = new Excuse(random, selectedFolder); UpdateForm(false); }}catch (SerializationException){ MessageBox.Show("You excuse file was invalid.", "Unable to
2015-04-14 10:46:27
762
原创 Enum 权举最好放在类以外
Enum 权举能够灵活存储不同的值,避免代码中充斥大量无法解释的数字。虽然无论放在类体内还是类体外,都能调用,但最好能够放在类体以外,这样调用更加灵活。假设此处有两个 Enum ,分别放置在类体内外,在构造函数中我们传入两个参数调用 Enum 的值。class TestEnum { enum theFirstEnum {
2015-04-06 08:57:42
2524
原创 C# 权举 enum 与数据类型之间的转换
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace Windo
2015-03-24 15:34:24
564
原创 C# 和 Java 中的 foreach
foreach 是一种特殊类型的循环,它会迭代处理一个 List 中的所有元素,并对各元素执行某些代码。在 C# 中,foreach 的语法是:foreach (var item in collection){}在 Java 中,foreach 是 Java 5 的新特征,其语法是:for(元素类型t 元素变量x : 遍历对象obj){ 引用了x的java语
2015-03-24 15:31:39
600
原创 子类对基类数组的引用
设有基类和子类的关系如下,其中 “Exits” 是一个数组,如果要从子类 Room 的实例中引用,方式如下:diningRoom = new Room();diningRoom.Exits = new Location[] { livingRoom, kitchen };看起来像是 diningRoom 对象的类变成了 Location 的基类。其实不然,这里实例化的是一个数组,这个
2015-03-22 17:39:46
1212
原创 C# 接口修饰符“public”对该项无效
定义一个接口,创建一个类使用它,有一个常见的错误会导致编译不通过。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace WindowsFormsApplication1{ interface IClown { public
2015-03-18 21:03:20
16035
1
原创 数值类型转换根据大小排列顺序
两个不同类型的数值相加并非都不可以,而是要注意相互之间的大小关系。比如要实现 int 和 float 相加再转换成 float ,首先我们要看看这两种类型的大小关系。int 可以存储 -2147483648~2147483647 之间的任何整数;float 可以存储+(-)1.5*10*(-45)~+(-)3.4*10^(38)之间的任何数(有 7 位有效数字)。这样,二者的大小比
2015-02-14 15:43:27
821
原创 Linux 中 exit 的意思
一开始看书,退出登陆的账号的时候会使用一个命令语句:exit当时以为这就是退出登录的意思。但其实不是,这条语句的意思是退出当前的 shell,之所以退出账号的时候能够用这条命令,是因为一般来说,登陆之后运行的是主 shell ,退出这个 shell 就没有别的 shell 了,只好退出当前登录账户。例如在更变有效群组的时候,例如账户 hahaha 的群组有两个: one 、two,
2015-01-23 20:09:12
1985
原创 使用 HttpURLConnection 获取不到网络数据
HttpURLConnection 通常在新开的一个线程内进行活动,有一个小细节需要重视,否则获不到网络数据。new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub HttpURLConnection connection = n
2015-01-23 15:48:07
2151
原创 Fragment 创建不了, XML 文件报错
碎片化 Fragment 已经在 Android 开发中越来越受到重视,能够匹配不同屏幕,经常的做法是配置小屏幕设备进入的 Activity 之后的 XML 文件,使其加载 Fragment ,这样,在 Fragment 里面写的代码,无论是大屏幕还是小屏幕能用到相同的功能。
2015-01-22 16:07:52
1053
原创 Linux下永久保存别名
有时候使用 Linux ,会觉得常用的命令非常繁琐,容易出错,或比如在 root 权限下删除文件,输入“rm”就行了,容易误删。此时可以通过输入变量代换语句:alias rm='rm -i'既可以使得每次删除文件之前都会询问是否真的要删除,给予一个思路缓冲的时间。但是一旦退出或者重启机器之后,保存的变量命令不见了,难道需要每次开机都输入一次变量代换语句?不必的。首先通过 f
2014-12-09 09:07:10
2948
原创 Linux 中不能与根目录分开的目录
以下目录不能与根目录分开,放到不同的 partition 中。/etc:配置文件/bin:重要执行档/dev:所需要的装置档案/lib:执行档所需的函式库与核心所需的模块/sbin:重要的系统文件
2014-10-27 17:51:04
937
原创 Linux 目录操作相关指令(简)
. 代表此层目录.. 代表上一层目录- 代表前一个工作目录~ 代表『当前用户身份』所在目录~account 代表 account 这个目录的家目录( account 是这个账号名称)cd:变换目录pwd:显示当前目录mkdir:建立一个新目录rmdir:删除一个空的目录ls:档案与目录的检视cp:复制档案或目录rm:移除档案或目录mv:移动档
2014-10-27 17:49:30
468
原创 Linux 目录操作指令(简)
. 代表此层目录.. 代表上一层目录- 代表前一个工作目录~ 代表『当前用户身份』所在目录~account 代表 account 这个目录的家目录( account 是这个账号名称)cd:变换目录pwd:显示当前目录mkdir:建立一个新目录rmdir:删除一个空的目录ls:档案与目录的检视cp:复制档案或目录rm:移除档案或目录mv:移动档
2014-10-27 17:48:43
457
原创 Linux 目录相关操作指令(简)
. 代表此层目录.. 代表上一层目录- 代表前一个工作目录~ 代表『当前用户身份』所在目录~account 代表 account 这个目录的家目录( account 是这个账号名称)cd:变换目录pwd:显示当前目录mkdir:建立一个新目录rmdir:删除一个空的目录ls:档案与目录的检视cp:复制档案或目录rm:移除档案或目录mv:移动档
2014-10-27 17:47:14
446
原创 ListView -- MarsChen Android 开发教程学习笔记
ListView 的基本使用 1、创建Activity 继承自ListActivity,两个布局文件。 一个是常用的main.xml ,线性布局,嵌入listView ,用Android 内置ID:“android:list”,并且包含两个命令行。 另一个是控制list 的布局文件user.xml,在一个线性布局文件中嵌套两个textView 。线性布局是横向排列,两个textView 代表每一
2014-09-03 11:19:16
600
原创 Spinner -- MarsChen Android 开发教程学习笔记
Spinner 的基本使用方法 Spinner 是一个下拉菜单。 1、在布局文件中声明,即在布局文件中添加标签。 2、在Strings.xml 中添加添加标签以添加数组: 每一创建一个数组,在R 中会创建响应的ID。 3、创建一个数据适配器ArrayAdapter: ArrayAdapter adpter = ArrayAdapter.creatFromResource(this, R
2014-09-03 11:19:14
734
原创 Service 初步 -- MarsChen Android 开发教程学习笔记
Service 是什么 是Android 非常重要的组件,不可见,通常用来处理耗时比较长的操作。可以使用Service 更新ContentProvider,发送Intent 以及启动系统的通知等等。Service 不是什么 Service 不是一个单独的进程。 Service 不是一个线程。 一个进程可以包含多个线程,进程占用系统资源,线程占用进程资源。 Service 生命周期 新建一个类,继承
2014-09-03 11:19:11
805
原创 Socket 编程 -- MarsChen Android 教程学习笔记
什么是Socket 通信链的句柄,用于描述IP 地址和接口。应用程序通常通过Socket 向网络发出请求或者应答网络请求。 Socket 基本通信模型 使用基于TCP 协议的Socket 【服务器】 建立Socket ,建立一个新的线程,在线程中创建一个ServerSocket 对象,设置监听指定端口号。 ServerSocket serverSocket = new ServerSocket(
2014-09-03 11:19:09
641
原创 WiFi 网络操作(一)-- MarsChen Android 开发教程学习笔记
什么是WiFi WiFi 是一种无线联网技术。获取WiFi 网卡的状态 WiFi 网卡都是由一系列整形常量来表示的,存储在WifiManager 类中。 WIFI_STATE_DISABLED:WiFi 网卡不可用; WIFI_STATE_DISABLING:WiFi 正在关闭; WIFI_STATE_ENABLED:WiFi 网卡可用; WIFI_STATE_ENABLING:WiFi 网卡正在
2014-09-03 11:19:07
741
原创 广播机制 -- MarsChen Android 开发教程学习笔记
广播机制 Broadcaset Receiver Broadcast Receiver 是一个广播接收器,当有事件出发的时候系统会响所有广播接收器发送广播,符合该广播条件的接收器就会启动,开发者在相应函数中输入代码即可。 Intent intent = new Intent(); intent.setAction(Intent.ACTION_EDIT); TestActivity.thi
2014-09-03 11:19:04
556
原创 XML 文件解析 -- MarsChen Android 开发教程学习笔记
什么是SAX 既是一种接口,也指一个软件包。作为接口,SAX 是时间驱动型XML 解析的一个标准接口。Simple API for XML. 是一种解析方式,逐行扫描,一边扫描一边解析,可以随时停止。缺点是操作起来比较复杂,向XML 中添加或删除内容比较困难。SAX 基本原理 逐行扫描,一边扫描一边解析,可以随时停止。 解析文档的会产生一系列元素:开始解析文件【start document】,遇到
2014-09-03 11:19:02
444
原创 Java 中的I/O (三)-- MarsChen Java4Android 教程学习笔记
处理流的使用 处理流:BufferedReader ,全称“字符输入处理流”,常用readLine() 方法,一次可以读一行,返回字符串。将FileReader 对象传入BufferedReader ,执行readLine() 方法就可以执行一行。 fileReader=new FileReader("【地址】"); bufferedReader = new BufferedReader(file
2014-09-03 11:19:00
707
Enum 放置问题说明代码
2015-04-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人