[移动通讯]【无线感知-P1】[从菲涅尔区模型到CSI模型-5]【The Riemann Mapping Theorem】

news2024/11/25 15:40:01

前言:

             mobius变换保角性证明一直困扰我很久.当看完黎曼映射定理以及结合MIT的数学证明

             深刻的感触到数学之美,“知之深,情之切”。

             黎曼映射(The Riemann Mapping)定理是复分析最深刻的定理之一,也是复变函数几何理论最基本、最重要的定理. 黎曼映射是 Mobius变换 的核心定义之一

      
 

     本节我们重点是搞清楚这个问题:

       

      比如可以把一个随机的曲线映射成一个单位圆盘,直观上很难去想象.

         

目录:  

  1.    黎曼映射定理
  2.    黎曼映射函数表示
  3.     黎曼映射例子
  4.     利用黎曼映射定理 证明 Mobius 变换的保角性
  5.    黎曼映射应用

一  黎曼映射定理

     简单的说黎曼映射定理是存在性定理,存在一个共形映射把单连通域映射到圆盘.

1.1 Petra-Bonfert-Tayloy 是这么介绍

 1.2 维基百科里面的简介

        单连通[区]域(simply connected domain)是1993年公布的数学名词。

单连通域是直观上没有洞的平面区域的推广,即区域内任何一条简单闭曲线的内部没有不属于D的点。


二 黎曼映射函数表示(Mobius 变换)

    我们这里举一个例子:

    因为存在共形映射,则 假设单联通区域\Omega中三个点z_0=0,z_1=1,z_2=\infty 通过mobius 变换w_1=1,w_2=i,w_3=-1

  

    这个函数如何求解?

    

   

# -*- coding: utf-8 -*-
"""
Created on Sun Apr 28 15:48:31 2024

@author: chengxf2
"""

import numpy as np
import random
import matplotlib.pyplot as plt

def moubius_transformation(z):
    i = complex(0, 1)
    numerator =-z+i #分子
    denominator=z+i #分母
    
    result = (numerator/denominator)
    
    return result

    
    
def drawImage(z, w,bound):
    
    fig, (ax1, ax2) = plt.subplots(2)
    
    
    ax1.set_xlim(-bound,bound)
    ax1.set_ylim(-bound,bound)
    
    ax2.set_xlim(-1.5,1.5)
    ax2.set_ylim(-1.5,1.5)
    #print(z)
    # 第一个子图
    #plt.subplot(2, 1, 1)  # 表示2行1列的子图布局中的第1个位置
    z_x=  z[:, 0]
    z_y = z[:, 1]
    ax1.scatter(z_x,z_y,c='b')
    #plt.plot(x, y_sin)
    ax1.title.set_text("z")
    
    # 第一个子图
    plt.subplot(2, 1, 2)  # 表示2行1列的子图布局中的第1个位置
    w_x=  w[:, 0]
    w_y = w[:, 1]
    #print(w_x)
    ax2.scatter(w_x,w_y,c='r')
    ax2.title.set_text("w")

    # 显示图像
    plt.show()

def getData():
    N = int(1e5)
    ZList =[]
    WList =[]
    
    bound =1e3
    for i in range(N):
        # 随机生成复数的实部和虚部
        real_part = random.uniform(-bound, bound) # 实部在[-10, 10]范围内
        imaginary_part = random.uniform(0, bound)  # 虚部在[-10, 10]范围内
        # 生成的复数
        z = complex(real_part, imaginary_part)
        w = moubius_transformation(z)
        ZList.append([real_part,imaginary_part])
        WList.append([w.real, w.imag])
        
    drawImage(np.array(ZList), np.array(WList),bound)
        
getData()
        

  三   黎曼映射例子

            基于上面的mobius transformation

           

2.1 上半平面映射

i.e    \Omega=\begin{Bmatrix} z: Im(z) >0 \end{Bmatrix}  为上半平面,我们发现通过Mobius transformation 函数f变换

后可以得到一个单位圆盘.

 1   通过0,1,\infty 直线(real axis)映射成了一个单位圆

  2  原来直线导向为 z_1->z_2->z_3, 对应单位圆上的导向 w_1->w_2->w_3

  我们可以带入z=-1

f(z=-1)=\frac{1+i}{-1+i}=-i
 

3.2 第一象限的Mobius 变换

使用上面的mobius 映射 f(z)=\frac{-z+i}{z+i}

但是约束条件发生变化,\Omega被限制在第一象限内.则经过mobius 变化后对应为一个半圆.

   设Q 为第一象限,其复平面被约束再正实坐实轴以及正虚轴,对应的映射为一个半圆.

3.3  我们可以通过下面几个变换还原出原来的集合形状

                  


四  利用黎曼映射定理 证明 Mobius 变换的保角性

 我们需要证明经过Mobius transformation 后,两张几何图片的夹角相同

  \alpha =\beta

    证明:

              1: 以两条曲线的交点z_0  为中心,分别做两条曲线的切线c_1,c_2 ,

    则c_1,c_2之间的夹角就是原来曲线的夹角

              

            2: 以交点z_0 为圆心,半径为r 做一个圆跟两条切线相交于 z_1,z_2

                

                      设

                           Z_1-Z_0= r e^{j\theta_1}

                           Z_2-Z_0= r e^{j\theta_2}

                     则

          3   角度计算

          

    则  

      

    4  利用黎曼映射定理,存在一个映射 one-to-one confromal mapping

\


五  黎曼映射的应用

              流体流动可以在上半平面中很好地建模。
了解另一个区域的类似流体流动,将这个流从上半平面映射到,使用黎曼映射的期望区域   。

    我们做6G智能感知的时候,基于CSI RESnel 建模可以理解在一个有噪声的域中建模

映射到一个无噪声的域中,在无噪声的环境中分析模型,然后通过Mobius 反演,平移,膨胀

等操作还原出原域的几何形状.

一些其它课程例子

单连通区域_百度百科

https://www.youtube.com/watch?v=48aerHs9wL0&t=1165s

黎曼映射定理_百度百科

共形映射_百度百科

保角变换_百度百科

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1633728.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

帮助文档更新了

原先的帮助文档比较简单,大家可能对大部分功能都比较陌生, 最近对帮助文档进行了一轮改版,整个帮助文档更加详细了,对新用户更加友好,这里给大家介绍一下最新的帮助中心 大家进入官网(zyjj.cc)的…

【再探】设计模式— 工厂方法、单例及原型模式

创建型设计模式是处理对象创建的设计模式,主要特点是“将对象的创建与业务代码分离”。一共有五种:工厂方法模式、单例模式、原型模式、抽象工厂模式及建造者模式。 1 单例模式 需求: 在整个系统中只需要一个实例。管理共享资源&#xff0…

看见游戏出海赛道的新机会

目前游戏出海的主要地区和国家都已经非常成熟,原有的发行方式方法也基本标配化,除了产品玩法的差异化,多元化渠道及获量新方式是提升竞争力的有效手段 4月24日,在深圳南山区,VERYCLOUD睿鸿股份与罗斯基、热力引擎共同主…

基于Spring Boot的外卖点餐系统设计与实现

基于Spring Boot的外卖点餐系统设计与实现 开发语言:Java框架:springbootJDK版本:JDK1.8数据库工具:Navicat11开发软件:eclipse/myeclipse/idea 系统部分展示 网站首页界面图,通过进入网站可以查看首页、…

新时代教师口才演讲稿(3篇)

新时代教师口才演讲稿(3篇) 新时代教师口才演讲稿(一) 尊敬的各位领导、亲爱的同事们: 大家好! 今天,我站在这里,深感荣幸与激动。在这个新时代里,教师的口才不仅仅是传…

后端java部署教程,docker配置解读(linux用docker部署新手入门)

文件夹结构 然后解读几个启动脚本 首先dockerFile # 使用anapsix/alpine-java:8_server-jre_unlimited作为基础镜像 FROM anapsix/alpine-java:8_server-jre_unlimited# 设置维护者信息 MAINTAINER adminxiaohuaikeji.com# 设置时区为Asia/Shanghai RUN ln -sf /usr/share/z…

组装nas的 神器 n100 ,改天组装一个!

N100的CPU性能虽然不是很强,性能接近4代i5移动端,但功耗很低,TDP只有6W,而且有个24单元的核显,解码视频能力不差。N100和Intel的i系列CPU是不同厂商生产的,并且它们的设计和架构也有所不同,因此…

Vitis HLS 学习笔记--Schedule Viewer 调度查看器

目录 1. 简介 2. Schedule Viewer详解 2.1 视图说明 2.1.1 Operation\Control Step 2.1.2 周期关系图 2.1.3 Schedule Viewer 菜单栏 2.1.4 属性视图 2.2 内容说明 2.2.1 实参(b)解释 2.2.2 实参(a)解释 2.2.3 变量&am…

# Windows 环境变量 Path 显示样式更改

Windows 环境变量 Path 显示样式更改 1、传统 Path 环境变量显示: ---》键盘上按【WIN I 】打开系统【设置】 ---》依次点击 ---》【系统】 ---》【系统信息】 ---》【高级系统设置】 ---》【高级】 ---》【环境变量】。或者依次点击: ---》右键 【我…

利用kimi等大模型进行运维参数解析和调优

在运维时,经常遇到很多参数,有些参数不知道意义,知道意义的也有些不知道合理参考值是多少。利用kimi等大模型来当老司机,轻松解决运维难题。 例如在运维hive参数时,有些不知道作用,提示次如下 你的角色是…

iOS上的UI是如何渲染出来的? 深入浅出UIKit渲染

我们在代码中写的View、Image等组件,最终是如何一步步渲染到屏幕上的呢?触摸、动画等是如何实现的?我们可以利用这些知识做哪些优化呢? 本文先从屏幕物理层原理出发,一步步介绍渲染流程,然后介绍iOS的UIKi…

go idea 不同区域的字体行距设置

1、代码区域的设置: 2、左侧project导航栏的设置: 3、问:go idea 底部的窗口,比如run、terminal、debug、version control等的设置:

pytorch 实现语义分割 PSPNet

语意分割是指一张图片上包含多个物体,通过语义分割可以识别物体分类、物体名称、像素识别的任务。和物体检测不同,他不会将物体框出来,而是根据像素的归属把物体标注出来。PSPNet 的输入是一张图片,例如300500,那么输出…

全志ARM-修改开发板内核启动日志

修改开发板内核日志输出级别: 默认输出级别为1,需要用超级用户权限修改 sudo vi /boot/orangepiEvn.txt 把第一行内核启动输出权限改为7,第二行把输出方式该为“serial”串口输出

QT:小项目:登录界面 (下一个连接数据库)

一、效果图 登录后&#xff1a; 二、项目工程结构 三、登录界面UI设计 四主界面 四、源码设计 login.h #ifndef LOGIN_H #define LOGIN_H#include <QDialog>namespace Ui { class login; }class login : public QDialog {Q_OBJECTpublic:explicit login(QWidge…

区块链技术下的DApp与电商:融合创新,开启商业新纪元

区块链技术的蓬勃发展正引领着一种新型应用程序的崛起——去中心化应用程序&#xff08;DApp&#xff09;。DApp并非传统的中心化应用&#xff0c;它构建于去中心化网络之上&#xff0c;融合了智能合约与前端用户界面&#xff0c;为用户提供了全新的交互体验。智能合约&#xf…

Leetcode—1146. 快照数组【中等】(ranges::lower_bound、std::prev函数)

2024每日刷题&#xff08;121&#xff09; Leetcode—1146. 快照数组 思路 题意很绕&#xff0c;解释一下&#xff1a; 拍一次照&#xff0c;复制出一个新数组&#xff0c;set 都在这个新的上面进行get 目标是得到第 id 个数组的特定位置的值 实现代码 class SnapshotArray…

ROS 2边学边练(39)-- 调试tf2

前言 这节还是围绕tf2来进行&#xff0c;只不过针对调试相关&#xff0c;把之前有过一面之缘的问题再次拿出来重点说明一下&#xff0c;此过程中我们会碰到之前几期中认识但还不怎么熟络的朋友比如tf2_echo、tf2_monitor、view_frames。 动动手 我们会利用一个有不少问题的例子…

Python-100-Days: Day06 Functions and Modules

函数的作用 编程大师Martin Fowler先生曾经说过&#xff1a;“代码有很多种坏味道&#xff0c;重复是最坏的一种&#xff01;”&#xff0c;要写出高质量的代码首先要解决的就是重复代码的问题。可以将特定的功能封装到一个称之为“函数”的功能模块中&#xff0c;在需要的时候…

JavaScript代码挑战#4

// 编程挑战 #4 /* 朱莉亚和凯特仍在研究狗&#xff0c;这次她们研究的是狗是否吃得太多或太少。 吃得太多意味着狗当前的食物份量比推荐份量大&#xff0c;吃得太少则相反。 吃得适量意味着狗当前的食物份量在推荐份量的正负 10% 的范围内&#xff08;参见提示&#xff09;。 …