DSP实验详细·简版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一

一、观察采样引起的混叠。(来源:p57 习题1-3)

设模拟信号为)3sin()2sin(4)5cos()(t t t t x πππ⋅+=,t 的单位为毫秒(ms)。 2. 设采样频率为3kHz ,确定与)(t x 混叠的采样重建信号)(t x a 。

3. 画出)(t x 和

)(t x a 在)(60m s t ≤≤范围内的连续波形。

(因数字计算机无法真正画出

连续波形,可用较密的离散点的连线来近似。) 4. 分别用"" 和""⨯在两信号波形上标记出3kHz 采样点。

两信号波形是否相同?采样后的两序列是否相同?

程序与分析: % problem 1

% =============

%作用与汇编中的;以及C++编程中的//作用一样,起注释作用 Clear %清屏

% estimate x(t) and xa(t) with a much higher sampling freq. 'fs1'

%因数字计算机无法真正画出连续波形,可用较密的离散点的连线来近似。 %因此,为画出x(n)与xa(t)的波形,取fs1=50KHZ 。 time_period=6; % unit: ms fs1=50; % unit: kHz T1=1/fs1; % unit: ms n1=0:fix(time_period/T1);

%用两个冒号组成等增量语句,其格式为:t=[初值:增量:终值]。 %如:t=[0:0.02:0.08],t=0 0.02 0.04 0.06 0.08

%当增量为1时,这个增量值可以略去,因而该语句只有一个冒号。 %如:k=1:6,k=1 2 3 4 5 6 %fix 向0舍入为整数,舍尾法

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'),

%figure 指令可以打开一个新的图形绘制窗口,在下一条这样的指令出现之前, %所有的绘图指令都会在这个窗口上绘制。

%plot 函数可以同时画多组数值图像,即以(X 坐标数组1,Y 坐标数组1,X %坐标数组2,Y 坐标数组2,……)的形式书写。每组坐标书写后,可用一个‘’ %表示前面的一组坐标用怎样的形式绘制:线型,点型和颜色。如‘r ’就表示

%用绿色的线绘制,‘b ’蓝色。‘ro ’红色圆圈等等。 hold on, stem(n*T,xa_sample,'b:x') %hold 保持当前图形窗的内容即:在画完一张图后用hold 命令保持住,继续在%当前窗画图。 %stem 离散序列绘图 %b:x 表示蓝色虚线x 号

legend('x(t)','xa(t)','x(nT)','xa(nT)'),xlabel('t(ms)')

%legend 这个指令可以在图像的右上角绘出一个图例,表示每条曲线代表什么, %名称需编程者指定。

%xlabel x 轴标注,ylabel :y 轴标注,title :三维坐标标注。

上面程序结果如下图所示:

波形分析:

x(t)与xa(t)两波形并不相同,但采样后,波形一致。

二、判别离散时间系统的时不变性。(来源:p105 例3.2.2)

设输入序列为)(n x ,系统)2()(n x n y =实现对)(n x 的抽取。 1. 设500,...,2,1),100

2sin(

)(==n n n x π

。取延迟量D (例如D =30)。记)()(D n x n x D -=,画出)(n x 、)(n x D 的序列波形。

2. 编程求出系统对)(n x 的响应)(n y 以及对)(n x D 的响应)(n y D

3. 画出)(D n y 、)(n y D 的波形。 该系统是否为时不变的?

程序与分析:

% ============= % problem 2

% ============= clear

% plot x(n) and x(n-D) D=30; N=500; n=1:N;

%增量为1的等增量语句 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

%求xD(n)的表达式 figure,subplot(2,1,1),

%subplot(n,m,p),将图形分成n*m 个子图,在第p 个子图内绘图 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)

%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

%输入x(n),输出延迟D for n=1:fix(length(xD)/2) yD(n)=xD(2*n); end

%输入延迟D ,对应的此时的输出 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])

%axis(v),v 四元向量[xmin,xmax,ymin,ymax],坐标轴设定在v 规定的范围内

相关文档
最新文档