广东药学院
实验报告
实验三 时域采样与频域采样
班级:
姓名:
学号:
20##年10月29日
目录
一、实验目的.................................................................................. 3
二、实验原理与方法...................................................................... 3
1、时域采样定理的要点:..................................................... 3
2、频域采样定理的要点:..................................................... 4
三、实验内容及步骤...................................................................... 5
1、时域采样理论的验证.......................................................... 5
2、频域采样理论的验证.......................................................... 6
四、Matlab源代码、实验结果图像和结果分析....................... 7
1、实验内容1........................................................................... 7
2、实验内容2........................................................................... 9
五、思考题及解答........................................................................ 12
六、实验小结................................................................................ 12
一、实验目的
时域采样理论与频域采样理论是数字信号处理中的重要理论。要求掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使采样后的信号不丢失信息;要求掌握频率域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作用。
二、实验原理与方法
1、时域采样定理的要点:
a) 对模拟信号以间隔T进行时域等间隔理想采样,形成的采样信号的频谱是原模拟信号频谱以采样角频率()为周期进行周期延拓。公式为:
b) 采样频率必须大于等于模拟信号最高频率的两倍以上,才能使采样信号的
频谱不产生频谱混叠。
利用计算机计算上式并不方便,下面我们导出另外一个公式,以便用计算机上进行实验。
理想采样信号和模拟信号之间的关系为:
对上式进行傅立叶变换,得到:
在上式的积分号内只有当时,才有非零值,因此:
上式中,在数值上=,再将代入,得到:
上式的右边就是序列的傅立叶变换,即
上式说明理想采样信号的傅立叶变换可用相应的采样序列的傅立叶变换得到,只要将自变量ω用代替即可。
2、频域采样定理的要点:
a) 对信号x(n)的频谱函数X(ejω)在[0,2π]上等间隔采样N点,得到
则N点IDFT[]得到的序列就是原序列x(n)以N为周期进行周期延拓后的主值区序列,公式为:
b) 由上式可知,频域采样点数N必须大于等于时域离散信号的长度M(即N≥M),才能使时域不产生混叠,则N点IDFT[]得到的序列就是原序列x(n),即=x(n)。如果N>M,比原序列尾部多N-M个零点;如果N<M,z则=IDFT[]发生了时域混叠失真,而且的长度N也比x(n)的长度M短,因此。与x(n)不相同。
在数字信号处理的应用中,只要涉及时域或者频域采样,都必须服从这两个采样理论的要点。
对比上面叙述的时域采样原理和频域采样原理,得到一个有用的结论,这两个采样理论具有对偶性:“时域采样频谱周期延拓,频域采样时域信号周期延拓”。因此放在一起进行实
验。
三、实验内容及步骤
1、时域采样理论的验证
给定模拟信号,
式中A=444.128,=50π,=50πrad/s,它的幅频特性曲线如图2.1
图2.1 的幅频特性曲线
现用DFT(FFT)求该模拟信号的幅频特性,以验证时域采样理论。
安照的幅频特性曲线,选取三种采样频率,即=1kHz,300Hz,200Hz。观测时间选。
为使用DFT,首先用下面公式产生时域离散信号,对三种采样频率,采样序列按顺序用,,表示。
因为采样频率不同,得到的,,的长度不同, 长度(点数)用公式计算。选FFT的变换点数为M=64,序列长度不够64的尾部加零。
X(k)=FFT[x(n)] , k=0,1,2,3,-----,M-1
式中k代表的频率为 。
要求: 编写实验程序,计算、和的幅度特性,并绘图显示。观察分
析频谱混叠失真。
2、频域采样理论的验证
给定信号如下:
编写程序分别对频谱函数在区间上等间隔采样32
和16点,得到:
再分别对进行32点和16点IFFT,得到:
分别画出、的幅度谱,并绘图显示x(n)、的波形,进行对比和分析,验证总结频域采样理论。
提示:频域采样用以下方法容易变程序实现。
① 直接调用MATLAB函数fft计算就得到在的32点频率域采样
② 抽取的偶数点即可得到在的16点频率域采样,即。
3 当然也可以按照频域采样理论,先将信号x(n)以16为周期进行周期延拓,取其主值区(16点),再对其进行16点DFT(FFT),得到的就是在的16点频率域采样。
四、Matlab源代码、实验结果图像和结果分析
1、实验内容1
Matlab源代码:
A=444.128;a=50*sqrt(2)*pi;w0=50*sqrt(2)*pi;
Tp=50/1000;F1=1000;F2=300;F3=200; %观察时间Tp=50ms
T1=1/F1;T2=1/F2;T3=1/F3; %不同的采样频率
n1=0:Tp*F1-1;n2=0:Tp*F2-1;n3=0:Tp*F3-1; %产生不同的长度区间n1,n2,n3
x1=A*exp(-a*n1*T1).*sin(w0*n1*T1); %产生采样序列x1(n)
x2=A*exp(-a*n2*T2).*sin(w0*n2*T2); %产生采样序列x2(n)
x3=A*exp(-a*n3*T3).*sin(w0*n3*T3); %产生采样序列x3(n)
f1=fft(x1,length(n1)); %采样序列x1(n)的FFT变换
f2=fft(x2,length(n2)); %采样序列x2(n)的FFT变换
f3=fft(x3,length(n3)); %采样序列x3(n)的FFT变换
k1=0:length(f1)-1;
fk1=k1/Tp; %x1(n)的频谱的横坐标的取值
k2=0:length(f2)-1;
fk2=k2/Tp; %x2(n)的频谱的横坐标的取值
k3=0:length(f3)-1;
fk3=k3/Tp; %x3(n)的频谱的横坐标的取值
subplot(3,2,1)
stem(n1,x1,'.')
title('(a)Fs=1000Hz');
xlabel('n');ylabel('x1(n)');
subplot(3,2,3)
stem(n2,x2,'.')
title('(b)Fs=300Hz');
xlabel('n');ylabel('x2(n)');
subplot(3,2,5)
stem(n3,x3,'.')
title('(c)Fs=200Hz');
xlabel('n');ylabel('x3(n)');
subplot(3,2,2)
plot(fk1,abs(f1))
title('(a) FT[xa(nT)],Fs=1000Hz');
xlabel('f(Hz)');ylabel('幅度')
subplot(3,2,4)
plot(fk2,abs(f2))
title('(b) FT[xa(nT)],Fs=300Hz');
xlabel('f(Hz)');ylabel('幅度')
subplot(3,2,6)
plot(fk3,abs(f3))
title('(c) FT[xa(nT)],Fs=200Hz');
xlabel('f(Hz)');ylabel('幅度')
实验图像:
图2.2
结果分析:
由图2.2可见,采样序列的频谱的确是以采样频率为周期对模拟信号频谱的周期延拓。当采样频率为1000Hz时频谱混叠很小;当采样频率为300Hz时,在折叠频率150Hz附近频谱混叠很严重;当采样频率为200Hz时,在折叠频率110Hz附近频谱混叠更很严重。
由实验图像可以看出,时域非周期对应着频域连续。对连续时间函数对采样使其离散化处理时,必须满足时域采样定理的要求,否则,必将引起频域的混叠。要满足要求信号的最高频率Fc不能采样频率的一半(Fs/2),不满足时域采样定理,频率将会在ω=π附近
或者f=Fs/2混叠而且混叠得最严重。
2、实验内容2
Matlab源代码:
function f=x(n) %产生三角波的函数x(n)的文件
N=length(n);
for m=1:length(n)
if n(m)<=13
f(m)=n(m)+1;
else if n(m)<=26
f(m)=27-n(m);
else
f(m)=0;
end
end
end
主程序代码:
clear
M=27;N=32;n=0:M-1;
xn=x(n); %产生M长三角波序列x(n)
Xk=fft(xn,1024); %1024点FFT[x(n)], 用于近似序列x(n)的TF
X32k=fft(xn,32); %32点FFT[x(n)]
x32n=ifft(X32k); %32点IFFT[X32(k)]得到x32(n)
x16n=zeros(1,16); %x(n)以16为周期作周期延拓并取主值区间,得到序列x16n
for m=1:16; %for循环实现周期延拓并取主值区间
if m<=10
x16n(m)=x(m)+x(16+m);
else
x16n(m)=x(m);
end
end
X16k=fft(x16n,16)
subplot(3,2,2);stem(n,xn,'.');box on
title('(b) 三角波序列x(n)');xlabel('n');ylabel('x(n)');axis([0,32,0,20])
k=0:1023;wk=2*k/1024; %连续频谱图的横坐标取值
subplot(3,2,1);plot(wk,abs(Xk));title('(a)FT[x(n)]');
xlabel('\omega/\pi');ylabel('|X(e^j^\omega)|');axis([0,1,0,200])
k=0:N/2-1; %离散频谱图的横坐标取值
subplot(3,2,3);stem(k,abs(X16k),'.');box on
title('(c) 16点频域采样');xlabel('k');ylabel('|X_1_6(k)|');axis([0,8,0,200])
n1=0:N/2-1;
subplot(3,2,4);stem(n1,x16n,'.');box on
title('(d) 16IDFT[X_1_6(k)]');xlabel('n');ylabel('x_1_6(n)');axis([0,32,0,20])
k=0:N-1; %离散频谱图的横坐标取值
subplot(3,2,5);stem(k,abs(X32k),'.');box on
title('(e) 32点频域采样');xlabel('k');ylabel('|X_3_2(k)|');axis([0,16,0,200])
n1=0:N-1;
subplot(3,2,6);stem(n1,x32n,'.');box on
title('(f) 32IDFT[X_3_2(k)]');xlabel('n');ylabel('x_3_2(n)');axis([0,32,0,20])
实验图像:
图3.3
结果分析:
该图验证了频域采样理论和频域采样定理。对信号x(n)的频谱函数X(ejω)在[0,2π]上等间隔采样N=16时, N点IDFT[]得到的序列正是原序列x(n)以16为周期进行周期延拓后的主值区序列:
由于N<M,所以发生了时域混叠失真,因此。与x(n)不相同,如图图3.3(c)和(d)所示。当N=32时,如图图3.3(c)和(d)所示,由于N>M,频域采样定理,所以不存在时域混叠失真,因此。与x(n)相同。
由实验内容2的结果可知,对一个信号的频谱进行采样处理时,必须严格遵守频域采样定理,否则,用采样的离散频谱恢复原序列信号时,所得的时域离散序列是混叠失真,得不到原序列
五、思考题及解答
如果序列x(n)的长度为M,希望得到其频谱在上的N点等间隔采样,当N<M时, 如何用一次最少点数的DFT得到该频谱采样?
答:由实验内容2的结果可得:对于求频域采样点数N小于原时域序列长度M的N点离散频谱时,
可先对原序列x(n)以N为周期进行周期延拓后取主值区序列,
再计算N点DFT则得到N点频域采样:
但是,所求的N点离散频谱对应的时域离散序列是原序列x(n)以N为周期进行周期延拓后取主值区序列,而不是原序列x(n)
六、实验小结
通过此次实验,对时域采样和频域采样的理论、定理的理解更加深入。采样是模/数中最重要的一步,采样方法的正确与否,关系到信号处理过程的成功与否。所以,无论是在时域还是频域,对信号采样必须仔细考虑采样的参数:采样频谱、采样周期、采样点数。对一个域进行采样,必将引起另一个域的周期延拓,所以,我们要做,就是选取好采样的参数,避免另一个域周期延拓时发生混叠,否则,我们采样所得的数据肯定丢失一部分原信号的信息,我们便无法对原信号对原信号进行恢复和正确分析。
此次实验所遇到的问题:主要是时域非周期对应频域连续,频域周期对应着时域离散(DFT隐含周期性),频域非周期对应时域连续。对时域与频域的关系,还没彻底弄懂,stem和plot绘图函数有时会用错。
建议:参考信号与系统书籍,先弄清楚模拟频率和数字频率之间的关系,进一步再彻底地弄懂时域和频域之间的对偶关系(周期与非周期,离散与连续)。