精华内容
下载资源
问答
  • 为大家贡献个复数版的Caffe,个人肥了很大劲才下载到的。里面有复数卷积层,复数全连接层,复数池化层,复数sigmoid层,复数幅度层,复数反卷积层。亲测可用。
  • 转载本文需注明(转自:互联网大数据处理技术与应用(IntBigData)公众号) abs() 求一个数的绝对值,如果是复数,则求其幅度。 abs(-1.2)=1.2, abs(1+1j)=1.414。 all() 如果所有的值均为True,则返回True,否则返回...

    本公众号的推送以互联网大数据技术为主,涉及大数据采集、存储、分析挖掘的模型算法、隐私等技术问题,其特色为原创性、技术性。推送过的文章:

    群里来了聊天机器人以后....

    大数据的数学基础

    辟谣数据分析与谣言特征

    网络舆情(互联网大数据):传染事件处置中不容忽视的一面镜子

    Python采集豆瓣图书评论

    ...

    本文整理了Python3.X的内置函数,以及使用的简单样例。更完整的说明可以参见help()。转载本文需注明(转自:互联网大数据处理技术与应用(IntBigData)公众号)

    758325adde324e810142307b481217cc.png

    abs()

    求一个数的绝对值,如果是复数,则求其幅度。

    abs(-1.2)=1.2, abs(1+1j)=1.414。

    all()

    如果所有的值均为True,则返回True,否则返回False。

    all([1,2,3,4])=True, all([1,2,3,0])=False.

    any()

    只要有一个值均为True,就返回True,否则返回False。

    any([1,2,3,4])=True, any([1,2,3,0])=True, any([0,0,"",0])=False.

    ascii()

    返回一个可打印的对象字符串方式表示。如果是非ascii字符就会输出 \x,\u 或 \U 等字符来表示。

    ascii("China")="'China'",ascii("中国")="'\\u4e2d\\u56fd'".

    bin()

    将整数 x 转换为前缀为“0b”的二进制字符串。

    bin(9)='0b1001'

    bool()

    将 x 转换为布尔值(True 或 False)。

    bytearray()

    返回一个新的字节数组(bytes)对象,数组里的元素是可以被修改的,并且元素的取值范围为 [0, 255]。

    bytes()

    返回一个新的字节数组(bytes)对象,数组里的元素是不可修改的,并且元素的取值范围为 [0, 255]。

    callable()

    判断一个对象 object 是否可以被调用。

    chr()

    返回对应的 Unicode 字符,常用于根据ASCII码值获得对应的ASCII字符。

    chr(67)='C', ord("C")=67.

    classmethod()

    指定一个类的方法为类方法

    compile()

    将 source 编译为代码或者AST对象

    complex()

    返回一个值为 real + imag*j 的复数,或者把字符串或数字转化为复数

    complex(1,2),complex("1+2j"), =(1+2j).

    delattr()

    删除对象 object 中名为 name 的属性

    dict()

    字典类 dict 的构造函数

    dir()

    输出对象的方法列表

    divmod()

    计算两个数值相除的商(不大于浮点除法的最大整数)和余数

    divmod(10,3)=(3, 1),divmod(-10,3)=(-4, 2)

    enumerate()

    把可迭代对象转换为枚举对象

    eval()

    执行一个用字符串表示的合法表达式,并返回结果。

    eval("12/4-(2+1)*2")=-3.0

    eval("3 if 5>2 else 9") =3

    exec()

    执行字符串或complie方法编译过的字符串,没有返回值。

    filter()

    过滤器,常用,

    float()

    把一个字符串或整数转换为浮点数。

    format()

    格式化。

    frozenset()

    构建一个set对象,其元素不可变。

    getattr()

    获取对象的属性。

    globals()

    返回一个描述当前全局变量的字典。

    hasattr()

    判断对象是否含有某个属性或者方法。

    hash()

    获得对象的哈希值,可用于字典查找中的快速对比。

    hash(120)=120

    hash("abc")=-5036203339912023360

    hash("abd")=1850457280482688170

    hash("大数据")=-5861814326566069867

    help()

    获得帮助信息。

    hex()

    将一个整数转换成为相应十六进制的串,0x开始。

    id()

    获得一个对象标识( “identity”)。

    input()

    提示信息,并接收键盘输入。

    int()

    返回一个数或字符串数对应的整数,如果没有参数,返回0.

    isinstance()

    判断指定对象是否是指定类的实例。

    issubclass()

    判断是否为子类关系。

    iter()

    返回一个迭代器对象(iterator)。

    len()

    计算长度,参数必须是一个序列类型,包括string, bytes, tuple, list, range,dictionary, set, or frozen set。

    list()

    转换成为列表。

    locals()

    获得当前局部变量。

    map()

    映射函数,接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

    max()

    返回最大值,支持多数值输入或迭代器

    max(1,2,3,4),max([1,2,3,4])

    memoryview()

    直接去内存找目标。

    min()

    返回最小值,同时max

    next()

    从迭代器中获得下一个值。

    object()

    构建一个对象。

    oct()

    把一个整数转换成为用“0o”开始的八进制字符串。

    open()

    打开文件,支持r,w,x,a,b,t,+,U模式。

    ord()

    chr()的逆函数。

    pow()

    x**y

    pow(2,3)=8, pow(-2,3)=-8

    pow(2,3,3)=2, pow(-2,3,3)=1 (求余数,同divmod)

    print()

    输出函数,支持格式化输出,%字符(d,s,f,c,),格式化的语法和C语言一致。

    print(x,y)

    print("x=%d,y=%d"%(x,y))

    print("x=",x)

    property()

    返回类的property属性。

    range()

    生成一个表示范围的对象。可以指定range(start, stop[, step])。

    repr()

    返回一个对象的可打印的字符串。

    reversed()

    获得序列的逆序。

    list(reversed(list(range(2,6))))=[5, 4, 3, 2]

    round()

    对浮点数进行四舍五入求值,保留指定位数的小数。对于浮点数求四舍五入有一个陷阱(官方文档说不是bug),有些四舍五入结果不像预期那样,比如round(2.675, 2) 的结果是2.67 而不是预期的 2.68,是因为浮点数在存储的时候因为位数有限,实际存储的值和显示的值有一定误差。

    round(4.56)=5,round(4.56,1)=4.6

    set()

    构建新的集合对象。

    setattr()

    与 getattr()对应。

    slice()

    切片函数,可以指定开始、步距和结束。返回一个切片slice对象,用于切片操作,可迭代对象可以使用该对象进行切片操作。

    sorted()

    对可迭代对象进行排序,可以指定一个依次作用于每个元素的key函数,并说明排序的顺序(升序、降序)。

    sorted([4,6,209,1,5])=[1, 4, 5, 6, 209]

    sorted([4,6,209,1,5],reverse=True)=[209, 6, 5, 4, 1]

    staticmethod()

    将一个方法转换成为静态方法。

    str()

    返回一个对象的str类型,可以指定字符串编码格式encoding,默认为'utf-8',

    sum()

    计算可迭代对象中指定范围元素的和,同时可以指定累加的初始值。

    sum([3,4,1,7])=15, sum([3,4,1,7],20)=35

    super()

    调用父类中的方法

    tuple()

    返回一个元组对象,不可变的list

    type()

    返回obj的数据类型。

    vars()

    返回__dict__属性的值。

    zip()

    创建一个迭代器,结果为俩个Iterable中各元素从开始位置开始的映射关系。

    list(zip(['a','b','c','d'],[1,2,3,4]))=[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

    拓展阅读

    相关的大数据技术拓展阅读可以参考作者编著的《互联网大数据处理技术与应用》专著(清华大学出版社,2017),同名公众号,专注于大数据技术的相关科学和工程知识传播,同时也为读者提供一些拓展阅读材料。欢迎选用本书做大数据相关专业的教材,有相关教学资源共享。

    《互联网大数据处理技术与应用》的相关教学资源

    学位论文格式和内容自查60问

    Python的是是非非

    一段python化解教师期末成绩处理难题

    f5e7fe903d63176db832d28acf5f661d.png

    点击阅读原文链接,查看图书详情信息(目录、引言、评论)。

    展开全文
  • 复函数的可导性 复变函数按照是否可导,分为全纯函数holomothic和nonholomophic,判断条件为Cauchy-Riemann方程。... 复数的矩阵表示形式为z[..., 2],最后维度的2个值分别是实部和虚部。 例如函数 y=z.z*的实现如下:

    复函数的可导性

    复变函数按照是否可导,分为全纯函数holomothic和nonholomophic,判断条件为Cauchy-Riemann方程。

    对于不可导的nonholomophic函数:

    Wirtinger算子

    采用Wirtinger算子来计算反向传播。

    Wirtinger算子的思路是,将任何复变函数f,看做f(z,z*),求导数就是对z和共轭z*分别求导:

    236db412017b88d9e5a877fd0ac9cb7e.png


    其中:

    f54ef2324791f6ebeffb18d62235d3f9.png


    z=x + jy。

    而全纯函数f(z),当且仅当df/dz*=0。

    参考1,2,3


    Pytorch实现

    损失函数梯度

    损失函数J的梯度为:

    1c063ccadd1ade2fe5f1597cdeeb787e.png

    且由于J为实数,因此:

    e88ab77d6921252234442caefacd35e7.png

    综上,算法流程如下:

    1) 全纯函数y=f(w):
    由于dy/dw*=0,由推导可知,梯度与实数域结果一样,无需额外实现
    2)非全纯函数y=f(w,w*):
    a, 求得g1 = dy/dw,g2 = dy/dw*。
    b, 拿到上层backward回来的梯度,也就是grad_output
    c, 求得本节点的梯度 += grad_output.g1* + grad_output*.g2

    具体实现

    pytorch自动求导机制可以通过继承torch.autograd.Function来扩展求导算法。由上可知,只需要扩展非全纯函数即可。

    复数的矩阵表示形式为z[..., 2],最后维度的2个值分别是实部和虚部。

    例如函数 y=z.z*的实现如下:

    415563746b35c9bf57f5f7764ebd5b45.png
    展开全文
  • 0. 载波的产生 1. 载波的本质是固定频率的正弦或余弦波 2. 正弦与余弦的向量叠加 4. 虚数的本质是旋转 4. 双载波调制的本质是复数

    目录

    第一章 是什么是时域电信号

    1.1 根据信号的随机性:可以分为确定信号和随机信号;

    1.2.  根据信号的连续性:可以分为连续时间信号和离散信号;

    1.3.  根据信号的周期性:可分为周期信号和非周期信号

    第2章  载波信号产生

    2.1 晶体震荡器,载波信号的产生

    2.2 频率波形

    2.3 载波的时域波形

    第3章  圆与三角函数的变化规律

    3.1  圆

    3.2  圆周的匀速运动

    3.3 圆的角度匀速旋转运动

    3.4 圆与三角函数

    3.5. 三角函数的常见运算

    第4章 复数

    4.1 自然数:小学一年级

    4.2 负数与整数:初中数学

    4.3 小数与实数

    4.4 虚数与复数

    第5章 单载波幅度调制

    5.1 单载波幅度调制的模型

    5.2 单载波幅度调制的数学表达

    5.3 单载波幅度调制的时域波形

    5.4 单载波幅度调制的频域波形

    5.5  单载波幅度调制信号的复数表达式

    6. IQ双载波幅度调制

    6.1 IQ双载波幅度调制的模型

    6.2  IQ调制的实数表达

    6.3 双载波幅度调制的本质是单载波相位调制

    6.3  IQ调制的复数表达



    第一章 是什么是时域电信号

    电信号:是指随着时间而变化的电压或电流,在数学描述上可将它表示为时间的函数,并可画出其波形,称为电信号。

    电信号的形式是多种多样的,可以从不同的角度进行分类。

    1.1 根据信号的随机性:可以分为确定信号和随机信号;

    (1) 确定信号

    是指可以用明确的数学关系或者图表描述的信号。若电信号被表示为一确定的时间函数,对于指定的某一时刻,可以确定一相应的函数值,这种信号被称为确定性信号。

    确定信号是时间的某种函数,规律,如线性函数,指数函数,对数函数,sin函数,cos函数等等,

    确定函数,有一个显著的特征:在特定的函数规律下,可以算出任意时间点t时信号的幅度值。

     

    (2) 随机信号:

    信号的幅度与时间没有明确的关系对应关系,但服从一定统计规律的信号,称为不确定信号,又称为随机信号。

    随机信号的幅度与时间没有对应的规律,给定一个任意时间,无法预知或推测出信号的幅度值。


    1.2.  根据信号的连续性:可以分为连续时间信号离散信号

    在电子线路中将信号分为模拟信号数字信号

    (1) 连续信号:

    在整个连续时间范围内都有数值的信号,是时间连续信号或连续时间信号(continuous time signal),简称连续信号。

    (2) 离散信号:

    是在连续信号采样得到的信号。离散信号是一个序列,即其自变量是“离散”的。这个序列的每一个值都可以被看作是连续信号的一个采样。离散信号,在时间轴上是不连续的的信号。


    1.3.  根据信号的周期性:可分为周期信号和非周期信号

    (1) 非周期信号:

    是电信号瞬时幅值不随随时间变化而重复变化的信号。

     

    (2) 周期信号:

    是周期信号瞬时幅值随时间重复变化的信号。

    x(t)=x(t+kT),k=1,2......

    式中t表示时间,T表示周期。

    周线信号的特征:

    • 幅度的变化与时间的变化,有一个确定的规律,这个规律就是函数。
    • 幅度的变化,随时间的变化,是重复出现的,这个重复的时间长度,就为周期。

    符合上述特征的常见函数或信号有:

    正弦信号、脉冲信号、方波信号、三角函数以及它们的整流、微分、积分。

     

    (4)信号调制中用到载波信号

    • 确定信号,而不是随机信号
    • 连续信号,而不是离散信号
    • 周线信号,而不是非周期信号
    • 正弦或余弦信号,而不是方波信号或脉冲信号。

    因此,有必要了解一下正弦信号产生方法以及其数学运算规律以及其物理含义。


    第2章  载波信号产生

    2.1 晶体震荡器,载波信号的产生

    SJK晶振

     

    2.2 频率波形

    只有一个固定的频率f。


    2.3 载波的时域波形

    • 载波信号的电流或幅度随时间周期性变化。
    • 这种变化符合波的特性。

    周期T:信号重复幅度重复的时间,周期越长,变化越慢,周期越短,变化越快。

    频率f:就是单位时间1s内,出现重复波形性波形的个数。即单位时间内完成周期性变化的次数。频率越低,变化越慢,频率越高,变化越快。

    波长λ:是指在一个振动周期内传播的距离。波长λ等于波速v和周期T的乘积,即λ=VT ,电磁波速度=光速=3*10^8米/s。

    T = 1/F

    比如,

    频率f=1Hz,波形个数n=1, 周期T=1s

    频率f=1KHz,波形个数n=10^3, 周期T=1ms

    频率f=1GHz,波形个数n=10^6, 周期T=1us

    频率f=10GHz,波形个数n=10^7, 周期T=100ns

    频率f=1THz,波形个数n=10^9, 周期T=1ns

     

    函数表达:x(t)=x(t+kT),k=1,2......为周期数,T为周期长度,t为时间。

    很显然,这种数学描述方式不太方便。

     

    • 描述波的幅度变化的函数或规律为正弦或余弦函数。

    载波信号符合正弦或余弦函数的变化规律,可以通过三角函数来描述这种周期信号。

    因此有必要先了解一下三角函数!!!

     


    第3章  圆与三角函数的变化规律

    3.1  圆

    圆是自然界最理想的、最普遍的周期图形,三角函数就是从圆开始的。

    圆:在一个平面内,一动点以一定点为中心,以一定长度为距离旋转一周所形成的封闭曲线叫做

    圆本身没有周期、角度、频率的概念,圆只有原点O,  半径R,直径D,周长C、面积S等几何特性。周长C = 2πR。

    然后,沿着圆周的匀速运动就形成了周期!!长度的周期为周长.


    3.2  圆周的匀速运动

    距离L = V * T, 如果速度恒定,运行的距离就是以周长为周期,以时间为自变量的周期函数。

     虽然是周期函数,但距离与t的函数关系是线性关系:


    3.3 圆的角度匀速旋转运动

    钟表的运动就匀速周期旋转运动。

     

    但钟表的重复周期是时间t本身,

    如果圆周上的某个点的角度θ为自变量,其在x轴与y轴上的投影为因变量,就得到了三角函数。


    3.4 圆与三角函数

    三角函数基本初等函数之一

    是以角度(数学上最常用弧度制)为自变量,其在x轴与y轴上的投影为因变量的函数,称为三角函数。可以等价地用与单位圆有关的各种线段的长度来定义。

    三角函数在研究三角形和等几何形状的性质时有重要作用,也是研究周期性现象的最基础数学工具之一。

    数学分析中,三角函数也被定义为无穷级数或特定微分方程的解,允许它们的取值扩展到任意实数值,甚至是复数值。

    常见的三角函数包括正弦函数余弦函数正切函数

    (1)三角函数原始的角度表示

    x  = r*cosθ = cosθ  //半径r=1, 即单位圆

    y =  r*sinθ = sinθ   //半径r=1, 即单位圆

    此时的三角函数的因变量是角度θ,θ的周期是360°。


    (2)三角函数的弧度表示

    然而,单元圆的周长为2π,这称为弧度。

    弧度与角度有一一对应的关系:某一个角度,就对应某一个弧度。

    至此,就可以得到三角函数的弧度表示

    a  = cosx   //x为弧度,周期为2π

    b =  sinx   //x为弧度,周期为2π

     

    (3)三角函数的角速度表示法

    ω为匀速旋转的角速度,即单位时间旋转的角度。

    θ = x = ωt    //t是时间,角度θ 随着时间的推移,而变化。

    于是得到三角函数:

    a  = cosωt      //t是时间

    b =  sinωt      //t是时间

     

    至此,圆周上的一个点P,通过匀速的角速度在圆周上旋转运动,其在x轴和y轴上的投影的幅度,随时间t变化的函数:余弦与正弦函数。

     

    (4)三角函数的频率表示法

    频率f :单位时间1s内,出现重复波形性波形的个数。

    由于每个波形的弧度周期是2π,因此单位时间内选择的角度为2πf

    角速度:单位时间1s内,角度的变化大小。

    于是角速度ω=Φ/t=2π/T=2πf,角度与频率的关系是ω=2πf,时线性关系。

    至此得到了:载波电信号的电压幅度或电流强度随时间t变化的规律,符合三角函数规律。

    其中频率是影响这个规律的可调参数。

    a  = cos(2πf*t)      //t是时间,cos:点P在单位圆上的旋转时,其幅度在x轴上的投影的规律,就是cos函数

    b =  sin(2πf*t)       //t是时间, sin:点P在单位圆上的旋转时,其幅度在y轴上的投影的规律。就是sin函数

    a和b时候同一个点P在x轴与y轴的投影,因此sinx与cosx实际上是相与关联的,满足一定的关系

    (1)旋转的角度相同

    余弦函数的角度=正弦函数的角速度=圆周旋转的角速度

    在任何时刻,三者的角速度是相同的。

    (2)初始角度相差90°,即π/2。

    由于旋转的角度度相同,实时角度也是相差90°。

    cos(ωt- π/2) = -sinα

    sin(ωt + π/2)= cosα

    (3)合成与分解关系:

    a^2 + b^2 = c^2 => 

    也就是说,y = f (ωt) = 1的单位圆函数,可以分解成a=sin(ωt)和b=cos(ωt)函数。

    或者说a=sin(ωt)和b=cos(ωt)可以合成一个单位圆。

    这是双载波调制的基础!!!


    3.5. 三角函数的常见运算

    (1)和差化积

    (2)积化和差

     


    第4章 复数

    4.1 自然数:小学一年级

    自然数是指表示物体个数的数,即由0开始,0,1,2,3,4,……一个接一个,组成一个无穷的集体,即指非负整数。

    在数轴上:自然数位于数轴右方的一个个离散的点。

    自然数支持:加、减、乘、除运算。

    自然数加法运算:两个自然数相加还是自然数,称为加运算是封闭的。

    自然数减法运算:两个自然数相减,就不是封闭了,如1-3,就不是自然数了,跑出自然数之外。

    1-3是很物理含义呢?

    于是,增加了负数的概念,并把自然数切成0与正数,从而把自然数的范围扩充到了整数=负数,0,正数。


    4.2 负数与整数:初中数学

    负数是数学术语,比0小的数叫做负数,负数与正数表示意义相反、对称的量。

    负数用负号(Minus Sign,即相当于减号)“-”和一个正数标记,如−2,代表的就是2的相反数。于是,任何正数前加上负号便成了负数。一个负数是其绝对值的相反数。

    在数轴上:整数位于数轴左方的一个个离散的点。

    这样以来,整数的加法和减法运算,都是封闭了,另个整数加,还是整数,两个整数相减还是整数。

    整数支持:加、减、乘、除运算。

    乘法运算:也是封闭的,两个整数相乘,得到的还是整数。比如 1 * (-2)= -2

    除法运算:就不是封闭的了,两个整数相除,不在是整数,跑出整数范围之外了,比如 1 % 2 = ?

    1/2=0.5

    于是,在整数的基础上,增加了小数的概念,从而把整数的范围扩充到了实数:整数+小数


    4.3 小数与实数

    小数,就是一个数中包含比最小自然数最小单位1还小的数,如1.123, 0.5.

    有限小数:小数部分后有有限个数位的小数。如3.1465,0.364,8.3218798456等,有限小数都属于有理数,可以化成分数形式。

    无限小数:小数部分后有无限个数位的小数。又分为无限循环小数与无限不循环小数。

    小数与整数共同构成了实数。

    在数轴上:小数位于一个个离散的整数之间,实数构成了整个数轴上的点。

    小数的引入,把数据的范围从整数扩充到了实数

    整数支持:加、减、乘、除运算,所有的运算都是封闭的。

    实数还支持新的运算:乘方运算aⁿ 与开方运算、幂运算、指数运算、log运算。

    乘方aⁿ:求n个相同因数乘积的运算,叫做乘方,乘方的结果叫做(power)。如10*10*10=10^3,   2*2*2=2^3, 当aⁿ看作a的n次乘方的结果时,也可读作“a的n次幂”或“a的n次方”,其中,a叫做底数(base number),n叫做指数(exponent)。

    开方(英文rooting),指求一个数的方根的运算,为乘方的逆运算:

     

    指数函数:变量在指数位置

    幂函数:变量在底数的位置

    对数运算:

     

    三角运算:cos或sin运算

    三角函数是数学中属于初等函数中的超越函数的函数。它们的本质是任何角的集合与一个比值的集合的变量之间的映射。

     

    在上述运算所有的中,开方运算不是封闭的,如 a^2 =  1,  a=+/- 1,  即两个-1相乘等于1,两个1相乘等于1。 

    如果a^2 =  -1, a是多少呢?即-1的开方是多少呢?很显然,这种运算的结果超出了实数空间,

    因此,需要多这种实数空间进行扩展。

    于是,增加了虚数的概念,从而把实数的范围扩充到了复数的范围,复数=实数+虚数。


    4.4 虚数与复数

    (1)虚数与复数的定义

    虚数:实数的基本单位是1(正数的基本单位)和-1(负数的基本单位),即i² =1, 而虚数的基本单位是i,i² = - 1,虚数的基本单位是i(正虚数)与-i(负虚数)。

    http://www.ruanyifeng.com/blog/2012/09/imaginary_number.html

    虚数这个名词是17世纪著名数学家笛卡尔创立,因为当时的观念认为这是真实不存在的数字。

    复数:实数与虚数的组合,就为复数,用a + bi的复数表示。其中实数a和b分别被称为复数的实部和虚部

    在双轴的数轴上:实数落在x轴上,虚数落在y轴上。

     

    也就是说,数值的空间由单根线的数轴,扩展到了整个平面空间!

    在复平面上,开方的运算也是封闭!!

    复数分布在整个平面上,可以用a+ib表示

    a表示平面上任意点P在x轴上的幅度投影

    b表示平面上任意点P在x轴上的幅度投影

     

    (2)复数的加运算与几何意义

    两个空间复数点的相加,就是各个复数点对应的向量的相加。

     

    (3)虚数的几何意义上

    i² = - 1

    虚数i,  是整数1,逆时针旋转90° 1次的位置 

    复数-1,是复数i,逆时针旋转90° 1次的位置 

    复数-1,是整数1,逆时针旋转90°2次的位置。

     

    因此,我们可以得到下面的关系式:

      (+1) * (逆时针旋转90度) * (逆时针旋转90度) = (-1)

    如果把+1消去,这个式子就变为:

      (逆时针旋转90度)^2 = (-1)

    将"逆时针旋转90度"记为 i :

      i^2 = (-1)

    这个式子很眼熟,它就是虚数的定义公式。

    所以,i 本身不是一个数,虚数 i 就是逆时针旋转90度,是一个旋转量。

    这是虚数与实数之间的本质关系!!!

    这种关系有点像sinx与cosx的关系!!!

     

    (4)圆周运动的复数表示法

    y = f (ωt) = 1的单位圆函数,可以分解成a=sin(ωt)和b=cos(ωt)函数。

    说a=sin(ωt)和b=cos(ωt)可以合成一个单位圆。

    用复数表示如下:

    y(t) = cos(ωt) + i * sin(ωt);

    因此,

    圆上的任意一点,任意时刻的幅度:A = r = r * (sinx^2 + cosx^2)

    圆上的任意一点,任意时刻的角度:θ = ωt

    圆上的任意一点,任意时刻的复数表达式 y(t) = r *( cos(ωt) + i * sin(ωt));

    基带信号是宏观!

    载波信号是微观!

    投影到x轴上就是余弦运动

    投影到y轴上就是正弦运动

    所以其运动即是正弦运动也是余弦运动,取决与你如何观察它!!!

    类似与量子的叠加态!

    然而,如果不投影,直接在更高维度的平面上看,这表现为简单的圆周运动!

    因此量子的叠加态,是不是意味着、在更高的维度上,实际上存在简单的函数描述?

    只是目前,还没有找到这个高纬度的函数描述而已?

    所以在不同维度上,表现出不同的运动特征??

    上图中的P点,就是一个量子的“粒子性”

    在x轴与y轴上的投影,是正弦与余弦运动,体现出量子的“波性”

    而高纬度的圆周运动,体现出“波粒二向性”

    如果把平面运动,上升到三维的球面运动,就是量子的在三维空间中的运动规律!!!

    即是波,也是粒子!

    量子的纠缠,是这两个量子在任何一个维度上的投影的运动规律,其相位始终相反的运动规律!即相位差180°。

    电子运动的角频率,就是其电磁波的频率,而不是光速。光速,体现为波向前推进的速度。而不是光子或电子自身运动的速度!!!光子或电子在二维空间的运动是圆周运动,在三维空间是球形运动。

    人的观察点一旦确定,选择的投影方向就确定了!这就是为啥,观察的时候,其状态才确定下来!。


    第5章 单路幅度调制

    5.1 单路幅度调制的模型

     

    5.2 单路幅度调制的数学表达

    基带信号:A(t)

    载波信号:cos (ωt)

    调制后信号:Sm(t)=A(t)cos (ωt)

    不改变载波信号的频率与相位,只改变载波信号的幅度

     

    5.3 单路幅度调制的时域波形

    因此,单载波幅度调试,本质上是,决定信号的幅度,有两个因素

    (1)载波信号的幅度: cos (ωt)

    (2)基带信号的幅度:A(t)

    这两个信号的幅度,都随着时间的变化而变化。

    载波信号的幅度变化, 是周期变化,属于“快变”

    基带信号的幅度变化,非周期信号,属于“慢变”,由称为包络。

     

    5.4 单路幅度调制的频域波形

     

    5.5  单路幅度调制信号的复数表达式

    S(t) = A(t)* (cos(ωt) + i * sin(ωt))

    瞬时的圆周的半径取决于:基带信号A(t)

    瞬时的旋转的角度取决于:ωt

     

    单载波幅度调制信号的本质:(与电子绕着原子核运动类似)

    (1)圆周运动:速度取决与载波信号的频率ω。

    (2)圆的半径:变化规律取决于基带信号A(t)


     

    6. IQ两路幅度调制

    两路单载波的幅度调制,本质上是一路单载波的角度调制

    6.1 IQ两路幅度调制的模型

    IQ调制就是数据分为两路,分别进行载波幅度调制,两路载波同频相互正交。 I:in-phase(同相), q: quadrature(正交)。

    Q调制是矢量的方向问题,同相就是矢量方向相同的信号;正交分量就是两个信号矢量正交(差90°);IQ信号是一路是0°或180°,另一路是90°或270°,叫做I路和Q路,它们就是两路正交的信号。

    因为I和Q是在相位上面正交的(不相干),可以作为两路信号看待。所以频谱利用率比单相调制提高一倍。但是IQ对解调要求高于单相(必须严格与I相差90度的整数倍,否则Q信号会混进I,I也会混进Q)。

    简单的说就是数据分为两路,分别进行幅度调制,两路载波相互正交。 正交信号就是两路频率相同,相位相差90度的载波,一般用sin和cos,与I,Q两路信号分别调制后一起发射,从而提高频谱利用率

    IQ在2G/3G/4G/5G等移动通信系统中得到了广泛的应用。

     

    6.2  IQ调制的实数表达

    I路幅度调制:   I(t) = x(t)  *  cos(ωt)

    Q路幅度调制: Q(t) = y(t) * -sin(ωt)

    S(t)= I(t) + Q(t) = x(t)  *  cos(ωt) + y(t) * -sin(ωt) 

     

    6.3 两路幅度调制的本质是单载波相位调制

    这需要上述的调制后的数学表达式进行三角函数的数学变换,看看变换后函数表达式是什么样子的?

    这种三角函数的数学变化得到:

    S(t)= I(t) + Q(t) = x(t)  *  cos(ωt) + y(t) * -sin(ωt) =》各种三角变换=》

    S(t)=  A(t)cos(ωt+θ(t))

    我们可以看出,经过单载波的幅度调制,调制后的信号,依然是一个频率为ω的余弦波,但幅度与相位随时间的变化而变化。

    即通过简单的幅度调制,调制后的波形变成了相位调制!初始相位=θ(t)。

    如果说,通过A(t)cos(ωt+θ(t))看还是不很直观,我们以QAM调试实例看一下更直观的结果。

    案例1:

    x(t) = 1;

    y(t)=  1;

    S(t)= I(t) + Q(t) = cos(ωt) -sin(ωt)  = √2 * (ωt+π/4)

    案例2:

    x(t) = -1;

    y(t)=  1;

    S(t)= I(t) + Q(t) = -cos(ωt) -sin(ωt)  = √2 * (ωt+3π/4)

     

    上述公式中,省略了复杂的标量三角函数的中间变化过程。

    有没有一种直观的方式,能够表达这种变化呢?这就追溯到三角函数的矢量表达!

     

    6.3  IQ调制的复数表达

    (1)I路与Q路都是周期信号

    (2)I路与Q路相位差90°

    (3)I路与Q路角频率相同为ω

    I(t)  =   x(t)*  (cos(ωt) + i * sin(ωt))

    Q(t) =  y(t)* (cos(ωt+π/2) + i * sin(ωt+π/2))

           =  y(t)* -sin(ωt) + i * y(t)* cos(ωt)

    S(t)= I(t) + Q(t)  = (x(t)cos(ωt)-  y(t)* sin(ωt)) + i *(x(t)* sin(ωt) + y(t)* cos(ωt))

    这个S(t)的复数表达,在x轴(实轴)方向的投影,正好与IQ调制的实数表达是一致的!

     

    复数表达带来的好处就是:

    可以通过向量的运算得到调制后的波形!不需要通过复杂的三角函数的变换得到调制后信号的表达式!计算过程明显简单很多!

     

    从向量的运算的角度,s(t)信号的特性:

    (1)旋转的角度ω与载波信号一样

    (2)调制后信号的初始角度θ0,随着I和Q路的幅度变化而变化。

    这就是通过简单的单载波的幅度调制,完成双路载波叠加后的角度调制的基本原理!

     

    案例1的向量表达:

    案例2的向量表达:

     

     

    展开全文
  • 本文章包含了Python一系列基本知识,其中包括:基本数据类型(整数,浮点数,复数,字符串);分支语句;异常处理;函数;局部变量与全局变量;递归;组合数据类型(集合,元组,列表,字典);文件基本操作、基本数据...

    78c03f92d4ce76c224552a5920fa42ba.gif

    本文章包含了Python一系列基本知识,其中包括:基本数据类型(整数,浮点数,复数,字符串);分支语句;异常处理;函数;局部变量与全局变量;递归;组合数据类型(集合,元组,列表,字典);文件基本操作、

    736b055c7926c9732dceb73c2b3c6ed1.png

    基本数据类型

    一,数字类型及操作

    (1)整数类型

    可正可负,无取值范围限制

    1. pow(x,y):计算x^y

    (2)浮点数类型

    1. 存在不确定尾数

    2. round(x,d):对x四舍五入,d为小数截取位数

    3. e/E:a*10^b

    (3)复数类型

    1. z=a+bj

    2. z.real=a z.imag=b

    二,数值运算操作符

    eg:x//y :整数除 10//3=3 x%y :求模 10%3=1 x**y=x^y

    de6215387829f053c6a5c3432c83688d.png

    三,数值运算函数

    1. abs(x) :绝对值 abs(-10)=10

    2. divmod(x,y) :商余 divmod(10,3)=(3,1)

    3. pow(x,y,z) :幂余,(x**y)%z

    4. max(x1,x2,...xn) :求最大值 min(x1,x2,...xn) :求最小值

    5. int(x) :将x变成整数 float(x) :将x变成浮点数

    6. comlex(x) :将x变成浮点数

    四,字符串类型的表示(由一对单引号或双引号表示的字符有序序列)

    1. [M:N:K], 根据步长K对字符串进行切片

    2. 特殊字符:”\b”:回退 “\n”:换行(光标移到下行首) “\r”:回车(光标移到本行首

    五,字符串处理函数

    1. len(x) :长度 str(x) :任意类型x所对应的字符串形式

    2. chr(x) :x为Unicode编码,返回其对应的字符 ord(x):相反

    de94469f4e6f7ae82f5f8bfa706f3026.png

    六,字符串处理方法

    1. str.lower/upper() :返回全部字符的小/大写 “ABc”.lower()=”abc”

    2. str.split(sep) :返回一个列表,由str根据sep被分割的部分组成 “A,B,C”.split(“,”)=[‘A’,’B’,’C’]

    3. str.count(sub) :返回子串sub在str出现的次数 “a apple a day”.count(a)=4

    4. str.replace(old,new) :将所有的old子串被替换为new python”.replace(“n”,”.i”)=”pytho.i”

    5. str.center(width,char) :字符串根据宽度width居中 “python”.center(8,”=”)= ’=python=’

    6. str.strip(chars) :从str中去掉其左侧和右侧chars列出的字符 “python”.strip(“pn”)=”ytho”

    7. str.join(iter) :在iter变量除最后元素外每个元素加一个str “,”.join(“12345”)=”1,2,3,4,5"

    七,字符串类型的格式化

    02a2c052c48c2ede67d6948a3a203175.png

    50834fb9f8ee933f5d77fab820c6f66e.png

    程序的控制结构

    一,程序的分支结构

    (1)单分支结构:

    if(条件):

    (2)二分支结构:

    if(条件):紧凑形式:

    if else

    else:

    (3)多分支结构:

    if(条件1):

    elif(条件2):

    ......

    else:

    02022dc9fe9659008f7046fb0262042e.png

    二,程序的异常处理

    (1)异常处理的基本使用:

    try:

    except:

    (2)异常处理的高级使用:

    try:

    except:

    else:

    #在不发生异常时执行

    finally:

    . #一定执行

    dc4c2b6077f319f34dfdfa5b12879d4e.png

    三,程序的循环结构

    (1)遍历循环:

    for in :

    (2)无限循环:

    while:

    (3)循环控制保留字

    break:跳出并结束当前整个循环

    continue:结束当次循环

    函数和代码复用

    一,函数的定义和使用

    (1)函数的定义:

    a, 一般函数

    def(参数(0个或多个)):

    return

    b, lambda函数

    =lambda:

    c713802ea788fb19c1d1788b8c4a1b41.png

    (2)函数的返回值

    函数可以返回0个或多个结果

    (3)局部变量和全局变量

    #1:局部变量和全局变量是不同变量。可重名;函数运算结束后,局部变量被释放;可通过global保留字在函数内使用全局变量

    #2:局部变量为组合数据类型且未被创建,等于全局变量

    二,代码复用和函数递归

    (1)递归的定义:(数学归纳法的编程体现)

    链条:计算过程存在递归链条

    基例:存在一个或多个不需要再次递归的基例

    (2)递归的实现

    函数+分支语句

     组合数据类型

    一,集合类型及操作

    (1)集合类型的定义(多个 元素[唯一,不可更改] 的无序组合)

    集合用{}表示,元素间用,分隔

    建立集合类型用{}或set()

    (2)集合操作符

    161e605d25fc7923eb8c99255ae850be.png

    (3)集合处理方法

    c2de15a1c1ab60d184872404df506669.png

    1b2442623a1403ee88dd8bd5729c039f.png

    二,序列类型及操作

    (1)元组类型:

    #1 元组是一种序列类型,一旦创建就不能修改

    #2 使用()或tuple()创建,元素间用,分隔。可以使用或不使用()

    #3 元组继承了序列的全部操作,因为不难修改,所以没有特殊操作

    926bfa3cb38e60cf9979a6bda582f54b.png

    54a812d7d9b888cb306a8c742631c57d.png

    (2)列表类型

    #1 列表是一种序列类型,创建后可以被修改

    #2 使用[ ]或list()创建,元素间用,分隔。各元素类型可以不同

    #3 列表操作:

    efa36f5a61649a311fb993f3fce1cc57.png

    6174442c66606b69c6646777f8e0bbb3.png

    (3)字典类型(映射的体现)

    #1 键值对的集合,键值对之间无序

    #2 采用{}和dict()创建,键值对应:表示

    #3 字典操作:

    3b64e43732d93d1eb06867b74f1bf47b.png

    4b8c92d8220fb8748be6ab1e7cac2419.png

    文件处理

    一,文件的使用

    (1)文件的打开和关闭

    2f472292b5bbb48f68964ee462fbfa46.png

    aeb781c4bef79eaca4fcd1138db4f046.png

    3a5d79a736a3bc9eef7ed212eac9c646.png

    b8053c2647dc57a2fd0211ec2dc7a729.png

    (2)文件内容的读取

    a2b6fa75b9ee657005bcb5d1c4bf2876.png

    00061de024a64b05d3b8ea2d923f79f3.png

    (3)数据文件的写入

    36ac39adfa3cf10bf394a3528f7d8e98.png

    3516cb36e7790351b99a8a93dd342d1c.png

    PythonPython981944670Python8Python

    Pythonqq981944670()

    PS

    516d13cb8b37363071e09010430f01ea.gif

    80a4cfd9f087dfa412133258978312eb.png

    “再6981ce5e21d8536a43b4ff960c3e2dd4.gif

    Pyhton

        

    展开全文
  • # 引入sqrt(), pi等 import cmath # 要处理复数情况,用到cmath.exp() import functools # 使用偏函数functools.partial() def hamiltonian(k1, k2, M, t1, t2, phi, a=1/sqrt(3)): # Haldane哈密顿量(a为原子间距,...
  • 该研究的目标不仅仅是测量mu振荡的峰值(0°)和波谷值(180°)的时间点,同时还包括其下降幅度最大 (90°)和上升幅度最大(270°)的时间点。除了mu相位外,研究者们还测试了mu功率和两个连续TMS脉冲之间的间隔时间是否...
  • 02 一行代码打印九九乘法表 每个孩子都背过的九九乘法表,其实只需要一行代码就可以展现喽~ 03 一行代码实现曼德布罗特集合 曼德布洛特复数集合(Mandelbrot set,或译为曼德博集合)是一种在复平面上组成分形的点的...
  • 对一组输入的二进制数据(例如1,0等等),首先进行调制(这里就是指映射,与书上说的不同)例如BPSK,QPSK,MAQM等,都是进行映射,得到一组包含了相位以及幅度信息的复数(1+1i,-1-1i等等),目前为止都只是数据的...
  • 简单分离实部虚部,或者考虑幅度和相位角都丢失了复数原本的关系。论文按照复数计算的定义,设计了深度复数网络,能对复数的输入数据进行卷积、激活、批规范化等操作。在音频信号的处理中,该网络应该有极大的优势。...
  • 一种复数求模的实用方法

    千次阅读 2012-05-31 19:05:39
    一种复数求模的实用方法  在DSP中,经常遇到复数求模的...其幅度magX为:  magX = sqrt(R^2+I^2) (2) 由上式可知,复数求模的问题可看做是一个实数求根的问题。对这个问题有一些成熟算法,如博文所述:ht
  • MATLAB 快速傅里叶变换(fft)结果为什么是复数

    千次阅读 多人点赞 2020-07-11 00:45:18
    (2)详细说明了MATLAB中fft函数的运用方法,并给出了fft幅度谱的求解代码。 但要真正了解快速傅里叶变换,核心是理解“FFT的计算原理”!!! 目录 一、直观解释 二、本质原因之FFT的计算原理 (关键) 三、...
  • 信号采用复数形式表达,除以自身的模相当于消去幅度的影响,只看其相位变化。其理论基础是什么?谢谢告知
  • 20世纪的无线电系统大多采用调频(FM)或幅度调制(AM)进行无线电广播。图1 载波信号、调制信号与已调信号模拟调制的目的是将模拟基带(或低通)信号,例如音频信号或电视信号,在不同频率的模拟带通信道上传输,例如在...
  • 为什么要用复数进行信号处理? 假如现在我们来设计通信系统,要求是高频数字调制系统。 1. 首先我们来决定调制方式。 调制可以简单分成幅度调制与相位调制。假如我们想做多进制调制的话,效果最好的是将幅度调制与...
  • 信号频谱、幅度、功率和能量

    万次阅读 2019-07-20 12:22:38
    (3)一个复数由模和辐角唯一地确定,所以可将频谱分解为幅度谱(即复数的模关于频率的函数)和相位谱(即复数的辐角关于频率的函数)。 2.幅度 (1)在英文中,amplitude和magnitude均可表示幅度,其中: amplitude...
  • 一、概要 图像经过傅里叶变换后,将图像在空域中的信息映射至频域空间中。图像的频域空间包含幅度谱...在这里应当注意傅里叶变换对是复数,因此需要构建双通道的Mat类存储复数的实部与虚部。 代码的主函数部分: int
  • 它定义了一个非常有用的时间和频率分布类, 其指定了任意信号随时间和频率变化的复数幅度. 实际上,计算短时傅里叶变换的过程是把一个较长的时间信号分成相同长度的更短的段, 在每个更短的段上计算傅里叶变换, 即...
  • 它定义了一个非常有用的时间和频率分布类, 其指定了任意信号随时间和频率变化的复数幅度. 实际上,计算短时傅里叶变换的过程是把一个较长的时间信号分成相同长度的更短的段, 在每个更短的段上计算傅里叶变换, 即...
  • 想具体了解可以百度),那么将会发现复数幅度基本为零啦,没法看到各个频率的变化,但是他们虽然很小但是有变化啊,所以我们对其系数的表达式乘个时间T,这样就系数大小就不是零啦,的到的频谱则是频谱密度,可以...
  • 它定义了一个非常有用的时间和频率分布类, 其指定了任意信号随时间和频率变化的复数幅度. 实际上,计算短时傅里叶变换的过程是把一个较长的时间信号分成相同长度的更短的段, 在每个更短的段上计算傅里叶变换, 即...
  • 它定义了一个非常有用的时间和频率分布类, 其指定了任意信号随时间和频率变化的复数幅度. 实际上,计算短时傅里叶变换的过程是把一个较长的时间信号分成相同长度的更短的段, 在每个更短的段上计算傅里叶变换, 即...
  • 20世纪的无线电系统大多采用调频(FM)或幅度调制(AM)进行无线电广播。图1 载波信号、调制信号与已调信号模拟调制的目的是将模拟基带(或低通)信号,例如音频信号或电视信号,在不同频率的模拟带通信道上传输,例如在...
  • 那么FFT之后结果就是一个为N点的复数。每一个点就对应着一个频率点。这个点的模值,就是该频率值下的幅度特性。具体跟原始信号的幅度有什么关系呢?假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一...
  • FFT之后得到的是什么数FFT之后得到的那一串复数是波形对应频率下的幅度特征,注意这个是幅度特征不是复制,下面要讲两个问题:1.如何获取频率,2.如何获取幅值获取频率FFT变换如何获取频率?傅里叶变换并没对频率...
  • 20世纪的无线电系统大多采用调频(FM)或幅度调制(AM)进行无线电广播。图1 载波信号、调制信号与已调信号模拟调制的目的是将模拟基带(或低通)信号,例如音频信号或电视信号,在不同频率的模拟带通信道上传输,例如在...
  • 使用matlab进行频谱分析时...二、使用matlab画出的频谱(一般是幅度谱或称振幅谱)的横坐标轴的意义是什么?如何根据横坐标轴的值得到其所对应的实际频率? 三、实数序列的频谱除第零个点和第N/2个(当N为偶数时)点外(从
  • 在以下推导过程中令WN=e−j2πNW_N=e^{{-j}{\frac{2\pi} {N}}}WN​=e−jN2π​,{WN}k=WNk\{W_N\}^k=W_N^k{WN​}k=WNk​且时间域信号采样数据点f[k]f[k]f[k]和频率域数据点F[n]F[n]F[n]均为复数,则可以得到(j为...
  • 上一篇讲了,电磁波信号有2个特征:幅度和相位。 相位就是时间。 复数所在的坐标系是 (x,y,t)坐标系。...复数的乘除:在复平面上,2个复数相乘,幅度等于 缩放;相位旋转。 如下:Z1--》z1*z2...

空空如也

空空如也

1 2 3 4 5 6
收藏数 120
精华内容 48
关键字:

复数幅度