1. 程式人生 > >數字訊號處理——實驗(三)

數字訊號處理——實驗(三)

實驗名稱:連續時間訊號的數字處理

一、實驗目的:

掌握通過週期抽樣實現連續時間訊號到離散時間訊號的轉換,驗證抽樣定理,瞭解訊號重構的過程;掌握模擬濾波器的設計方法。

二、實驗內容及要求:

1. 連續時間訊號的抽樣及重構:

(1)修改程式P5.1,將正弦訊號的頻率分別改為3Hz和7Hz,畫出抽樣結果圖,相應的等效離散時間訊號之間有差別嗎?若沒有差別,為什麼?
(2)修改程式P5.2,將正弦訊號的頻率分別改為3Hz和7Hz,畫出重構訊號。

2. 模擬濾波器的設計:

修改程式P5.4,設計巴特沃茲低通濾波器,其中通帶截止頻率為3000Hz,阻帶截止頻率為4000Hz,通帶波紋0.5dB,最小阻帶衰減30dB,繪製增益響應。所設計的濾波器的階數和3dB截止頻率分別是多少?

三、實驗結果及問題回答:

  1. 連續時間訊號的抽樣及重構:
    (1)實驗結果:
% Program P5_1
% Illustration of the Sampling Process 
% in the Time-Domain
clf;
t = 0:0.0005:1;
f = 7;
xa = cos(2*pi*f*t);
subplot(2,1,1)
plot(t,xa);grid
xlabel('Time, msec');ylabel('Amplitude');
title('Continuous-time signal x_{a}(t)');
axis([0 1 -1.2 1.2])
subplot(2,1,2);
T = 0.1;
n = 0:T:1;
xs = cos(2*pi*f*n);
k = 0:length(n)-1;
stem(k,xs);grid;
xlabel('Time index n');ylabel('Amplitude');
title('Discrete-time signal x[n]');
axis([0 (length(n)-1) -1.2 1.2])

抽樣結果圖相應的等效離散時間訊號之間沒有差別。因為抽樣週期沒有發生變化,頻率變化不會影響離散時間訊號。
f = 3時:
在這裡插入圖片描述
f = 7時:
在這裡插入圖片描述
(2)實驗結果:

clf;
T = 0.1;f = 7;
n = (0:T:1)';
xs = cos(2*pi*f*n);
t = linspace(-0.5,1.5,500)';
ya = sinc((1/T)*t(:,ones(size(n))) - (1/T)*n(:,ones(size(t)))')*xs;
plot(n,xs,'o',t,ya);grid;
xlabel('Time, msec');ylabel('Amplitude');
title('Reconstructed continuous-time signal y_{a}(t)');
axis([0  1  -1.2 1.2]);

所有頻率對應影象都是下圖,原因與上題一致
在這裡插入圖片描述
2. 模擬濾波器的設計:

% Program P5_4
% Design of Analog Lowpass Filter 
clf;
Fp = 3000;Fs = 4000;
Wp = 2*pi*Fp; Ws = 2*pi*Fs;
[N, Wn] = buttord(Wp, Ws, 0.5, 30,'s');
    %buttord函式的用法為: [n,Wn]= buttord(Wp,Ws,Rp,Rs) 
    %其中Wp和Ws分別是通帶和阻帶的拐角頻率(截止頻率),其
    %取值範圍為0至1之間。當其值為1時代表取樣頻率的一半。
    %Rp和Rs分別是通帶和阻帶區的波紋係數。
[b,a] = butter(N, Wn, 's');
    %%butter函式的用法為:[b,a]=butter(n,Wn,/ftype/) 其
    %中n代表濾波器階數,Wn代表濾波器的截止頻率,這兩個引數
    %可使用buttord函式來確定。buttord函式可在給定濾波器性
    %能的情況下,求出巴特沃斯濾波器的最小階數n,同時給出對
    %應的截止頻率Wn
wa = 0:(3*Ws)/511:3*Ws;
h = freqs(b,a,wa);
   	%freqs()函式
  	%freqs用於計算由向量a和b構成的模擬濾波器H(s)=B(s)/A(s)的幅頻響應.
    %h=freqs(b,a,w)用於計算模擬濾波器的幅頻響應,其中實向量w用於指定頻
    %率值,返回值h為一個複數行向量,要得到幅值必須對它取絕對值,即求模.

plot(wa/(2*pi), 20*log10(abs(h)));grid %畫圖,並開啟網格
xlabel('Frequency, Hz');ylabel('Gain, dB');%使用標籤
title('Gain response');%使用標題
axis([0 3*Fs -60 5]);%設定影象區域

在這裡插入圖片描述