數字訊號處理實驗(三):連續時間訊號的數字處理
阿新 • • 發佈:2019-01-07
目錄
一、實驗目的:
掌握通過週期抽樣實現連續時間訊號到離散時間訊號的轉換,驗證抽樣定理,瞭解訊號重構的過程;掌握模擬濾波器的設計方法。
二、實驗內容及要求:
1. 連續時間訊號的抽樣及重構:
(1)修改程式P5.1,將正弦訊號的頻率分別改為3Hz和7Hz,畫出抽樣結果圖,相應的等效離散時間訊號之間有差別嗎?若沒有差別,為什麼?
(2)修改程式P5.2,將正弦訊號的頻率分別改為3Hz和7Hz,畫出重構訊號。
2. 模擬濾波器的設計:
修改程式P5.4,設計巴特沃茲低通濾波器,其中通帶截止頻率為3000Hz,阻帶截止頻率為4000Hz,通帶波紋0.5dB,最小阻帶衰減30dB,繪製增益響應。所設計的濾波器的階數和3dB截止頻率分別是多少?
三、實驗結果及問題回答:
1. 連續時間訊號的抽樣及重構:
- 實驗結果:
clf; t = 0:0.0005:1; f = 3;%設定正弦訊號的頻率 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])
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])
等效的離散時間訊號沒有差別,因為: 故取樣結果一樣。
(2)實驗結果:
clf;
T = 0.1;
f = 3;%設定正弦訊號的頻率
n = (0:T:1)';
xs = cos(2*pi*f*n);%生成離散的正弦訊號xs
t = linspace(-0.5,1.5,500)';%利用linspace()函式來生成時間向量
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.5 1.5 -1.2 1.2]);
clf;
T = 0.1;
f = 7;%設定正弦訊號的頻率
n = (0:T:1)';
xs = cos(2*pi*f*n);%生成離散的正弦訊號xs
t = linspace(-0.5,1.5,500)';%利用linspace()函式來生成時間向量
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.5 1.5 -1.2 1.2]);
2. 模擬濾波器的設計:
clf;
Fp = 3000;%設定通帶截止頻率
Fs = 4000;%設定阻帶截止頻率
Wp = 2*pi*Fp; Ws = 2*pi*Fs;
[N, Wn] = buttord(Wp, Ws, 0.5, 30,'s');%生成巴特沃茲低通濾波器的階數和等效的低通濾波器的截止頻率
[b,a] = butter(N, Wn, 's');%生成巴特沃茲體通濾波器的分子和分母向量
wa = 0:(3*Ws)/511:3*Ws;
h = freqs(b,a,wa);%求濾波器的頻率響應
plot(wa/(2*pi), 20*log10(abs(h)));%繪製濾波器的增益響應
grid
xlabel('Frequency, Hz');ylabel('Gain, dB');
title('Gain response');
axis([0 3*Fs -60 5]);
該濾波器的節數為N=16,3dB頻寬為:3223.5Hz.