当前位置:文档之家› 数字信号处理实验报告

数字信号处理实验报告

实验一混叠现象的时域与频域表现
一、实验目的
用不同的频率的抽样对某一周期信号进行采集,考察是否发生频谱混叠,用matlab 写出仿真程序,并观察与分析,最后的出结论。

二、实验内容
考虑频率分别为3Hz,7Hz,13Hz 的三个余弦信号,即:g1(t)=cos(6πt),
g2(t)=cos(14πt), g3(t)=cos(26πt),当采样频率为10Hz 时,即采样间隔为0.1秒,则产生的序列分别为:g1[n]=cos(0.6πn), g2[n]=cos(1.4πn), g3[n]=cos(2.6πn)
对g2[n],g3[n] 稍加变换可得:
g2[n]=cos(1.4πn)=cos((2π-0.6π)n)= cos(0.6πn)
g3[n]=cos(2.6πn)= cos((2π+0.6π)n)=cos(0.6πn)
因此它们在时域表现为一个序列。

实际上,当给定频率为(10k±3Hz)的余弦信号,且采样频率为10Hz 时,均表现为g1[n]=cos(0.6πn)的序列。

以下的matlab 程序画出三序列的时域和频域图(图9―32),非常直观地说明了混叠现象。

实验程序:
n=1:300;
t=(n-1)*1/300;
g1=cos(6*pi*t);
g2=cos(14*pi*t);
g3=cos(26*pi*t);
plot(t,g1,t,g2,t,g3);
k=1:100;
s=k*0.1;
q1=cos(6*pi*s);
q2=cos(14*pi*s);
q3=cos(26*pi*s);
hold on; plot(s(1:10),q1(1:10),'bd');
figure
subplot(2,2,1);plot(k/10,abs(fft(q1))) subplot(2,2,2);plot(k/10,abs(fft(q2))) subplot(2,2,3);plot(k/10,abs(fft(q3))) matlab仿真结果:
时域图:
频域图:
如果将采样频率改为30Hz,则三信号采样后不会发生频率混叠,可运行以下的程序,观察序列的频谱。

程序如下:
k=1:300;
q=cos(6*pi*k/30);
q1=cos(14*pi*k/30);
q2=cos(26*pi*k/30);
subplot(2,2,1);plot(k/10,abs(fft(q)))
subplot(2,2,2);plot(k/10,abs(fft(q1)))
subplot(2,2,3);plot(k/10,abs(fft(q2)))
仿真结果:
保证采样后的信号不发生混叠的条件是什么?若信号的最高频率为17Hz,采样频率为30Hz,问是否会发生频率混叠?混叠成频率为多少Hz的信号?编程验证你的想法。

程序如下:
k=1:300;
q=cos(6*pi*k/30);
q1=cos(14*pi*k/30);
q2=cos(34*pi*k/30);
subplot(2,2,1);plot(k/10,abs(fft(q)))
subplot(2,2,2);plot(k/10,abs(fft(q1)))
subplot(2,2,3);plot(k/10,abs(fft(q2)))
仿真结果:k=1:300;
三:实验结果分析:
信号的最高频率为13hz。

当采样频率为10hz时,我们从仿真的时域图和频域图中可以很明显的看出,时域发生了频谱混叠现象,而频域中三个信号的频域在一起,发生了频域混叠。

当采样频率由10hz改为30hz时,三个频谱分开了,不处于同一处,并没有发生频谱混叠。

而将信号的最高频率由13hz改为17hz时,有频谱图看出,又一次发生了频谱混叠现象。

可见只有满足奈奎斯特抽样定理的抽样才不会发生频谱混叠现象,既抽样信号的频率至少为信号最高频率的两倍,第一个实验和第三个实验由于都不满足奈奎斯特采样定理,发生了混叠现象,而第二个实验满足了奈奎斯特采样定理,所以并没有发生频谱混叠现象。

实验二泄露效应
一、实验目的:
首先对对采样信号进行N点的dft(fft),写出matlab程序,仿真并观察实验现象,分析并得出结论。

由于泄漏效应的复杂性,下面的实验演示单一频率正弦信号由于截断引起的泄漏。

首先考察频率为10Hz的正弦信号,采样频率为64Hz,对32点的采样序列进行DFT(FFT),由于是整周期截取,所以不会产生泄漏,程序和运行结果如下(图9-34):
N=input('type in the length of dft=');%采样点数
t=input('type in the sampling period=');%采样时间间隔
freq=input('type in the sinusoid frequency =');%信号频率
k=0:N-1;
f=sin(2*pi*freq*k*(t));
F=fft(f);
stem(k,abs(F));grid;
xlabel('k');ylabel('|x(k)|');
在type in the length of dft=输入32
在type in the sampling period=输入0.015625
在type in the sinusoid frequency =输入10
得出如下仿真结果:
如果采样频率仍为64Hz,采样点数仍为32点,将信号频率改为11Hz,由于非整周期截取,发生了明显的泄漏:
N=input('type in the length of dft=');%采样点数
t=input('type in the sampling period=');%采样时间间隔
freq=input('type in the sinusoid frequency =');%信号频率
k=0:N-1;
f=sin(2*pi*freq*k*(t));
F=fft(f);
stem(k,abs(F));grid;
xlabel('k');ylabel('|x(k)|');
在type in the length of dft=输入32
在type in the sampling period=输入0.015625
在type in the sinusoid frequency =输入11
得出如下仿真结果:
问题与实践:如何选取采样点数、采样频率,才能保证频率为11Hz 的正弦信号不会发生泄漏现象?选取采样点数为30,采样频率为66Hz,运行程序看一看是否有泄漏发生。

N=input('type in the length of dft=');%采样点数
t=input('type in the sampling period=');%采样时间间隔
freq=input('type in the sinusoid frequency =');%信号频率
k=0:N-1;
f=sin(2*pi*freq*k*(t));
F=fft(f);
stem(k,abs(F));grid;
xlabel('k');ylabel('|x(k)|');
在type in the length of dft=输入30
在type in the sampling period=输入1/66
在type in the sinusoid frequency =输入11
得出如下仿真结果:
三、实验分析与总结
很明显的可以看出,第一个和第三个实验除了某两个频率有值之外,其他的频率并不存在,而第二个实验出现了频率泄露的现象。

可见只有在采样间隔是信号周期的整数倍时,对采样后的信号进行N点fft(dft)后才不会发生频谱,混叠现象。

当采样价格不是信号周期的整数倍是,采样到的信号就有可能不在频率点上,由此发生了频谱泄露现象。

心得体会
通过这次试验,我加深了对频谱混叠现象、频谱泄露现象、FFT的参数选取、量化效应的理解,并且学会了如何使用matlab仿真,让我感到受益匪浅,激发了我对这门课程的兴趣。

尽管这门课程已经结束,但我将由这门课程而终身受益。

相关主题