xa = cos(2*pi*f*t); subplot(2,1,1) plot(t,xa);grid
xlabel('时间, msec');ylabel('幅值'); title('连续时间信号 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('时间,msec');ylabel('幅值'); title('离散时间信号 x[n]'); axis([0 (length(n)-1) -1.2 1.2])
正弦信号的采样结果如图4.3所示。
图5-3 正弦信号的采样
2)采样与重构 MATLAB程序:
clf;
T = 0.1;f = 13; 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('时间, msec');ylabel('幅值'); title('重构连续信号 y_{a}(t)'); axis([0 1 -1.2 1.2]);
正弦信号的采样与重构结果如图4.4所示。
21
图5-4 正弦信号的采样与重构结
3)采样的性质 MATLAB程序:
clf;
t = 0:0.005:10; xa = 2*t.*exp(-t); subplot(2,2,1) plot(t,xa);grid
xlabel('时间信号, msec');ylabel('幅值'); title('连续时间信号 x_{a}(t)'); subplot(2,2,2) wa = 0:10/511:10;
ha = freqs(2,[1 2 1],wa); plot(wa/(2*pi),abs(ha));grid;
xlabel('频率, kHz');ylabel('幅值'); title('|X_{a}(j\\Omega)|'); axis([0 5/pi 0 2]); subplot(2,2,3) T = 1;
n = 0:T:10;
xs = 2*n.*exp(-n); k = 0:length(n)-1; stem(k,xs);grid;
xlabel('时间 n');ylabel('幅值'); title('间散时间信号 x[n]'); subplot(2,2,4)
wd = 0:pi/255:pi;hd = freqz(xs,1,wd); plot(wd/(T*pi), T*abs(hd));grid; xlabel('频率, kHz');ylabel('幅值');
title('|X(e^{j\\omega})|');axis([0 1/T 0 2])
信号采样的性质如图4.5所示。
22
图5-5 信号采样的性质
4)模拟低通滤波器设计 MATLAB程序:
clf;
Fp = 3500;Fs = 4500;
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]);
模拟低通滤波器的设计结果如图4.6所示
图5-6所示 模拟低通滤波器的设计
5)时域过采样 MATLAB程序:
clf; n=0:50;
x = sin(2*pi*0.12*n);
23
y=zeros(1,3*length(x)); y([1:3:length(y)])=x; subplot(2,1,1) stem(n,x);
title('输入序列'); subplot(2,1,2)
stem(n,y(1:length(x))); title('输出序列');
离散信号的时域过采样结果如图4.7所示。
图5-7 离散信号的时域过采样
6)时域欠采样 MATLAB程序:
clf; n=0:49;
m=0:50*3-1;
x = sin(2*pi*0.042*m); y=x([1:3:length(x)]); subplot(2,1,1)
stem(n,x(1:50));axis([0 50 -1.2 1.2]); title('输入序列'); subplot(2,1,2)
stem(n,y); axis([0 50 -1.2 1.2]); title('输出序列');
离散信号的时域欠采样结果如图4.8所示。
24