MATLAB資通訊能力檢定練習題庫(2013)

格式
pdf
大小
192.34 KB
頁數
9
作者
user
收藏 ⬇️ 下載檔案
提示: 文件格式为 pdf,轉換可能會出現排版或格式的些許差異,請以實際檔案為準。
此檔案建立於 2013-08-29,离现在 12 56 天,建議確認內容是否仍然適用。
PDF 加载中...
background image

資通訊能力檢定

─ MATLAB 練習題庫                                                                                        第 1 頁 

                                                                                                
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!  

資通訊能力檢定

─ MATLAB 練習題庫 

目錄

 

【觀念題

─15 題】 ........................................................................................................ 2 

【程式練習題

─12 題】 ................................................................................................ 5 

 

background image

資通訊能力檢定

─ MATLAB 練習題庫                                                                                        第 2 頁 

                                                                                                
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!  

【觀念題

─15 題】 

1.  在 MATLAB 程式執行中,下列選項何者為錯誤的說明? (複選題)  

1.  變數名稱是由英文字母、數字或底數所組成  

2.  『a1  』、『a3』及『2a』皆可設為變數名稱

  

3.  變數名稱長度不能超過 32 個字元  

4.  變數需先宣告後才可直接使用 

 

2.  若有 2 個 3x2 矩陣 A 及 B,下列運算何者有誤? (10  分)  

1. A+B  
2. A*B'  
3. A.*B  

4. A*B  

3.  下列敘述何者有誤?   

1. 

若 有 二 個 矩 陣

A 及 B 分別為 2x1 矩陣,則執行"A*B"後的結 

          果為一個 2x1 矩陣 

 

2.  若存在有一個 3x2 矩陣 A,且執行"A(:,end)=[ ]"後產生為一個

          3x1 矩陣  

3.  若欲清除 workspace 中所有的變數值,可在 MATLAB 中 執 行 

          "clear all"  

4.  若存在有一個 3x2 矩陣 B,且執行"B.*B"後產生為一個 3x2 

          矩陣 

4.  對於一個 3x2 的矩陣 A,試問如下說明何者正確? 

1. 

執 行

"reshape(A,1,6)"  可形成一 1x6 矩陣

  

2.  執行"A(2,1)"  將會顯示第 2 行第 1 列的數值  

3.  執行"diag(A)"將會顯示 3 個數值  
4.  執行"A(1,:)=[ ]"  將得到一個 3x1 矩陣  

5.  若有一程式碼表示如下,如下描述所者正確? 

clc; 
clear all; 
A=rand(1,1000); 
B=A+5; 
A=[A A];   

1. rand  指令是高斯分佈方式產生亂數矩陣  
2.  執行完上述程式後,A 矩陣將為一個 1x1000 的矩陣  

3.  執行"B=A+5;"代表 B 會為矩陣 A 內的所有數值加 5

  

4. clc 是清除記憶體內的所有變數  

 

background image

資通訊能力檢定

─ MATLAB 練習題庫                                                                                        第 3 頁 

                                                                                                
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!  

6.  下列指令何者不為除錯指令?   

1. dbclear  
2. dbquit  
3. dbtype  
4. cell  

7.  下述指令何者不可顯示一個異質陣列 B 的內部所有的元素?   

1. B{:}  
2. celldisp(B) 

 

3. disp(B)

  

4. B{:,:}  

8.  下列敘述何者有誤?  

1.  程式可能發生的錯誤大致有二種:語法錯誤與邏輯錯誤  

2.  使用"dbstop if error"  可使 MATLAB 停留在錯誤發生的程式 

          碼,並顯示於 MATLAB 除錯器  

3.  若在 K>>  狀態下輸入"dbquit",將會離開除錯模式 

 

4. dbtype 如同 type 指令,但 dbtype 是能適用於除錯模式下

 

9.  下述程式的執行結果為何? 
  a=[2 3;1 4]; 
    b=[0 9; 9 0]; 
  a*b 

1. 

0

9

27

0

 

2. 

9

36

18

27

 

3. 

27

18

36

9

 

4. 

0

27

9

0

 

10.  下述程式的執行結果為何? 
   a=[2 3;1 4]; 

b=[0 9; 9 0]; 
a.*b 

1. 

0

9

27

0

 

2. 

9

36

18

27

 

3. 

27

18

36

9

 

background image

資通訊能力檢定

─ MATLAB 練習題庫                                                                                        第 4 頁 

                                                                                                
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!  

4. 

0

27

9

0

 

11.  下述程式的執行結果為何? 

a=2+3i; 
b=1+4i; 
a*b 

1. -10+11i 
2. 2+12i 
3. 2-12i 
4. 10-11i 

12.  若於 matlab 輸入   

a=[1 4 3; 2 3 1]; 
size(a) 

則顯示

 

ans = 

1. 6 
2. 3    2 
3. 2    3 
4. 0 

13. (B)  在 matlab 中一訊號序列為 x,  將此訊號做傅利葉轉換的指令為 

     (A)plot(x) (B)fft(x) (C)cos(x) (D)fftshift(x) 

14. (D)  承上題,在 matlab 中要完成傅利葉轉換訊號的平移,指令為 
       (A)plot( ) (B)fft( ) (C)cos( ) (D) fftshift ( ) 
15. (B)  訊號 x=cos(2*pi*f1*t),請問下列何者代表此訊號的頻率? 
       (A)cos (B)f1 (C)pi (D)ifft(x) 
 

background image

資通訊能力檢定

─ MATLAB 練習題庫                                                                                        第 5 頁 

                                                                                                
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!  

【程式練習題

─12 題】 

1.  試在一 M 檔案中執行如下運算和指令 

a.  清除螢幕畫面並重置記憶體變數  
b.  試設定二變數 a 的內容為[1,2,3,4]與 b 的內容為[5,6,7,8]並顯示在螢幕上  
c.  試顯示變數 a 的詳細資料 
d.  試清除變數 b 

【解】

 

a.  clc; clear;   
b.  a=[1,2,3,4]  

b=[5,6,7,8]  

c.  whos a   
d.  clear b   

 

2.  試以 MATLAB 程式計算 

a.  1+2+....+100=?  
b.  1*2*....*100=?  
c.  若有一位同學的五日花費分別為{210,180,150,200,195},而每日需增加

30 元的洗衣費,試計算五日的總花費?  

【解】

 

clc ;clear ; 
a=sum(1:100); 
b=prod(1:100); 
c=[210 180 150 200 195]; 
sum(a+30) 

 

3.  試以 MATLAB 在同一張圖中畫出如下曲線 

 

a.  4sin(2*pi*t) 

 

b.  5cos(2*pi*t) 

 

c.  4sin(2*pi*t)+5cos(2*pi*t) 

其中

t=0~1 (間隔為 0.001),並標示 x 軸為 sec,y 軸為 function,並請標示每條

曲線的數學式。

 

【解】

 

 clc;clear all; 

t=0:0.001:1;  
plot(t,4*sin(2*pi*t),t,5*cos(2*pi*t),t,4*sin(2*pi*t)+5*cos(2*pi*t)); 
xlabel('sec') 
ylabel('function') 

 

4.  若一個 25 人之班級的數學考試成績分布分別為      

{82,91,13,92,64,10,28,55,96,97,16,98,96,49,81,15,43,92,80,96,66,4,85,94,68} 

試以直方圖顯示資料的分佈情況和統計特性,並於

x軸標示'分數'、y軸標示'人

'及圖形的標題為'數學成績分布' 

【解】

 

background image

資通訊能力檢定

─ MATLAB 練習題庫                                                                                        第 6 頁 

                                                                                                
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!  

clc; 
clear all 
x=[82,91,13,92,64,10,28,55,96,97,16,98,96,49,81,15,43,92,80,96,66,4,85,94,68] 
hist(x,100); 
xlabel('分數'); 
ylabel('人數'); 
title('數學成績分布'); 
grid on 
 

5.  請隨機產生 2 個 4x16 矩陣{A,B},其中 A 使用均勻分佈產生,B 使用高斯分

佈產生,而

C=[A B]。將{A,B}分別重組成 2 個 1x64 矩陣為{D,E}及 C 重組成

一個

1x128 矩陣為 F,試畫出一圖包含三張{D,E,F}的分布子圖(運用 hist 指令) 

【解】

 

clc; 
clear; 
A = rand (4,16); 
B = randn(4,16); 
C = [A B] 
D = reshape(A,1,64); 
E = reshape(B,1,64); 
F = reshape(C,1,128); 
subplot(3,1,1); hist(D, 40); title('A'); 
subplot(3,1,2); hist(E, 40); title('B'); 
subplot(3,1,3); hist(F, 40); title('C'); 

 
6.  【BPSK 調變程式】 

試撰寫一程式能隨機產生

1xN 的數位資料,並將輸入數位資料 0 改成輸出為

1,而輸入數位資料 1 改成輸出為-1。試繪出該輸出結果,並繪出二張子圖,
第一張子圖為輸入資料,第二張子圖為輸出結果。請以

for end 方式寫出 

【解】

 

clc; 
clear all ; 
n=input('請輸入欲隨機產生數位資料長度:'); 
data=randint(1,n,2); 
for s=1:1:n; 
    symbol(1,s)=(-1).^data(1,s); 
end 
symbol; 
subplot(2,1,1); 
plot(data,'x'); 
subplot(2,1,2); 
plot(symbol,'o'); 

 

7.  同上題,請以 while  方式寫出 

【解】

 

clc; 
clear all ; 
n=input('Enter the length of data sequence:'); 

background image

資通訊能力檢定

─ MATLAB 練習題庫                                                                                        第 7 頁 

                                                                                                
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!  

data=randint(1,n,2); 
s=1; 
while s<=n 
symbol(1,s)=(-1).^data(1,s); 
s=s+1; 
end 
symbol; 
subplot(2,1,1); 
plot(data,'x'); 
subplot(2,1,2); 
plot(symbol,'o'); 

 
8.  試撰寫滿足如下需求之程式: 

請將鍵盤輸入一數值顯示於螢幕上,並進行該數值的奇數

(odd)  或偶數(even)

判斷,其後再將結果顯示於螢幕中。

 

諸如螢幕顯示為

 

請輸入數值:

數值

 3 是為奇數 

請以

if-else-end  方式撰寫 

【解】

 

clc;clear all; 
y = input('請輸入一數值:'); 
if rem(y, 2)==0 
fprintf('數值%g是為偶數n',y); 
else 
fprintf('數值%g是為奇數n',y); 
end 

 

9.  同上題,請以 switch-case  方式撰寫 

【解】

 

clc;clear all; 
y = input('請輸入一數值:'); 
switch rem(y, 2) 
case {0} 
fprintf('數值%g是為偶數n',y); 
otherwise 
fprintf('數值%g是為奇數n',y); 
end 

 

10.  【QPSK 調變】 

請隨機產生一組

40 個數位資料位元  (包含 0,1),並將數位資料進行如下處

理:

 

若輸入資料為

00  時,則顯示 1 

若輸入資料為

01  時,則顯示 i 

若輸入資料為

10  時,則顯示-1 

若輸入資料為

11  時,則顯示-i 

請以

if-else-end  方式撰寫 

background image

資通訊能力檢定

─ MATLAB 練習題庫                                                                                        第 8 頁 

                                                                                                
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!  

【解】

 

clc; clear all; 
data=randint(1,40,2) 
Index=1; 
for j=1:2:40 
    if data(1,j:j+1)==[0 0] 
        symbol(1,Index)=1 
        Index=Index+1 
    elseif data(1,j:j+1)==[0 1] 
        symbol(1,Index)=i 
        Index=Index+1 
        elseif data(1,j:j+1)==[1 0] 
        symbol(1,Index)=-1 
        Index=Index+1 
        elseif data(1,j:j+1)==[1 1] 
        symbol(1,Index)=-i 
        Index=Index+1 
        end 
end 
data 
symbol 

 
11.  試撰寫一副程式(檔名為 EOD)可自動判斷輸入數值為奇數或偶數,並於螢幕

上顯示奇數

(odd)或偶數(even),諸如 

輸入變數:

v=[3 4 5 6] 

螢幕顯示:

odd even odd even 

【解】

 

function result=EOD(v) 
L=length(v); 
Index=1; 
for j1=1:L 
    if mod(v(1,j1),2)==0 
                result(1,(j1-1)*L+Index:(j1-1)*L+Index+3)='even'; 
        Index=Index+4; 
    elseif mod(v(1,j1),2)~=0 
        result(1,(j1-1)*L+Index:(j1-1)*L+Index+2)='odd'; 
        Index=Index+3; 
        end 
end 

12.

 

請以

Mtalab 產生並顯示 impulse signal 及 step signal。顯示區間為-5 秒到 10

秒,取樣頻率為

1Hz。 

【解】

 

clear; close all; 
t=-5:10; 
step_x=(t>=0); 
impulse_x=(t==0); 
figure; 
subplot(211); 
stem(t,step_x); 

background image

資通訊能力檢定

─ MATLAB 練習題庫                                                                                        第 9 頁 

                                                                                                
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!  

xlabel('time sequence'); 
ylabel('step signal'); 
subplot(212); 
stem(t,impulse_x); 
xlabel('time sequence'); 
ylabel('impulse signal'); 
 

版權說明: 檔案資源由用戶上傳,僅供學習交流使用,尊重著作權。 若您認為內容涉及侵權,請點擊「侵權舉報」提交相關資料,我們將儘快核實並處理。