<<Signals and systems>> Chapter 1 学习笔记

<<Signals and systems>> Chapter 1


                         下决心要啃完这本信号与系统!


这个人的名字我在键盘上敲了N次... Alan V. alppenhiem





两大信号类别:

离散信号以及连续信号


左右两边分别时是典型的连续周期信号和离散周期信号的表现形式.

注意信号函数的奇偶性

Even : x( -t) = x(t)

Odd  : x(- t) = - x(t)

             


下图上面单位阶跃函数(unit step function)的离散形式,下面是单位脉冲函数的离散形式(unit impulse function)


这是最重要的基本信号类型,其他的类型都是围绕这些基础信号类型变化的!



一个非常重要的事实就是: 任何信号都能分解成一个奇函数信号和偶函数信号的线性叠加和.

可能会疑问,为什么啊?


想想一个信号x(t) ,如果表示为x( - t) ,这意味着什么?

x(-t )和x(t) 在时间轴t上是“镜像对称的” ,比方说这里的x 和y。 也就是说任意信号x(t) 都可以通过x(-t) 得到它的"镜像信号"



这就会引出一个性质,

(x(t) + x(-t))/2 这就会得到一个偶函数

(x(t) - x(-t))/2 这就会得到一个奇函数

这两个函数相加即可得到x(t),So ....任何信号都能分解成一个奇函数信号和偶函数信号的线性叠加和




x = [0 0 0 1 1 1 1];
y = [1 1 1 1 0 0 0];
figure(1);
subplot(1,2,1);
scatter(-3:3,x,"filled" );
title('x = [0 0 0 1 1 1 1];');
subplot(1,2,2);
scatter(-3:3,y,'r',"filled");
title('y = [1 1 1 1 0 0 0];');

figure(2);
subplot(1,2,1);
scatter(-3:3,(x+y)/2,"filled");
axis([-3,3,-1,1]);
title('Even signal function');
subplot(1,2,2);
scatter(-3:3,(x-y)/2,'g',"filled");
axis([-3,3,-1,1]);
title('Odd signal function');


Basic system properties


system with and without memory.


一定要死死的抓住这个定义:

             A system is said to be memoryless if its output for each value of the independent variable at a given time is dependent only on the input at that same time.


y[x] = x[n]*x[n] 就是memoryless的system

一旦输出y[n] 涉及x[n]之前x[n-1], x[n-2]... 任意一个信号就memory system!

典型的discrete-time system with memory 是累加器(accumulator)

y[n] =

         sum = 0; 

 for -NAN to n 

 sum = sum + x[k];

         end

(坑爹,只能用伪代码表示累加...)


另外典型的memory system operation就是delay

y[n] = x[n -1];


Causality (因果性)


既然输出y[n] 可能取决于x[n-1]等等以前的输入信号,而形成memory system...那如果y[n] 取决于x[n+1]等等未来时刻的输入信号呢??

这里就要谈到系统的另外一种性质了——causality 


                A system is causal if the output at any time depends only on values of the input at the present time and in the past.


y[n] = y[n -1] + x[n]; 就是满足causality条件的


y[n] = x[n] - x[n+1]就不满足causality 条件!


所有的memoryless system都是causality的,因为当前输出仅仅取决于当前的输入.



Invertibility and inverse systems


A system is said to be invertible if distinct inputs lead to distinct outputs.


比方说y(t) = 2*x(t) 对应的inverse system就是w(t) = (1/2)*y(t);




stability


A stable system is one in which small inputs lead to responses that do not diverge.

简单的说一个稳定的系统就是要最后能够收敛下来,不收敛的系统是不稳定的.




Time invariance 


A system is time invariant if the behavior and characteristics of the sytem are fixed over time.

说白了 就是对系统今天做的测试和昨天做的测试结果是一致的. 


下面是一个典型的时不变系统的证明过程:





Linearity


The system is linear if

1. the response to x1(t) + x2(t) is y1(t)+y2(t)

2. the response to ax1(t) is ay1(t) ,where a is any complex constant。


第一条是可加性,第二条是齐次性.


举个反例子说明:

y(t) = x(t)*x(t); 这个系统不是线性系统。

输入5x(t)的不是不是5y(t),而是25*y(t).不满足齐次性








Octave 画图提示:


stem函数画散点图

 x = 1:10;y = 2*x; stem(x, y,'filled')


scatter也可以用.











《有阳台的房间》


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
```cpp #ifndef MYENROLL_H #define MYENROLL_H #include <QWidget> #include <QLabel> #include <QPushButton> #include <QLineEdit> #include <QHBoxLayout> #include <QVBoxLayout> #include <QPixmap> class myenroll : public QWidget { Q_OBJECT // 必须 public: explicit myenroll(QWidget *parent = nullptr); // 构造函数,可选参数parent void init_ui(); // 初始化UI函数,无返回值 QLineEdit * name; // 指向QLineEdit对象的指针,用于输入用户名 QLineEdit * pass; // 指向QLineEdit对象的指针,用于输入密码 QLabel * lb1; // 指向QLabel对象的指针,用于显示“用户名”文本 QLabel * lb2; // 指向QLabel对象的指针,用于显示“密码”文本 QPushButton * bnt1; // 指向QPushButton对象的指针,用于触发注册操作 QHBoxLayout * hb1; // 指向QHBoxLayout对象的指针,用于排列“用户名”文本和用户名输入框 QHBoxLayout * hb2; // 指向QHBoxLayout对象的指针,用于排列“密码”文本和密码输入框 QHBoxLayout * hb3; // 指向QHBoxLayout对象的指针,用于排列注册按钮 QVBoxLayout * vb1; // 指向QVBoxLayout对象的指针,用于排列所有UI元素 signals: void sig_enroll_info(QString usrname, QString usrpass); // 自定义的注册信号,发送给myapp public slots: void send_msg(); // 槽函数,用于发送注册信息 }; #endif // MYENROLL_H ``` 该文件定义了一个名为myenroll的QWidget类,并对该类及其成员进行了声明。 - `#ifndef`和`#define`是C++的条件编译指令,用于避免头文件的重复包含。 - `#include`指令用于包含所需的头文件。 - `class`关键字用于定义类。 - `Q_OBJECT`宏必须出现在类的第一个`public`或`protected`区块中,用于支持Qt的元对象系统(MOC)。 - `explicit`关键字用于声明构造函数为显式构造函数。 - `QWidget *parent`是一个可选参数,表示父窗口指针。 - `void init_ui()`是一个初始化UI的函数,无返回值。 - `QLineEdit * name`和`QLineEdit * pass`是指向QLineEdit对象的指针,用于输入用户名和密码。 - `QLabel * lb1`和`QLabel * lb2`是指向QLabel对象的指针,用于显示“用户名”和“密码”文本。 - `QPushButton * bnt1`是指向QPushButton对象的指针,用于触发注册操作。 - `QHBoxLayout * hb1`、`QHBoxLayout * hb2`和`QHBoxLayout * hb3`是指向QHBoxLayout对象的指针,用于排列UI元素。 - `QVBoxLayout * vb1`是指向QVBoxLayout对象的指针,用于排列所有UI元素。 - `signals`关键字定义了一个信号,表示myenroll类可以向外部发送一个名为sig_enroll_info的信号,该信号带有两个QString类型的参数(用户名和密码)。 - `public slots`关键字定义了一个名为send_msg的槽函数,用于发送注册信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值