数字信号处理实验

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

实验一: 系统及响应时域采样及频域采样

1. 实验目的

(1)掌握用卷积求系统响应及卷积定理的验证;

(2)掌握连续信号经理想采样前后的频谱变化关系, 加深对时域采样定理的理解。

(3)掌握频域采样引起时域周期化概念, 加深对频域采样定理的理解。 (4) 掌握序列傅里叶变换的计算机实现方法, 利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。

3. 实验内容及步骤

(1) 认真复习卷积定理、 时域采样和频域采样理论。 (2) 编制实验用主程序及相应子程序。 ①系统单位脉冲响应序列产生子程序。

有限长序列线性卷积子程序,

用于完成两个给定长度的序列的卷积。

可以直接调用MATLAB 语言中的卷积函数conv 。 conv 用于两个有限长度序列的卷积,它假定两个序列 都从n=0开始。调用格式如下: y=conv (x, h) ② 卷积定理的验证。

(3)时域采样定理的验证:信号产生子程序, 用于产生实验中要用到的下列信号序列:

x a (t)=Ae -at sin(Ω0t)u(t) 进行采样, 可得到采样序列

x a (n)=x a (nT)=Ae -anT sin(Ω0nT)u(n), 0≤n<50

其中A 为幅度因子, a 为衰减因子, Ω0是模拟角频率, T 为采样间隔。 这些参数都要在实验过程中由键盘输入, 产生不同的x a (t)和x a (n)。

>> %1时域采样序列分析 A=400;a=200;w=200; n=0:50-1;fs=1000;

xa=A*exp((-a)*n/fs).*sin(w*n/fs); k=-200:200;w=(pi/100)*k;

Xk=fft(xa,length(k));magX=abs(Xk);angX=angle(Xk); subplot(2,1,1);

stem(n,xa,'.');xlabel('n');ylabel('xa(n)'); title('信号的类型');

)()(10n R n h a =)

3()2(5.2)1(5.2)()(-+-+-+=n n n n n h b δδδδ1,,2,1,0,)()()(-==M k e H e X e Y k k k j j a j ωωω

subplot(2,1,2);plot(w/pi,magX);xlabel('w/pi'); ylabel('|Yjw|');title('Y(|jw|)');

5

10

15

20

2530

35

40

45

50

n x a (n )

信号的类型

-2.5

-2-1.5-1-0.5

00.51 1.52

0500

1000

w/pi

|Y j w |

Y(|jw|)

(4)频域采样定理的验证:

>> %1时域采样序列分析fs=1000 A=400; a=200; w=200;;

ts=64*10^(-3); fs=1000;T=1/fs;

n=0:ts/T-1; xn=A*exp((-a)*n/fs).*sin(w*n/fs); Xk=fft(xn);

subplot(3,2,1);stem(n,xn);xlabel('n,fs=1000Hz'); ylabel('xn');title('xn'); subplot(3,2,2);plot(n,abs(Xk));xlabel('k,fs=1000Hz'); title('|X(k)|');

20

406080

n,fs=1000Hz

x n

xn

20

406080

0500

1000k,fs=1000Hz

|X (k)|

51015

n,fs=200Hz

x n

xn

51015

0100

200k,fs=200Hz |X

(k)|

10

203040

n,fs=500Hz

x n

xn

10

203040

0500

k,fs=500Hz

|X (k)|

>> %频域采样定理验证

M=26;N=32;n=0:M;n1=0:13;x1=n1+1; n2=14:26;x2=27-n2; x=[x1,x2];Xk=fft(x,512); X32k=fft(x,32);

k=0:511;w=(pi/512)*k;

subplot(321);stem(n,x);xlabel('n'); ylabel('xn');axis([0,31,0,15]);

subplot(322);plot(w,abs(Xk));xlabel('k'); ylabel('|X(k)|');axis([0,1,0,200]) X16k=X32k(1:2:N);

x32n=ifft(X32k);x16n=ifft(X16k,16); k1=0:31;k2=0:15;

subplot(323);stem(k1,abs(X32k));xlabel('k'); ylabel('X32k');axis([0,31,0,200]);

subplot(325);stem(k2,abs(X16k));xlabel('k'); ylabel('|X(k)|');axis([0,15,0,200]) n=0:31;

subplot(324);stem(n,abs(x32n));xlabel('n'); ylabel('|x(n)|');axis([0,31,0,15]) n1=0:15;

subplot(326);stem(n1,abs(x16n));xlabel('n'); ylabel('|x(n)|');axis([0,31,0,15])

相关文档
最新文档