本實(shí)驗(yàn)介紹MATLAB通信工具箱(Communications Tools)的基本使用。讀者可以通過(guò)"help"命令查詢有關(guān)函數(shù)的功能。通過(guò)本實(shí)驗(yàn),可以熟悉基本的畫(huà)圖和打印命令,理解腳本編寫(xiě)和調(diào)用的原理。
第一部分:信號(hào)的產(chǎn)生
1. 建立時(shí)間向量
因?yàn)樾盘?hào)是時(shí)間的函數(shù),生成信號(hào)之前需要先建立一個(gè)時(shí)間序列。下面定義一個(gè)持續(xù)時(shí)間為$$1$$秒,步長(zhǎng)為1/1000秒的時(shí)間向量。 本實(shí)驗(yàn)指導(dǎo)書(shū)將用變量名“delta_t”($\Delta t$)來(lái)表示時(shí)間向量的步長(zhǎng)。此時(shí)間向量包含1001個(gè)值,從0開(kāi)始到1結(jié)束。
t1 = 0:0.001:1; %時(shí)間向量
2. 產(chǎn)生信號(hào)
用如下命令可產(chǎn)生頻率為10Hz的周期單音信號(hào) s1,
s1 = cos(2*pi*10*t1); %單音信號(hào)
多音信號(hào)可以用多個(gè)正弦信號(hào)求和得到,如信號(hào)s2包含20,35和50Hz三個(gè)信號(hào):
s2 = 10*cos(2*pi*20*t1)+4*cos(2*pi*35*t1)+6*cos(2*pi*50*t1); %多音信號(hào)
以后的實(shí)驗(yàn)中,讀者將會(huì)使用信號(hào)的最大的幅度來(lái)計(jì)算其時(shí)域功率。 上面定義的信號(hào)s2中的最大幅度為20(將三個(gè)余弦信號(hào)的最大幅度加起來(lái)可得)。如果不容易從公式或者信號(hào)圖中確定最大幅度,可以用MATLAB中的“max”命令找到信號(hào)的近似最大幅度。
max_of_s = max(s); %信號(hào)s的最大幅度。
命令“plot”,“title”,“xlabel”和“ylabel”可用于產(chǎn)生有明確標(biāo)簽的信號(hào)圖形。
plot(t1,s1)
title('信號(hào)')
xlabel('時(shí)間')
ylabel('幅度')
運(yùn)行腳本“l(fā)ab1.m”
圖1:觀察單音信號(hào) s1 的時(shí)域圖形。
圖2:觀察多音信號(hào)s2的時(shí)域圖形。
3.信號(hào)繪圖
信號(hào)s1和s2頻率較低,下面將定義的時(shí)間向量和信號(hào)t2, s3, s4更具有代表性。
$$
s_3 = 5\sin(2\pi \times200t)
$$
$$
s_4=10\cos(2\pi\times130t)+5\cos(2\pi\times 335t)+\cos(2\pi\times 400t)
$$
產(chǎn)生上述信號(hào)的MATLAB代碼為:
t2 = 0:0.0001:1 %time vector of 10,001 points
s3 = 5*sin(2*pi*200*t2); %single-tone signal
s4 = 10*cos(2*pi*130*t2)+5*cos(2*pi*335*t2)+cos(2*pi*400*t2); %multi-tone signal
如果繪制整個(gè)較高頻率信號(hào)向量的圖形,則信號(hào)特征不易觀察??梢圆捎萌缦聝煞N方法將圖形大小限制在1000個(gè)點(diǎn)以內(nèi)。
- 限制繪圖的點(diǎn)數(shù)。這種方法尤其適用于兩個(gè)信號(hào)向量長(zhǎng)度不一致的情形。
plot(t2(1:1000), s3(1:1000))
- 使用“axis”命令鎖定最小最大值范圍內(nèi)的值,如時(shí)間、幅度等。請(qǐng)注意,鎖定后記得再用一次“axis”命令解除鎖定。
為了比較信號(hào)的差異,通常需要將一個(gè)信號(hào)疊加在另一個(gè)信號(hào)之上。有三個(gè)辦法可以處理這種情況:
- 在“plot”命令中使用多對(duì)x,y參數(shù)。比如:
plot(t2(1:500, s3(1:500), t2(1:500), s4(1:500)) %plot s4 over s3
- 使用“hold on”和“hold off”命令,有時(shí)還會(huì)結(jié)合“pause”命令。
plot(t2, s4); %plot signal with larger amplitude first
hold on;
pause(3); %wait 3 seconds
plot(t2, s3, 'g'); %plot in green
hold off;
- 生成一個(gè)信號(hào)矩陣來(lái)畫(huà)隨時(shí)間變化的多個(gè)信號(hào):
plot(t2(1:1000), [s3(1:1000); s4(1:1000)])