diff --git a/search.xml b/search.xml index 3202d25f4..d4846a33b 100644 --- a/search.xml +++ b/search.xml @@ -1,5 +1,79 @@ + + C&&C++问题总汇(1) + /2021/09/20/C&&C++%E9%97%AE%E9%A2%98%E6%80%BB%E6%B1%87(1)/ + C&&C++问题总汇🙄

+ +

二维数组

+

定义一个二维数组如下:

+
int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} };
+

如果采用一个指针去指向这个数组,可以这么做:

+
int (*p)[4]=a; //4代表了一行有多少个元素
+

其中*p要加括号,因为不加括号就是指针数组,而且但是,这时候的*p(p指针指向的数据不在是一个int的数,而是一个数组,代表的是第i行的所有元素)

+
sizeof(*p);
Output: 16
+

那么访问这个二维数组的指针方法是:

+
a[i][j]=*(*(p+i)+j);
+

当然,下面这种方式也对(和一维数组的指针一样)

+
a[i][j]=p[i][j];
+

Y7D20b8621AY6CYryYagUED1

+
    +
  • 指针数组是这样子的吗?
  • +
+
char *strs[3] ={"chinese","zhonguo" } ;//3代表两个string元素,一个'\0'
+

这里使用的就是指针数组,所以这里是3(数组中元素的个数+1),而上面的那个是4数组个每个元素的下一级个数。

+

二维数组赋值的问题

+
    +
  • 二维数组有两个维度,当然可以按照一个一个去赋值,但那样毕竟太慢,所以有没有更好的赋值方法呢?
  • +
+
int q[4];
for(int i = 0;i<4;i++){

cin>>q[i];
}
int b1[][2]={{q[0],q[1]},{q[3],q[4]}};
+

这是我现在使用的方法,并不是十分的好,希望有所改进

+
    +
  • 友元函数访问私有成员问题
  • +
+
//习题5-18

//报错,a[2][2]是私有成员,不可在operator中访问
#include<iostream>
using namespace std;
class List{
public:
List(int i,int j,int k ,int m){
a[0][0]=i,a[0][1]=j,a[1][0]=k,a[1][1]=m;
}
List(int (*p)[2]){
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
a[i][j]=p[i][j];
}
}
}
List(){
}
friend operator+(List &a,List &b);
friend operator-(List &a,List &b);
void disp(){
cout<<a[0][0]<<" "<<a[0][1]<<endl;
cout<<a[1][0]<<" "<<a[1][1]<<endl;

}
private:
int a[2][2];
};
List operator+(List a,List b){
int c[2][2];
for(int i=0;i<2; i++){
for(int j=0;j<2;j++){
c[i][j]=a.a[i][j]+b.a[i][j];
}
}
return List(c);
}
List operator-(List &a,List &b){
int c[2][2];
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
c[i][j]=a.a[i][j]-b.a[i][j];
}
}
return List(c);
}
int main(){
List a(1,2,3,4);

int q[4];
for(int i = 0;i<4;i++){

cin>>q[i];
}
int b1[][2]={{q[0],q[1]},{q[3],q[4]}};
List b(b1);
List c;
c = a+b;
c.disp();
return 0;
}
+

指针的指针

+
int **p;
//使用方法
int **p; //定义一个指针的指针
int *q; //定义一个int型的指针
int a[3]={1,2,3};
q = a; //q指向a
p =&q; //p指向q
printf("%d",*(*p+1)); //所以*p展现了q,*(*p)为q展现自己储存的地址的内容
return 0;
+
    +
  • 所以说,这个int有用吗?
  • +
+
*((int *)a+n*i+j);  
+
    +
  • 函数的分号问题
  • +
+
T sum(){
.....
}

T sum(){
.....
}; //这个分号是否有必要?
+
    +
  • 答:
  • +
+
//为什么Base和Derived的虚函数地址一样呢 
#include<iostream>
using namespace std;
class Base{
public:
virtual void func(){
};
virtual void func1(){
}
};
class Derived: public Base{
public:
virtual void fun(){
};
virtual void func1(){
};
};

int main(){
Derived d;
if (d.Base::_vptr==d._vptr){
cout<<"yes"<<endl; //显示yes
}
return 0;
}
+
    +
  • 问:Base中的虚函数和Derived的虚函数的地址为什么是一样的呢

  • +
  • 答:

  • +
+

虚表指针指向了一个虚表,虚表中存放着类中的虚函数。如果类中存在虚函数,那么构造对象的时候,就会生一个虚表指针指向虚表,虚表中存放虚函数。所以,要注意的一-点, +在类的构造函数中不要调用虚函数,这是一一个危险的动作,因为很可能它还未 +初始化完毕。

+
    +
  • 问:动态联编和静态联编,可以访问派生类函数
  • +
  • 答:
  • +
+
#include<iostream>
using namespace std;
class A{
public:
void print(){
cout<<"1,2,3";
}
};
class B:public A{
public:
void print1(){
cout<<"4,5,6";
}
};
int main(){
A *ptr;
B a1;
ptr =&a1;
ptr->print1(); //can't called
return 0;
}
+
    +
  • 问:不能调用派生类函数
  • +
  • 答:
  • +
+
#include<iostream>
using namespace std;
class Base{
public:
void func4(){
cout<<"nihao";
}
};
class Derived:public Base{
public:
void func4(){
cout<<" nihao!";
}
};
int main(){
Base d1, *bp;
Derived d2;
bp=&d2;
bp->func4(); //这里直接调用了Base里面的func4(),这个算重载吗?
}
+
    +
  • 问:这个可以算重载嘛?,结果值为第一个
  • +
  • 答:
  • +
+
#include<iostream>
using namespace std;
class Length{
int meter;
public:
Length(int m){
meter = m;
}
operator double(){
return (1*meter/1000); //这个地方一定要使用1.0,否者强制转化会导致结果出错
}
};
int main(){
Length a(1500);
double m =float(a);
cout<<"m="<<m<<"km"<<endl;
return 0;
}
+

注意:这里Length返回值只能是1.0,不能是1,否者将会不准确。

+]]>
+ + coding + +
Android Adb Command /2021/10/24/Android-Adb-Command/ @@ -98,77 +172,83 @@ href="">ipforbidden模块,刷入,即可 - C&&C++问题总汇(1) - /2021/09/20/C&&C++%E9%97%AE%E9%A2%98%E6%80%BB%E6%B1%87(1)/ - C&&C++问题总汇🙄

+ 通信原理笔记 + /2023/05/23/Communication%20principle/ + 通信原理理解性笔记

-

二维数组

-

定义一个二维数组如下:

-
int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} };
-

如果采用一个指针去指向这个数组,可以这么做:

-
int (*p)[4]=a; //4代表了一行有多少个元素
-

其中*p要加括号,因为不加括号就是指针数组,而且但是,这时候的*p(p指针指向的数据不在是一个int的数,而是一个数组,代表的是第i行的所有元素)

-
sizeof(*p);
Output: 16
-

那么访问这个二维数组的指针方法是:

-
a[i][j]=*(*(p+i)+j);
-

当然,下面这种方式也对(和一维数组的指针一样)

-
a[i][j]=p[i][j];
-

Y7D20b8621AY6CYryYagUED1

-
    -
  • 指针数组是这样子的吗?
  • -
-
char *strs[3] ={"chinese","zhonguo" } ;//3代表两个string元素,一个'\0'
-

这里使用的就是指针数组,所以这里是3(数组中元素的个数+1),而上面的那个是4数组个每个元素的下一级个数。

-

二维数组赋值的问题

-
    -
  • 二维数组有两个维度,当然可以按照一个一个去赋值,但那样毕竟太慢,所以有没有更好的赋值方法呢?
  • -
-
int q[4];
for(int i = 0;i<4;i++){

cin>>q[i];
}
int b1[][2]={{q[0],q[1]},{q[3],q[4]}};
-

这是我现在使用的方法,并不是十分的好,希望有所改进

-
    -
  • 友元函数访问私有成员问题
  • -
-
//习题5-18

//报错,a[2][2]是私有成员,不可在operator中访问
#include<iostream>
using namespace std;
class List{
public:
List(int i,int j,int k ,int m){
a[0][0]=i,a[0][1]=j,a[1][0]=k,a[1][1]=m;
}
List(int (*p)[2]){
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
a[i][j]=p[i][j];
}
}
}
List(){
}
friend operator+(List &a,List &b);
friend operator-(List &a,List &b);
void disp(){
cout<<a[0][0]<<" "<<a[0][1]<<endl;
cout<<a[1][0]<<" "<<a[1][1]<<endl;

}
private:
int a[2][2];
};
List operator+(List a,List b){
int c[2][2];
for(int i=0;i<2; i++){
for(int j=0;j<2;j++){
c[i][j]=a.a[i][j]+b.a[i][j];
}
}
return List(c);
}
List operator-(List &a,List &b){
int c[2][2];
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
c[i][j]=a.a[i][j]-b.a[i][j];
}
}
return List(c);
}
int main(){
List a(1,2,3,4);

int q[4];
for(int i = 0;i<4;i++){

cin>>q[i];
}
int b1[][2]={{q[0],q[1]},{q[3],q[4]}};
List b(b1);
List c;
c = a+b;
c.disp();
return 0;
}
-

指针的指针

-
int **p;
//使用方法
int **p; //定义一个指针的指针
int *q; //定义一个int型的指针
int a[3]={1,2,3};
q = a; //q指向a
p =&q; //p指向q
printf("%d",*(*p+1)); //所以*p展现了q,*(*p)为q展现自己储存的地址的内容
return 0;
-
    -
  • 所以说,这个int有用吗?
  • -
-
*((int *)a+n*i+j);  
-
    -
  • 函数的分号问题
  • -
-
T sum(){
.....
}

T sum(){
.....
}; //这个分号是否有必要?
-
    -
  • 答:
  • -
-
//为什么Base和Derived的虚函数地址一样呢 
#include<iostream>
using namespace std;
class Base{
public:
virtual void func(){
};
virtual void func1(){
}
};
class Derived: public Base{
public:
virtual void fun(){
};
virtual void func1(){
};
};

int main(){
Derived d;
if (d.Base::_vptr==d._vptr){
cout<<"yes"<<endl; //显示yes
}
return 0;
}
-
    -
  • 问:Base中的虚函数和Derived的虚函数的地址为什么是一样的呢

  • -
  • 答:

  • -
-

虚表指针指向了一个虚表,虚表中存放着类中的虚函数。如果类中存在虚函数,那么构造对象的时候,就会生一个虚表指针指向虚表,虚表中存放虚函数。所以,要注意的一-点, -在类的构造函数中不要调用虚函数,这是一一个危险的动作,因为很可能它还未 -初始化完毕。

-
    -
  • 问:动态联编和静态联编,可以访问派生类函数
  • -
  • 答:
  • -
-
#include<iostream>
using namespace std;
class A{
public:
void print(){
cout<<"1,2,3";
}
};
class B:public A{
public:
void print1(){
cout<<"4,5,6";
}
};
int main(){
A *ptr;
B a1;
ptr =&a1;
ptr->print1(); //can't called
return 0;
}
-
    -
  • 问:不能调用派生类函数
  • -
  • 答:
  • -
-
#include<iostream>
using namespace std;
class Base{
public:
void func4(){
cout<<"nihao";
}
};
class Derived:public Base{
public:
void func4(){
cout<<" nihao!";
}
};
int main(){
Base d1, *bp;
Derived d2;
bp=&d2;
bp->func4(); //这里直接调用了Base里面的func4(),这个算重载吗?
}
-
    -
  • 问:这个可以算重载嘛?,结果值为第一个
  • -
  • 答:
  • -
-
#include<iostream>
using namespace std;
class Length{
int meter;
public:
Length(int m){
meter = m;
}
operator double(){
return (1*meter/1000); //这个地方一定要使用1.0,否者强制转化会导致结果出错
}
};
int main(){
Length a(1500);
double m =float(a);
cout<<"m="<<m<<"km"<<endl;
return 0;
}
-

注意:这里Length返回值只能是1.0,不能是1,否者将会不准确。

+

信道

+
+

将发送端数字脉冲信号转换成模拟信号的过程称为调制(Modulation);将接收端模拟信号还原成数字脉冲信号的过程称为解调(Demodulation)。将调制和解调两种功能结合在一起的设备称为调制解调器(Modem)

+

模拟信号和数字信号之间可以相互转换:模拟信号一般通过PCM脉码调制(Pulse +Code +Modulation)方法量化为数字信号,即让模拟信号的不同幅度分别对应不同的二进制值,例如采用8位编码可将模拟信号量化为2^8=256个量级,实用中常采取24位或30位编码;数字信号一般通过对载波进行移相(Phase +Shift)的方法转换为模拟信号。

+

数字信道占用信道频带较宽。一路模拟电话的频带为4kHz带宽,一路数字电话约占64kHz,这是模拟通信目前仍有生命力的主要原因。

+
+

数字信道与模拟信道_模拟信道和数字信道_偷轮子的博客-CSDN博客

+

波形成型

+
+

从上图可以看出,相关时延大于符号持续时间,因此,当两个信号在接收侧相加时,来自于时延为的符号将会和来自于时延为的符号相加。

+

不同的符号相加,或者说,不同的符号相互干扰,即为符号间干扰(ISI)

+

一般将多径信号最大时延的倒数定义为多径信道的相关带宽。

+
+

频率选择性失真ISI一体两面,其中,频率选择性失真发生在频域,对应的时域结果ISI

+
+
+

衰落(2)-- +时延扩展,相关带宽,ISI - 知乎

+
+

脉冲整形

+

一、矩形脉冲

+

实际上矩形脉冲无失真传输是不可能的,因为由傅里叶变换可知,时域矩形脉冲,频域是sinc函数,带宽无限,而信道带宽总是有限的。 +失真严重导致采样判决出错,无法正确恢复数字信号。 +显然矩形脉冲信号不合适,sinc脉冲信号合适

+

二、sinc脉冲频谱有限,一个码元达到最大幅值时其他所有码元幅值刚好为零,码元之间不会相互影响,实现了无码间串扰。

+

基带滤波器

+

一般使用基带滤波器来实现脉冲整形

+

假设发送序列{1 1 1 -1 1 -1 -1 1} +发送序列、输入滤波器的冲激信号、每个冲激信号的冲激响应,和输出信号如图所示 +例子

+
+

基带信号的发送和接收的有效理解和掌握_滚降因子为0的系统可以算是理想低通系统吗_BIT小小书童的博客-CSDN博客

+
+

最初,信号是以矩形脉冲通过带限信道,必然会出现脉冲时延扩展引起S1,频域上看是Sa函数的旁瓣千扰。

+
+

简单概述:脉冲成形 +基带成形 (脉冲成型 基带成型) - HQU小西西 - 博客园

+

有点难,待会看

+

为什么要对基带信号进行脉冲成型【转载】 +- Riden - 博客园

+
+

为什么对基带信号要成形滤波?

+

基带信号带宽无限,需要限制带宽。成形滤波器也叫限带滤波器

+

实际中通信传输的信号大都是带通信号,也就是中心频带远大于频带宽度的信号。而这些带通信号的频谱结构只取决于等效低通信号的频谱结构。这里的等效低通信号就是你这里所指的基带数字信号。而基带数字信号的频率特性又取决于两个因素,一个是基带信号中构成每个脉冲符号的基本信号的频谱,另一个就是脉冲信号之间的相关性。换句话说可以通过设计不同的基本脉冲信号的波形和符号之间的相关性,达到改变基带信号频谱结构的目的,从而改变调制后带通信号的频谱特性。 +理解了这一点,你就可以理解为什么要对基带信号进行不同的滤波生成符号脉冲了。

+
+

基带传输与成形滤波_基带成型滤波器_长弓的坚持的博客-CSDN博客

+
+

为什么要->这里有直接结论:

+

(个人简单理解,脉冲成型(形),就是将脉冲变成其他的传输波形,理由就是压缩频谱来降低ISI) +!

+
+

简单概述:脉冲成形 +基带成形 (脉冲成型 基带成型) - 1024搜-程序员专属的搜索引擎

+
+

数字信号想要在信道中传输,必须在发射机的基带部分进行脉冲成形,将数字信号转换成脉冲信号,脉冲信号到达接收机后,在基带部分进行采样判决,将数字信号恢复出来。

+

如下图所示,脉冲成形需要用到脉冲波形,实现脉冲成形要用到基带滤波器,评估基带滤波器要用到眼图。【深入浅出通信原理-学习笔记】基带信号的发送和接收_脉冲怎么发送和接受_DUANDAUNNN的博客-CSDN博客

+
]]>
- coding + 电路
@@ -306,83 +386,58 @@ transfer,but it seem that we have really passed a,b into the function - 通信原理笔记 - /2023/05/23/Communication%20principle/ - 通信原理理解性笔记

+ 数字电子基础 + /2022/03/14/Digital%20Electronics%20Fundamentals/ + 一些数电不太能理解的地方

-

信道

-
-

将发送端数字脉冲信号转换成模拟信号的过程称为调制(Modulation);将接收端模拟信号还原成数字脉冲信号的过程称为解调(Demodulation)。将调制和解调两种功能结合在一起的设备称为调制解调器(Modem)

-

模拟信号和数字信号之间可以相互转换:模拟信号一般通过PCM脉码调制(Pulse -Code -Modulation)方法量化为数字信号,即让模拟信号的不同幅度分别对应不同的二进制值,例如采用8位编码可将模拟信号量化为2^8=256个量级,实用中常采取24位或30位编码;数字信号一般通过对载波进行移相(Phase -Shift)的方法转换为模拟信号。

-

数字信道占用信道频带较宽。一路模拟电话的频带为4kHz带宽,一路数字电话约占64kHz,这是模拟通信目前仍有生命力的主要原因。

-
-

数字信道与模拟信道_模拟信道和数字信道_偷轮子的博客-CSDN博客

-

波形成型

-
-

从上图可以看出,相关时延大于符号持续时间,因此,当两个信号在接收侧相加时,来自于时延为的符号将会和来自于时延为的符号相加。

-

不同的符号相加,或者说,不同的符号相互干扰,即为符号间干扰(ISI)

-

一般将多径信号最大时延的倒数定义为多径信道的相关带宽。

-
-

频率选择性失真ISI一体两面,其中,频率选择性失真发生在频域,对应的时域结果ISI

-
-
-

衰落(2)-- -时延扩展,相关带宽,ISI - 知乎

-
-

脉冲整形

-

一、矩形脉冲

-

实际上矩形脉冲无失真传输是不可能的,因为由傅里叶变换可知,时域矩形脉冲,频域是sinc函数,带宽无限,而信道带宽总是有限的。 -失真严重导致采样判决出错,无法正确恢复数字信号。 -显然矩形脉冲信号不合适,sinc脉冲信号合适

-

二、sinc脉冲频谱有限,一个码元达到最大幅值时其他所有码元幅值刚好为零,码元之间不会相互影响,实现了无码间串扰。

-

基带滤波器

-

一般使用基带滤波器来实现脉冲整形

-

假设发送序列{1 1 1 -1 1 -1 -1 1} -发送序列、输入滤波器的冲激信号、每个冲激信号的冲激响应,和输出信号如图所示 -例子

-
-

基带信号的发送和接收的有效理解和掌握_滚降因子为0的系统可以算是理想低通系统吗_BIT小小书童的博客-CSDN博客

-
-

最初,信号是以矩形脉冲通过带限信道,必然会出现脉冲时延扩展引起S1,频域上看是Sa函数的旁瓣千扰。

-
-

简单概述:脉冲成形 -基带成形 (脉冲成型 基带成型) - HQU小西西 - 博客园

-

有点难,待会看

-

为什么要对基带信号进行脉冲成型【转载】 -- Riden - 博客园

-
-

为什么对基带信号要成形滤波?

-

基带信号带宽无限,需要限制带宽。成形滤波器也叫限带滤波器

-

实际中通信传输的信号大都是带通信号,也就是中心频带远大于频带宽度的信号。而这些带通信号的频谱结构只取决于等效低通信号的频谱结构。这里的等效低通信号就是你这里所指的基带数字信号。而基带数字信号的频率特性又取决于两个因素,一个是基带信号中构成每个脉冲符号的基本信号的频谱,另一个就是脉冲信号之间的相关性。换句话说可以通过设计不同的基本脉冲信号的波形和符号之间的相关性,达到改变基带信号频谱结构的目的,从而改变调制后带通信号的频谱特性。 -理解了这一点,你就可以理解为什么要对基带信号进行不同的滤波生成符号脉冲了。

-
-

基带传输与成形滤波_基带成型滤波器_长弓的坚持的博客-CSDN博客

-
-

为什么要->这里有直接结论:

-

(个人简单理解,脉冲成型(形),就是将脉冲变成其他的传输波形,理由就是压缩频谱来降低ISI) -!

-
-

简单概述:脉冲成形 -基带成形 (脉冲成型 基带成型) - 1024搜-程序员专属的搜索引擎

-
-

数字信号想要在信道中传输,必须在发射机的基带部分进行脉冲成形,将数字信号转换成脉冲信号,脉冲信号到达接收机后,在基带部分进行采样判决,将数字信号恢复出来。

-

如下图所示,脉冲成形需要用到脉冲波形,实现脉冲成形要用到基带滤波器,评估基带滤波器要用到眼图。【深入浅出通信原理-学习笔记】基带信号的发送和接收_脉冲怎么发送和接受_DUANDAUNNN的博客-CSDN博客

-
+

反相器

+

COMS电路

+
    +
  • CMOS的输出特性,CMOS受负载的输出高低电平变化
  • +
  • \(V_{OH}\quad V_{OL}...\)的取法(噪声容限)
  • +
  • CMOS门不允许悬空,和地面的电阻相接不影响
  • +
  • CMOS电路的输入端不允许悬空,因为悬空会使电位不定,破坏正常的逻辑关系。另外,悬空时输入阻抗高,易受外界噪声干扰,使电路产生误动作,而且也极易造成栅极感应静电而击穿。
  • +
+

TTL电路

+
    +
  • 扇出系数的概念,计算

  • +
  • 漏电流

  • +
  • \(T_{cd}和T_{pd}\),为什么\(T_{cd}=0\)的时候,将无法信任电平

    +

    因为\(T_{cd}=0\),表面一旦高电平降低,那么电路进入无效区,这时候就需要重新,\(T_{cd}可以变大点\)

  • +
  • 交流噪声容限(是指噪声信号是高频吗?)

  • +
  • TTL电源不允许大幅调整,不允许超过10%

  • +
  • TTL电路输入端通过电阻接地,电阻值R的大小直接影响电路所处的状态。

  • +
+
+ + +
+
    +
  • OC门上拉电阻的选择,不能太大,是担心输出高电平的时候不能输出高电平,不能太小,是因为担心输出低电平的时候电流太大损坏管子(最坏的情况,只有一个管子接地),高电平的时候内阻近视为上拉电阻,而低电平的时候内阻相当于管子的阻抗,这时要求内阻较小
  • +
+
+ + +
+
    +
  • OC门和OD的优势:电平偏移,也就是说,输出的电平可以通过上拉电阻来调整
  • +
]]>
- 电路 + 电子
@@ -501,58 +556,89 @@ max(dp[i-1][j],dp[i-1][j-weight[i]]+value[i]) - 数字电子基础 - /2022/03/14/Digital%20Electronics%20Fundamentals/ - 一些数电不太能理解的地方

+ 专业英语 + /2023/06/05/English_profess/ + GANs

+

专业英语答辩

-

反相器

-

COMS电路

-
    -
  • CMOS的输出特性,CMOS受负载的输出高低电平变化
  • -
  • \(V_{OH}\quad V_{OL}...\)的取法(噪声容限)
  • -
  • CMOS门不允许悬空,和地面的电阻相接不影响
  • -
  • CMOS电路的输入端不允许悬空,因为悬空会使电位不定,破坏正常的逻辑关系。另外,悬空时输入阻抗高,易受外界噪声干扰,使电路产生误动作,而且也极易造成栅极感应静电而击穿。
  • -
-

TTL电路

-
    -
  • 扇出系数的概念,计算

  • -
  • 漏电流

  • -
  • \(T_{cd}和T_{pd}\),为什么\(T_{cd}=0\)的时候,将无法信任电平

    -

    因为\(T_{cd}=0\),表面一旦高电平降低,那么电路进入无效区,这时候就需要重新,\(T_{cd}可以变大点\)

  • -
  • 交流噪声容限(是指噪声信号是高频吗?)

  • -
  • TTL电源不允许大幅调整,不允许超过10%

  • -
  • TTL电路输入端通过电阻接地,电阻值R的大小直接影响电路所处的状态。

  • -
-
- - -
-
    -
  • OC门上拉电阻的选择,不能太大,是担心输出高电平的时候不能输出高电平,不能太小,是因为担心输出低电平的时候电流太大损坏管子(最坏的情况,只有一个管子接地),高电平的时候内阻近视为上拉电阻,而低电平的时候内阻相当于管子的阻抗,这时要求内阻较小
  • -
-
- - -
-
    -
  • OC门和OD的优势:电平偏移,也就是说,输出的电平可以通过上拉电阻来调整
  • -
+
+

大家好,欢迎大家来到这里,今天我将为大家介绍一个用于图像翻译的新的技术,叫做cycle-gan,其是由AI华人青年学者Jun-Yan +Zhu主导的项目,在介绍这篇paper之前,我们先和大家介绍一些较为相近的领域。

+
+

First

+

Hello everyone, welcome to come here, today I will introduce a new +technology for image translation, called cycle-gan, which is a project +led by young AI Chinese scholar Jun-Yan Zhu, in this paper Before that, +let's introduce some relatively similar fields to you.

+
+

你们了解文心一言、或者是chatgpt,或许是由Google开发的bard吗?他们的共性是什么呢?没错,他们的共性就是都具有创造性,所谓的创造性,就是当你输入同一句话的时候,它能给出不同的结果,所以gpt的第一个单词就是Generative,但是CNN可不擅长生成式模型,当你给出同一个输入时,它更倾向于输出同一结果。

+
+

Do you guys know Wenxinyiyan, or chatgpt, maybe bard developed by +Google? What do they have in common? Yes, what they have in common is +that they are all creative. The so-called creativity means that when you +input the same sentence, it can give different results, so the first +word of gpt is Generative, but CNN is not good at generative models. , +when you give the same input, it is more likely to output the same +result.

+
+

另一个例子就是跨域识别问题,如何通过一个训练的模型,去泛化识别其它域的问题,这里就涉及到域适应,而gan就是用来解决这种问题的。

+
+

Another example is the problem of cross-domain recognition. How to +generalize and recognize other domains through a trained model, here +involves domain adaptation, and gan is used to solve this problem.

+
+

这是Gan的一个模型框架,主要是由生成器和判别器两部分组成,生成器用来生成内容,而判别器主要识别生成的内容是否是假的。生成器和判别器是两个模型,他们就如自然界一样捕食者与被捕食者共同进化。当判别器无法区分生成的内容是否为假,说明模型已经表现十分良好了

+
+

This is a model framework of Gan, which is mainly composed of two +parts: the generator and the discriminator. The generator is used to +generate content, and the discriminator mainly identifies whether the +generated content is fake. The generator and the discriminator are two +models, and they co-evolve with the prey just like in nature. When the +discriminator cannot distinguish whether the generated content is fake +or not, it means that the model has performed very well

+
+

Cycle-gan 使用了循环一致性,共需要四个模型,即两个生成模型GA->B, +GB->A,以及两个判别模型 +DA和DB,这就是cycle的由来,但是更加令人振奋人心的是:cycle-gan不需要配对的数据对进行训练,也就是说我们只需要给cycle-gan足够多的源域和目的域的数据,而不需要对其进行大量标签工作,它就会自动学习并且成功x +域到y域的转化规则,由于其涉及到两个域的双向转化,因而其迭代中使用的损失函数也是循环一致损失函数。

+
+

Cycle-gan uses cycle consistency and requires a total of four models, +namely two generative models GA->B, GB->A, and two discriminative +models DA and DB. This is the origin of cycle, but it is even more +exciting What is popular is that cycle-gan does not require paired data +pairs for training, that is to say, we only need to give cycle-gan +enough data from the source domain and the target domain without a lot +of labeling work on it, and it will Automatically learn and successfully +convert the x domain to the y domain. Since it involves the two-way +conversion of the two domains, the loss function used in its iteration +is also a cycle consistent loss function.

+

second

+
+

接下来给大家介绍一些cycle-gan应用:如视频增强领域,黑白视频变成彩色视频。或者是场景转化。或者是将抽象的画转化为一个具象的画如房屋建筑,这些都可以作为通信数据压缩,你可以试着一下发送方在网路上传送类似于色块一样的数据,它可能占用的带宽十分的小,当你在接收端受到这些色块时,再将其恢复出来。这样看起来是一个不错的视频压缩方法

+
+

Next, I will introduce some cycle-gan applications: for example, in +the field of video enhancement, black-and-white video becomes color +video. Or scene transformation. Or convert an abstract painting into a +concrete painting such as a building, these can be used as communication +data compression, you can try the sender to transmit data similar to +color blocks on the network, it may take up a lot of bandwidth Small, +when you get these color patches at the receiving end, bring them back. +This looks like a good way to compress video

+

Third

+

The third part is sentence analysis,

+

The meaning of the first sentence is +“此外,在实践中,我们发现很难优化对抗目标隔离:标准程序通常会导致众所周知的模式崩溃问题,其中所有输入图像都映射到相同的输出图像,优化无法取得进展 +[15]。

+

”。

+

The second sentence +means:“我们还与以前依赖于手动定义的样式和内容分解或共享嵌入函数的方法进行了比较,并表明我们的方法优于这些基线。”。

+

The third part is sentence analysis +“图像到图像转换的想法至少可以追溯到 Hertzmann 等人的图像类比 +[19],他们在单个输入输出训练图像对上采用非参数纹理模型 [10]。”

+

Here are some references. thanks for listening!

]]>
- 电子 + code
@@ -652,92 +738,6 @@ href="https://mp.weixin.qq.com/s/Etxi9erBTg0Y6Vt71Y4r9Q">同任务但不同domai

Transform

OpenAI ChatGPT(一):十分钟读懂 Transformer - 知乎

-]]> - - code - -
- - 专业英语 - /2023/06/05/English_profess/ - GANs

-

专业英语答辩

- -
-

大家好,欢迎大家来到这里,今天我将为大家介绍一个用于图像翻译的新的技术,叫做cycle-gan,其是由AI华人青年学者Jun-Yan -Zhu主导的项目,在介绍这篇paper之前,我们先和大家介绍一些较为相近的领域。

-
-

First

-

Hello everyone, welcome to come here, today I will introduce a new -technology for image translation, called cycle-gan, which is a project -led by young AI Chinese scholar Jun-Yan Zhu, in this paper Before that, -let's introduce some relatively similar fields to you.

-
-

你们了解文心一言、或者是chatgpt,或许是由Google开发的bard吗?他们的共性是什么呢?没错,他们的共性就是都具有创造性,所谓的创造性,就是当你输入同一句话的时候,它能给出不同的结果,所以gpt的第一个单词就是Generative,但是CNN可不擅长生成式模型,当你给出同一个输入时,它更倾向于输出同一结果。

-
-

Do you guys know Wenxinyiyan, or chatgpt, maybe bard developed by -Google? What do they have in common? Yes, what they have in common is -that they are all creative. The so-called creativity means that when you -input the same sentence, it can give different results, so the first -word of gpt is Generative, but CNN is not good at generative models. , -when you give the same input, it is more likely to output the same -result.

-
-

另一个例子就是跨域识别问题,如何通过一个训练的模型,去泛化识别其它域的问题,这里就涉及到域适应,而gan就是用来解决这种问题的。

-
-

Another example is the problem of cross-domain recognition. How to -generalize and recognize other domains through a trained model, here -involves domain adaptation, and gan is used to solve this problem.

-
-

这是Gan的一个模型框架,主要是由生成器和判别器两部分组成,生成器用来生成内容,而判别器主要识别生成的内容是否是假的。生成器和判别器是两个模型,他们就如自然界一样捕食者与被捕食者共同进化。当判别器无法区分生成的内容是否为假,说明模型已经表现十分良好了

-
-

This is a model framework of Gan, which is mainly composed of two -parts: the generator and the discriminator. The generator is used to -generate content, and the discriminator mainly identifies whether the -generated content is fake. The generator and the discriminator are two -models, and they co-evolve with the prey just like in nature. When the -discriminator cannot distinguish whether the generated content is fake -or not, it means that the model has performed very well

-
-

Cycle-gan 使用了循环一致性,共需要四个模型,即两个生成模型GA->B, -GB->A,以及两个判别模型 -DA和DB,这就是cycle的由来,但是更加令人振奋人心的是:cycle-gan不需要配对的数据对进行训练,也就是说我们只需要给cycle-gan足够多的源域和目的域的数据,而不需要对其进行大量标签工作,它就会自动学习并且成功x -域到y域的转化规则,由于其涉及到两个域的双向转化,因而其迭代中使用的损失函数也是循环一致损失函数。

-
-

Cycle-gan uses cycle consistency and requires a total of four models, -namely two generative models GA->B, GB->A, and two discriminative -models DA and DB. This is the origin of cycle, but it is even more -exciting What is popular is that cycle-gan does not require paired data -pairs for training, that is to say, we only need to give cycle-gan -enough data from the source domain and the target domain without a lot -of labeling work on it, and it will Automatically learn and successfully -convert the x domain to the y domain. Since it involves the two-way -conversion of the two domains, the loss function used in its iteration -is also a cycle consistent loss function.

-

second

-
-

接下来给大家介绍一些cycle-gan应用:如视频增强领域,黑白视频变成彩色视频。或者是场景转化。或者是将抽象的画转化为一个具象的画如房屋建筑,这些都可以作为通信数据压缩,你可以试着一下发送方在网路上传送类似于色块一样的数据,它可能占用的带宽十分的小,当你在接收端受到这些色块时,再将其恢复出来。这样看起来是一个不错的视频压缩方法

-
-

Next, I will introduce some cycle-gan applications: for example, in -the field of video enhancement, black-and-white video becomes color -video. Or scene transformation. Or convert an abstract painting into a -concrete painting such as a building, these can be used as communication -data compression, you can try the sender to transmit data similar to -color blocks on the network, it may take up a lot of bandwidth Small, -when you get these color patches at the receiving end, bring them back. -This looks like a good way to compress video

-

Third

-

The third part is sentence analysis,

-

The meaning of the first sentence is -“此外,在实践中,我们发现很难优化对抗目标隔离:标准程序通常会导致众所周知的模式崩溃问题,其中所有输入图像都映射到相同的输出图像,优化无法取得进展 -[15]。

-

”。

-

The second sentence -means:“我们还与以前依赖于手动定义的样式和内容分解或共享嵌入函数的方法进行了比较,并表明我们的方法优于这些基线。”。

-

The third part is sentence analysis -“图像到图像转换的想法至少可以追溯到 Hertzmann 等人的图像类比 -[19],他们在单个输入输出训练图像对上采用非参数纹理模型 [10]。”

-

Here are some references. thanks for listening!

]]>
code @@ -1016,38 +1016,6 @@ can free the space

coding
- - 保研注意事项 - /2023/06/13/Postgraduate/ - 保研注意事项

- -
    -
  • 浙江大学(6月15日结束
  • -
-

浙江大学信息与电子工程学院2023年暑期学术夏令营 -- 浙江大学 - 保研论坛-保研经验分享 - Powered by Discuz!

-

浙江大学信息与电子工程学院2023年全国优秀大学生暑期学术夏令营活动通知

-

-
    -
  • 南京大学(6月15日结束
  • -
-

2023年南京大学电子科学与工程学院优秀大学生夏令营 -- 南京大学 - 保研论坛-保研经验分享 - Powered by Discuz!

-

2023年南京大学电子科学与工程学院优秀大学生夏令营报名通知

-

2023年南京大学电子科学与工程学院夏令营报名

-

-]]>
- - 生活 - -
Python 机器学习 /2022/01/19/Python%E5%9B%BE%E5%83%8F%E8%AF%86%E5%88%AB/ @@ -1084,119 +1052,51 @@ href="https://ninglang.lanzoup.com/in19iz1b7ze">xftp操作
extra-index-url= https://mirrors.aliyun.com/pypi/simple

ubuntu配置opencv

-

安装多线程工具axel

-
apt-get install axel
-

下载方式

-
axel 参数 文件下载地址
常用可选参数:
-s 设置最大下载速度,如果限制到512KB/s,则填写512000
-n 指定连接数
-o 指定另存为目录,或者指定的目录+文件名
-H 指定header
-U 指定useragent
-q 静默模式
-a 更改默认进度条样式

eg:
axel -n 30 http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.15.2_x86_64.tar.gz
-]]> - - coding - -
- - Qt - /2021/09/20/Qt1/ - Qt问题总汇

- -

信号和槽

-

连接函数:connect

-
connect(信号发送者,发送的信号(函数的地址),信号接受者,处理的槽函数(函数的地址));
connect(Button,&QpushButton::clicked,this,&Qwidget::close);
-

松散耦合:发送端和接受端的松散耦合

-

自定义槽函数和信号

-
    -
  • signal只能声明,不能定义,写在发送信号的类的signals中,返回值是void
  • -
  • slot需要声明,需要在cpp文件中定义,写在public slots文件中,返回值是void
  • -
-
class.h
public slots:
// slots function area or declaration in public
//return is void,need declaration ,and realize.
void treat();
};


class.cpp
void Studnet::treat(){
qDebug()<<"treat!";
}
-
signals:
//custom signals
//return is void,only declaration ,Needn't realize
void hungry();
-

定义槽和信号后,需要定义触发函数

-
weidget:
void classover();
void classover(){
emit zt->hungry();
}
-

要先定义connect再调用classover

-

信号的重载

-

信号函数和槽函数直接重载时,会因为二义性而导致程序无法编译,于是我们需要用函数指针来代替直接给地址,方法如下:

-
void(Teacher:: *teachersignal)(QString)=&Teacher::hungry;
void(Studnet:: *studentslot)(QString) = &Studnet::treat;

connect(zt,teachersignal::hungry,st,studentslot);
-
    -
  • 问题:这里的两个函数指针是如何定义的???
  • -
  • 答:
  • -
-

Qstring 转char *

-
Qstring.toUtf8().data()  //先转utf8,再转char*
-

信号连接信号

-
connect(btn,&QPushButton::clicked,zt,teachersignal2);
-

直接将两个信号用connect相连

-
    -
  • 断开信号 disconnect

  • -
  • 多个信号一个槽

  • -
  • 多个槽连接一个信号

  • -
  • 信号和槽的参数类型必须一一对应,信号参数个数可以大于槽函数的参数个数

  • -
-

lambda函数

-
//connect 一般使用方法
connect(信号发送者,发送的信号(函数的地址),信号接受者,处理的槽函数(函数的地址));

//lambda 使用的方式
connect(btn3,&QPushButton::clicked,this,[=](){
btn3->move(200,100);});
//可以省略this
connect(btn3,&QPushButton::clicked,[=](){
btn3->move(200,100);});
-
    -
  • 问:为什么lambda的函数不像之前的函数一样,需要取地址符&.
  • -
  • 答:可以不加取地址符,但是早期Qt并不支持.
  • -
-

模态与非模态

-

模态

-
connect(ui->actionnew,&QAction::triggered,[=](){
QDialog dlg(this);
dlg.resize(200,100);
dlg.exec(); //对话框窗口保持
qDebug()<<"modal dialog!";
-

非模态

-
[=](){QDialog dig2(this);
dig2.show(); //无法保持,一闪而过
}
QDialog *dig2 =new QDialog(this);
dig2->show(); //可以保持(堆区)
-
    -
  • 问:指针调用和对象调用为什么会出现不一样的结果?
  • -
  • 答:
  • +
  • 网上所有的教程都无法直接成功,所以,个人的踩坑经历
  • +
  • 首先去opencv-python下载对应Python版本的opencv
  • +
  • 然后移入树莓派中,使用pip3 install ...whl即可成功
  • +
  • 很多的包都有这个特点,所以,要注意这个点,当自己的树莓派无法安装时,可以考虑这个专门为树莓派做的网站
+

安装多线程工具axel

+
apt-get install axel
+

下载方式

+
axel 参数 文件下载地址
常用可选参数:
-s 设置最大下载速度,如果限制到512KB/s,则填写512000
-n 指定连接数
-o 指定另存为目录,或者指定的目录+文件名
-H 指定header
-U 指定useragent
-q 静默模式
-a 更改默认进度条样式

eg:
axel -n 30 http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.15.2_x86_64.tar.gz
]]>
coding
- DSP - /2022/03/14/Signals%20and%20Systems/ - 信号与系统笔记

-

DSP相关讨论

- -

常用指令

-
    -
  1. 导出时设置颜色为透明色:
  2. -
-
set(gca,'color','none');
-
    -
  1. 设置matlab图像默认为白色:
  2. -
-
set(0,'defaultfigurecolor','w')
-
    -
  1. 设置动画:
  2. -
-
% 画一下sinc函数随着参数变化时的图像变化
fig = figure;
% x = linspace(0, 2*pi, 100);
t=-3:0.001:3;
im = cell(1, 20);
for i = 1:15

clf(fig);
dis=0.8;
func1= sinc_me(t,10*i);
func2= sinc_me(t-0.02*pi,10*i);
subplot(2,1,1);
plot(t,func1);
hold on;
plot(t,func2);
legend('N=10','N=10');
subplot(2,1,2);
plot(t,func1+func2);
set(get(gca, 'Title'), 'String', num2str(i));
hold off;
% plot(x, y, 'Color', all_colors(1, :), 'LineWidth', 2);
% xlim([0, 2*pi]);
pause();
% 注释下面两句话可以看到动态输出
% frame = getframe(fig);
% im{i} = frame2im(frame);
end
% 下面是保存成 gif
% filename = './Matlab_2_7_6_Curve_Animation1.gif';
% for idx = 1:20
% % 制作gif文件,图像必须是index索引图像
% [A, map] = rgb2ind(im{idx}, 256);
% if idx == 1
% imwrite(A, map, filename, 'gif', 'LoopCount', Inf, 'DelayTime', 0.3);
% else
% imwrite(A, map, filename, 'gif', 'WriteMode', 'append', 'DelayTime', 0.3);
% end
% end
-
    -
  1. 设置latex显示
  2. -
-
set(get(gca, 'Title'), 'String','$x_1(k)$', 'interpreter','latex','Fontsize',18);
-
    -
  1. 设置画布大小(其中0.7和0.6是画布的长和宽)
  2. -
-
figure('units','normalized','position',[0.1,0.1,0.7,0.6])
-

-]]>
- - 电子 - -
- - 学业生涯规划指导经验交流贴 - /2023/10/31/Study%20exchange%20meeting/ - 欢迎交流

+ 保研注意事项 + /2023/06/13/Postgraduate/ + 保研注意事项

+
    +
  • 浙江大学(6月15日结束
  • +
+

浙江大学信息与电子工程学院2023年暑期学术夏令营 +- 浙江大学 - 保研论坛-保研经验分享 - Powered by Discuz!

+

浙江大学信息与电子工程学院2023年全国优秀大学生暑期学术夏令营活动通知

+

+
    +
  • 南京大学(6月15日结束
  • +
+

2023年南京大学电子科学与工程学院优秀大学生夏令营 +- 南京大学 - 保研论坛-保研经验分享 - Powered by Discuz!

+

2023年南京大学电子科学与工程学院优秀大学生夏令营报名通知

+

2023年南京大学电子科学与工程学院夏令营报名

+

]]>
- 学习 + 生活
@@ -1317,6 +1217,63 @@ href="https://pypi.org/project/torch/1.8.0/#modal-close">torch-wheel下载 Code + + Qt + /2021/09/20/Qt1/ + Qt问题总汇

+ +

信号和槽

+

连接函数:connect

+
connect(信号发送者,发送的信号(函数的地址),信号接受者,处理的槽函数(函数的地址));
connect(Button,&QpushButton::clicked,this,&Qwidget::close);
+

松散耦合:发送端和接受端的松散耦合

+

自定义槽函数和信号

+
    +
  • signal只能声明,不能定义,写在发送信号的类的signals中,返回值是void
  • +
  • slot需要声明,需要在cpp文件中定义,写在public slots文件中,返回值是void
  • +
+
class.h
public slots:
// slots function area or declaration in public
//return is void,need declaration ,and realize.
void treat();
};


class.cpp
void Studnet::treat(){
qDebug()<<"treat!";
}
+
signals:
//custom signals
//return is void,only declaration ,Needn't realize
void hungry();
+

定义槽和信号后,需要定义触发函数

+
weidget:
void classover();
void classover(){
emit zt->hungry();
}
+

要先定义connect再调用classover

+

信号的重载

+

信号函数和槽函数直接重载时,会因为二义性而导致程序无法编译,于是我们需要用函数指针来代替直接给地址,方法如下:

+
void(Teacher:: *teachersignal)(QString)=&Teacher::hungry;
void(Studnet:: *studentslot)(QString) = &Studnet::treat;

connect(zt,teachersignal::hungry,st,studentslot);
+
    +
  • 问题:这里的两个函数指针是如何定义的???
  • +
  • 答:
  • +
+

Qstring 转char *

+
Qstring.toUtf8().data()  //先转utf8,再转char*
+

信号连接信号

+
connect(btn,&QPushButton::clicked,zt,teachersignal2);
+

直接将两个信号用connect相连

+
    +
  • 断开信号 disconnect

  • +
  • 多个信号一个槽

  • +
  • 多个槽连接一个信号

  • +
  • 信号和槽的参数类型必须一一对应,信号参数个数可以大于槽函数的参数个数

  • +
+

lambda函数

+
//connect 一般使用方法
connect(信号发送者,发送的信号(函数的地址),信号接受者,处理的槽函数(函数的地址));

//lambda 使用的方式
connect(btn3,&QPushButton::clicked,this,[=](){
btn3->move(200,100);});
//可以省略this
connect(btn3,&QPushButton::clicked,[=](){
btn3->move(200,100);});
+
    +
  • 问:为什么lambda的函数不像之前的函数一样,需要取地址符&.
  • +
  • 答:可以不加取地址符,但是早期Qt并不支持.
  • +
+

模态与非模态

+

模态

+
connect(ui->actionnew,&QAction::triggered,[=](){
QDialog dlg(this);
dlg.resize(200,100);
dlg.exec(); //对话框窗口保持
qDebug()<<"modal dialog!";
+

非模态

+
[=](){QDialog dig2(this);
dig2.show(); //无法保持,一闪而过
}
QDialog *dig2 =new QDialog(this);
dig2->show(); //可以保持(堆区)
+
    +
  • 问:指针调用和对象调用为什么会出现不一样的结果?
  • +
  • 答:
  • +
+]]>
+ + coding + +
出租车载客模型 /2021/08/15/Taxi%20passenger%20model/ @@ -1550,6 +1507,49 @@ W_{\text {long }}=\frac{2 W_{L}+W_{\text {city }}(T)}{2 L / v_{\text Math model + + DSP + /2022/03/14/Signals%20and%20Systems/ + 信号与系统笔记

+

DSP相关讨论

+ +

常用指令

+
    +
  1. 导出时设置颜色为透明色:
  2. +
+
set(gca,'color','none');
+
    +
  1. 设置matlab图像默认为白色:
  2. +
+
set(0,'defaultfigurecolor','w')
+
    +
  1. 设置动画:
  2. +
+
% 画一下sinc函数随着参数变化时的图像变化
fig = figure;
% x = linspace(0, 2*pi, 100);
t=-3:0.001:3;
im = cell(1, 20);
for i = 1:15

clf(fig);
dis=0.8;
func1= sinc_me(t,10*i);
func2= sinc_me(t-0.02*pi,10*i);
subplot(2,1,1);
plot(t,func1);
hold on;
plot(t,func2);
legend('N=10','N=10');
subplot(2,1,2);
plot(t,func1+func2);
set(get(gca, 'Title'), 'String', num2str(i));
hold off;
% plot(x, y, 'Color', all_colors(1, :), 'LineWidth', 2);
% xlim([0, 2*pi]);
pause();
% 注释下面两句话可以看到动态输出
% frame = getframe(fig);
% im{i} = frame2im(frame);
end
% 下面是保存成 gif
% filename = './Matlab_2_7_6_Curve_Animation1.gif';
% for idx = 1:20
% % 制作gif文件,图像必须是index索引图像
% [A, map] = rgb2ind(im{idx}, 256);
% if idx == 1
% imwrite(A, map, filename, 'gif', 'LoopCount', Inf, 'DelayTime', 0.3);
% else
% imwrite(A, map, filename, 'gif', 'WriteMode', 'append', 'DelayTime', 0.3);
% end
% end
+
    +
  1. 设置latex显示
  2. +
+
set(get(gca, 'Title'), 'String','$x_1(k)$', 'interpreter','latex','Fontsize',18);
+
    +
  1. 设置画布大小(其中0.7和0.6是画布的长和宽)
  2. +
+
figure('units','normalized','position',[0.1,0.1,0.7,0.6])
+

+]]>
+ + 电子 + +
+ + 学业生涯规划指导经验交流贴 + /2023/10/31/Study%20exchange%20meeting/ + 欢迎交流

+ +]]>
+ + 学习 + +
爬虫小结 /2021/02/02/Web%20Crawler/ @@ -1632,88 +1632,6 @@ src="https://picturnl.oss-cn-shanghai.aliyuncs.com/20210202145703.png" />

coding
- - 评价类数学模型总结 - /2022/01/22/common_model/ - 小小总结,希望以后对自己有帮助

- -

权重系数确定的方法

-

题设:n个评价对象,m个评价指标观测值为 \[ -a_{ij}\quad(i=1,2,...n;j=1,2,..,m) -\]

-

\[ -\begin{bmatrix}a_{11} & a_{12}&...&a_{1,m}\\\\a_{21} & -a_{22}&...&a_{2m}\\ \vdots&...&...&\\a_{n1} & -a_{n2}&...&a_{nm}\end{bmatrix} -\]

-

均方差法

-

\[ -\mu_j=\frac{1}{n}\sum_{i=1}^{n}a_{ij}\qquad -s_j=\sqrt{\frac{1}{n}(a_{ij}-\mu_j)^2}\\ -\]

-

\[ -\begin{bmatrix}a_{11}\\a_{21}\\\vdots\\a_{n1}\end{bmatrix}\cdots\begin{bmatrix}a_{1m}\\a_{2m}\\\vdots\\a_{nm}\end{bmatrix}\longrightarrow\begin{bmatrix}\mu_1&\cdots\mu_m\end{bmatrix}\longrightarrow -\begin{bmatrix}s_1&\cdots&s_m\end{bmatrix}\\ -\]

-

\[ -w_j=\frac{s_j}{\sum_{k=1}^{m}s_k}(j=1,2,3,4...m)\\ -\]

-

\[ -\begin{bmatrix}w_1& w_2&\cdots w_m\end{bmatrix} -\]

-

极差法

-

\[ -r_{j}=\max _{1 \leq i<k \leq n}\left\{\left|a_{i j}-a_{k -j}\right|\right\}(j=1,2, \cdots, m)\\ -\]

-

\[ -\max_{every -element}\begin{bmatrix}rand(a_{i1}-a_{k1})&\cdots&rand(a_{ij}-a_{kj})\end{bmatrix}\longrightarrow\begin{bmatrix}r_1&r_2&\cdots&r_m\end{bmatrix} -\]

-

所以第\(j\)项指标的权重系数为 \[ -w_{j}=\frac{s_{j}}{\sum_{l=1}^{m} r_{k}}(j=1,2, \cdots, m) -\]

-

熵值法

-

特征比重:

-

\[\mu_j=\sum_{i=1}^{n} a_{i -j}>0\],第\(j\)项指标的特征比重为 \[ -p_{i j}=\frac{a_{i j}}{\sum_{i=1}^{n} a_{i j}}(i=1,2, \cdots, n ; j=1,2, -\cdots, m) -\]

-

\[ -\begin{bmatrix}a_{11}\\a_{21}\\\vdots\\a_{n1}\end{bmatrix}\cdots\begin{bmatrix}a_{1m}\\a_{2m}\\\vdots\\a_{nm}\end{bmatrix}\longrightarrow\begin{bmatrix}\mu_1&\cdots\mu_m\end{bmatrix}\longrightarrow\begin{bmatrix}p_{11}&\cdots&p_{1m}\\p_{21}&\cdots&p_{2m}\\\vdots&\cdots&\\p_{n1}&\cdots&p_{nm}\end{bmatrix} -\]

-

\(j\)项的熵值为: \[ -e_{j}=-\frac{1}{\ln n} \sum_{i=1}^{n} p_{i j} \ln p_{i j}(j=1,2, \cdots, -m) -\]

-

\[ -\begin{bmatrix}p_{11}&\cdots&p_{1m}\\p_{21}&\cdots&p_{2m}\\\vdots&\cdots&\\p_{n1}&\cdots&p_{nm}\end{bmatrix}\longrightarrow\begin{bmatrix}e_1&\cdots&e_m\end{bmatrix} -\]

-

不难看出,如果第\(j\)项指标的观测值差异越大,熵值越小;反之,熵值越大。

-

计算第\(j\)项指标的差异系数为 \[ -g_{j}=1-e_{j}(j=1,2, \cdots, m) -\] 如果第项指标的观测值差异越大,则差异系数\(g\)就越大,第\(j\)项指标也就越重要。

-

\(j\)项的权重系数为 \[ -w_{j}=\frac{g_{j}}{\sum_{k=1}^{m} g_{k}}(j=1,2, \cdots, m) -\] 参考文章:

-

熵的定义信息熵

-]]>
- - Math model - -
Windows常用指令和工具 /2022/01/05/Windows_command/ @@ -1868,46 +1786,87 @@ alt="image-20240302141718235" /> - Docker-ubuntu安装ssh - /2024/01/22/docker-ubuntu-ssh%E5%AE%89%E8%A3%85/ - 这是一篇有关Docker-ubuntu-ssh的安装教程

+ 评价类数学模型总结 + /2022/01/22/common_model/ + 小小总结,希望以后对自己有帮助

-

STEP1:安装openssh-server

-

1.更新源

-
apt update
-

2.安装openssh-server

-
apt install openssh-server
-

对于Alpine-linux,则用下面命令安装

-
apk add --update openssh-server
-

还需安装openrc

-
apk add openrc
-

STEP2:设置允许root登录

-

设置/etc/ssh/sshd_config

-

追加如下指令

-

-- PermitRootLogin yes

-

NGINX-Docker无法使用apt问题

-

:star:先换源

-
cd /etc/apt
-

生成source文件

-
touch  sources.list
-

写入源

-
echo "deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free" >>sources.list
echo "deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free" >>sources.list
-

删除缓存

-
rm -fR /var/lib/apt/lists/*
-

在更新

-
apt-get update
-
while true; do
ping -c 1 -v6 -w 1 www.baidu.com > /dev/null
sleep 15
done &
+

权重系数确定的方法

+

题设:n个评价对象,m个评价指标观测值为 \[ +a_{ij}\quad(i=1,2,...n;j=1,2,..,m) +\]

+

\[ +\begin{bmatrix}a_{11} & a_{12}&...&a_{1,m}\\\\a_{21} & +a_{22}&...&a_{2m}\\ \vdots&...&...&\\a_{n1} & +a_{n2}&...&a_{nm}\end{bmatrix} +\]

+

均方差法

+

\[ +\mu_j=\frac{1}{n}\sum_{i=1}^{n}a_{ij}\qquad +s_j=\sqrt{\frac{1}{n}(a_{ij}-\mu_j)^2}\\ +\]

+

\[ +\begin{bmatrix}a_{11}\\a_{21}\\\vdots\\a_{n1}\end{bmatrix}\cdots\begin{bmatrix}a_{1m}\\a_{2m}\\\vdots\\a_{nm}\end{bmatrix}\longrightarrow\begin{bmatrix}\mu_1&\cdots\mu_m\end{bmatrix}\longrightarrow +\begin{bmatrix}s_1&\cdots&s_m\end{bmatrix}\\ +\]

+

\[ +w_j=\frac{s_j}{\sum_{k=1}^{m}s_k}(j=1,2,3,4...m)\\ +\]

+

\[ +\begin{bmatrix}w_1& w_2&\cdots w_m\end{bmatrix} +\]

+

极差法

+

\[ +r_{j}=\max _{1 \leq i<k \leq n}\left\{\left|a_{i j}-a_{k +j}\right|\right\}(j=1,2, \cdots, m)\\ +\]

+

\[ +\max_{every +element}\begin{bmatrix}rand(a_{i1}-a_{k1})&\cdots&rand(a_{ij}-a_{kj})\end{bmatrix}\longrightarrow\begin{bmatrix}r_1&r_2&\cdots&r_m\end{bmatrix} +\]

+

所以第\(j\)项指标的权重系数为 \[ +w_{j}=\frac{s_{j}}{\sum_{l=1}^{m} r_{k}}(j=1,2, \cdots, m) +\]

+

熵值法

+

特征比重:

+

\[\mu_j=\sum_{i=1}^{n} a_{i +j}>0\],第\(j\)项指标的特征比重为 \[ +p_{i j}=\frac{a_{i j}}{\sum_{i=1}^{n} a_{i j}}(i=1,2, \cdots, n ; j=1,2, +\cdots, m) +\]

+

\[ +\begin{bmatrix}a_{11}\\a_{21}\\\vdots\\a_{n1}\end{bmatrix}\cdots\begin{bmatrix}a_{1m}\\a_{2m}\\\vdots\\a_{nm}\end{bmatrix}\longrightarrow\begin{bmatrix}\mu_1&\cdots\mu_m\end{bmatrix}\longrightarrow\begin{bmatrix}p_{11}&\cdots&p_{1m}\\p_{21}&\cdots&p_{2m}\\\vdots&\cdots&\\p_{n1}&\cdots&p_{nm}\end{bmatrix} +\]

+

\(j\)项的熵值为: \[ +e_{j}=-\frac{1}{\ln n} \sum_{i=1}^{n} p_{i j} \ln p_{i j}(j=1,2, \cdots, +m) +\]

+

\[ +\begin{bmatrix}p_{11}&\cdots&p_{1m}\\p_{21}&\cdots&p_{2m}\\\vdots&\cdots&\\p_{n1}&\cdots&p_{nm}\end{bmatrix}\longrightarrow\begin{bmatrix}e_1&\cdots&e_m\end{bmatrix} +\]

+

不难看出,如果第\(j\)项指标的观测值差异越大,熵值越小;反之,熵值越大。

+

计算第\(j\)项指标的差异系数为 \[ +g_{j}=1-e_{j}(j=1,2, \cdots, m) +\] 如果第项指标的观测值差异越大,则差异系数\(g\)就越大,第\(j\)项指标也就越重要。

+

\(j\)项的权重系数为 \[ +w_{j}=\frac{g_{j}}{\sum_{k=1}^{m} g_{k}}(j=1,2, \cdots, m) +\] 参考文章:

+

熵的定义信息熵

]]>
- Code + Math model
- - - /2023/10/17/index/ - -]]> - 数据结构 /2022/04/26/data%20struct/ @@ -2171,6 +2130,41 @@ class="math inline">\(O(1)\) coding + + Docker-ubuntu安装ssh + /2024/01/22/docker-ubuntu-ssh%E5%AE%89%E8%A3%85/ + 这是一篇有关Docker-ubuntu-ssh的安装教程

+ +

STEP1:安装openssh-server

+

1.更新源

+
apt update
+

2.安装openssh-server

+
apt install openssh-server
+

对于Alpine-linux,则用下面命令安装

+
apk add --update openssh-server
+

还需安装openrc

+
apk add openrc
+

STEP2:设置允许root登录

+

设置/etc/ssh/sshd_config

+

追加如下指令

+

-- PermitRootLogin yes

+

NGINX-Docker无法使用apt问题

+

:star:先换源

+
cd /etc/apt
+

生成source文件

+
touch  sources.list
+

写入源

+
echo "deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free" >>sources.list
echo "deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free" >>sources.list
+

删除缓存

+
rm -fR /var/lib/apt/lists/*
+

在更新

+
apt-get update
+
while true; do
ping -c 1 -v6 -w 1 www.baidu.com > /dev/null
sleep 15
done &
+]]>
+ + Code + +
ikuai-docker自建webdav /2024/01/30/docker%E8%87%AA%E5%BB%BAwebdav/ @@ -2207,6 +2201,12 @@ class="math inline">\(O(1)\) Code + + + /2023/10/17/index/ + +]]> + Linux开发项目总结 /2023/11/25/linux_problem/ @@ -2647,58 +2647,6 @@ class="math display">\[ Math Model - - ISAC - /2023/07/06/%E9%80%9A%E4%BF%A1%E6%84%9F%E7%9F%A5%E4%B8%80%E4%BD%93%E5%8C%96/ - 移动通信重点总结

-

通感一体化

- -

什么是通感一体化(ISAC)

-

通信感知一体化——从概念到实践 -- 华为

-

天线振子_百度百科

-

(35条消息) -3GPP信道模型路损基础知识_3gpp常用信道模型_LinkEverything的博客-CSDN博客

-
-

即非正交多址接入(NOMA)。在正交多址技术(OMA)中,只能为一个用户分配单一的无线资源,例如按频率分割或按时间分割,而NOMA方式可将一个资源分配给多个用户。在某些场景中,比如远近效应场景和广覆盖多节点接入的场景,特别是上行密集场景,采用功率复用的非正交接入多址方式较传统的正交接入有明显的性能优势,更适合未来系统的部署。目前已经有研究验证了在城市地区采用NOMA的效果,并已证实,采用该方法可使无线接入宏蜂窝的总吞吐量提高50%左右。非正交多址复用通过结合串行干扰消除或类最大似然解调才能取得容量极限,因此技术实现的难点在于是否能设计出低复杂度且有效的接收机算法。

-

NOMA不同于传统的正交传输,在发送端采用非正交发送,主动引入干扰信息,在接收端通过串行干扰删除技术实现正确解调。与正交传输相比,接收机复杂度有所提升,但可以获得更高的频谱效率。非正交传输的基本思想是利用复杂的接收机设计来换取更高的频谱效率,随着芯片处理能力的增强,将使非正交传输技术在实际系统中的应用成为可能。

-
-

(35条消息) -5G:非正交多址接入(NOMA)与串行干扰删除(SIC)_串行干扰消除_sswzw_cll的博客-CSDN博客.

-

NOMA:

-
-

1、串行干扰删除(SIC)

-

2、功率复用

-
-

(35条消息) -5G:非正交多址接入(NOMA)与串行干扰删除(SIC)_串行干扰消除_sswzw_cll的博客-CSDN博客.

-
-

对于LTE架构来说,网元包含的很多,其中,基站也是其中的一个网元,除此外还有MME、SGW、PDN等等。基站就是一个网元,基站和网元的关系类似苹果和水果的关系。网元划分的粒度很多,看用途了,有物理网元,逻辑网元,等效网元数等

-
-

网元_百度百科.

-

感知与通信从松耦合到完全一体化可分为三个等级:

-
    -
  1. 通信与感知共享硬件和频谱
  2. -
  3. 实现波形和信号处理一体化
  4. -
  5. 信息可以跨层、跨模块、跨节点 -共享,通信与感知完全一体化,系统性能显著提升,网络系统 -的总体成本和能耗将大大减少、系统规模也更小,基站与用户 设备(User -Equipment,UE)之间更大规模的协同、通信感 -知波形联合设计、先进的干扰消除技术、原生AI 技术等其他技 -术创新还可以进一步提升感知数据的处理能力。
  6. -
-

ISAC的作用:在增强定位能力和毫米级

-]]>
- - Code - -
近代史实践总结 /2022/01/03/%E8%BF%91%E4%BB%A3%E5%8F%B2%E5%AE%9E%E8%B7%B5%E6%80%BB%E7%BB%93/ @@ -2764,6 +2712,58 @@ Explainer

Swin Transformer迎来30亿参数的v2.0,我们应该拥抱视觉大模型吗?.

+]]> + + Code + +
+ + ISAC + /2023/07/06/%E9%80%9A%E4%BF%A1%E6%84%9F%E7%9F%A5%E4%B8%80%E4%BD%93%E5%8C%96/ + 移动通信重点总结

+

通感一体化

+ +

什么是通感一体化(ISAC)

+

通信感知一体化——从概念到实践 +- 华为

+

天线振子_百度百科

+

(35条消息) +3GPP信道模型路损基础知识_3gpp常用信道模型_LinkEverything的博客-CSDN博客

+
+

即非正交多址接入(NOMA)。在正交多址技术(OMA)中,只能为一个用户分配单一的无线资源,例如按频率分割或按时间分割,而NOMA方式可将一个资源分配给多个用户。在某些场景中,比如远近效应场景和广覆盖多节点接入的场景,特别是上行密集场景,采用功率复用的非正交接入多址方式较传统的正交接入有明显的性能优势,更适合未来系统的部署。目前已经有研究验证了在城市地区采用NOMA的效果,并已证实,采用该方法可使无线接入宏蜂窝的总吞吐量提高50%左右。非正交多址复用通过结合串行干扰消除或类最大似然解调才能取得容量极限,因此技术实现的难点在于是否能设计出低复杂度且有效的接收机算法。

+

NOMA不同于传统的正交传输,在发送端采用非正交发送,主动引入干扰信息,在接收端通过串行干扰删除技术实现正确解调。与正交传输相比,接收机复杂度有所提升,但可以获得更高的频谱效率。非正交传输的基本思想是利用复杂的接收机设计来换取更高的频谱效率,随着芯片处理能力的增强,将使非正交传输技术在实际系统中的应用成为可能。

+
+

(35条消息) +5G:非正交多址接入(NOMA)与串行干扰删除(SIC)_串行干扰消除_sswzw_cll的博客-CSDN博客.

+

NOMA:

+
+

1、串行干扰删除(SIC)

+

2、功率复用

+
+

(35条消息) +5G:非正交多址接入(NOMA)与串行干扰删除(SIC)_串行干扰消除_sswzw_cll的博客-CSDN博客.

+
+

对于LTE架构来说,网元包含的很多,其中,基站也是其中的一个网元,除此外还有MME、SGW、PDN等等。基站就是一个网元,基站和网元的关系类似苹果和水果的关系。网元划分的粒度很多,看用途了,有物理网元,逻辑网元,等效网元数等

+
+

网元_百度百科.

+

感知与通信从松耦合到完全一体化可分为三个等级:

+
    +
  1. 通信与感知共享硬件和频谱
  2. +
  3. 实现波形和信号处理一体化
  4. +
  5. 信息可以跨层、跨模块、跨节点 +共享,通信与感知完全一体化,系统性能显著提升,网络系统 +的总体成本和能耗将大大减少、系统规模也更小,基站与用户 设备(User +Equipment,UE)之间更大规模的协同、通信感 +知波形联合设计、先进的干扰消除技术、原生AI 技术等其他技 +术创新还可以进一步提升感知数据的处理能力。
  6. +
+

ISAC的作用:在增强定位能力和毫米级

]]>
Code