三角函数正交性理解与Matlab分析

article/2025/7/23 19:33:03

1.什么是正交性?

“正交性”是从几何中借来的术语。如果两条直线相交成直角,他们就是正交的。在空间向量中,两个向量的标量积为零即两个向量正交。

如果两个函数f_{1}(t),f_{2}(t)满足\int f_{1}(t)\times f_{2}(t) dt=0,则称这两个函数正交。

2.什么是三角函数正交信号集?

三角函数正交信号集:\left \{ cos2\pi nft ,sin2\pi mft\right \},其中n,m\subset N

当n=1 , m=1时,信号集里的信号称之为基频信号;其他信号称之为n次谐波(m次谐波)。

3.什么是三角函数正交性?

 三角函数正交性是指三角函数正交信号集里面的任意不同信号或者不同阶次的信号在基频信号周期内乘积的积分值为0;相同信号在基频信号周期内乘积的积分值不为0。这种特性利用在单边带信号调制,OFDM调制等。

假设基频信号的周期为T,则正交信号集里面的信号正交性计算存在三种情况:

                                                                    1.  \int_{T}^{0}cos2\pi nf_{0}sin2\pi m f_{0}dt

                                                                     2. \int_{T}^{0}cos2\pi nf_{0}cos2\pi m f_{0}dt

                                                                     3. \int_{T}^{0}sin2\pi nf_{0}sin2\pi m f_{0}dt

由三角函数的积化和差公式可以将上面三个公式推导出如下结果:

                       1. \int_{T}^{0}cos2\pi nf_{0}sin2\pi m f_{0}dt=\int_{T}^{0}\left \{ \frac{1}{2}\left [ sin2\left (n-m \right )\pi f_{0} +sin2\left (n+m \right )\pi f_{0} \right ] \right \}dt,由公式可知不论n,m取何值积分结果都是0;

                       2. \int_{T}^{0}cos2\pi nf_{0}cos2\pi m f_{0}dt=\int_{T}^{0}\left \{ \frac{1}{2}\left [ cos2\left (n-m \right )\pi f_{0} +cos2\left (n+m \right )\pi f_{0} \right ] \right \}dt,由公式可知n=m时,积分结果是T/2;当n≠m是,在T时间内积分结果都是0;

                       3. \int_{T}^{0}sin2\pi nf_{0}sin2\pi m f_{0}dt=\int_{T}^{0}\left \{ \frac{1}{2}\left [ cos2\left (n-m \right )\pi f_{0} - cos2\left (n+m \right )\pi f_{0} \right ] \right \}dt,由公式可知n=m时,积分结果是T/2;当n≠m是,在T时间内积分结果都是0;

4.Matlab分析三角函数正交性

针对上面的三种情况分别进行仿真,仿真代码如下:

clear all
close all 
clc
% Orthogonal of trig function
f = 1000;%the base frequence
fs = 1e6;%the sampling frequence
% Generate the signals
Td = 1000;%time of duration
for k = 1:Td  % f = 1000,T = 1/f = 1000/fsReal_Signal_1(k,1) = cos(2*pi*f*k/fs);% the 1st degree cos frequenceReal_Signal_2(k,1) = cos(2*pi*2*f*k/fs);% the 2st degree cos frequenceReal_Signal_3(k,1) = cos(2*pi*3*f*k/fs);% the 3st degree cos frequenceImag_Signal_1(k,1) = sin(2*pi*f*k/fs);% the 1st degree sin frequenceImag_Signal_2(k,1) = sin(2*pi*2*f*k/fs);% the 2nd degree sin frequenceImag_Signal_3(k,1) = sin(2*pi*3*f*k/fs);% the 3rd degree sin frequence
end
% Integral cos*sin in T
% Integral cos*cos in T
% Integral sin*sin in T
% The integral results
Int_Result0 = sum(Real_Signal_1.*Imag_Signal_1);
Int_Result1 = sum(Real_Signal_1.*Imag_Signal_2);
Int_Result2 = sum(Real_Signal_1.*Imag_Signal_3);
Int_Result3 = sum(Real_Signal_1.*Real_Signal_1);
Int_Result4 = sum(Real_Signal_1.*Real_Signal_2);
Int_Result5 = sum(Real_Signal_1.*Real_Signal_3);
Int_Result6 = sum(Imag_Signal_1.*Imag_Signal_1);
Int_Result7 = sum(Imag_Signal_1.*Imag_Signal_2);
Int_Result8 = sum(Imag_Signal_1.*Imag_Signal_3);
% Plot 
t = 1/1000:1/1000:1;
figure 
plot(t,Real_Signal_1,'LineWidth',3,'color','k');
hold on
plot(t,Real_Signal_2,'LineWidth',1.5,'LineStyle','--');
plot(t,Real_Signal_3,'LineWidth',1.5,'color','b');
hold off
fprintf('n = 1,m = 1;积分结果 = %d\n',Int_Result3);
fprintf('n = 1,m = 2;积分结果 = %d\n',Int_Result4);
fprintf('n = 1,m = 3;积分结果 = %d\n',Int_Result5);

1.仿真结果:

2.仿真结果:

3.仿真结果:

5.总结

对三角函数正交性进行了分析,并用Matlab对正交性进行了仿真,仿真结果和理论结果一致。


http://chatgpt.dhexx.cn/article/Tj3KT7RF.shtml

相关文章

mysql初期密码修改方式

1、适用解压版本的mysql 2、初始化mysql后,会随机生成一个密码,但比较复杂,(#一定记住) 初始化命令 mysqld -initialize 3、初始化后必须修改初始密码才能对mysql进行操作,这个时候操作就会报错误消息。 …

ubuntu20.04安装Mysql8.0以及mysql密码修改

前言 网上找到的这些关于这类的博客要么就是mysql版本过时了要么就完全没有用,浪费了我好多时间,于是我就把自己成功的经历分享给大家,希望能减少大家走弯路的时间。 Mysql的安装 很简单,一句话 sudo apt install mysql-serve…

Centos Mysql忘记密码,修改密码

当centos MySQL用户忘记密码,进不去MySQL,那就要进行修改密码了 看好了嗷,操作开始 首先用vim进一下配置文件:/etc/my.cof 添加一下skip-grant-tables #这行的意思就是设置空密码登录,毕竟密码都忘记了,不…

登录MySQL密码修改及密码遗忘的解决办法(centos)

1、修改密码 方法一 [roothost1 ~]# mysqladmin -uroot -p password Enter password: New password: Confirm new password: ​方法二 mysql> alter user rootlocalhost identified by MySQL123; Query OK, 0 rows affected (0.00 sec) 方法三 通过修改mysql数据库…

MySQL数据库忘记密码之修改密码

我目前使用的版本是MySQL Server 8.0 第一步:关闭MySQL服务 首先要停止mysql服务。可通过net stop mysql或者任务管理器中关闭。 第二步:跳过MySQL密码验证 进入命令提示符(管理员登陆)操作,进入mysql目录中bin文…

MySQL数据库忘记密码后,如何修改密码

MySQL修改密码(本人亲身试验可行!) 1、以管理员身份打开命令行 2、在命令行中进入MySQL的bin目录所在文件夹 即:在命令行中输入: cd [路径]路径查找如下: 命令行输入命令: 3、跳过MySQL用…

Linux忘记MySQL密码后修改密码

1、关闭mysql服务 service mysqld stop 2、找到my.cnf配置文件 whereis my.cnf 3、在[mysqld]标签下添加:skip-grant-tables vim /etc/my.cnf 4、启动mysql服务 service mysqld start 5、不用密码登录mysql,执行下面命令以后直接回车 mysql -u root 6、使用数据…

忘记mysql密码后如何修改密码(2022最新版详细教程保姆级)

忘记mysql密码后如何修改密码 注意事项步骤 注意事项 一共用到两个cmd窗口,每一个都要以管理员身份打开,且在修改密码后,要先关闭第一个跳过验证密码的mysql服务的cmd窗口,再启动mysql,否则会出错。在修改密码前&…

Mysql密码修改无效问题

记录一次修改mysql密码无效的经历。 因为项目需求需要用到阿里云服务器,于是我准备登录服务器去建表,结果忘记密码了,我用SQLyog保存的密码解码找到密码之后在云服务器用命令修改了密码。 修改密码命令 mysql> ALTER USER rootlocalhos…

mysql:Windows修改MySQL数据库密码(修改或忘记密码)

今天练习远程访问数据库时,为了方便访问,就想着把数据库密码改为统一的,以后我们也会经常遇到MySQL需要修改密码的情况,比如密码太简单、忘记密码等等。在这里我就借鉴其他人的方法总结几种修改MySQL密码的方法。 我就以实际操作…

Linux中mysql密码修改方法(亲测可用)

前提:安装mysql 解压mysql.tar.gz到指定目录进入mysql-5.7.18目录创建文件夹mkdir data创建用户来执行mysqld命令 groupadd mysql # 创建组mysql useradd -g mysql mysql # 创建用户,并指定组初始化数据库,在bin目录下 ./mysqld --initia…

MySQL - 修改密码的 3 种方式

在使用数据库时,我们也许会遇到 MySQL 需要修改密码的情况,比如密码太简单需要修改等。本节主要介绍了 3 种修改 MySQL 数据库密码的方法。 1. 使用 SET PASSWORD 命令 步骤 1)输入命令mysql -u root -p指定 root 用户登录 MySQL&#xff0c…

游戏引擎渲染管线的总结

需要注意的是,本文涉及的内容过多过杂,基本涉及到游戏渲染和图形管线的方方面面。内容是根据多方面的资料整理而成,比如本人的Unity和Unreal引擎相关的理解和认知,以及引擎相关官方文档等,以及DirectX和OpenGL相关官方…

渲染管线的理解与学习

前言 渲染管线其实就是基于管线架构的图像渲染,所谓的管线就是将一个工程分成好几个部分串联起来进行工作,每一部分的输出都会作为下一部分的输入进行计算。本文将会按照三个部分来理解管线渲染这一知识。 一.Architecture-架构 渲染管线的主要目的就是…

渲染管线基础

什么是渲染管线: 渲染管线就是经过一系列的操作,把图形渲染到屏幕上的一个过程,这些操作总的来说就是:剔除、渲染、屏幕后处理。 不同的渲染管线,执行的操作不一样,输出的结果也不一样,比如一…

第二十章 Unity 渲染管线

渲染管线是计算机图形中最基础最核心的部分,它是将3D场景显示到2D平面的技术过程。在DirectX课程中,我们就介绍了渲染管线,分为固定渲染管线和可编程渲染管线(Shader)。但是在DirectX 10版本之后统一了渲染架构&#x…

OpenGL 图形渲染管线

学习笔记,自用 ヾ(•ω•)o 参考:《细说图形管线》、games101等等 Unity 中的渲染优化技术 大致流程细说图形渲染管线顶点数据:VS (顶点着色器Vertex Shader):TS(triangle shader)GS (几何着色器Geometry …

Unity URP/SRP可编程渲染管线

URP是unity推出的,用于替代Unity原来传统build-in管线。 URP是Unity可编程渲染管线(SRP)的一种,所以了解URP之前需要先了解SRP是什么 SRP是什么? SRP全称为Scriptable Render Pipeline(可编程渲染管线/脚本化渲染管线&#xff0…

GPU渲染管线概述

在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素。3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Graphics Pipeline,大多译为…

Unity渲染管线详解

1.UnityBuild-in渲染管线 当双摄像机的时候,注意Camera中的Clear Flags 和 Depth。 其中Clear Flags在摄像机在渲染时,会进行清屏的操作。选择skybox是除了天空盒都会被清除。 Depth数值越小越先被渲染。 层级剔除:culing mask选择被剔除的…