第一篇:電子科技大學(xué) 數(shù)字信號(hào)處理 第二次編程作業(yè)
第二次編程作業(yè)
加載信號(hào)(EEGdata.txt);分析信號(hào)的幅度譜,確定低通FIR數(shù)字濾波器的指標(biāo);分別利用各種窗函數(shù)(Rectangular, Hamming, Kaiser)設(shè)計(jì)此FIR濾波器;對(duì)信號(hào)加隨機(jī)噪聲,并用設(shè)計(jì)的FIR濾波器對(duì)含噪聲信號(hào)進(jìn)行濾波。要求:
1)給出程序,畫出濾波器幅度譜及其增益圖(dB);分析設(shè)計(jì)的濾波器是否達(dá)到指標(biāo)。
2)利用設(shè)計(jì)的三種濾波器對(duì)加載的信號(hào)分別進(jìn)行濾波,對(duì)比分析濾波結(jié)果。程序:
data = load('EEGdata.txt');n=1:length(data);
xn=0.1*rand(length(data),1)-0.05;x=xn+data;
[h0,w0]=freqz(data);[h1,w1]=freqz(x);figure(1)
plot(w0/pi,abs(h0),w1/pi,abs(h1),'r');legend('?-dataD?o??μ?×í?','?ó??D?o??μ?×í?');
wp = 0.15*pi;ws = 0.2*pi;DB = ws-wp;
N = ceil(2*3.11*pi/DB+1);wc =(wp+ws)/2;wc = wc/pi;
win = rectwin(N+1);
b = fir1(N, wc, 'low', win);figure(2)freqz(b,1);
wp = 0.15*pi;ws = 0.2*pi;DB = ws-wp;
N = ceil(2*3.11*pi/DB+1);wc =(wp+ws)/2;wc = wc/pi;
win = hamming(N+1);
b1 = fir1(N, wc, 'low', win);figure(3)freqz(b1,1);
fpts = [0.15, 0.2];mag = [1, 0];dev = [0.01, 0.01];
[N, Wn, beta, ftype] = kaiserord(fpts, mag, dev)Kwin = kaiser(N+1, beta);b2 = fir1(N, Wn, Kwin);[h,omega] = freqz(b2,1,512);figure(4)freqz(b2,1);
y=filter(b, 1, x);figure(5)subplot(2,1,1);
plot(n,data,n,x,'g',n,y,'r');title('??D?′°??2¨·ù?è?×D§1???±èí?');legend('?-D?o?data','?ó??D?o?x','??2¨oóD?o?y');[H,W]=freqz(y);subplot(2,1,2);
plot(w0/pi,abs(h0),W/pi,abs(H),'r');title('??D?′°??2¨?μ?×D§1???±èí?');legend('?-D?o?data','??2¨oóD?o?y');
y1=filter(b1, 1, x);figure(6)subplot(2,1,1);
plot(n,data,n,x,'g',n,y1,'r');title('Hamming′°??2¨·ù?è?×D§1???±èí?');legend('?-D?o?data','?ó??D?o?x','??2¨oóD?o?y1');[H,W]=freqz(y1);subplot(2,1,2);
plot(w0/pi,abs(h0),W/pi,abs(H),'r');title('Hamming′°??2¨?μ?×D§1???±èí?');legend('?-D?o?data','??2¨oóD?o?y1');
y2=filtfilt(b2, 1, x);figure(7)subplot(2,1,1);
plot(n,data,n,x,'g',n,y2,'r');title('Kaiser′°??2¨·ù?è?×D§1???±èí?');legend('?-D?o?data','?ó??D?o?x','??2¨oóD?o?y2');[H,W]=freqz(y2);subplot(2,1,2);
plot(w0/pi,abs(h0),W/pi,abs(H),'r');title('Kaiser′°??2¨?μ?×D§1???±èí?');legend('?-D?o?data','??2¨oóD?o?y2');
figure(8)
plot(n,data,n,y,'c',n,y1,'r',n,y2,'g');title('èy??′°oˉêy??2¨D§1???±èí?');legend('?-dataD?o?','??D?′°??2¨','Hamming′°??2¨','Kaiser′°??2¨');
***6420 0原data信號(hào)頻譜圖加噪信號(hào)頻譜圖 0.10.20.30.40.50.60.70.80.91 50Magnitude(dB)0-50-10000.10.20.30.40.50.60.70.8Normalized Frequency(?? rad/sample)0.910Phase(degrees)-1000-2000-300000.10.20.30.40.50.60.70.8Normalized Frequency(?? rad/sample)0.91
50Magnitude(dB)0-50-100-15000.10.20.30.40.50.60.70.8Normalized Frequency(?? rad/sample)0.910Phase(degrees)-1000-2000-300000.10.20.30.40.50.60.70.8Normalized Frequency(?? rad/sample)0.91 50Magnitude(dB)0-50-100-15000.10.20.30.40.50.60.70.8Normalized Frequency(?? rad/sample)0.910Phase(degrees)-500-1000-1500-200000.10.20.30.40.50.60.70.8Normalized Frequency(?? rad/sample)矩形窗濾波幅度譜效果對(duì)比圖0.20.10-0.1-0.2 ***原信號(hào)data加噪信號(hào)x濾波后信號(hào)y300350 0.91矩形窗濾波頻譜效果對(duì)比圖1510原信號(hào)data濾波后信號(hào)y 50 00.10.20.30.40.50.60.70.80.91Hamming窗濾波幅度譜效果對(duì)比圖0.20.10-0.1-0.2 050100150200原信號(hào)data加噪信號(hào)x濾波后信號(hào)y1250300350 Hamming窗濾波頻譜效果對(duì)比圖1510原信號(hào)data濾波后信號(hào)y1 50 00.10.20.30.40.50.60.70.80.91Kaiser窗濾波幅度譜效果對(duì)比圖0.20.10-0.1-0.2 050100150200原信號(hào)data加噪信號(hào)x濾波后信號(hào)y2250300350 Kaiser窗濾波頻譜效果對(duì)比圖20151050 00.10.20.30.40.50.60.70.80.91原信號(hào)data濾波后信號(hào)y2 三種窗函數(shù)濾波效果對(duì)比圖0.2原data信號(hào)矩形窗濾波Hamming窗濾波Kaiser窗濾波 0.150.10.050-0.05-0.1-0.***0200250300350
結(jié)果分析:濾波效果皆不盡如人意,原因是加載的噪聲信號(hào)是隨機(jī)信號(hào),各頻率皆有,濾波器通帶部分的噪聲無法濾掉。尤其是矩形窗函數(shù)和Hamming窗函數(shù)構(gòu)造的濾波器長度大于data的三分之一,無法使用filtfilt函數(shù)濾波,只能用filter函數(shù),致使濾波結(jié)果有相位平移。
第二篇:數(shù)字信號(hào)處理實(shí)驗(yàn)教學(xué)-電子教案
數(shù)字信號(hào)處理實(shí)驗(yàn) 電子教案
講義1 Matlab簡介及其安裝使用說明..................................................2 講義2 Matlab基本語句..........................................................................8 講義3 Matlab基本數(shù)值運(yùn)算................................................................13 講義4 Matlab函數(shù)、及其調(diào)用方法....................................................16 實(shí)驗(yàn)1 常見離散信號(hào)產(chǎn)生和實(shí)現(xiàn).........................................................20 實(shí)驗(yàn)2 離散系統(tǒng)的時(shí)域分析.................................................................22 實(shí)驗(yàn)3 FFT算法的應(yīng)用..........................................................................24 實(shí)驗(yàn)4 離散系統(tǒng)的變換域分析.............................................................27 實(shí)驗(yàn)5 有限沖激響應(yīng)數(shù)字濾波器設(shè)計(jì).................................................32 實(shí)驗(yàn)6 無限沖激響應(yīng)數(shù)字濾波器設(shè)計(jì).................................................36 實(shí)驗(yàn)7 設(shè)計(jì)性和研究性實(shí)驗(yàn).................................................................41講義1 Matlab簡介及其安裝使用說明
一.MATLAB程序設(shè)計(jì)語言簡介
MATLAB,Matrix Laboratory的縮寫,是由Mathworks公司開發(fā)的一套用于科學(xué)工程計(jì)算的可視化高性能語言,具有強(qiáng)大的矩陣運(yùn)算能力。與大家常用的Fortran和C等高級(jí)語言相比,MATLAB的語法規(guī)則更簡單,更貼近人的思維方式,被稱之為“草稿紙式的語言”。截至目前,MATLAB已經(jīng)發(fā)展到7.x版,適用于所有32位的Windows操作系統(tǒng),按NTFS(NT文件系統(tǒng))格式下完全安裝約需 850 MB。MATLAB軟件主要由主包、仿真系統(tǒng)和工具箱三大部分組成。
二.MATLAB應(yīng)用入門
1.MATLAB的安裝與卸載
MATLAB軟件在用戶接口設(shè)計(jì)上具有較強(qiáng)的親和力,其安裝過程比較典型,直接運(yùn)行光盤中的安裝向?qū)е纬绦騍ETUP.exe,按其提示一步步選擇即可。MATLAB自身帶有卸載程序,在其安裝目錄下有uninstall子目錄,運(yùn)行該目錄下的uninstall.exe即可; 也可以通過Windows系統(tǒng)的安裝卸載程序進(jìn)行卸載。2.MATLAB的啟動(dòng)與退出
MATLAB安裝完成后,會(huì)自動(dòng)在Windows桌面上生成一個(gè)快捷方式,它是指向安裝目錄下binwin32matlab.exe的鏈接,雙擊它即可來到MATLAB集成環(huán)境的基本窗口,通常稱之為命令窗口。MATLAB的退出與普通WIN32的程序一樣,值得一提的是它有一個(gè)自身專有的快捷鍵Ctrl+Q。3.MATLAB界面簡介
圖 1 MATLAB基本界面——命令窗口
圖2
圖3
圖4
圖5
圖6 指令歷史
圖7 1)菜單欄
菜單欄中包括File、Edit、View、Web、Window和Help六個(gè)菜單項(xiàng)。這里著重介紹File、help項(xiàng)。
File項(xiàng):數(shù)據(jù)輸入/輸出的接口,包括10個(gè)子項(xiàng),這里重點(diǎn)介紹其中的5個(gè)子項(xiàng): New:新建文件項(xiàng)。有四個(gè)選擇:M File(*.M,文本格式的MATLAB程序文件,可以直接通過文件名的方式在MATLAB環(huán)境下解釋運(yùn)行;Figure(圖形);Model(仿真模型文件)和GUI(可視化界面文件)。
Open:打開所有MATLAB支持的文件格式,系統(tǒng)將自動(dòng)識(shí)別并采用相應(yīng)的程序?qū)ξ募M(jìn)行處理。例如, 打開一個(gè).m文件,系統(tǒng)將自動(dòng)打開M文件編輯器對(duì)它進(jìn)行編輯。
Set Path...:設(shè)置工作路徑。可以打開路徑設(shè)置(Set Path)對(duì)話框(圖2),將用戶自己建立的目錄加入MATLAB的目錄系統(tǒng)中,以便所編制的文件能夠在MATLAB環(huán)境中直接調(diào)用。
圖8 路徑設(shè)置對(duì)話框
單擊Add Folder...按鈕可以將你的一個(gè)文件夾加入到系統(tǒng)路徑中;Add with Subfolders...允許把一個(gè)文件夾包括其所有的子文件夾加入到系統(tǒng)路徑中。這兩種操作均可以直觀地在右側(cè)的路徑欄內(nèi)看到結(jié)果。
選中一個(gè)加入的文件夾,你可以利用Move to Top(移至所有路徑的最前面),Move Up(上移一個(gè)),Move Down(下移一個(gè)),Move to Bottom(移至所有路徑的最后面)等四個(gè)按鈕將改變文件在系統(tǒng)路徑中的排列位置以利于對(duì)文件的搜索使用,也可以利用Remove按鈕將其刪除。
對(duì)路徑操作完畢后,按Save按鈕予以保存;Help 項(xiàng):
Matlab Help:打開以html超文本形式存儲(chǔ)的的幫助文件主頁; Demos:打開matlab演示窗主頁;
About Matlab:Matlab注冊圖標(biāo)、版本、制造商和用戶信息;
圖9 Help選項(xiàng)
圖10 Help窗口
2)命令行區(qū)
進(jìn)行通用操作,數(shù)值計(jì)算,編程和數(shù)據(jù)類型,輸入輸出,繪圖,用戶界面等命令,例如,命令:help函數(shù)名(*.m文件); edit編輯函數(shù)、文件
對(duì)輸入命令的解釋MATLAB按以下順序進(jìn)行:
① 檢查它是否是工作空間中的變量,是則顯示變量內(nèi)容。② 檢查它是否是嵌入函數(shù),是則運(yùn)行之。③ 檢查它是否是子函數(shù)。④ 檢查它是否是私有函數(shù)。
⑤ 檢查它是否是位于MATLAB搜索路徑范圍內(nèi)的函數(shù)文件或腳本文件。
請注意,如果有兩個(gè)以上的方案與輸入的命令相匹配,MATLAB將只執(zhí)行第一個(gè)匹配。
講義2 Matlab基本語句
一.程序控制語句
1.循環(huán)語句
MATLAB的循環(huán)語句包括for循環(huán)和while循環(huán)兩種類型。1)for循環(huán) 語法格式:
for 循環(huán)變量 = 起始值:步長:終止值 循環(huán)體 end 起始值和終止值為一整形數(shù),步長可以為整數(shù)或小數(shù),省略步長時(shí),默認(rèn)步長為1。執(zhí)行for循環(huán)時(shí),判定循環(huán)變量的值是否大于(步長為負(fù)時(shí)則判定是否小于)終止值,不大于(步長為負(fù)時(shí)則小于)則執(zhí)行循環(huán)體,執(zhí)行完畢后加上步長,大于(步長為負(fù)時(shí)則小于)終止值后退出循環(huán)。例1 給矩陣A、B賦值。MATLAB 語句及運(yùn)行結(jié)果如下: k=5;a=zeros(k, k)%矩陣賦零初值 for m=1 : k for n=1: k a(m,n)=1/(m+n-1);end end for i=m :-1 : 1 b(i)=i;end 運(yùn)行結(jié)果: a= 1.0000 0.5000 0.3333 0.2500?0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429 0.1250 0.1111 b= 1 2?3 4 5 2)while循環(huán) 語法格式:
while 表達(dá)式 循環(huán)體 end 其執(zhí)行方式為:若表達(dá)式為真(運(yùn)算值非0),則執(zhí)行循環(huán)體;結(jié)果為0),則退出循環(huán)體,執(zhí)行end后的語句。
例2 a=3;while a a=a-1 end 輸出: a=2 a=1 a=0 2.條件轉(zhuǎn)移語句
條件轉(zhuǎn)移語句有if和switch兩種。
若表達(dá)式為假(運(yùn)算 1)if語句
MATLAB中if語句的用法與其他高級(jí)語言相類似,其基本語法格式有以下幾種: 格式一: if 邏輯表達(dá)式 執(zhí)行語句 end 格式二: if 邏輯表達(dá)式 執(zhí)行語句1 else 執(zhí)行語句2 end 格式三:
if 邏輯表達(dá)式1 執(zhí)行語句1
else? if 邏輯表達(dá)式2 執(zhí)行語句2 end 2)switch語句
switch語句的用法與其他高級(jí)語言相類似,其基本語法格式為:
switch表達(dá)式(標(biāo)量或字符串)case 值1 語句1 case 值2 語句2 … otherwise 語句n end
二.繪圖語句 常用的MATLAB繪圖語句有figure、plot、subplot、stem等,圖形修飾語句有title、axis、text等。
1.figure figure有兩種用法,只用一句figure命令,會(huì)創(chuàng)建一個(gè)新的圖形窗口,并返回一個(gè)整數(shù)型的窗口編號(hào)。figure(n)表示將第n號(hào)圖形窗口作為當(dāng)前的圖形窗口,并將其顯示在所有窗口的最前面;如果該圖形窗口不存在,則新建一個(gè)窗口,并賦以編號(hào)n。2.plot 線型繪圖函數(shù)。用法為plot(x,y,'s')。參數(shù)x為橫軸變量,y為縱軸變量,s用以控制圖形的基本特征如顏色、粗細(xì)等,通常可以省略,常用方法如表1所示。
表1
3.Stem 繪制離散序列圖,常用格式stem(y)和stem(x,y)分別和相應(yīng)的plot函數(shù)的繪圖規(guī)則相同,只是用stem命令繪制的是離散序列圖。4.subplot subplot(m,n,i)圖形顯示時(shí)分割窗口命令,把一個(gè)圖形窗口分為m行,n列,m×n個(gè)小窗口,并指定第i個(gè)小窗口為當(dāng)前窗口。5.繪圖修飾命令
在繪制圖形時(shí),我們通常需要為圖形添加各種注記以增加可讀性。在plot語句后使用title('標(biāo)題')可以在圖形上方添加標(biāo)題,使用xlabel('標(biāo)記')或ylabel('標(biāo)記')為X軸或Y軸添加說明,使用text(X值、Y值、'想加的標(biāo)示')可以在圖形中任意位置添加標(biāo)示。例3 畫圖基本語句如圖1所示。
MATLAB 語句及運(yùn)行結(jié)果如下: x=0:0.1*pi:2*pi;%定義x向量
figure(1);%創(chuàng)建一個(gè)新的圖形窗口,編號(hào)為1 subplot(2,2,1);%將窗口劃分為2行,2列,在第1個(gè)窗口中作圖 plot(x,sin(x));%畫圖
title('正弦線');%給圖形加標(biāo)題 subplot(2,2,2);%在第2個(gè)窗口中作圖 plot(x,sin(x),'r');%畫一正弦波,紅色 xlabel('X');%給x軸加說明 ylabel('SIN(X)');%給y軸加說明 subplot(2,2,3);%在第3個(gè)窗口中作圖 plot(x,sin(x),'--');%畫一正弦波,破折線 subplot(2,2,4);%在第4個(gè)窗口中作圖 plot(x,sin(x),'r+');%畫一正弦波,紅色+線 text(4,0,'注記');
圖1 講義3 Matlab基本數(shù)值運(yùn)算
一.MATLAB內(nèi)部特殊變量和常數(shù)
? MATLAB內(nèi)部有很多變量和常數(shù),用以表達(dá)特殊含義。常用的有:
1.變量ans: 指示當(dāng)前未定義變量名的答案;
2.常數(shù)eps:表示浮點(diǎn)相對(duì)精度,其值是從1.0到下一個(gè)最大浮點(diǎn)數(shù)之間的差值。該變量值作為一些MATLAB函數(shù)計(jì)算的相對(duì)浮點(diǎn)精度,按IEEE標(biāo)準(zhǔn),如:,近似為2.2204e-016;
3.常數(shù)Inf:表示無窮大。當(dāng)輸入或計(jì)算中有除以0時(shí)產(chǎn)生Inf;
4.虛數(shù)單位i,j:表示復(fù)數(shù)虛部單位,相當(dāng)于5.NaN:表示不定型值,是由0/0運(yùn)算產(chǎn)生的。
6.常數(shù)pi:表示圓周率π,其值為3.14***…;
;
? MATLAB中可表示的數(shù)字的近似范圍從,1.有效數(shù)字表示的典型例子如下:1234.56789,123456.789E-2,1.23456789e3(format指令可以控制顯示格式)
2.復(fù)數(shù)形式:3.5+4*j,-2.1-7.4*j(i 也可以)
取絕對(duì)值:abs()語法格式:abs(x)。當(dāng)x為實(shí)數(shù)時(shí)計(jì)算x的絕對(duì)值;x為復(fù)數(shù)時(shí)得到的是復(fù)數(shù)的模值;x為字符串時(shí)得到各字符的ASCII碼。取相角:angle()語法格式:angle(z)。求復(fù)矢量或復(fù)矩陣的相角,結(jié)果為一個(gè)以弧度為單位介于-π和+π之間的值。
二.變量
1.變量命名規(guī)則
MATLAB中對(duì)變量的命名應(yīng)遵循以下規(guī)則:
(1)變量名可以由字母、數(shù)字和下劃線混合組成,但必須以字母開頭;(2)字符長度不能大于31;(3)變量命名區(qū)分大小寫。2.局部變量和全局變量 局部變量是指那些每個(gè)函數(shù)體內(nèi)自己定義的,不能從其他函數(shù)和MATLAB工作空間訪問的變量。全局變量是指用關(guān)鍵字“global”聲明的變量。全局變量名應(yīng)盡量大寫,并能反映它本身的含義。如果需要在工作空間和幾個(gè)函數(shù)中都能訪問一個(gè)全局變量,必須在工作空間和這幾個(gè)函數(shù)中都聲明該變量是全局的。
三.矩陣及其運(yùn)算
MATLAB具有強(qiáng)大的矩陣運(yùn)算和數(shù)據(jù)處理功能,對(duì)矩陣的處理必須遵從代數(shù)規(guī)則。1.矩陣生成1)一般矩陣的生成
對(duì)于一般的矩陣MATLAB的生成方法有多種。最簡單的方法是從鍵盤直接輸入矩陣元素。直接輸入矩陣元素時(shí)應(yīng)注意:各元素之間用空格或逗號(hào)隔開,用分號(hào)或回車結(jié)束矩陣行,用中括號(hào)把矩陣所有元素括起來。
例1 在工作空間產(chǎn)生一個(gè)3×3矩陣A可用MATLAB語言描述如下: A=[1 2 3;4 5 6;7 8 9] 或 A=[1 2 3 4 5 6 7 8 9] 運(yùn)行結(jié)果: A= 1 2 3 4 5 6 7 8 9 Size(A)得到矩陣的大小,ans = 3 3 2)特殊矩陣的生成
對(duì)于特殊的矩陣可直接調(diào)用MATLAB的函數(shù)生成。
用函數(shù)zeros生成全0矩陣:格式 B=zeros(m,n)生成m×n的全0陣。用函數(shù)ones生成全1矩陣:格式 B=ones(m,n)生成m×n的全1陣。
用函數(shù)eye生成單位陣:格式 B=eye(m,n)生成m×n矩陣,其中對(duì)角線元素全為1,其他元素為0。2.矩陣的運(yùn)算
矩陣的運(yùn)算有基本運(yùn)算和函數(shù)運(yùn)算兩種類型。基本運(yùn)算包括矩陣的加、減、乘、除、乘方、求轉(zhuǎn)置、求逆等,其主要特點(diǎn)是通過MATLAB提供的基本運(yùn)算符+、-、*、/()、^等即可完成。函數(shù)運(yùn)算主要是通過調(diào)用MATLAB系統(tǒng)內(nèi)置的運(yùn)算函數(shù)來求取矩陣的行列式(det(A)),求秩(rank(A)),求逆(inv(A)),求特征值和特征向量([V,D]=eig(A)), 求Jordan標(biāo)準(zhǔn)形(jordan(A))和矩陣分解等。需要用時(shí)可以參閱聯(lián)機(jī)幫助和相關(guān)參考書。(.*,.,表示逐個(gè)元素的乘積和相除;矩陣X/Y 相當(dāng)于X*inv(Y), XY相當(dāng)于inv(Y)*X)
例2 矩陣的基本運(yùn)算。A=[1, 2, 3;4, 5, 6];B =[6, 5, 4;3, 2, 1];C =A+B %計(jì)算兩個(gè)矩陣的和 D =B' %計(jì)算矩陣B的轉(zhuǎn)置
E=A*D %做矩陣乘法,必須要滿足矩陣乘法的基本要求E應(yīng)該是2階方陣 F=det(E)%求E的行列式值 G=E^(-1)%求E的逆
輸出結(jié)果: C= 7 7 7 7 7 7 D= 6 3 5 2 4 1 E= 28 10 73 28 F=54 G= 0.5185-0.1852-1.3519 0.5185 講義4 Matlab函數(shù)、及其調(diào)用方法
在MATLAB語言中,M文件有兩種形式:腳本和函數(shù)。
腳本沒有輸入/輸出參數(shù),只是一些函數(shù)和命令的組合。它可以在MATLAB環(huán)境下直接執(zhí)行,也可以訪問存在于整個(gè)工作空間內(nèi)的數(shù)據(jù)。由腳本建立的變量在腳本執(zhí)行完后仍將保留在工作空間中可以繼續(xù)對(duì)其進(jìn)行操作,直到使用clear命令對(duì)其清除為止。
函數(shù)是MATLAB語言的重要組成部分。MATLAB提供的各種工具箱中的M文件幾乎都是以函數(shù)的形式給出的。函數(shù)接收輸入?yún)?shù),返回輸出參數(shù),且只能訪問該函數(shù)本身工作空間中的變量,從命令窗或其他函數(shù)中不能對(duì)其工作空間的變量進(jìn)行訪問。
1.函數(shù)結(jié)構(gòu)
MATLAB語言中提供的函數(shù)通常由以下五個(gè)部分組成:
(1)函數(shù)定義行: 以function開頭,函數(shù)名(必須與文件名相同)及函數(shù)輸入輸出參數(shù)在此定義;(2)H1行:第一注釋行,供lookfor和help在線幫助使用;
(3)函數(shù)幫助文件;通常包括函數(shù)輸入輸出參數(shù)的含義,調(diào)用格式說明;
(4)函數(shù)體:它包括進(jìn)行運(yùn)算和賦值的所有MATLAB程序代碼。函數(shù)體中可以包括流程控制、輸入/輸出、計(jì)算、賦值、注釋以及函數(shù)調(diào)用和腳本文件調(diào)用等。在函數(shù)體中完成對(duì)輸出參數(shù)的計(jì)算;
(5)注釋。
這五個(gè)部分中最重要的是函數(shù)定義行和函數(shù)體。
函數(shù)定義行是一個(gè)MATLAB函數(shù)所必需的,其他各部分的內(nèi)容可以沒有,這種函數(shù)稱為空函數(shù)。
例1 function sa=circle(r,s)% Circle plot a circle of radii r in the line specified by s % r raddi % s line color % sa area of the circle % % circle(r)use blue line to draw a circle of radii r % circle(r,s)use 's' to draw circle % sa=circle(r)compute the area of the circle and draw it in blue % sa=circle(r,s)compute the area of the circle and draw it in color 's' if nargin>2 error('to many input ');end clf;t=0:pi/100:2*pi;x=r*exp(i*t);if nargout==0 plot(x,s);else sa=pi*r*r;fill(real(x),imag(x),s)end axis('square');%makes the current axis box square in size.例2 function y = imp_fun(n,n0)% IMP_FUN Unit impulse function.% % IMP_FUN(N,N0), where N is a vector of sequential integers, % returns a vector the same length as N with zeros everywhere except % N = N0.[m1,n1] = size(n);if ~(m1 == 1 | n1 == 1)error('The sample vector must be one-dimensional.');end y = zeros(m1,n1);i = find(n >= n0);if isempty(i)return end y(i(1))= 1;% where n = n0, set output to 1 2.函數(shù)調(diào)用 函數(shù)調(diào)用的過程實(shí)際上就是參數(shù)傳遞的過程。例如,在一個(gè)腳本文件里調(diào)用函數(shù)“max”可采用如下方式: n=1:20;
a=sin(2*pi*n/20); [Y,I]=max(a);該調(diào)用過程把變量“a”傳給了函數(shù)中的輸入?yún)?shù)“x”,然后把函數(shù)運(yùn)算的返回值傳給輸出參數(shù)“Y”和“I”。其中,Y是a序列的最大值,I是最大值Y對(duì)應(yīng)的坐標(biāo)值。
例3 構(gòu)造:y[n] = δ[n-3]: 調(diào)用函數(shù): n = 0:6;y = imp_fun(n,3);stem(n,y)
圖1 例4 構(gòu)造:y[n] = 5δ[n]imp_fun(n,2);stem(n,y);
圖2 實(shí)驗(yàn)1 常見離散信號(hào)產(chǎn)生和實(shí)現(xiàn)
一、實(shí)驗(yàn)?zāi)康?/p>
1、加深對(duì)常用離散信號(hào)的理解;
2、熟悉使用MATLAB在時(shí)域中產(chǎn)生一些基本的離散時(shí)間信號(hào)。
二、實(shí)驗(yàn)原理
1、單位抽樣序列
在MATLAB中可以利用
函數(shù)實(shí)現(xiàn)。
2、單位階越序列
在MATLAB中可以利用
函數(shù)實(shí)現(xiàn):
3、正弦序列
在MATLAB中實(shí)現(xiàn)過程如下:
4、復(fù)指數(shù)序列
在MATLAB中實(shí)現(xiàn)過程如下:
5、指數(shù)序列
在MATLAB中實(shí)現(xiàn)過程如下:
三、預(yù)習(xí)要求
1、預(yù)先閱讀實(shí)驗(yàn)講義(MATLAB基礎(chǔ)介紹);
2、討論正弦序列、復(fù)指數(shù)序列的性質(zhì)。
A.繪出信號(hào),當(dāng)、時(shí)、、時(shí)的信號(hào)實(shí)部和虛部圖;當(dāng)B.繪出信號(hào)
時(shí)呢?此時(shí)信號(hào)周期為多少? 的頻率是多少?周期是多少?產(chǎn)生一個(gè)數(shù)字頻率為0.9的正弦序列,并顯示該信號(hào),說明其周期。
3、使用幫助功能學(xué)習(xí)square(方波),sawtooth(鋸齒波)和sinc函數(shù),并繪圖。
四、實(shí)驗(yàn)內(nèi)容
編制程序產(chǎn)生上述5種信號(hào),長度可輸入確定,函數(shù)需要的參數(shù)可輸入確定,并繪出其圖形。
實(shí)驗(yàn)2 離散系統(tǒng)的時(shí)域分析
一、實(shí)驗(yàn)?zāi)康?/p>
1、熟悉并掌握離散系統(tǒng)的差分方程表示法;
2、加深對(duì)沖激響應(yīng)和卷積分析方法的理解。
二、實(shí)驗(yàn)原理
在時(shí)域中,離散時(shí)間系統(tǒng)對(duì)輸入信號(hào)或者延遲信號(hào)進(jìn)行運(yùn)算處理,生成具有所需特性的輸出信號(hào),具體框圖如下:
其輸入、輸出關(guān)系可用以下差分方程描述:
輸入信號(hào)分解為沖激信號(hào),記系統(tǒng)單位沖激響應(yīng),則系統(tǒng)響應(yīng)為如下的卷積計(jì)算式:
當(dāng)稱系統(tǒng)為IIR系統(tǒng)。
時(shí),h[n]是有限長度的(),稱系統(tǒng)為FIR系統(tǒng);反之,三、預(yù)習(xí)要求
1、在MATLAB中,熟悉利用函數(shù)
2、在MATLAB中,熟悉用函數(shù) 響應(yīng)的過程。
實(shí)現(xiàn)差分方程的仿真;
計(jì)算卷積,用求系統(tǒng)沖激
四、實(shí)驗(yàn)內(nèi)容
1、以下程序中分別使用conv和filter函數(shù)計(jì)算h和x的卷積y和y1,運(yùn)行程序,并分析y和y1是否有差別,為什么要使用x[n]補(bǔ)零后的x1來產(chǎn)生y1;具體分析當(dāng)h[n]有i個(gè)值,x[n]有j個(gè)值,使用filter完成卷積功能,需要如何補(bǔ)零? % Program P2_7 clf;h = [3 2 1-2 1 0-4 0 3];%impulse response x = [1-2 3-4 3 2 1];%input sequence y = conv(h,x);n = 0:14;subplot(2,1,1);stem(n,y);xlabel('Time index n');ylabel('Amplitude');title('Output Obtained by Convolution');grid;x1 = [x zeros(1,8)];y1 = filter(h,1,x1);subplot(2,1,2);stem(n,y1);xlabel('Time index n');ylabel('Amplitude');title('Output Generated by Filtering');grid;
2、編制程序求解下列兩個(gè)系統(tǒng)的單位沖激響應(yīng)和階躍響應(yīng),并繪出其圖形。要求分別用 filter、conv、impz三種函數(shù)完成。,,給出理論計(jì)算結(jié)果和程序計(jì)算結(jié)果并討論。實(shí)驗(yàn)3 FFT算法的應(yīng)用
一、實(shí)驗(yàn)?zāi)康?/p>
1、加深對(duì)離散信號(hào)的DFT的理解;
2、在MATLAB中實(shí)現(xiàn)FFT算法。
二、實(shí)驗(yàn)原理
N點(diǎn)序列的DFT和IDFT變換定義式如下: , , 利用旋轉(zhuǎn)因子具有周期性,可以得到快速算法(FFT)。
在MATLAB中,可以用函數(shù)反變換。
和計(jì)算N點(diǎn)序列的DFT正、三、預(yù)習(xí)要求
1、在MATLAB中,熟悉函數(shù)fft、ifft的使用;
2、閱讀擴(kuò)展練習(xí)中的實(shí)例,學(xué)習(xí)在MATLAB中的實(shí)現(xiàn)FFT算法的實(shí)現(xiàn);
3、利用MATLAB編程完成計(jì)算,繪出相應(yīng)圖形。并與理論計(jì)算相比較,說明實(shí)驗(yàn)結(jié)果的原因。
四、實(shí)驗(yàn)內(nèi)容 1、2N點(diǎn)實(shí)數(shù)序列
N=64。用一個(gè)64點(diǎn)的復(fù)數(shù)FFT程序,一次算出,形。
并繪出 的圖
2、已知某序列在單位圓上的N=64等分樣點(diǎn)的Z變換為:。
用N點(diǎn)IFFT程序計(jì)算出和。
五、擴(kuò)展練習(xí)
例1:對(duì)連續(xù)的單一頻率周期信號(hào) 按采樣頻率和N =16,觀察其DFT結(jié)果的幅度譜。
采樣,截取長度N分別選N =20解:此時(shí)離散序列算并作圖,函數(shù)fft用于計(jì)算離散傅里葉變換DFT,程序如下: k=8;n1=[0:1:19];xa1=sin(2*pi*n1/k);subplot(2,2,1)plot(n1,xa1)xlabel('t/T');ylabel('x(n)');xk1=fft(xa1);xk1=abs(xk1);subplot(2,2,2)stem(n1,xk1)xlabel('k');ylabel('X(k)');n2=[0:1:15];,即k=8。用MATLAB計(jì)xa2=sin(2*pi*n2/k);subplot(2,2,3)plot(n2,xa2)xlabel('t/T');ylabel('x(n)');xk2=fft(xa2);xk2=abs(xk2);subplot(2,2,4)stem(n2,xk2)xlabel('k');ylabel('X(k)');
圖 不同的截取長度的正弦信號(hào)及其DFT結(jié)果
計(jì)算結(jié)果示于圖,(a)和(b)分別是N=20時(shí)的截取信號(hào)和DFT結(jié)果,由于截取了兩個(gè)半周期,頻譜出現(xiàn)泄漏;(c)和(d)分別是N=16時(shí)的截取信號(hào)和DFT結(jié)果,由于截取了兩個(gè)整周期,得到單一譜線的頻譜。上述頻譜的誤差主要是由于時(shí)域中對(duì)信號(hào)的非整周期截?cái)喈a(chǎn)生的頻譜泄漏。
實(shí)驗(yàn)4 離散系統(tǒng)的變換域分析
一、實(shí)驗(yàn)?zāi)康?/p>
1、熟悉對(duì)離散系統(tǒng)的頻率響應(yīng)分析方法;
2、加深對(duì)零、極點(diǎn)分布的概念理解。
二、實(shí)驗(yàn)原理
離散系統(tǒng)的時(shí)域方程為
其變換域分析方法如下: 頻域:
系統(tǒng)的頻率響應(yīng)為:
Z域:
系統(tǒng)的轉(zhuǎn)移函數(shù)為:
分解因式:,其中和稱為零、極點(diǎn)。
三、預(yù)習(xí)要求
1.在MATLAB中,熟悉函數(shù)tf2zp、zplane、freqz、residuez、zp2sos的使用,其中:[z,p,K]=tf2zp(num,den)求得有理分式形式的系統(tǒng)轉(zhuǎn)移函數(shù)的零、極點(diǎn);zplane(z,p)繪制零、極點(diǎn)分布圖;h=freqz(num,den,w)求系統(tǒng)的單位頻率響應(yīng);[r,p,k]=residuez(num,den)完成部分分式展開計(jì)算;sos=zp2sos(z,p,K)完成將高階系統(tǒng)分解為2階系統(tǒng)的串聯(lián)。
2.閱讀擴(kuò)展練習(xí)中的實(shí)例,學(xué)習(xí)頻率分析法在MATLAB中的實(shí)現(xiàn);
3.編程實(shí)現(xiàn)系統(tǒng)參數(shù)輸入,繪出幅度頻率響應(yīng)和相位響應(yīng)曲線和零、極點(diǎn)分布圖。
四、實(shí)驗(yàn)內(nèi)容
求系統(tǒng) 的零、極點(diǎn)和幅度頻率響應(yīng)和相位響應(yīng)。
五、擴(kuò)展練習(xí)
例1: 求下列直接型系統(tǒng)函數(shù)的零、極點(diǎn),并將它轉(zhuǎn)換成二階節(jié)形式
解:用MATLAB計(jì)算程序如下:
num=[1-0.1-0.3-0.3-0.2];den=[1 0.1 0.2 0.2 0.5];[z,p,k]=tf2zp(num,den);m=abs(p);disp('零點(diǎn)');disp(z);disp('極點(diǎn)');disp(p);disp('增益系數(shù)');disp(k);sos=zp2sos(z,p,k);disp('二階節(jié)');disp(real(sos));zplane(num,den)輸入到“num”和“den”的分別為分子和分母多項(xiàng)式的系數(shù)。計(jì)算求得零、極點(diǎn)增益系數(shù)和二階節(jié)的系數(shù): 零點(diǎn): 0.9615-0.5730-0.1443 + 0.5850i-0.1443-0.5850i 極點(diǎn): 0.5276+0.6997i 0.5276-0.6997i-0.5776+0.5635i-0.5776-0.5635i 增益系數(shù): 1 二階節(jié): 1.0000-0.3885-0.5509 1.0000 1.15520 0.6511 1.0000 0.28850 0.36300 1.0000-1.0552 0.7679 系統(tǒng)函數(shù)的二階節(jié)形式為:
極點(diǎn)圖見圖:
圖 系統(tǒng)函數(shù)的零、極點(diǎn)圖
例2: 差分方程
所對(duì)應(yīng)的系統(tǒng)的頻率響應(yīng)。
解:差分方程所對(duì)應(yīng)的系統(tǒng)函數(shù)為:
用MATLAB計(jì)算的程序如下: k=256;num=[0.8-0.44 0.36 0.02];den=[1 0.7-0.45-0.6];w=0:pi/k:pi;h=freqz(num,den,w);subplot(2,2,1);plot(w/pi,real(h));grid title('實(shí)部')xlabel('omega/pi');ylabel('幅度')subplot(2,2,2);plot(w/pi,imag(h));grid title('虛部')xlabel('omega/pi');ylabel('Amplitude')subplot(2,2,3);plot(w/pi,abs(h));grid title('幅度譜')xlabel('omega/pi');ylabel('幅值')subplot(2,2,4);plot(w/pi,angle(h));grid title('相位譜')xlabel('omega/pi');ylabel('弧度')
圖
實(shí)驗(yàn)5 有限沖激響應(yīng)數(shù)字濾波器設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康模?/p>
1、加深對(duì)數(shù)字濾波器的常用指標(biāo)理解。
2、學(xué)習(xí)數(shù)字濾波器的設(shè)計(jì)方法。
二、實(shí)驗(yàn)原理:
低通濾波器的常用指標(biāo):
(1)通帶邊緣頻率;
(2)阻帶邊緣頻率;
(3)通帶起伏;
(4)通帶峰值起伏,(5)阻帶起伏,最小阻帶衰減。
三、預(yù)習(xí)要求
1.在MATLAB中,熟悉函數(shù)fir1、kaiserord、remezord、remez的使用;
B = fir1(n,Wn,'high','noscale')設(shè)計(jì)濾波器;
[n,Wn,beta,ftype] = kaiserord(f,a,dev)估計(jì)濾波器階數(shù);
[n,fo,ao,w] = remezord(f,a,dev,fs)計(jì)算等波紋濾波器階數(shù)n和加權(quán)函數(shù)w(ω);
B=remez(n,f,a)進(jìn)行等波紋濾波器的設(shè)計(jì)。
2.閱讀擴(kuò)展練習(xí)中的實(shí)例,學(xué)習(xí)FIR濾波器的設(shè)計(jì)方法及其在MATLAB中的實(shí)現(xiàn);
3.給出FIR數(shù)字濾波器的沖激響應(yīng),繪出它們的幅度和相位頻響曲線,討論它們各自的實(shí)現(xiàn)形式和特點(diǎn)。
數(shù)字濾波器有IIR和FIR兩種類型,它們的特點(diǎn)和設(shè)計(jì)方法不同。
四、實(shí)驗(yàn)內(nèi)容:
利用MATLAB編程,分別用窗函數(shù)法和等波紋濾波器法設(shè)計(jì)兩種FIR數(shù)字濾波器,指標(biāo)要求如下:
通帶邊緣頻率:,通帶峰值起伏:。
阻帶邊緣頻率:,最小阻帶衰減:。
五、擴(kuò)展練習(xí)
例1: 用凱塞窗設(shè)計(jì)一FIR低通濾波器,通帶邊界頻率,阻帶衰減
不小于50dB。,阻帶邊界頻率解: 首先由過渡帶寬和阻帶衰減
來決定凱塞窗的N和
上圖給出了以上設(shè)計(jì)的頻率特性,(a)為N=30直接截取的頻率特性(b)為凱塞窗設(shè)計(jì)的頻率特性。凱塞窗設(shè)計(jì)對(duì)應(yīng)的MATLAB程序?yàn)椋?wn=kaiser(30,4.55);nn=[0:1:29];alfa=(30-1)/2;hd=sin(0.4*pi*(nn-alfa))./(pi*(nn-alfa));h=hd.*wn';[h1,w1]=freqz(h,1);或者:b = fir1(29,0.4,kaiser(30,4.55));[h1,w1]=freqz(b,1);plot(w1/pi,20*log10(abs(h1)));axis([0,1,-80,10]);grid;xlabel('歸一化頻率/p');ylabel('幅度/dB');還可以使用[n,Wn,beta,ftype]=kaiserord(f,a,dev)函數(shù)來估計(jì)濾波器階數(shù)等,得到凱塞窗濾波器:
fcuts = [0.3 0.5];%歸一化頻率omega/pi mags = [1 0];devs = [0.05 10^(-2.5)];[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs);%計(jì)算出凱塞窗N,beta的值 hh = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');freqz(hh);實(shí)際中,一般調(diào)用MATLAB信號(hào)處理工具箱函數(shù)remezord來計(jì)算等波紋濾波器階數(shù)N和加權(quán)函數(shù)W(ω),調(diào)用函數(shù)remez可進(jìn)行等波紋濾波器的設(shè)計(jì),直接求出濾波器系數(shù)。函數(shù)remezord中的數(shù)組fedge為通帶和阻帶邊界 例2:利用雷米茲交替算法設(shè)計(jì)等波紋濾波器,設(shè)計(jì)一個(gè)線性相位低通FIR數(shù)字濾波器,其指標(biāo)為:通帶邊界頻率fc=800Hz,阻帶邊界fr=1000Hz,通帶波動(dòng)At=40dB,采樣頻率fs=4000Hz。
阻帶最小衰減解:
在MATLAB中可以用remezord 和remez兩個(gè)函數(shù)設(shè)計(jì),其結(jié)果如圖2,MATLAB程序如下: fedge=[800 1000];mval=[1 0];dev=[0.0559 0.01];fs=4000;[N,fpts,mag,wt]=remezord(fedge,mval,dev,fs);b=remez(N,fpts,mag,wt);[h,w]=freqz(b,1,256);plot(w*2000/pi,20*log10(abs(h)));grid;xlabel('頻率/Hz');ylabel('幅度/dB');所得圖像如下所示:
實(shí)驗(yàn)6 無限沖激響應(yīng)數(shù)字濾波器設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康?/p>
1、掌握雙線性變換法及脈沖相應(yīng)不變法設(shè)計(jì)IIR數(shù)字濾波器的具體設(shè)計(jì)方法;
2、熟悉用雙線性變換法及脈沖響應(yīng)不變法設(shè)計(jì)低通、高通和帶通IIR數(shù)字濾波器的計(jì)算機(jī)編程。
二、實(shí)驗(yàn)原理
在MATLAB中,可以用下列函數(shù)輔助設(shè)計(jì)IIR數(shù)字濾波器:
1)利用buttord和cheb1ord可以確定低通原型巴特沃斯和切比雪夫?yàn)V波器的階數(shù)和截止頻率; 2)[num,den]=butter(N,Wn)(巴特沃斯)和[num,den]=cheby1(N,Wn),[num,den]=cheby2(N,Wn)(切比雪夫1型和2型)可以進(jìn)行濾波器的設(shè)計(jì);
3)lp2hp,lp2bp,lp2bs可以完成低通濾波器到高通、帶通、帶阻濾波器的轉(zhuǎn)換; 4)使用bilinear可以對(duì)模擬濾波器進(jìn)行雙線性變換,求得數(shù)字濾波器的傳輸函數(shù)系數(shù); 5)利用impinvar可以完成脈沖響應(yīng)不變法的模擬濾波器到數(shù)字濾波器的轉(zhuǎn)換。
三、預(yù)習(xí)要求
1.在MATLAB中,熟悉函數(shù)butter、cheby1、cheby2的使用,其中:
[num,den]=butter(N,Wn)巴特沃斯濾波器設(shè)計(jì); [num,den]=cheby1(N,Wn)切比雪夫1型濾波器設(shè)計(jì); [num,den]=cheby2(N,Wn)切比雪夫2型濾波器設(shè)計(jì)。
2.閱讀擴(kuò)展練習(xí)中的實(shí)例,學(xué)習(xí)在MATLAB中進(jìn)行數(shù)字濾波器的設(shè)計(jì);
3.給出IIR數(shù)字濾波器參數(shù)和濾波器的沖激響應(yīng),繪出它們的幅度和相位頻響曲線,討論它們各自的實(shí)現(xiàn)形式和特點(diǎn)。
四、實(shí)驗(yàn)內(nèi)容
利用MATLAB編程,用脈沖響應(yīng)不變法和雙線性變換法設(shè)計(jì)一個(gè)數(shù)字帶通濾波器,指標(biāo)要求如下: 通帶邊緣頻率:阻帶邊緣頻率:,,通帶峰值起伏:,最小阻帶衰減:
。
五、擴(kuò)展練習(xí)例1:設(shè)采樣周期T=250μs(采樣頻率fs =4kHz),用脈沖響應(yīng)不變法和雙線性變換法設(shè)計(jì)一個(gè)三階巴特沃茲濾波器,其3dB邊界頻率為fc =1kHz。[B,A]=butter(3,2*pi*1000,'s');[num1,den1]=impinvar(B,A,4000);[h1,w]=freqz(num1,den1);[B,A]=butter(3,2/0.00025,'s');[num2,den2]=bilinear(B,A,4000);[h2,w]=freqz(num2,den2);f=w/pi*2000;plot(f,abs(h1),'-.',f,abs(h2),'-');grid;xlabel('頻率/Hz ')ylabel('幅值/dB')程序中第一個(gè)butter的邊界頻率2π×1000,為脈沖響應(yīng)不變法原型低通濾波器的邊界頻率;第二個(gè)butter的邊界頻率2/T=2/0.00025,為雙線性變換法原型低通濾波器的邊界頻率.圖1給出了這兩種設(shè)計(jì)方法所得到的頻響,虛線為脈沖響應(yīng)不變法的結(jié)果;實(shí)線為雙線性變換法的結(jié)果。脈沖響應(yīng)不變法由于混疊效應(yīng),使得過渡帶和阻帶的衰減特性變差,并且不存在傳輸零點(diǎn)。同時(shí),也看到雙線性變換法,在z=-1即Ω=π或f=2000Hz處有一個(gè)三階傳輸零點(diǎn),這個(gè)三階零點(diǎn)正是模擬濾波器在ω=∞處的三階傳輸零點(diǎn)通過映射形成的。
下圖給出了MATLAB計(jì)算的結(jié)果。
例2: 設(shè)計(jì)一數(shù)字高通濾波器,它的通帶為400~500Hz,通帶內(nèi)容許有0.5dB的波動(dòng),阻帶內(nèi)衰減在小于317Hz的頻帶內(nèi)至少為19dB,采樣頻率為1,000Hz。wc=2*1000*tan(2*pi*400/(2*1000));wt=2*1000*tan(2*pi*317/(2*1000));[N,wn]=cheb1ord(wc,wt,0.5,19,'s');[B,A]=cheby1(N,0.5,wn,'high','s');[num,den]=bilinear(B,A,1000);[h,w]=freqz(num,den);f=w/pi*500;plot(f,20*log10(abs(h)));axis([0,500,-80,10]);grid;xlabel('')ylabel('幅度/dB')下圖給出了MATLAB計(jì)算的結(jié)果。
例3: 設(shè)計(jì)一巴特沃茲帶通濾波器,其3dB邊界頻率分別為f2=110kHz和f1=90kHz,在阻帶f3 = 120kHz處的最小衰減大于10dB,采樣頻率fs=400kHz。w1=2*400*tan(2*pi*90/(2*400));w2=2*400*tan(2*pi*110/(2*400));wr=2*400*tan(2*pi*120/(2*400));[N,wn]=buttord([w1 w2],[0 wr],3,10,'s');[B,A]=butter(N,wn,'s');[num,den]=bilinear(B,A,400);[h,w]=freqz(num,den);f=w/pi*200;plot(f,20*log10(abs(h)));axis([40,160,-30,10]);grid;xlabel('頻率/kHz')ylabel('幅度/dB')下圖給出了MATLAB計(jì)算的結(jié)果。
例4: 一數(shù)字濾波器采樣頻率fs=1kHz,要求濾除100Hz的干擾,其3dB的邊界頻率為95Hz和105Hz,原型歸一化低通濾波器為: w1=95/500;w2=105/500;[B,A]=butter(1,[w1, w2],'stop');[h,w]=freqz(B,A);f=w/pi*500;plot(f,20*log10(abs(h)));axis([50,150,-30,10]);grid;xlabel('頻率/Hz')ylabel('幅度/dB')下圖為MATLAB的計(jì)算結(jié)果。
實(shí)驗(yàn)7 設(shè)計(jì)性和研究性實(shí)驗(yàn)
設(shè)計(jì)性實(shí)驗(yàn)1 圖像信號(hào)的抽取與插值
實(shí)驗(yàn)?zāi)康?/p>
1、熟悉圖像處理常用函數(shù)和方法;
2、培養(yǎng)通過查閱文獻(xiàn)解決問題的能力。實(shí)驗(yàn)要求
給出一個(gè)二維灰度圖像,3、編程實(shí)現(xiàn)對(duì)該圖像的任意比例的放大及縮小;
4、編程實(shí)現(xiàn)對(duì)該圖像的任意角度旋轉(zhuǎn);
5、解決縮放及旋轉(zhuǎn)時(shí)產(chǎn)生的鋸齒等不圖像不平滑問題。實(shí)驗(yàn)提示
6、利用上采樣、下采樣等方法對(duì)信號(hào)進(jìn)行縮放變換;
7、觀察對(duì)圖像進(jìn)行縮放或旋轉(zhuǎn)時(shí),圖像是否會(huì)出現(xiàn)鋸齒等不平滑現(xiàn)象?
8、分析產(chǎn)生鋸齒現(xiàn)象的原因;
9、查閱文獻(xiàn)了解解決鋸齒現(xiàn)象的方法。(例如平滑濾波、雙線性插值、雙立方插值等處理)
設(shè)計(jì)性實(shí)驗(yàn)2 語音及音樂信號(hào)的采樣、濾波
實(shí)驗(yàn)?zāi)康?/p>
1、理解采樣率和量化級(jí)數(shù)對(duì)語音信號(hào)的影響;
2、設(shè)計(jì)濾波器解決實(shí)際問題。實(shí)驗(yàn)要求
利用電腦的聲卡錄一段語音信號(hào)及音樂信號(hào),(1)觀察使用不同采樣率及量化級(jí)數(shù)所得到的信號(hào)的聽覺效果,從而確定對(duì)不同信號(hào)的最佳的采樣率;
(2)分析音樂信號(hào)的采樣率為什么要比語音的采樣率高才能得到較好的聽覺效果;(3)注意觀察信號(hào)中的噪聲(特別是50hz交流電信號(hào)對(duì)錄音的干擾,設(shè)計(jì)一個(gè)濾波器去除該噪聲。實(shí)驗(yàn)提示
(1)推薦錄音及播放軟件:CoolEdit;
(2)分析語音及音樂信號(hào)的頻譜,根據(jù)信號(hào)的頻率特性理解采樣定律對(duì)信號(hào)數(shù)字化的工程指導(dǎo)意義;
(3)可用帶阻濾波器對(duì)50Hz交流電噪聲進(jìn)行去噪處理;
(4)也可研究設(shè)計(jì)自適應(yīng)濾波器對(duì)50Hz噪聲及其它隨機(jī)環(huán)境噪聲進(jìn)行濾波處理。設(shè)計(jì)性實(shí)驗(yàn)3 雙音多頻(DTMF)信號(hào)的合成和識(shí)別
二、實(shí)驗(yàn)?zāi)康?/p>
1、了解電話按鍵音形成的原理,理解DTMF音頻產(chǎn)生軟件和DTMF解碼算法;
2、利用FFT算法識(shí)別按鍵音;
三、實(shí)驗(yàn)要求
(1)設(shè)計(jì)音頻產(chǎn)生函數(shù),音頻信號(hào)見下圖,每個(gè)數(shù)據(jù)信號(hào)持續(xù)半秒;(2)實(shí)現(xiàn)解碼函數(shù):接受(1)產(chǎn)生的DTMF信號(hào),識(shí)別信號(hào)的頻率,并生成包含撥號(hào)數(shù)字的序列;
四、實(shí)驗(yàn)提示
(1)DTFT音頻可以用兩個(gè)正弦波按比例疊加產(chǎn)生;
(2)檢測算法可以用FFT算法的DFT,或是用一組濾波器實(shí)現(xiàn);
(3)Goertzel算法可以實(shí)現(xiàn)調(diào)諧濾波器;
設(shè)計(jì)性實(shí)驗(yàn)4 音樂信號(hào)處理
五、實(shí)驗(yàn)?zāi)康?/p>
1、了解回聲的產(chǎn)生和梳妝濾波器;
2、混音效果的原理和均衡器的設(shè)計(jì);
六、實(shí)驗(yàn)要求
(1)設(shè)計(jì)函數(shù)實(shí)現(xiàn)一段語音或音樂的回聲產(chǎn)生;
(2)設(shè)計(jì)均衡器,使得得不同頻率的混合音頻信號(hào),通過一個(gè)均衡器后,增強(qiáng)或削減某些頻率區(qū)域,以便修正低頻和高頻信號(hào)之間的關(guān)系;
七、實(shí)驗(yàn)提示
(1)回聲產(chǎn)生可以使用梳妝濾波器,y(n)=x(n)+ax(n-R), a<1(回聲
??z?RH(z)?,??1?R1??z衰減系數(shù));或者傳輸函數(shù)為的全通濾波器實(shí)現(xiàn);比較這兩種實(shí)現(xiàn)方式的區(qū)別,分析為什么會(huì)有這樣的區(qū)別;
(2)可以用許多一階和二階參數(shù)可調(diào)的濾波器級(jí)聯(lián)來實(shí)現(xiàn)均衡器的功能,濾波器的結(jié)構(gòu)選擇結(jié)構(gòu)要求是調(diào)整方便,最好調(diào)一個(gè)參數(shù)只影響一個(gè)應(yīng)用指標(biāo),且可調(diào)參數(shù)少;
第三篇:電子科技大學(xué)成都學(xué)院數(shù)字信號(hào)處理復(fù)習(xí)重點(diǎn)
數(shù)字信號(hào)處理復(fù)習(xí)重點(diǎn)
第1章
(1)求序列的周期、Z變換和逆Z變換,會(huì)求簡單序列的DTFT。掌握DTFT與Z變換的關(guān)系。
(2)判斷系統(tǒng)是否為線性時(shí)不變系統(tǒng),判斷系統(tǒng)的穩(wěn)定性與因果性。
第2章
(1)計(jì)算簡單序列的DFT。掌握DFT的一些重要性質(zhì)及應(yīng)用(圓周共軛對(duì)稱性,時(shí)域、頻域循環(huán)移位性質(zhì),循環(huán)卷積)。
(2)DFT對(duì)連續(xù)信號(hào)進(jìn)行頻譜分析時(shí)可能出現(xiàn)的幾個(gè)問題。
(3)掌握基-2 DFT—FFT的基本思想及特點(diǎn)(算法思想,運(yùn)算量,運(yùn)算流圖,結(jié)構(gòu)規(guī)則等),會(huì)計(jì)算FFT算法的運(yùn)算量(加法和乘法次數(shù)),會(huì)畫運(yùn)算流圖。
(4)計(jì)算兩個(gè)有限長序列的線性卷積和循環(huán)卷積,掌握線性卷積與循環(huán)卷積的關(guān)系,線性卷積等于循環(huán)卷積的條件。
第3章
(1)映射變換的兩個(gè)基本原則。
(2)脈沖響應(yīng)不變法和雙線性變換法的原理與特點(diǎn)。(優(yōu)點(diǎn)與缺點(diǎn),適合設(shè)計(jì)哪些濾波器)
(3)掌握由模擬低通原型到數(shù)字各型濾波器的設(shè)計(jì)步驟。(重點(diǎn)是低通、高通)
第4章
(1)FIR數(shù)字濾波器的線性相位特性。(線性相位滿足的條件)
(2)窗口設(shè)計(jì)法設(shè)計(jì)FIR濾波器時(shí)怎樣減少振蕩,怎樣使過渡帶變窄。熟悉四種窗函數(shù)的特點(diǎn),掌握窗長對(duì)頻譜的影響。
(3)理解頻率采樣設(shè)計(jì)法的概念及理論依據(jù),掌握設(shè)計(jì)步驟及要點(diǎn)。
(4)IIR與FIR數(shù)字濾器的比較。(掌握兩類濾波器的特點(diǎn))
第5章
(1)IIR濾波器的各種結(jié)構(gòu)以及各種結(jié)構(gòu)的特點(diǎn)(直接型、級(jí)聯(lián)、并聯(lián))
(2)已知系統(tǒng)的差分方程或系統(tǒng)函數(shù),用各種結(jié)構(gòu)來實(shí)現(xiàn)濾波器。(掌握IIR直接型、級(jí)聯(lián)型和并聯(lián)型)
第四篇:數(shù)字信號(hào)處理課后習(xí)題Matlab作業(yè)
數(shù)字信號(hào)處理MATLAB
第1頁
習(xí)題數(shù)字信號(hào)處理MATLAB習(xí)題
M1-1 已知g1(t)?cos(6?t),g2(t)?cos(14?t),g3(t)?cos(26?t),以抽樣頻率fsam?10Hz對(duì)上述三個(gè)信號(hào)進(jìn)行抽樣。在同一張圖上畫出g1(t),g2(t)和g3(t)及抽樣點(diǎn),對(duì)所得結(jié)果進(jìn)行討論。
解:
第2頁
從以上兩幅圖中均可看出,三個(gè)余弦函數(shù)的周期雖然不同,但它們抽樣后相應(yīng)抽樣點(diǎn)所對(duì)應(yīng)的值都相同。那么這樣還原回原先的函數(shù)就變成相同的,實(shí)際上是不一樣的。這是抽樣頻率太小的原因,我們應(yīng)該增大抽樣頻率才能真實(shí)還原。如下圖:f=50Hz
第3頁
程序代碼
f=10;
t=-0.2:0.001:0.2;g1=cos(6.*pi.*t);g2=cos(14.*pi.*t);g3=cos(26.*pi.*t);k=-0.2:1/f:0.2;h1=cos(6.*pi.*k);h2=cos(14.*pi.*k);h3=cos(26.*pi.*k);% subplot(3,1,1);
% plot(k,h1,'r.',t,g1,'r');% xlabel('t');% ylabel('g1(t)');% subplot(3,1,2);
% plot(k,h2,'g.',t,g2,'g');% xlabel('t');% ylabel('g2(t)');% subplot(3,1,3);
% plot(k,h3,'b.',t,g3,'b');% xlabel('t');% ylabel('g3(t)');
plot(t,g1,'r',t,g2,'g',t,g3,'b',k,h1,'r.',k,h2,'g.',k,h3,'b.')
第4頁
xlabel('t');ylabel('g(t)');
legend('g1(t)','g2(t)','g3(t)');
M2-1 利用DFT的性質(zhì),編寫一MATLAB程序,計(jì)算下列序列的循環(huán)卷積。
(1)g[k]={1,-3,4,2,0,-2,},h[k]={3,0,1,-1,2,1};(2)x[k]=cos(?k/2),y[k]=3k,k=0,1,2,3,4,5。解:(1)循環(huán)卷積結(jié)果
6.0000-3.0000 17.0000-2.0000 7.0000-13.0000
程序代碼
第5頁
g=[1-3 4 2 0-2];h=[3 0 1-1 2 1];l=length(g);L=2*l-1;GE=fft(g,L);HE=fft(h,L);y1=ifft(GE.*HE);for n=1:l
if n+l<=L
y2(n)=y1(n)+y1(n+l);else
y2(n)=y1(n);
end end y2
stem(0:l-1,y2)xlabel('k')ylabel('y(k)')title('循環(huán)卷積')
(2)循環(huán)卷積結(jié)果
-71.0000-213.0000 89.0000 267.0000 73.0000 219.0000
第6頁
程序代碼
k=0:5;
x=cos(pi.*k./2);y=3.^k;l=length(x);L=2*l-1;GE=fft(x,L);HE=fft(y,L);y1=ifft(GE.*HE);for n=1:l
if n+l<=L
y2(n)=y1(n)+y1(n+l);
else
y2(n)=y1(n);
end end y2
stem(0:l-1,y2)xlabel('k')ylabel('y’(k)')title('循環(huán)卷積')
第7頁
M2-2 已知序列x[k]???cos(k?/2N),|k|?N
0,其他?(1)計(jì)算序列DTFT的表達(dá)式X(ej?),并畫出N=10時(shí),X(ej?)的曲線。
(2)編寫一MATLAB程序,利用fft函數(shù),計(jì)算N=10時(shí),序列x[k]的DTFT在?m?2?m/N的抽樣值。利用hold函數(shù),將抽樣點(diǎn)畫在X(ej?)的曲線上。
解:
(1)X(e)?DTFT{x[k]}?j?k????x[k]e??j?k?k??N?cos(k?/2N)eN?j?k
程序代碼
N=10;k=-N:N;
x=cos(k.*pi./(2*N));W=linspace(-pi,pi,512);
第8頁
X=zeros(1,length(W));for k=-N:N
X1=x(k+N+1).*exp(-j.*W.*k);X=X+X1;end
plot(W,abs(X))xlabel('W');ylabel('abs(X)');
(2)
程序代碼
N=10;k=-N:N;
x=cos(k.*pi./(2*N));X_21=fft(x,21);L=-10:10;
W=linspace(-pi,pi,1024);X=zeros(1,length(W));for k=-N:N
X1=x(k+N+1).*exp(-j.*W.*k);X=X+X1;end
第9頁
plot(W,abs(X));hold on;
plot(2*pi*L/21,fftshift(abs(X_21)),'o');xlabel('W');ylabel('abs(X)');
M2-3 已知一離散序列為x[k]?Acos?0k?Bcos[(?0???)k]。用長度N=64的Hamming窗對(duì)信號(hào)截短后近似計(jì)算其頻譜。試用不同的A和B的取值,確定用Hamming窗能分辨的最小的譜峰間隔??w?c的值。
解:f1=100Hz f2=120Hz時(shí)
2?中cN
f2=140Hz時(shí)
第10頁
f2=160Hz時(shí)
第11頁
由以上三幅圖可見
f2=140Hz時(shí),各譜峰可分辨。則?f又
??w?c2?N
?40Hz
且
??w???T?2??fT?2??40?1 800所以c=3.2(近似值)
程序代碼
N=64;L=1024;
f1=100;f2=160;;fs=800;
A=1;B1=1;B2=0.5;B3=0.25;B4=0.05;T=1/fs;ws=2*pi*fs;k=0:N-1;
x1=A*cos(2*pi*f1*T*k)+B1*cos(2*pi*f2*T*k);x2=A*cos(2*pi*f1*T*k)+B2*cos(2*pi*f2*T*k);x3=A*cos(2*pi*f1*T*k)+B3*cos(2*pi*f2*T*k);x4=A*cos(2*pi*f1*T*k)+B4*cos(2*pi*f2*T*k);hf=(hamming(N))';x1=x1.*hf;x2=x2.*hf;x3=x3.*hf;x4=x4.*hf;
X1=fftshift(fft(x1,L));X2=fftshift(fft(x2,L));X3=fftshift(fft(x3,L));X4=fftshift(fft(x4,L));
W=T*(-ws/2+(0:L-1)*ws/L)/(2*pi);subplot(2,2,1);plot(W,abs(X1));title('A=1,B=1');xlabel('W');ylabel('X1');subplot(2,2,2);
第12頁
plot(W,abs(X2));title('A=1,B=0.5');xlabel('W');ylabel('X2');subplot(2,2,3);plot(W,abs(X3));title('A=1,B=0.25');xlabel('W');ylabel('X3');subplot(2,2,4);plot(W,abs(X4));title('A=1,B=0.05');xlabel('W');ylabel('X4');
M2-4 已知一離散序列為x[k]?cos?0k?0.75cos?1k,0?k?63。其中, ?0?2?/15,?1?2.3?/15。
(1)對(duì)x[k]做64點(diǎn)FFT, 畫出此時(shí)信號(hào)的譜。
(2)如果(1)中顯示的譜不能分辨兩個(gè)譜峰,是否可對(duì)(1)中的64點(diǎn)信號(hào)補(bǔ)0而分辨出兩個(gè)譜峰。通過編程進(jìn)行證實(shí),并解釋其原因。
解:(1)
第13頁
程序代碼
W0=2*pi/15;W1=2.3*pi/15;N=64;k=0:N-1;
x=cos(W0*k)+0.75*cos(W1*k);X=fft(x);
plot(k/N,abs(X));grid on;
title('64點(diǎn)FFT');
(2)
第14頁
第15頁
由以上三幅圖看出:不能對(duì)(1)中的64點(diǎn)信號(hào)補(bǔ)零而分辨出兩個(gè)譜峰,這樣的方法只能改變屏幕分辨率,但可以通過加hamming窗來實(shí)現(xiàn)對(duì)譜峰的分辨。程序代碼
W0=2*pi/15;W1=2.3*pi/15;N=64;L=1024;k=0:N-1;
x=cos(W0*k)+0.75*cos(W1*k);X=fft(x,L);
plot((0:L-1)/N,abs(X));grid on;
title('1024點(diǎn)FFT');
M2-5 已知一連續(xù)信號(hào)為x(t)=exp(-3t)u(t),試?yán)肈FT近似分析
第16頁
其頻譜。若要求頻率分辨率為1Hz,試確定抽樣頻率fsam、抽樣點(diǎn)數(shù)N以及持續(xù)時(shí)間Tp。
解:
本題使用矩形窗,則N?fsamfsam1??fsam,Tp??1 ?f1?f
第17頁
由以上三幅圖可以看出當(dāng)fsam越來越大時(shí),近似值越來越接近
第18頁
于實(shí)際值。即fsam越大擬合效果越好,造成的混疊也是在可以允許的范圍內(nèi)。程序代碼
fs=100;ws=2*pi*fs;Ts=1/fs;N=fs;
x=exp(-3*Ts*(0:N-1));y=fft(x,N);l=length(y);
k=linspace(-ws/2,ws/2,l);
plot(k,Ts*fftshift(abs(y)),'b:');hold on;
w=linspace(-ws/2,ws/2,1024);y1=sqrt(1./(9+w.^2));plot(w,y1,'r')
title('fs=100Hz時(shí)的頻譜')legend('近似值','實(shí)際值);
M2-6 試用DFT近似計(jì)算高斯信號(hào)g(t)?exp(?dt2)的頻譜抽樣值。
π?2通過和頻譜的理論值G(j?)?exp(?)比較,討論如何根據(jù)時(shí)域的信
d4d號(hào)來恰當(dāng)?shù)剡x取截短長度和抽樣頻率使計(jì)算誤差能滿足精度要求。
解:
第19頁
第20頁
由以上三幅圖可以看出:
當(dāng)時(shí)域截取長度相同時(shí),抽樣間隔越小時(shí)誤差越小,當(dāng)抽樣間隔一定時(shí),時(shí)域截取長度越長,誤差越小。當(dāng)取抽樣間隔為1S,時(shí)域截取長度為2S時(shí),誤差較大,絕對(duì)誤差在0.5左右;當(dāng)抽樣間隔為0,5S,時(shí)域截取長度為2S時(shí),誤差比間隔為1S時(shí)小,絕對(duì)誤差不大于0.2;當(dāng)抽樣間隔為0.5S時(shí)域截取長度為4S時(shí),誤差更小,絕對(duì)誤差不大于0.04。因?yàn)闀r(shí)域截取長度越長,保留下來的原信號(hào)中的信息越多,抽樣間隔越小,頻譜越不容易發(fā)生混疊,所以所得頻譜與理論值相比,誤差更小。
程序代碼
Ts=0.5;N=4;N0=64;
k=(-N/2:(N/2))*Ts;
第21頁
x=exp(-pi*(k).^2);X=Ts*fftshift(fft(x,N0));
w=-pi/Ts:2*pi/N0/Ts:(pi-2*pi/N0)/Ts;XT=(pi/pi)^0.5*exp(-w.^2/4/pi);subplot(2,1,1)
plot(w/pi,abs(X),'-o',w/pi,XT);xlabel('omega/pi');ylabel('X(jomega)');
legend('試驗(yàn)值','理論值');
title(['Ts=',num2str(Ts)subplot(2,1,2)plot(w/pi,abs(X)-XT)ylabel('實(shí)驗(yàn)誤差')
xlabel('omega/pi');
'N=',num2str(N)]);第22頁
' '
第五篇:數(shù)字信號(hào)處理實(shí)驗(yàn)第二次實(shí)驗(yàn)matlab系統(tǒng)的頻率響應(yīng)
第二次實(shí)驗(yàn)
第二題
x1=cos(2*pi*0.1*n);x2=cos(2*pi*0.4*n);x=a*x1+b*x2;den=1;ic=[0,0];
y=filter(num,den,x,ic);figure
y1=filter(f,g,x);stem(y1);n=0:100;
s1=cos(2*pi*0.05*n);s2=cos(2*pi*0.47*n);x=s1+s2;num=[1,-1];y=filter(num,2,x);
subplot(2,2,1)plot(n,s2)axis([0,100,-2,2])xlabel('time index n');ylabel('amplitude')title('signal s1')
subplot(2,2,2)plot(n,s1)axis([0,100,-2,2])xlabel('time index n');ylabel('amplitude')title('signal s2')
subplot(2,2,3)plot(n,x)axis([0,100,-2,2])xlabel('time index n');ylabel('amplitude')title('signal x')
subplot(2,2,4)plot(n,y)axis([0,100,-2,2])xlabel('time index n');ylabel('amplitude')title('signal y,m=2')第三題 clf;n=0:40;a=2;b=3;
num=[1,1,1]/3;den=1;ic=[1,1];
y1=filter(num,den,x1,ic);
y2=filter(num,den,x2,ic);
y=filter(num,den,x,ic);yt=a*y1+b*y2;d=y-yt;figure subplot(3,1,1);stem(n,y);
ylabel('amplitude');title('y=f(a*x1+b*x2)');
subplot(3,1,2);stem(n,yt);
ylabel('amplitude');title('y=a*f(x1)+b*f(x2)');
subplot(3,1,3);stem(n,d);
ylabel('amplitude');title('y-yt');第四題 clf;n=0:40;n1=0:50;a=2;b=3;
x1=cos(2*pi*0.1*n);x2=cos(2*pi*0.4*n);x=a*x1+b*x2;x10=[zeros(1,10)x];num=[1,1,1]/3;
y10=[zeros(1,10),y];yx10=filter(num,den,x10,ic);d=y10-yx10;close all;figuresubplot(2,2,1);stem(n,y);
ylabel('amplitude');title('y');
subplot(2,2,2);stem(n1,d);ylabel('amplitude');title('d');
subplot(2,2,3);stem(n1,y10);ylabel('amplitude');title('y10');
subplot(2,2,4);stem(n1,yx10);ylabel('amplitude');title('yx10');
第五題第一問 n=0:10;f=[0.3,-0.2,0.4];g=[1,0,0];x=[1,2,3,4];figure h=impz(f,g,4);stem(h);
axis([0,6,-0.3,0.5]);title('用impz計(jì)算出的單位沖激響應(yīng)的前5個(gè)值');
axis([0,10,0,2]);title('第一種方法,用filter,計(jì)算在傳遞函數(shù)作用下的x');figure y2=conv(h,x);stem(y2);axis([0,10,0,2]);title('第二種方法,用conv,計(jì)算h和x的卷積');
第五題第二問 n=0:10;f=[0.3,-0.2,0.4];g=[1,0.5,0];x=[1,2,3,4];figure h=impz(f,g,5);stem(h);
axis([0,6,-0.3,0.5]);title('用impz計(jì)算出的單位沖激響應(yīng)的前5個(gè)值');figure
y1=filter(f,g,x);stem(y1);axis([0,10,0,2]);title('第一種方法,用filter,計(jì)算在傳遞函數(shù)作用下的x');figure y2=conv(h,x);stem(y2);axis([0,10,0,2]);title('第二種方法,用conv,計(jì)算h和x的卷積');