天天看點

信号實驗(02)連續時間系統的時域分析信号實驗(02)連續時間系統的時域分析一.基礎知識二.例子三.實驗四.思考題

信号實驗(02)連續時間系統的時域分析

一.基礎知識

1.1.目的

  1. 深刻了解卷積運算,掌握離散線性卷積、連續線性卷積的計算方法;
  2. 加深對線性時不變系統中零狀态響應概念的了解,掌握其求解方法;
  3. 掌握給定連續系統的沖激響應和階躍響應

1.2.實驗原理

1.微分方程(系統方程)模型

系統零狀态響應

信号實驗(02)連續時間系統的時域分析信号實驗(02)連續時間系統的時域分析一.基礎知識二.例子三.實驗四.思考題
% 方程中左邊是a右邊是b
sys = tf(b, a);
           

2.沖激響應與階躍響應

% 沖擊響應
y = impulse(sys, t);
% 階躍響應
y = step(sys, t);
           

3.卷積

c = conv(a, b);
           

4.連續卷積

信号實驗(02)連續時間系統的時域分析信号實驗(02)連續時間系統的時域分析一.基礎知識二.例子三.實驗四.思考題

二.例子

2.1.求解零狀态響應

y ( 2 ) ( t ) + 4 y ( 1 ) ( t ) + 4 y ( t ) = f ( 1 ) ( t ) + 3 f ( t ) y^{(2)}(t)+4y^{(1)}(t)+4y(t)=f^{(1)}(t)+3f(t) y(2)(t)+4y(1)(t)+4y(t)=f(1)(t)+3f(t)

f ( t ) = e − t ε ( t ) f(t)=e^{-t}\varepsilon (t) f(t)=e−tε(t)

求零狀态響應 y ( t ) y(t) y(t)

a = [1 4 4];
b = [1 3];
sys = tf(b,a);
td = 0.01;
% td 是間隔
t = 0:td:10;
f = exp(-t);
% 系統的零狀态響應
y = lsim(sys, f, t);
plot(t, y);
xlabel('t(see)');
ylabel('y(t)');
grid on
           
信号實驗(02)連續時間系統的時域分析信号實驗(02)連續時間系統的時域分析一.基礎知識二.例子三.實驗四.思考題

2.2.兩個序列卷積後的新序列以及時間變量

利用 conv 函數,編制一個函數檔案 dconv,其輸出為兩個序列卷積後的新序列以及與該新序列對應的時間變量。

function [f,k] = dconv(f1, f2, k1, k2)
% 計算 f1 與 f2 的卷積,并傳回與得到的新序列相對應的時間變量
%   f1, f2 為輸入序列;k1, k2 為 f1, f2 所對應的時間變量範圍
% -----------------------------------------------------
  f = conv(f1, f2);
  k_start = k1(1) + k2(1);
  k_end = length(f1) + length(f2) - 2;
  k = k_start:(k_start + k_end);
end
           

2.3.連續卷積

在 dconv 函數和(* )式的基礎上,編制一個函數檔案 cconv,利用離散卷積和來近似計算連續卷積積分。

function [f, k] = cconv(f1, f2, k1, k2, td)
% 計算 f1 與 f2 的連續卷積,并傳回與得到的新序列相對應的時間變量
%   此處顯示詳細說明
% ---------------------------------

% 講義中(*) 式計算
f = td * conv(f1, f2);
k_start = k1(1) + k2(1);
k_end = length(f1) + length(f2) - 2;
k = k_start:td:(k_start + k_end * td);

end
           

三.實驗

3.1.零狀态響應

y ( 2 ) ( t ) + 2 y ( 1 ) ( t ) + 2 y ( t ) = f ( 1 ) ( t ) , f ( t ) = ε ( t ) y^{(2)}(t)+2y^{(1)}(t)+2y(t)=f^{(1)}(t),f(t)=\varepsilon (t) y(2)(t)+2y(1)(t)+2y(t)=f(1)(t),f(t)=ε(t)

計算系統得零狀态響應 y ( t ) y(t) y(t),沖擊響應,階躍響應,并畫出圖形

a = [1 2 2];
% f(t) 沒系數就是0
b = [1 0];
sys = tf(b, a);
td = 0.01;
t = 0:td:10;
% 跟t一樣次元
f = ones(size(t));
y = lsim(sys,f,t);
subplot(2, 2, 1);
plot(t,y);
xlabel('t(see)');
ylabel('y(t)');
grid on;

% 沖擊響應
subplot(2, 2, 2);
d = impulse(sys, t);
plot(t, d);
xlabel('t');
ylabel('沖擊響應');
grid on;

% 階躍響應
subplot(2, 2, 3);
g = step(sys, t);
plot(t, g);
xlabel('t');
ylabel('階躍響應');
grid on;
           

3.2.卷積和

用 MATLAB 計算如下兩序列的卷積和,繪出它們的時域波形。

信号實驗(02)連續時間系統的時域分析信号實驗(02)連續時間系統的時域分析一.基礎知識二.例子三.實驗四.思考題
% 用 MATLAB 計算如下兩序列的卷積和,繪出它們的時域波形。
clear
f1 = [1, 2, 1];
k1 = -1:1;
f2 = [1, 1, 1, 1, 1];
k2 = -2:2;

[f,k] = dconv(f1, f2, k1, k2);
subplot(2, 2, 1);
stem(k1, f1);
xlabel('k1');
ylabel('f1');
grid on

subplot(2, 2, 2);
stem(k2, f2);
xlabel('k2');
ylabel('f2');
grid on

subplot(2, 2, 3);
stem(k, f);
xlabel('k');
ylabel('dconv');
grid on
           
信号實驗(02)連續時間系統的時域分析信号實驗(02)連續時間系統的時域分析一.基礎知識二.例子三.實驗四.思考題

3.3.連續卷積

程式設計實作如下圖所示的兩個波形;并利用 cconv 函數計算這兩個信号的卷積、畫出卷積後的波形。

信号實驗(02)連續時間系統的時域分析信号實驗(02)連續時間系統的時域分析一.基礎知識二.例子三.實驗四.思考題
% 程式設計實作如下圖所示的兩個波形;并利用 cconv 函數計算這兩個信号的卷% 積、畫出卷積後的波形cleart1 = -5:0.01:5;z1_1 = ((t1 + 1) >= 0);z1_2 = ((t1 - 1) >= 0);f1 = 2 * z1_1 - 2 * z1_2;t2 = -5:0.01:5;z2_1 = ((t2 + 2) >= 0);z2_2 = ((t2 - 2) >= 0);f2 = z2_1 - z2_2;subplot(2, 2, 1);plot(t1, f1);xlabel('t1');ylabel('f1');grid onsubplot(2, 2, 2);plot(t2, f2);xlabel('t2');ylabel('f2');grid on[f, k] = cconv(f1, f2, t1, t2, 0.01);subplot(2, 2, 3);plot(k, f);xlabel('k');ylabel('f');grid on
           
信号實驗(02)連續時間系統的時域分析信号實驗(02)連續時間系統的時域分析一.基礎知識二.例子三.實驗四.思考題

四.思考題

整理并給出“實驗内容與步驟”(1)、(2)、(3)中的程式代碼與産生的圖形;并回答下面的問題。

  1. 在“實驗内容與步驟”(1),零狀态響應 y(t) 和階躍響應 g(t)是否相同?為什麼?
相同,因為零狀态響應和階躍響應在t<0時都沒有輸入
  1. 兩序列進行卷積後得到新的序列,說明新序列在時域長度、時域區間上與原來兩序列的關系。
新序列的長度為原兩個序列長度之和,區間為原兩個序列的區間首尾相加。

繼續閱讀