陳昌兆
(安徽理工大學(xué) 力學(xué)與光電物理學(xué)院,安徽 淮南232001)
《信號(hào)與系統(tǒng)》是電子信息類專業(yè)一門重要的專業(yè)基礎(chǔ)課,是進(jìn)一步學(xué)習(xí)后續(xù)課程如《數(shù)字信號(hào)處理》《通訊原理》《自動(dòng)控制原理》等課程的基礎(chǔ).它是信息與通訊工程、電子科學(xué)與技術(shù)、控制科學(xué)與工程等國(guó)家一級(jí)學(xué)科在大學(xué)本科階段的專業(yè)必修課.主要任務(wù)是研究信號(hào)與系統(tǒng)理論的基本概念和基本分析方法,通過建立信號(hào)與系統(tǒng)的數(shù)學(xué)模型并求解,然后對(duì)所得結(jié)果給以物理解釋并開展相應(yīng)的工程應(yīng)用.由于課程的學(xué)習(xí)需要熟練使用多種數(shù)學(xué)工具、深刻理解其中蘊(yùn)含的物理概念和原理并用來解決實(shí)際的工程問題,這些都給課程的教學(xué)造成了一定的困難.
如何積極有效地開展《信號(hào)與系統(tǒng)》的課程教學(xué)是擺在教師面前的十分突出的問題.由于傳統(tǒng)的教學(xué)方式形式單一、內(nèi)容乏味,很難在數(shù)學(xué)理論、物理概念和工程應(yīng)用之間建立緊密的關(guān)聯(lián),這是導(dǎo)致學(xué)生難學(xué)、教師難教的主要原因.為了克服傳統(tǒng)教學(xué)中存在的種種弊端,激發(fā)學(xué)生的學(xué)習(xí)積極性和主動(dòng)性,國(guó)內(nèi)外很多高校將互聯(lián)網(wǎng)、多媒體、手機(jī)APP以及仿真等基于計(jì)算機(jī)的人機(jī)互動(dòng)式教學(xué)手段引入到《信號(hào)與系統(tǒng)》課程教學(xué)中并起得不錯(cuò)的教學(xué)效果[1-5].例如,美國(guó)德克薩斯大學(xué)埃爾帕索分校已經(jīng)連續(xù)多個(gè)學(xué)期將信息技術(shù)手段引入到課程教學(xué)中.參加該課程的學(xué)生可以通過Connexions、四基系統(tǒng)、交互式模擬和Openstax Tutor四種技術(shù)參與學(xué)習(xí),利用Connexions模塊可以在任意的時(shí)間和地點(diǎn)開展學(xué)習(xí),并借助四基系統(tǒng)通過作業(yè)反饋等手段加深對(duì)課程中的重要專題的認(rèn)識(shí)深度[4].阿根廷Rosario大學(xué)以J.C.Gomez[5]教授為首的《信號(hào)與系統(tǒng)》教學(xué)團(tuán)隊(duì)將網(wǎng)上演示和測(cè)試、多媒體課件、虛擬實(shí)驗(yàn)室等多種ICT(Information and Communications Technologies)工具引入到傳統(tǒng)的課堂教學(xué)中,多年實(shí)踐的結(jié)果表明傳統(tǒng)教學(xué)和這些ICT工具的綜合使用大大改善了課堂教學(xué)效果,提高了學(xué)生對(duì)課程學(xué)習(xí)的滿意度,同時(shí)也提高了他們的學(xué)習(xí)成績(jī).
在多種多樣的基于ICT的輔助教學(xué)中,計(jì)算機(jī)仿真最為行之有效,特別是MATLAB的出現(xiàn)給《信號(hào)與系統(tǒng)》課程的計(jì)算機(jī)輔助教學(xué)帶來了便捷,其強(qiáng)大的數(shù)學(xué)計(jì)算功能、豐富的工具箱函數(shù)和可視化的圖形用戶界面給課程教學(xué)帶來了極大的感官刺激,增強(qiáng)了課堂互動(dòng)性,提高了學(xué)生學(xué)習(xí)的主動(dòng)性和參與度.《信號(hào)與系統(tǒng)》課程的MATLAB仿真國(guó)內(nèi)外有不少教材和參考書,如清華大學(xué)谷源濤教授[6]主編的《信號(hào)與系統(tǒng)—MATLAB綜合實(shí)驗(yàn)》以及韓國(guó)中央大學(xué)W.Y.Yang等人[7]編寫的《Signals and Systems with MATLAB 》,這些參考書系統(tǒng)、全面,但對(duì)初學(xué)者而言需要時(shí)間去練習(xí)并消化和吸收.實(shí)際上,對(duì)于初學(xué)者而言,快速入門至關(guān)重要,《信號(hào)與系統(tǒng)》雖然內(nèi)容眾多但貫穿其中的始終是一些重要的概念和分析方法,如卷積、單位沖激響應(yīng)、傅里葉變換與頻譜、拉普拉斯(z)變換與系統(tǒng)函數(shù)、濾波、調(diào)制和解調(diào)、根軌跡等等.在有限的教學(xué)時(shí)限下,教師選擇能夠涵蓋多個(gè)關(guān)鍵知識(shí)點(diǎn)的經(jīng)典例題進(jìn)行MATLAB仿真不僅能加深學(xué)生對(duì)多個(gè)概念之間關(guān)聯(lián)性的理解,還能取得事半功倍的教學(xué)效果.此處我們借助一個(gè)帶通濾波系統(tǒng)典型例題的MATLAB分析闡述仿真軟件在課程教學(xué)中的應(yīng)用,雖然無法做到面面俱到,但至少是抓住了問題的關(guān)鍵.為了方便初學(xué)者,不僅附上每一個(gè)仿真的MATLAB程序,同時(shí)還有詳細(xì)的中文注解,相信這些注解對(duì)初學(xué)者是大有裨益的.
清華大學(xué)鄭君里教授主編的教材《信號(hào)與系統(tǒng)》(第三版,高等教育出版社)的上冊(cè)第301頁有一道關(guān)于調(diào)幅信號(hào)作用于帶通系統(tǒng)的例題,題干如下(略作改動(dòng)):
上述例題中激勵(lì)信號(hào)是一種典型的調(diào)幅信號(hào),cos(100t)為高頻載波,1+cost為低頻基帶信號(hào),調(diào)幅信號(hào)就是用低頻調(diào)制信號(hào)去控制高頻振蕩的振幅,使高頻振蕩的振幅按照調(diào)制信號(hào)的規(guī)律振蕩,這種調(diào)制技術(shù)在無線電波的有效發(fā)射等涉及頻譜搬移的實(shí)際問題中都有應(yīng)用.針對(duì)上述例題的MATLAB仿真至少可以包含以下內(nèi)容:(1)激勵(lì)信號(hào)的頻譜觀察;(2)系統(tǒng)函數(shù)分析系統(tǒng);(3)輸出響應(yīng);(4)在上述電路基礎(chǔ)上引入反饋,進(jìn)而進(jìn)行根軌跡分析.這些重要專題的MATLAB仿真將分開闡述.
頻譜是《信號(hào)與系統(tǒng)》課程中極為重要的概念,時(shí)域信號(hào)與頻譜之間通過傅里葉變換聯(lián)系.頻譜分析的目的是把復(fù)雜的時(shí)間歷程波形,經(jīng)過傅里葉分析分解為諸多諧波分量來研究,以獲取動(dòng)態(tài)信號(hào)中的各個(gè)頻率成分幅度和相位分布,從而得到主要幅度和能量分布的頻率值,完成對(duì)信號(hào)信息的定量解釋.激勵(lì)信號(hào)可以寫成x(t)=cos(100t)+0.5cos(101t)+0.5cos(9t),基于MATLAB程序的時(shí)域波形及其頻譜圖如下:
%% 信號(hào)波形
figure(1)
subplot(1,2,1)% 將圖1定義為1×2矩陣圖,
下一個(gè)圖位于位置(1,1)
t=0:0.01:12; % 定義時(shí)間矢量t,抽樣間隔為
0.01s
x=cos(100*t)+0.5*cos(101*t)+0.5*cos(99*t);% 定義 x矢量
N=length(x); % 求x矢量中元素個(gè)數(shù)N
plot(t,x)% 畫信號(hào)波形圖
xlabel('time in sec');
ylabel('x(t)');
title('Signal Waveform');
grid;
%% 信號(hào)頻譜
subplot (1,2,2); % 下一個(gè)圖位于位置(1,2)
x_f=fft(x); % 對(duì)信號(hào)x實(shí)行快速傅里葉變換
l=0:N-1; % 時(shí)間序列
k=(100/N)*l; % 頻率序列
stem(k,abs(x_f))% 繪制幅度譜圖
xlabel('frequency in Hz')
title('Spectrum of Signal');
grid;
從圖1可以看出輸入信號(hào)的包絡(luò)線按照1+cost變化,變化周期為2π,最大振幅為2,對(duì)應(yīng)的位置點(diǎn)為2nπ處.頻譜圖中采樣頻率fs=100Hz,奈奎斯特頻率為fs/2=50Hz,譜圖對(duì)奈奎斯特頻率呈現(xiàn)對(duì)稱性,頻譜的峰值在16Hz左右,對(duì)應(yīng)于原信號(hào)中角頻率為100ras/s(線頻率15.9Hz)成分,另外兩種頻率成分對(duì)應(yīng)的角頻率分別為99、101rad/s,幅度只有100ras/s處頻率的一半,由于三種頻率成分十分靠近,所以頻譜疊在一起很難分辨.
圖1 信號(hào)時(shí)域波形及其頻譜
用系統(tǒng)函數(shù)分析系統(tǒng)是《信號(hào)與系統(tǒng)》課程中最常見的任務(wù)之一,因?yàn)橄到y(tǒng)函數(shù)刻畫的是系統(tǒng)本身的性質(zhì),跟外加輸入信號(hào)沒有關(guān)系.系統(tǒng)函數(shù)實(shí)際上是單位沖激響應(yīng)的拉普拉斯變換(z變換),而頻響函數(shù)對(duì)應(yīng)單位沖激響應(yīng)的傅里葉變換.利用系統(tǒng)函數(shù)零極點(diǎn)分布可以分析系統(tǒng)的多種性質(zhì),如穩(wěn)定性、因果性等等,而頻響函數(shù)可以用來分析信號(hào)作用于系統(tǒng)時(shí)不同頻率成分的幅度衰減和相移情況,是系統(tǒng)設(shè)計(jì)(如濾波器設(shè)計(jì))的重要依據(jù).針對(duì)當(dāng)前的帶通濾波系統(tǒng)用Matlab繪制該系統(tǒng)的零極點(diǎn)圖、頻響曲線和單位沖激響應(yīng).程序代碼和圖形如下:
%% 定義變量
t=linspace (0,5,401); % 定義時(shí)間矢量t,0~5s
之間共401個(gè)線性等分點(diǎn)
w=logspace (1,3,401); % 定義頻率向量w,
10~103rad/s之間401個(gè)對(duì)數(shù)間隔點(diǎn)
num=[2 0]; % 定義系統(tǒng)函數(shù)分子多項(xiàng)式
den=[1 2 10001]; % 定義系統(tǒng)函數(shù)分母多項(xiàng)式
[poles,zeros]=pzmap (num,den); % 定義系統(tǒng)
函數(shù)零、極點(diǎn)向量
[mag,angle]=bode (num,den,w); % mag 和
angle定義為w處頻響的幅度和相位
[y,x]=impulse (num,den,t); % y定義為t處系
統(tǒng)函數(shù)的沖激響應(yīng)
%% 零極點(diǎn)圖
figure(1)% 圖1
subplot(2,2,1)% 將圖1定義為2×2矩陣圖,
下一個(gè)圖位于位置(1,1)
plot(real(poles),imag(poles),'x',real(zeros),
imag(zeros),'o'); % 繪制零極點(diǎn)圖
title ('Pole-Zero Diagram'); % 添加標(biāo)題
xlabel ('Real'); % 添加 x軸標(biāo)簽
ylabel ('Imaginary'); % 添加 y軸標(biāo)簽
axis([-1.1 0.1 -120 120]); % 定義 x、y 軸范圍
grid;
%% 頻響曲線
subplot(2,2,2); % 下一個(gè)圖位于位置(1,2)
semilogx(w,20*log10(mag)); % 繪制對(duì)數(shù)w值
幅度,以分貝為單位
title ('Magnitude of Bode Diagram'); % 添加標(biāo)題
ylabel('Magnitude (dB)'); % 添加y軸標(biāo)簽
xlabel('Radian Frequency (rad/s)'); % 添加x軸
標(biāo)簽
axis([10 1000 -60 0]); % 定義 x、y 軸范圍
grid;
subplot(2,2,4); % 下一個(gè)圖位于位置(2,2)
semilogx(w,angle); % 繪制對(duì)數(shù)w值相位
title('Angle of Bode Diagram'); % 添加標(biāo)題
ylabel('Angle (deg)'); % 添加y軸標(biāo)簽
xlabel('Radian Frequency (rad/s)'); % 添加x軸
標(biāo)簽
axis([10 1000 -90 90]); % 定義 x、y 軸范圍
grid;
%% 單位沖激響應(yīng)
subplot (2,2,3); % 下一個(gè)圖位于位置(2,1)
plot(t,y); % 線性繪制階躍響應(yīng)
title ('Impulse Response'); % 添加標(biāo)題
xlabel ('Time (s)'); % 添加x軸標(biāo)簽
ylabel ('Amplitude'); % 添加 y軸標(biāo)簽grid;
圖2(a)顯示H(s)的零點(diǎn)在0,極點(diǎn)在-1±j100,二者都是單階的.單位沖激響應(yīng)(圖2(b))是振蕩衰減的,這與H(s)的反拉普拉斯變換表達(dá)式相吻合,即
圖2(c)和(d)分別顯示系統(tǒng)的幅頻和相頻特性,幅頻曲線的基本特征是峰值點(diǎn)100rad/s,偏離此值,幅度迅速衰減.通帶集中在100rad/s附近極小的頻率范圍(99~101rad/s),在此段頻率范圍,相位呈現(xiàn)線性特征.系統(tǒng)具有明顯的帶通濾波特性,通帶的范圍很窄,有效帶寬大約2rad/s.
圖2 (a)系統(tǒng)零極點(diǎn)分布; (b)單位沖激響應(yīng);(c)幅頻特性曲線;(d)相頻特性曲線
利用lsim命令計(jì)算輸出響應(yīng),輸出信號(hào)及其頻譜的代碼和波形如下:
subplot (1,2,1);
num=[2 0]; % 定義多項(xiàng)式分子
den=[1 2 10001]; % 定義多項(xiàng)式分母
t=linspace(0,12,1201); % 定義時(shí)間矢量t,0-12s之間共1201個(gè)線性等分點(diǎn)
x=cos(100*t)+0.5*cos(101*t)+0.5*cos(99*t);
% 計(jì)算輸入函數(shù)
[y,x]=lsim(num,den,x,t); % 在 t時(shí)刻計(jì)算對(duì)輸入x的響應(yīng)
plot(t,y); % 輸出繪圖
xlabel('Tim e (s)');
ylabel('Amplitude');
title('Output Signals');
grid;
subplot (1,2,2); % 下一個(gè)圖位于位置(1,2)
N=length(y);
y_f=fft(y); % 對(duì)信號(hào)y實(shí)行快速傅里葉變換
l=0:N-1; % 時(shí)間序列
k=(100/N)*l; % 頻率序列
stem(k,abs(y_f))% 繪制幅度譜圖
xlabel('frequency in Hz')
title('Spectrum of Signal');
grid;
輸出響應(yīng)是系統(tǒng)在調(diào)幅波激勵(lì)下產(chǎn)生的零狀態(tài)響應(yīng),包含暫態(tài)和穩(wěn)態(tài)分量.從圖3(a)可以看出,從第二個(gè)波包開始,輸出趨于穩(wěn)定,說明暫態(tài)分量基本消失.穩(wěn)態(tài)響應(yīng)的輸出仍然是調(diào)幅波,但整體相對(duì)于輸入信號(hào)向右偏移0.8左右,幅度相對(duì)于輸入信號(hào)有所衰減.跟輸入信號(hào)相比,輸出信號(hào)的頻譜(圖3(b))位置并未改變,頻譜的峰值也在16Hz左右,幅度基本與輸入信號(hào)中該頻率成分一致,另外兩種頻率成分對(duì)應(yīng)的角頻率分別為99、101rad/s,幅度明顯小于100ras/s處頻率的一半.這些結(jié)論跟教材中得出的如下穩(wěn)態(tài)響應(yīng)表達(dá)式是完全吻合的.
圖3 (a)輸出信號(hào)的波形;(b)輸出信號(hào)的頻譜
根軌跡是開環(huán)系統(tǒng)某個(gè)參數(shù)沿正實(shí)軸從零變化到無窮時(shí),閉環(huán)系統(tǒng)特征方程式的根在s平面上的軌跡.它是一種利用幾何手段分析和設(shè)計(jì)線性時(shí)不變系統(tǒng)的方法.一個(gè)常見的例子是當(dāng)開環(huán)增益改變時(shí)跟蹤閉環(huán)系統(tǒng)的極點(diǎn)在復(fù)平面上的變化.例如,圖4所示的反饋系統(tǒng)中,閉環(huán)增益由H(s)=A(s)/[1+KA(s)]給出.
圖4 比例負(fù)反饋系統(tǒng)框圖
上式中A(s)一般是s的有理分式,MATLAB提供了一個(gè)叫“rlocus”的函數(shù)計(jì)算根軌跡.假設(shè)A(s)=2s/(s2+2s+10001),則相應(yīng)的程序代碼和根軌跡圖如下:
num=[2 0];
den=[1 2 10001];
rlocus(num,den)%畫根軌跡
xlabel ('Re(s)');
ylabel ('Im(s)');
title('Locus of Roots');
從圖5可以看出,根軌跡有兩條.一條從-1+j100出發(fā)通過實(shí)軸上點(diǎn)-100然后沿實(shí)軸正方向終止于原點(diǎn),另一條從-1-j100出發(fā)通過實(shí)軸上點(diǎn)-100然后沿負(fù)實(shí)軸終止于無窮遠(yuǎn)處.根軌跡中不在實(shí)軸上的部分一定關(guān)于實(shí)軸鏡像對(duì)稱.
圖5 根軌跡圖
《信號(hào)與系統(tǒng)》課程教學(xué)中引入MATLAB仿真可以大大改善課堂教學(xué)效果.我們以帶通濾波器作為示例,展示了課程教學(xué)中幾個(gè)關(guān)鍵性專題的MATLAB實(shí)現(xiàn)方法,不僅能夠引導(dǎo)學(xué)生快速入門,還能夠進(jìn)一步加深學(xué)生對(duì)課程中最為重要的幾個(gè)知識(shí)點(diǎn)的理解.