Loading [MathJax]/jax/element/mml/optable/BasicLatin.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >连续信源的熵与RD

连续信源的熵与RD

作者头像
timerring
发布于 2023-04-21 13:31:42
发布于 2023-04-21 13:31:42
70466
代码可运行
举报
文章被收录于专栏:TechBlogTechBlog
运行总次数:6
代码可运行

连续信源的熵

由于连续信源信号幅度取值无限性, 要精确表示这样的信号, 理论上需要无穷个bit才行。即连续信源的绝对熵为

仿照离散信源熵的定义, 有连续信源的熵(相对熵)定义为

H(X)=f(x)log(f(x))dx

其中

f(x)

为连续信源信号

X

的概率密度函数。连续信源的 (相对) 熵可正可负。

R(D) 的定义域

率失真的定义域问题就是在信源和失真函数已知的情况下,讨论允许平均失真度

¯D

的最小和最大取值问题

由于平均失真度

¯D

是非负实数

d(xi,yj)

的数学期望, 因此

¯D

也是非负的实数,即

¯D0

, 故

¯D

的下界是 0 。允许平均失真度能否达到其下限值0, 与单个符号的失真函数有关。

信源的最小平均失真度:

只有当失真矩阵的每一行至少有一个

元素时,信源的平均失真度才能达到下限值

, 即信源不允许任何失真时,信息率至少应等于信源输出的平均信息量一信息熵。

对于连续信源

因为实际信道总是有干扰,其容量有限,要无失真地传送连续信息是不可能的。

当允许有一定失真时,

将为有限值, 传送才是可能的。

的定义域为

  • 通常
  • 当 D ≥ D max  D \geq D_{\text {max }} D≥Dmax ​ 时,

时,

由于

是非负函数,而

是在约束条件下的

的最小值, 所以

也是一个非负函数, 它的下限值是零。

:是定义域的上限。

是满足 R(D)=0 时所有的平均失真度中的最小值。

由于

的充要条件是 X 与 Y 统计独立, 即:

例: 设输入输出符号表为

, 输入概率分布

, 失真矩阵

解:失真矩阵的每一行至少有一个 0 元素时,

例: 设输入输出符号表为

, 输入概率分布

, 失真矩阵

解:

参考文献:

  1. Proakis, John G., et al. Communication systems engineering. Vol. 2. New Jersey: Prentice Hall, 1994.
  2. Proakis, John G., et al. SOLUTIONS MANUAL Communication Systems Engineering. Vol. 2. New Jersey: Prentice Hall, 1994.
  3. 周炯槃. 通信原理(第3版)[M]. 北京:北京邮电大学出版社, 2008.
  4. 樊昌信, 曹丽娜. 通信原理(第7版) [M]. 北京:国防工业出版社, 2012.

本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:https://github.com/timerring/information-theory 】

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
6 条评论
热度
最新
非技术人员看了一下午,也没研究明白……不会使用。
非技术人员看了一下午,也没研究明白……不会使用。
55点赞举报
不好意思,逻辑是自动化工具模拟投递,代码应该需要更新了
不好意思,逻辑是自动化工具模拟投递,代码应该需要更新了
回复回复点赞举报
就在此刻,我还在看你写的这篇文章,下载了“pycharm、Python、chromedriver”这几个工具,弄懂了“Selenium ”是干啥的,但具体操作还是卡壳的,如你所说大概是需要更新,那我就暂且不看了,谢谢你
就在此刻,我还在看你写的这篇文章,下载了“pycharm、Python、chromedriver”这几个工具,弄懂了“Selenium ”是干啥的,但具体操作还是卡壳的,如你所说大概是需要更新,那我就暂且不看了,谢谢你
回复回复点赞举报
查看全部5条回复
推荐阅读
编辑精选文章
换一批
[Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、鼠标操作)
Selenium是一款用于测试Web应用程序的经典工具,它直接运行在浏览器中,仿佛真正的用户在操作浏览器一样,主要用于网站自动化测试、网站模拟登陆、自动操作键盘和鼠标、测试浏览器兼容性、测试网站功能等,同时也可以用来制作简易的网络爬虫。
Eastmount
2021/12/02
5.2K0
[Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、鼠标操作)
selenium-携程酒店评论
最近好像对这方面需求比较高,总有人问我爬过携程没,我寻思着拿selenium也没太大难度吧,晚上就做了个demo。
李玺
2021/11/22
8240
selenium-携程酒店评论
selenium自动化测试报告_selenium自动化测试断言
注意:driver.close() ,当前关闭的是主窗口,只有完成页面切换才可以关闭当前新的页面
全栈程序员站长
2022/11/15
2.6K0
selenium自动化测试报告_selenium自动化测试断言
Python爬虫利器Selenium从入门到进阶
selenium是最广泛使用的开源Web UI自动化测试套件之一,它所支持的语言包括C++、Java、Perl、PHP、Python和Ruby,在数据抓取方面也是一把利器,能够解决大部分网页的反爬措施,当然它也并非是万能的,一个比较明显的一点就在于是它速度比较慢,如果每天数据采集的量并不是很高,倒是可以使用这个框架。
用户6888863
2021/12/10
1.8K0
Python爬虫利器Selenium从入门到进阶
(二)selenium的实际运用
上一篇我们已经知道怎么简单使用selenium了,那么我们就从这篇博客来动手爬取网站吧。
全栈程序员站长
2021/05/19
6650
Python爬虫(二十一)_Selenium与PhantomJS
本章将介绍使用Selenium和PhantomJS两种工具用来加载动态数据,更多内容请参考:Python学习指南 Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动化操作,不同是Selenium可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。 Selenium可以根据我们的指令,让浏览器自动加载页面,获取需要的页面,甚至页面截屏,或
用户1174963
2018/01/17
2.8K0
Python爬虫(二十一)_Selenium与PhantomJS
Python Selenium库的使用「建议收藏」
Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。
全栈程序员站长
2022/07/29
4.5K0
Python Selenium库的使用「建议收藏」
python爬虫入门(五)Selenium模拟用户操作
爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider) 之间恢宏壮阔的斗争... 小莫想要某站上所有的电影,写了标准的爬虫(基于HttpClient库),不断地遍历某站的电影列表页面,根据 Html 分析电影名字存进自己的数据库。 这个站点的运维小黎发现某个时间段请求量陡增,分析日志发现都是 IP(xxx.xxx.xxx.xxx)这个用户,并且 user-agent 还是 Python-urllib/2.7 ,基于这两点判断非人类后直接在服务器上封杀。
zhang_derek
2018/04/11
2.6K0
python爬虫入门(五)Selenium模拟用户操作
用Selenium来爬取数据?真挺简单的!
于是Selenium就应运而生了,它可以算的上是自动化测试框架中的佼佼者,因为它解决了大多数用来爬取页面的模块的一个永远的痛,那就是Ajax异步加载 。今天将给大家详解如何用Selenium爬取数据,并最后附上一个真实的案例。
快学Python
2021/08/09
4.9K0
爬虫最终杀手锏 — PhantomJS 详解(附案例)
Selenium: 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。Selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。但是我们有时候需要让它内嵌在代码中运行,所以我们可以用一个叫 Phantomjs 的工具代替真实的浏览器。
全栈程序员站长
2022/09/06
2.4K0
七、Selenium与phantomJS----------动态页面模拟点击、网站模拟登录 每天一个小实例1(动态页面模拟点击,并爬取你想搜索的职位信息) 每天一个小实例2(模拟网站登录)我用的是
每天一个小实例1(动态页面模拟点击,并爬取你想搜索的职位信息) 1 from selenium import webdriver 2 from bs4 import BeautifulSoup 3 4 # 调用环境变量指定的PhantomJS浏览器创建浏览器对象 5 driver = webdriver.PhantomJS() 6 7 #访问的网址,我这里是登录的boss直聘 8 driver.get('https://www.zhipin.com/') 9 10 #模拟在搜索框输入
酱紫安
2018/04/16
2.4K0
七、Selenium与phantomJS----------动态页面模拟点击、网站模拟登录
		每天一个小实例1(动态页面模拟点击,并爬取你想搜索的职位信息) 每天一个小实例2(模拟网站登录)我用的是
Selenium元素定位
find_element_by_id() find_element_by_name() find_element_by_class_name() find_element_by_tag_name() find_element_by_link_text() find_element_by_partial_link_text() find_element_by_xpath() find_element_by_css_selector() 在这里将对各种元素定位方式统一使用百度首页进行示例,详细操作步骤有以下内容: 1.打开浏览器,进入百度首页(www.baidu.com); 2.百度页面输入关键字 www.testclass.cn 进行搜索; 3.关闭浏览器; 首先,通过前端工具(火狐浏览器的Firebug)或者直接按F12进入开发者模式查看具体前端代码:
Altumn
2019/10/21
1.2K0
Selenium元素定位
selenium使用
请注意,本文编写于 1727 天前,最后修改于 996 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/17
1.5K0
selenium使用
python selenium定位元素
查找元素: find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_text find_element_by_partial_link_text find_element_by_tag_name find_element_by_class_name find_element_by_css_selector 查找多个元素: find_elements_by_name find_elements_by_xpath find_elements_by_link_text find_elements_by_partial_link_text find_elements_by_tag_name find_elements_by_class_name find_elements_by_css_selector
用户5760343
2022/05/13
1.8K0
爬虫杀手锏-PhantomJS(附案列网站模拟登录豆瓣网)
Selenium: 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。Selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。但是我们有时候需要让它内嵌在代码中运行,所以我们可以用一个叫 PhantomJS 的工具代替真实的浏览器。
一墨编程学习
2018/12/14
1.4K0
actionchains 的用法_actions怎么才能使用
from selenium.webdriver.common.action_chains import ActionChains
全栈程序员站长
2022/08/03
9940
selenium模拟国航滑块验证码
临时起意,看到了中国国际航空公司的官网,想试着采集下航班信息,发现官网是有不少难度的,操作也比较麻烦。
李玺
2021/11/22
1.3K0
selenium模拟国航滑块验证码
FreeBuf官网发布《简易Python Selenium爬虫实现歌曲免费下载》
主要思路就是爬取播放页里的播放源文件的url,程序可以读取用户输入并返回歌单,,,因为在线网站包含大量js,requests就显得很无奈,又懒得手动解析js,于是寄出selenium大杀器。 selnium是一款很强大的浏览器自动化测试框架,直接运行在浏览器端,模拟用户操作,目前selenium支持包括IE,Firefox,Chrome等主流浏览器及PhantomJS之类的无头浏览器,selenium+phantomjs也是现在很火的一个爬虫框架。 代码不长,做的有些简陋,以后可以加个GUI
奶糖味的代言
2018/04/11
1.4K0
FreeBuf官网发布《简易Python Selenium爬虫实现歌曲免费下载》
Python-selenium进阶操作
drag_and_drop(element,target) 把某个元素从一个位置拖拽到目标地址
py3study
2020/01/07
8690
自动化-Selenium 3-常用API(Python版)
ActionChains类提供的鼠标事件常用方法(perform()执行所有ActionChains中存储的行为):
wangmcn
2022/07/22
1.5K0
自动化-Selenium 3-常用API(Python版)
推荐阅读
相关推荐
[Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、鼠标操作)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档