实验报告
课程名称:信号与系统 实验项目名称:实验4 信号抽样及抽样定理
实 验 目 的:
学会运用MATLAB完成信号抽样及对抽样信号的频谱进行分析;学会运用MATLAB改变抽样间隔,观察抽样后信号的频谱变化;学会运用MATLAB对抽样后的信号进行重建。进一步加深对信号采样和重建过程的理解。
实 验 环 境:
MATLAB
实 验 内 容 及 步 骤:
1.设有三个不同频率的正弦信号,频率分别为f1?100Hz,f2?200Hz,
f3?3800Hz。现在用抽样频率f3?3800Hz对这三个正弦信号进行抽样,用MATLAB命令画出各抽样信号的波形及频谱,并分析频率混叠现象。
(1)代码: dt = 0.000001; Ts = 1/3800;
t1 = -0.005:dt:0.005; ft = sin(2*pi*100*t1); subplot(221)
plot(t1,ft), grid on
xlabel('Time(sec)'),ylabel('f(t)') title('f1的信号') N=500; k = -N:N;
W = 2*pi*k/((2*N+1)*dt); Fw = dt*ft*exp(-j*t1'*W); subplot(222)
plot(W,abs(Fw)), grid on
xlabel('\\omega'),ylabel('F(w)') title('f1的频谱') t2 = -0.005:Ts:0.005; fst = sin(2*pi*100*t2); subplot(223)
plot(t1,ft,':'),hold on
stem(t2,fst),grid on
xlabel('Time(sec)'),ylabel('fs(t)') title('抽样后的信号'),hold off Fsw = Ts*fst*exp(-j*t2'*W); subplot(224)
plot(W,abs(Fsw)), grid on
xlabel('\\omega'),ylabel('Fs(w)') title('抽样后的频谱')
(2)代码: dt = 0.000001; Ts = 1/3800;
t1 = -0.005:dt:0.005; ft = sin(2*pi*200*t1); subplot(221)
plot(t1,ft), grid on
xlabel('Time(sec)'),ylabel('f(t)') title('f2的信号') N=500; k = -N:N;
W = 2*pi*k/((2*N+1)*dt); Fw = dt*ft*exp(-j*t1'*W);
subplot(222)
plot(W,abs(Fw)), grid on
xlabel('\\omega'),ylabel('F(w)') title('f2的频谱') t2 = -0.005:Ts:0.005; fst = sin(2*pi*200*t2); subplot(223)
plot(t1,ft,':'),hold on stem(t2,fst),grid on
xlabel('Time(sec)'),ylabel('fs(t)') title('抽样后的信号'),hold off Fsw = Ts*fst*exp(-j*t2'*W); subplot(224)
plot(W,abs(Fsw)), grid on
xlabel('\\omega'),ylabel('Fs(w)') title('抽样后的频谱')
(3)代码 dt = 0.00001; Ts = 1/3800;
t1 = -0.0005:dt:0.0005; ft = sin(2*pi*3800*t1); subplot(221)
plot(t1,ft), grid on
xlabel('Time(sec)'),ylabel('f(t)') title('f3的信号') N=500; k = -N:N;
W = 2*pi*k/((2*N+1)*dt); Fw = dt*ft*exp(-j*t1'*W); subplot(222)
plot(W,abs(Fw)), grid on
xlabel('\\omega'),ylabel('F(w)') title('f3的频谱')
t2 = -0.0005:Ts:0.0005; fst = sin(2*pi*3800*t2); subplot(223)
plot(t1,ft,':'),hold on stem(t2,fst),grid on
xlabel('Time(sec)'),ylabel('fs(t)') title('抽样后的信号'),hold off Fsw = Ts*fst*exp(-j*t2'*W); subplot(224)
plot(W,abs(Fsw)), grid on
xlabel('\\omega'),ylabel('Fs(w)') title('抽样后的频谱')
2 结合抽样定理,用MATLAB编程实现Sa(t)信号经冲激脉冲抽样后得到的抽样信号fs(t)及其频谱,并利用fs(t)重构Sa(t)信号。
代码: wm =8;
wc = 1.2*wm; Ts = 0.1; n = -50:50; nTs = n *Ts;
fs = sinc(nTs/pi); t = -5:0.1:5;
ft=fs*Ts*wc/pi*sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t)))); t1 = -5:0.1:5; f1 = sinc(t1/pi); subplot(311)
plot(t1,f1,':'), hold on stem(nTs,fs),grid on
xlabel('nTs'),ylabel('f(nTs)');
title('抽样间隔Ts=0.1时的抽样信号fs(t)') hold off subplot(312)
plot(t,ft),grid on
xlabel('t'),ylabel('f(t)');
title('由fs(t)信号重建得到Sa(t)信号') error = abs(ft-f1); subplot(313)
plot(t,error),grid on
xlabel('t'),ylabel('error(t)');
title('重建信号与原Sa(t)信号的绝对误差')
1. 问题与思考
4.1 通过简单计算,说明例3中重建信号失真的原因。
答:由于抽样间隔改为2.5,对比例2可以发现sw明显变小,容易产生频谱混叠,而且低通滤波器的截止频率不满足 是的是的扫地僧 不能完整的输出信号 4.2 说明例2与例3中nTs向量和t向量的区别。 答:在信号的意义上nTS相当于离散的,t则为连续的