数字信号处理——实验(三)

实验名称:连续时间信号的数字处理

一、实验目的:

掌握通过周期抽样实现连续时间信号到离散时间信号的转换,验证抽样定理,了解信号重构的过程;掌握模拟滤波器的设计方法。

二、实验内容及要求:

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]);%设置图像区域

数字信号处理——实验(三)