1. 引言 在所有通信中,信号都会通过一个介质(称为信道),并且信号会失真,或者在信号通过信道时会向信号中添加各种噪声.正确解码接收到的信号而没有太多错误的方法是从接收到的信号中消除信道施加的失真和噪声.为此,第一步是弄清信号经过的信道的特性.表征信道的技术/过程称为信道估计(channel estimation).此过程将说明如下. 信道估计有很多不同的方法,但是基本概念是相似的.该过程如下进行. i)设置一个数学模型,以使用"信道"矩阵将"发射信号"和"…
在无线通信系统中,系统的性能主要受到无线信道的制约.基站和接收机之间的传播路径复杂多变,从简单的视距传输到受障碍物反射.折射.散射影响的传播.在无线传输环境中,接收信号会存在多径时延,时间选择性衰落和频域偏移,多径时延会带来符号串扰(ISI),可以通过插入保护间隔来减少:而由于时间选择性衰落和频率偏移带来的子载波干扰(ICI),除了依靠时频偏补偿来纠正外,还需要对信道进行估计,进一步进行补偿,即需要进行频域均衡和时域均衡.因此,信号估计性能的好坏直接影响接收信号的解调结果.这里对均衡技术就不进行…
在无线通信系统中,系统的性能主要受到无线信道的制约.基站和接收机之间的传播路径复杂多变,从简单的视距传输到受障碍物反射.折射.散射影响的传播.在无线传输环境中,接收信号会存在多径时延,时间选择性衰落和频域偏移,多径时延会带来符号串扰(ISI),可以通过插入保护间隔来减少:而由于时间选择性衰落和频率偏移带来的子载波干扰(ICI),除了依靠时频偏补偿来纠正外,还需要对信道进行估计,进一步进行补偿,即需要进行频域均衡和时域均衡.因此,信号估计性能的好坏直接影响接收信号的解调结果.这里对均衡技术就不进行…
目录 论文来源 摘要 基本概念 1.时变信道 2.粒子滤波 3.高斯粒子滤波 4.辅助粒子滤波 比较 借鉴之处 论文来源 International Conference on Communication and Signal Processing, April 4-6, 2019, India,Gargi Rajam, P. Sandeeptha and Sudheesh P 摘要 无线通信系统是从一个设备到另一个设备的传输介质.由于多径和多普勒频移,无误差传播变得不可能被实现.信道估计作为一…
最近在整理JVM相关的PPT,把CMS算法又过了一遍,每次阅读源码都能多了解一点,继续坚持. 什么是CMS CMS全称 ConcurrentMarkSweep,是一款并发的.使用标记-清除算法的垃圾回收器, 如果老年代使用CMS垃圾回收器,需要添加虚拟机参数-"XX:+UseConcMarkSweepGC". 使用场景: GC过程短暂停,适合对时延要求较高的服务,用户线程不允许长时间的停顿. 缺点: 服务长时间运行,造成严重的内存碎片化. 另外,算法实现比较复杂(如果也算缺点的话) 实…
图解 H5 与 WebView 数据通信原理 Android / iOS / RN / Flutter H5 接受数据 自定义 schema H5 调用原生 API 拍照,扫码 原生 调用 H5 API jsbridge refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!…
前面几篇博客主要说了光场相机,光场相机由于能够记录相机内部整个光场,可以实现重聚焦(模糊线索)和不同视角的变换(视差线索),同时也可以利用这个特性进行深度估计(Depth Estimation). 先说一下利用重聚焦得到的不同聚焦平面图像获取深度图(模糊线索 ,defocus),其实这个原理非常简单. 1. 以聚焦范围为0.2F-2F为例,alpha∈(0.2,2),取Depth Resolution=256, 那么步长就为(2-0.2)/256,我们通过重聚焦算法可以获取得到这个范围内的256…
光场相机由于能够捕获相机内部光线的强度和方向而得到整个光场,可以实现重聚焦(refocus)和视角变换等功能.进而可以进行深度估计获取深度图,前面说过利用重聚焦的图像进行深度估计,今天说一下利用不同视角的图像进行深度估计. 仍然是以Lytro Illum为例 由于每一个微透镜后面的15*15个像素能够记录来自主镜头的225条光线信息,因此取每一个微透镜后面同一位置的像素可以得到一个视角下的图像,遍历15*15个像素,就能够得到225个不同视角下的图像.这些图像之间视角上又偏移,即视差,可以使用匹…
ChannelFactory<TChannel> 类 一个创建不同类型通道的工厂,客户端使用这些通道将消息发送到不同配置的服务终结点. 命名空间: System.ServiceModel 语法 public class ChannelFactory<TChannel> : ChannelFactory, IChannelFactory<TChannel>, IChannelFactory, ICommunicationObject 类型参数 TChannel 由通道工厂…
原形链是JS难点之一,而且很多书都喜欢用一大堆的文字解释给你听什么什么是原型链,就算有图配上讲解,有的图也是点到为止,很难让人不产生疑惑. 我们先来看一段程序,友情提示sublimeText看更爽: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edg…
“哥,你又来啦?”“是啊,我随便逛逛.”“别介啊……给我20分钟,成不?”“5分钟吧,我很忙的.”“不行,20分钟,不然我真很难跟你讲清楚.”“好吧……”“行,那进来吧,咱好好聊聊” 一.我们讲什么? 我们讲两个东西:1.WebGL背后的工作原理是什么?2.以Three.js为例,讲述框架在背后扮演什么样的角色? 二.我们为什么要了解原理? 我们假定你对WebGL已经有一定了解,或者用Three.js做过了一些东西,这个时候,你可能碰到了这样一些问题:1.很多东西还是做不出来,甚至没有任何思路:…
阅读本文仅需五分钟,golang协程调度原理,小白也能看懂,超实用. 什么是协程 对于进程.线程,都是有内核进行调度,有CPU时间片的概念,进行抢占式调度.协程,又称微线程,纤程.英文名Coroutine.协程的调用有点类似子程序,如程序A调用了子程序B,子程序B调用了子程序C,当子程序C结束了返回子程序B继续执行之后的逻辑,当子程序B运行结束了返回程序A,直到程序A运行结束.但是和子程序相比,协程有挂起的概念,协程可以挂起跳转执行其他协程,合适的时机再跳转回来. 线程调度原理 N:1模型,多个…
点击阅读原文 目前为止,我接触单片机已有不少时日,从选择元器件.原理图.PCB.电路硬件调试.软件开发也算小有心得 .单片机软件开发里面第一步当属下载程序了,如果这一步都有问题,那么后面的一切便无从谈起,本人当初刚接触单片机时,对于下载电路方法及原理也是一头雾水.好在随着经验的积累以及自己的努力探求,现在对此问题算是有了点点自己的理解.故今天在此针对常用51单片机下载程序问题做下详解,以求新手们少走弯路.当然,有误之处还望各位指教! 原理:单片机的TXD.RXD是TTL电平,所以你得万变不离其宗…
MongoDB的集群部署方案中有三类角色:实际数据存储结点.配置文件存储结点和路由接入结点. 连接的客户端直接与路由结点相连,从配置结点上查询数据,根据查询结果到实际的存储结点上查询和存储数据.MongoDB的部署方案有单机部署.复本集(主备)部署.分片部署.复本集与分片混合部署. 混合的部署方式如图: 混合部署方式下向MongoDB写数据的流程如图: 混合部署方式下读MongoDB里的数据流程如图: 对于副本集,又有主和从两种角色,写数据和读数据也是不同,写数据的过程是只写到主结点中,由主结点…
信道(Channel) 信道(Channel)可以被认为是协程之间通信的管道.数据可以从信道的一端发送并在另一端接收. 默认为同步模式,需要发送和接收配对.否则会被阻塞,直到另外的信道准备好后被唤醒. 信道分为无缓冲信道和有缓冲信道无缓冲信道:信道是同步的,接收前没有能力保存任何值.这种类型的信道只有发送和接收同时准备好,才能进行下次信道的操作,否则会导致阻塞.有缓冲信道:信道是异步的,是一种在被创建时就被开辟了能存储一个或者多个值的信道.这种类型并不要求发送与接收同时进行.只要缓冲区有未使用空…
BusterWood.Channels是一个在C#上实现的信道的开源库.通过使用这个类库,我们可以在C#语言中实现类似golang和goroutine的信道编程方式.在这里我们介绍3个简单的信道的例子.    通过信道发送消息(https://gobyexample.com/channels):  static void SimpleMessage() { var channel = new Channel<String>(); Task.Run(async () => { await…
如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人. Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据. 以下是我入门的学习笔记. Go语言的goroutines.信道和死锁 goroutine Go语言中有个概念叫做goroutine, 这类似我们熟知的线程,但是更轻. 以下的程序,我们串行地去执行两次loop函数: func loop() { for i := 0; i < 10; i++ { f…
如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人. Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据. 以下是我入门的学习笔记. Go语言的goroutines.信道和死锁 goroutine Go语言中有个概念叫做goroutine, 这类似我们熟知的线程,但是更轻. 以下的程序,我们串行地去执行两次loop函数: func loop() { for i := 0; i < 10; i++ { f…
转眼间三月都已经过去一半,一直找不到有什么可以写的,一直想等自己把LTE仿真平台搭好后,再以连载的形式记录下来.但是,后来一想,我必须先做好充分的铺垫,在这过程中也遇到了很多问题,及时留下点什么,也是好的.即便以后回过头来再看这些文章,可能会有些许惊讶,惊讶于当时的无知或是稚嫩.不得不说,时间真的是一把杀猪刀,猪没少杀,更可怕的是扼杀了许多人的梦想.今天没有去实验室,我觉得在忙了一周后,应该停下来歇歇,有时候的驻足观望或许是为了更好的前行. 言归正传,今天想记录的是自己在仿真中遇到的一个问题,那…
如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人. Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据. 以下是我入门的学习笔记. Go语言的goroutines.信道和死锁 goroutine Go语言中有个概念叫做goroutine, 这类似我们熟知的线程,但是更轻. 以下的程序,我们串行地去执行两次loop函数: func loop() { for i := 0; i < 10; i++ { f…
把一个loop放在一个goroutine里跑,我们可以使用关键字go来定义并启动一个goroutine: package main import "fmt" func loop() { for i := 0; i < 10; i++ { fmt.Printf("%d ", i) } } func main() { go loop() // 启动一个goroutine loop() } 输出: 0 1 2 3 4 5 6 7 8 9 可是为什么只输出了一趟呢?明…
论文地址:https://arxiv.org/abs/1707.06168 代码地址:https://github.com/yihui-he/channel-pruning 采用方法 这篇文章主要讲诉了采用裁剪信道(channel pruning)的方法实现深度网络的加速.主要方法有两点: (1)LASSO regression based channel selection. (2)least square reconstruction. 实现效果 VGG-16实现5x的加速,0.3%误差增加…
我们知道无论是生产者还是消费者,都需要和 RabbitMQ Broker 建立连接,这个连接就是一条 TCP 连接,也就是 Connection. 一旦 TCP 连接建立起来,客户端紧接着可以创建一个 AMQP 信道(Channel),每个信道都会被指派一个唯一的 ID. 信道是建立在 Connection 之上的虚拟连接,RabbitMQ 处理的每条 AMQP 指令都是通过信道完成的. 我们完全可以使用 Connection 就能完成信道的工作,为什么还要引入信道呢? 试想这样一个场景,一个应…
在上一篇教程中,我们讨论了如何使用协程实现并发.在这篇教程中,我们将讨论信道以及如何使用信道实现协程间通信. 什么是信道 信道(Channel)可以被认为是协程之间通信的管道.与水流从管道的一端流向另一端一样,数据可以从信道的一端发送并在另一端接收. 声明信道 每个信道都有一个与之关联的类型.此类型是允许信道传输的数据类型,除此类型外不能通过信道传输其他类型. chan T 是一个 T 类型的信道. 信道的 0 值为 nil.值为 nil 的信道变量没有任何用处,我们需要通过内置函数 make …
1 为什么会有信道 协程(goroutine)算是Go的一大新特性,也正是这个大杀器让Go为很多路人驻足欣赏,让信徒们为之欢呼津津乐道. 协程的使用也很简单,在Go中使用关键字“go“后面跟上要执行的函数即表示新启动一个协程中执行功能代码. func main() { go test() fmt.Println("it is the main goroutine") time.Sleep(time.Second * 1) } func test() { fmt.Println(&quo…
Go语言中有个概念叫做goroutine, 这类似我们熟知的线程,但是更轻. 以下的程序,我们串行地去执行两次loop函数: package main import "fmt" func main() { loop() loop() } func loop() { for i := 0; i < 10; i++ { fmt.Printf("%d ", i) } } 毫无疑问,输出会是这样的: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6…
NB-IOT Downlink OFDM参数 1.下行基于OFDMA, FF点数=128,基带采样速率1.92MHz,子载波间距15kHz,有效带宽180kHz=1PRB OFDMA: 正交频分多址,OFDMA是OFDM技术的演进,将OFDM和FDMA技术结合.在利用OFDM对信道进行父载波化后,在部分子载波上加载传输数据的传输技术.OFDM是一种调制方式:OFDMA是一种多址接入技术,用户通过OFDMA共享频带资源,接入系统.OFDMA又分为子信道(Subchannel)OFDMA和跳频OFD…
[计算机网络]-介质访问子层-概述 介质访问控制子层功能 解决信道争用的协议,即用于多路访问信道上确定下一个使用者的协议 是数据链路层协议的一部分 介质访问控制子层位置 位于数据链路层的底部! 信道分配方式 静态分配 1.频分多路复用(FDM) 原理:如果总共N个用户,则整个带宽分成N等分,每个用户分配一份(见下图) 优点:适合于用户较少,数目基本固定,且各用户的通信量都较大的情况 缺点:无法灵活地适应站点数及其通信量的变化 2.时分多路复用(TDM) 原理:每个用户被静态地分配到N分之一个时槽…
并发 Go 是并发式语言,而不是并行式语言.在讨论 Go 如何处理并发之前,我们必须理解何为并发,以及并发与并行的区别. 并发是什么? 并发是指立即处理多个任务的能力.一个CPU的情况下<意指看上去像是同时运行,其中有io的阻塞态等待的时间慢而已. 例子1: 我们可以想象一个人正在跑步.假如在他晨跑时,鞋带突然松了.于是他停下来,系一下鞋带,接下来继续跑.这个例子就是典型的并发.这个人能够一下搞定跑步和系鞋带两件事,即立即处理多个任务. 例子2:        顺序执行:你吃饭吃到一半,电话来了…