【统计信号处理kay 第七章 两道习题python仿真】
统计信号处理 第七章 两道习题python仿真
- 前言
- 一、蒙特卡洛计算法
- 二、7.13题
- 1.题目内容
- 2.流程图
- 3.示例代码
- 4.实验结果
- 理论分析
- 三、7.14题
- 1.题目内容
- 2.参考代码
- 3.理论分析
前言
本次仿真参考教材Kay Fundamentals Of Statistical Signal Processing - Estimation Theory第七章7.13和7.14题
学艺不精,希望大家多多包含,提供合理的指点
一、蒙特卡洛计算法
内容摘抄自书中7A的附录,介绍了一种近似估计量pdf的方式,作为后续仿真的参考方法
二、7.13题
1.题目内容
关于WGN中的DC电平信号,书中有详细的讨论。此外,这里涉及到样本均值的分布问题,如何求样本均值的期望和方差。这里我们无需使用7A提供的fortran程序,使用python进行仿真
2.流程图
3.示例代码
代码如下:
import numpy as np
import matplotlib.pyplot as plt
import random
########################################
# name:w_gen
# function:生成正态分布的w向量
# parameter:
# N:样本长度
# mu:均值
# sigma:标准差
# return: w向量
def w_gen(N, mu, sigma):w = []for i in range(N):w.append(random.gauss(mu, sigma))return w#########################################
# name:guass
# function:生成正态分布的pdf
# parameter:
# n:坐标轴向量或列表
# mu:均值
# sigma2:方差
# return: 正态分布pdf向量
def guass(n, mu, sigma2):return (1 / np.sqrt(2 * np.pi * sigma2)) * np.exp((-(n - mu) ** 2) / (2 * sigma2))if __name__ == '__main__':# #########################################数据定义##################################N = 50 # 样本长度mu = 0 # w(n)均值sigma2 = 0.1 # w(n)方差A = 1 # AM = 5000 # 蒙特卡洛计算次数max_x = 1.2 # 坐标轴上界min_x = 0.8 # 坐标轴下界n = np.arange(min_x, max_x, (max_x - min_x) / M) # 理论pdf坐标轴生成A_ba = [] # 样本均值列表pdf_label = [] # 近似pdf坐标轴x_mean = 0# #########################################生成理论pdf###############################pdf = guass(n, A, sigma2 / N)# #########################################蒙特卡洛计算###############################for j in range(M): # 循环M次# 生成样本x向量x = w_gen(N, mu, np.sqrt(sigma2)) + A * np.ones(N)# 计算样本均值x_mean = np.mean(x)# 加入样本均值列表A_ba.append(x_mean)# ##########################################计算样本均值的期望和方差####################EA_ba = np.mean(A_ba)varA_ba = 0# 样本方差计算for i in range(M):varA_ba = varA_ba + ((A_ba[i] - EA_ba) ** 2)varA_ba /= (M - 1)# ###########################################直方图数据统计############################ bins为range=[min_x,max_x]内的区间数量,根据附录7A,注意控制区间数和M使得近似pdf达到收敛bins = 200# A_ba_pdf为直方图数据,bin_edges为直方图每个区间上下边界的坐标,因此bin_edges.size==bins+1A_ba_pdf, bin_edges = np.histogram(A_ba, bins=bins, range=[min_x, max_x])A_ba_pdf = A_ba_pdf.astype(np.float64)# ############################################近似pdf###############################for i in range(len(bin_edges) - 1):deltax = (bin_edges[i + 1] - bin_edges[i])# 附录7A提到的PDF近似方法A_ba_pdf[i] = (A_ba_pdf[i] / M) / deltax# 坐标取区间的中点pdf_label.append((bin_edges[i + 1] + bin_edges[i]) / 2)# ############################################对比图################################plt.scatter(pdf_label, A_ba_pdf, label='PDF of sample mean', s=10, c='r')plt.plot(n, pdf, label='PDF of normal')plt.xlabel('n')plt.ylabel('p')plt.title('M=' + str(M) + ' E=' + str(EA_ba) + ' var=' + str(varA_ba))plt.legend()plt.show()
4.实验结果
理论分析
摘抄自我的实验报告
三、7.14题
1.题目内容
本题的重点是分析估计量的PDF,作为初学者很难对均值除以标准差这样形式的估计量的PDF有概念,虽然我无法从计算费雪信息,去直接证明它的渐近性,但是可以联想到考研数学里的chi分布和t分布,从而确定理论PDF,能够证明N足够大时服从标准正态分布。
2.参考代码
import numpy as np
import matplotlib.pyplot as plt
import random########################################
# name:w_gen
# function:生成正态分布的w向量
# parameter:
# N:样本长度
# mu:均值
# sigma:标准差
# return: w向量
def w_gen(N, mu, sigma):w = []for j in range(N):w.append(random.gauss(mu, sigma))return w#########################################
# name:guass
# function:生成正态分布的pdf
# parameter:
# n:坐标轴向量或列表
# mu:均值
# sigma2:方差
# return: 正态分布pdf向量
def guass(n, mu, sigma2):return (1 / np.sqrt(2 * np.pi * sigma2)) * np.exp((-(n - mu) ** 2) / (2 * sigma2))if __name__ == '__main__':# #########################################数据定义##################################N = 10 # 样本长度M = 5000 # 蒙特卡洛计算次数mu = 0 # w(n)均值sigma2 = 1 # 方差max_x = 5 # 坐标轴上界min_x = -5 # 坐标轴下界n = np.arange(min_x, max_x, (max_x - min_x) / M) # 理论pdf坐标轴生成A_ba = [] # 估计量列表pdf = np.empty(n.size) # 理论pdf数据列表pdf_label = [] # 近似pdf坐标轴sigma2_ba = 0 # 估计方差# #####################################生成理论pdf标准高斯#############################pdf = guass(n, 0, 1)# #########################################蒙特卡洛计算###############################for i in range(M):# 生成样本x向量x = w_gen(N, mu, sigma2)# 计算样本均值x_mean = np.mean(x)# 计算统计量for j in range(N):sigma2_ba = sigma2_ba + ((x[j] - x_mean) ** 2)sigma2_ba = sigma2_ba / N# 统计量存入A_ba.append(x_mean * np.sqrt(N) / np.sqrt(sigma2_ba))# ##########################################计算统计量的均值和方差#####################EA_ba = np.mean(A_ba)varA_ba = 0# 样本方差计算for i in range(M):varA_ba = varA_ba + ((A_ba[i] - EA_ba) ** 2)varA_ba /= (M - 1)# ###########################################直方图数据统计############################ bins为range=[min_x,max_x]内的区间数量,根据附录7A,注意控制区间数和M使得近似pdf达到收敛bins = 200A_ba_pdf, bin_edges = np.histogram(A_ba, bins=bins, range=[min_x, max_x])A_ba_pdf = A_ba_pdf.astype(np.float64)# ############################################近似pdf###############################for i in range(len(bin_edges) - 1):deltax = (bin_edges[i + 1] - bin_edges[i])# 附录7A提到的PDF近似方法A_ba_pdf[i] = A_ba_pdf[i] / M / deltax# 坐标取区间的中点pdf_label.append((bin_edges[i + 1] + bin_edges[i]) / 2)plt.plot(pdf_label, A_ba_pdf, label='PDF of estimate')plt.plot(n, pdf,label='PDF of normal')plt.xlabel('n')plt.ylabel('p')plt.title('N=' + str(N) + ' E=' + str(EA_ba) + ' var=' + str(varA_ba))plt.legend()plt.show()
3.理论分析
【统计信号处理kay 第七章 两道习题python仿真】相关推荐
- 第七章 输入与输出 ——python导引编译之八
第七章 输入与输出 --python导引编译之八 标题7.输入与输出 Input and Output 有一些表达一个程序的输出方式:数据可以打印在一个人皆可读的形式之中,或者,为未来使用写到一个文件 ...
- 计算机组成原理(第三版)唐朔飞-第七章指令系统-课后习题
目录 第七章 1. 什么叫机器指令?什么叫指令系统?为什么说指令系统与机器的主要功能以及硬件结构之间存在着密切的关系? 2. 什么叫寻址方式?为什么要学习寻址方式? 3. 什么是指令字长.机器字长和存 ...
- mysql第七章课后答案_第七章 数据库访问习题
第七章 数据库访问 一.选择题 1.下面哪一项不是JDBC的工作任务?( ) A)与数据库建立连接 B)操作数据库,处理数据库返回的结果 C)在网页中生成表格 D)向数据库管理系统发送SQL语句 2. ...
- 计算机网络:第七章概述课后习题及答案(精细版)
1. 计算机网络中的安全威胁都有哪些,需要哪些安全服务. 计算机网络所面临的安全威胁主要来自两大类攻击即被动攻击和主动攻击. 这两类攻击中四种最基本的形式是: (1) 截获(interception) ...
- 计量经济学及Stata应用 陈强 第七章异方差习题7.3
7.3恩格尔曲线是否存在异方差?数据集food.dta包含有关每周食物开支(food_exp)与每周收入(income)的40个观测值. (1)将food_exp与income的散点图与线性拟合图画在 ...
- C语言程序设计第五版谭浩强著 第七章部分课后习题答案
#include<stdio.h> int gcd(int x,int y) {int z;for(;;){z=x%y;x=y;y=z;if(y==0)break;}return x; } ...
- 统计学习方法李航版第十章部分课后习题python答案
如题. 习题10.1-10.2 python代码 # -*- coding: utf-8 -*- """ Created on Sun Oct 20 12:46:42 2 ...
- 算法竞赛入门经典(第二版)-刘汝佳-第六章 数据结构基础 习题(12/14)
文章目录 说明 习题 习6-1 UVA 673 平衡的括号 习6-2 UVA 712 S - 树 习6-3 UVA 536 二叉树重建 习6-4 UVA 439 骑士的移动 习6-5 UVA 1600 ...
- 现代数字信号处理课后作业【第七章】IIR巴特沃兹FIR数字滤波器设计
文章目录 现代数字信号处理课后作业[第七章] 7-1 要求设计一个线性相位数字滤波器(矩形窗).Hd(ejw)={e−jwαw1⩽∣w∣⩽w20其它H_d(e^{jw})=\begin{cases} ...
最新文章
- MySQL启动关闭添加到 /etc/init.d/mysqld
- 使用友盟的社会化组件,发新浪微博的 error:redirect_uri_mismatch的解决方法
- iOS.访问通讯录.02.写入联系人
- struct timeval结构体 以及 gettimeofday()函数
- 2017.8.16 喵星球上的点名 思考记录
- Spring依赖处理过程源码分析
- 输出空格隔开换行_VB编程(六)数据输出 Print 及相关方法
- 个人生活的量化分析(三):考研英语初探
- Linux添加虚拟网卡的多种方法
- CANOPEN 学习(一) CANFestival 字典工具 环境搭建
- Windows多用户远程桌面-采用RDP Wrapper Library支持10.0.18363.900、10.0.18362.836、10.0.19041.789之前所有的Windows版本
- 新旧身份证合法性验证及相互转换算法(一):关于中国居民身份证的常识
- Google可能将退出中国市场
- Android开发跳坑之路
- 2019西安交通大学计算机复试,西安交通大学2019考研复试分数线多少分 各科基本分数线一览...
- FMI飞马网IT书籍赠送:参加获奖就送智能技术/软件开发/Web技术/数据科学计算机科学/网络技术/IT文化与互联网
- 【夜读】幸福的人,都拥有这5种好心态
- 圣诞节用java画一棵圣诞树给你的女友
- opencv中使用摄像头录制视频
- 会计专硕论文选题案例怎么找?
热门文章
- AI智能安防平台EasyCVR视频融合云服务平台云端录像展示优化
- 旺店通·旗舰奇门和金蝶云星空接口打通对接实战
- Ubuntu16.04如何将桌面上左边任务栏移到屏幕下方
- 《精神论》物质与精神的辩证关系及产品范畴的有关阐述
- 浏览器兼容性问题与浏览器的内核及渲染模式
- c语言弱符号与函数指针,浅谈C语言中的强符号、弱符号、强引用和弱引用【转】...
- MyEclipse中文乱码解决方案
- 安卓微信添加扫一扫到桌面方法步骤
- 我的世界java如何快速拿东西_《我的世界》八个基本快捷操作,只会三个的萌新请自觉对号入座!...
- Excel快捷键大全(2023最新版总结)