发布时间 : 星期一 文章DSP数字信号处理实验报告 - 图文更新完毕开始阅读
实 验 报 告
实验名称__ 采样、系统性质及滤波_ _
系统频率响应和样本处理算法实现
加窗和离散傅氏变换 数字滤波器设计
课程名称 数字信号处理A(双语) 班级学号_ ___ 姓 名____ _____
开课时间 2011/2012学年,第二学期
实验一 采样、系统性质及滤波
一、 实验目的和任务
(1)熟悉MATLAB的主要操作命令。 (2)学会简单的矩阵输入和数据读写。 (3)掌握简单的绘图命令。
(4)用MATLAB编程并学会创建函数。 (5)观察采样引起的混叠。
(6)判别离散时间系统的时不变性。 (7)卷积计算
二、 实验内容 A、观察采样引起的混叠
设模拟信号为x(t)?cos(5?t)?4sin(2?t)?sin(3?t),t的单位为毫秒(ms)。 1. 设采样频率为3kHz,确定与x(t)混叠的采样重建信号xa(t)。
2. 画出x(t)和xa(t)在0?t?6(ms)范围内的连续波形。(因数字计算机无法真正画出
连续波形,可用较密的离散点的连线来近似。)
3. 分别用\?\和\?\在两信号波形上标记出3kHz采样点。两信号波形是否相同?采样后
的两序列是否相同?
实验过程与结果: 实验程序:
% ============= % problem 1
% ============= clear
% estimate x(t) and xa(t) with a much higher sampling freq. 'fs1' time_period=6; % unit: ms fs1=50; % unit: kHz T1=1/fs1; % unit: ms n1=0:fix(time_period/T1);
x=cos(5*pi*n1*T1)+4*sin(2*pi*n1*T1).*sin(3*pi*n1*T1); xa=cos(pi*n1*T1);
% obtain x(nT) and xa(nT) with given sampling freq. 'fs' fs=3; T=1/fs;
n=0:fix(time_period/T);
x_sample=cos(5*pi*n*T)+4*sin(2*pi*n*T).*sin(3*pi*n*T); xa_sample=cos(pi*n*T);
figure,plot(n1*T1,x,'r',n1*T1,xa,'b',n*T,x_sample,'ro'),
hold on, stem(n*T,xa_sample,'b:x')
legend('x(t)','xa(t)','x(nT)','xa(nT)'),xlabel('t(ms)') 实验结果:
分析与讨论:
x(t)?cos(5?t)?4sin(2?t)?sin(3?t)?2cos(?t)?cos(5?t) xa(t)?cos(?t)
两个信号x(t)和xa(t)波形不相同。但采样后的重建序列x(n)和xa(n)相同。这反映了采样重建时有可能发生混淆现象。
B、判别离散时间系统的时不变性。
设输入序列为x(n),系统y(n)?x(2n)实现对x(n)的抽取。 1. 设x(n)?sin(2?100n),n?1,2,...,500。取延迟量D(例如D=30)。记
xD(n)?x(n?D),画出x(n)、xD(n)的序列波形。
2. 编程求出系统对x(n)的响应y(n)以及对xD(n)的响应yD(n) 3. 画出y(n?D)、yD(n)的波形。 该系统是否为时不变的?
实验过程与结果: 实验程序:
% ============= % problem 2
% ============= clear
% plot x(n) and x(n-D) D=30; N=500; n=1:N;
x=sin(2*pi/100*n); for n=1:N+D,
if (n-D)<=0, xD(n)=0; else xD(n)=x(n-D); end end
figure,subplot(2,1,1),
plot(1:N,x,'r:',1:length(xD),xD,'b'), legend('x(n)','xD(n)'),,xlabel('n')
% plot y(n) and yD(n) for n=1:fix(N/2) y(n)=x(2*n); end
for n=1:length(y)+D,
if (n-D)<=0, y_delay(n)=0; else y_delay(n)=y(n-D); end end
for n=1:fix(length(xD)/2) yD(n)=xD(2*n); end
subplot(2,1,2),
plot(1:length(y),y,'r:',1:length(y_delay),y_delay,'r.:',1:length(yD),yD,'b.'), legend('y(n)','y(n-D)','yD(n)'),,xlabel('n') axis([0 530 -1 1]) 实验结果: