发布时间 : 星期六 文章数字信号处理实验报告更新完毕开始阅读
。
freq=input('type in the sinusoid frequency =');%信号频率 k=0:N-1;
f=sin(2*pi*freq*k*(1/t)); F=fft(f);
stem(k,abs(F));grid; xlabel('k');ylabel('|x(k)|');
如果采样频率仍为64Hz,采样点数仍为32点,将信号频率改为11Hz,由于非整周期截取,发生了明显的泄漏,如图所示:
问题讨论:如何选取采样点数、采样频率,才能保证频率为11Hz 的正弦信号不会发生泄漏现象?选取采样点数为
30,采样频率为66Hz,运行程序看一看是否有泄漏发生。
解答:(1)、不会产生泄漏的条件是:对信号进行整周期截取。
根据条件知:N=(采样点数/采样频率)* 信号频率,
要使泄漏不发生,需使N为正整数,在这一条件下进行采样点数及采样频率。 (2)、将信号频率11Hz、采样点数30、采样频率66Hz代入公式: N=(采样点数/采样频率)* 信号频率
中,得 N=5, 整周期截取,故不发生泄漏。 图像如下:
-可编辑修改-
。
实验三 FFT(DFT)参数的选取
实验原理:本实验考察有不同频率的两个正弦信号加上随机信号组成的信号的傅立叶变换,通过改变序列的采样
点数、DFT长度以及信号的频率,观察谱分辨率以及泄漏对谱估计的影响。
实验过程:编程如下:
N=input('signal length=');%采样点数 R=input('DFT length=');?T的变换长度
fr=input('type in the sinusoid frequences=');%输入正弦信号的频率 y=hamming(N);%可采用其他的窗函数,进行比较 n=0:N-1;
x=cos(2*pi*n*fr(1))+cos(2*pi*n*fr(2))+randn(1,N)/5; x1=x.*y'; Fx=fft(x1,R); k=0:R-1; subplot(2,1,1) stem(k/R,abs(Fx));grid
当fr=[0.22 0.34],N=16时,分别取R=16,32,64,128,256,可以看出随R的增大,明显地可看出两个峰值,但还有其他的一些峰值,无法确定是否还有其他的正弦信号。
当N=16, R=128, fr(2)=0.34, fr(1)分别取0.28 ,0.29, 0.30,0.31时,可以看出当 fr(1)=0.28,0.29时,两谱峰是可分辨的,但fr(1)=0.30,0.31时,两谱峰不可分辨,此时取N=32,64时,两谱峰又可分辨。
如图是fr=[0.22 0.34],N=16,R分别等于16,64时的程序运行结果。
-可编辑修改-
。
(R=16)
(R=64)
图是fr=[0.22 0.34],N=32,R=64时的程序运行结果:
(N=32)
实验四 量化效应
实验原理:本实验对信号x(t)=sin(2πt)进行采样,得到从t=0开始的1000采样值,采样周期为0.001s,采样取
得的信号是舍入的,用四位量化器得到量化后的信号,最后画出原始波形和量化后的波形,并画出量化误差的直方图,且输出信噪比。可以看出,量化误差具有均匀分布的特性。
实验过程:编程如下:
N=1000;t=(0:N-1)*0.001;x=sin(2*pi*t); d=max(x)-min(x); b=4;L=2^b; s=d/L;
-可编辑修改-
。
y=s*round(x/s);
subplot(2,1,1);plot(t,x);hold on plot(t,y);hold off
subplot(2,1,2);e=x-y,hist(e);
snra=10*log10(sum(x.*x))/sum(e.*e)
问题讨论: 改变量化器的位数和信号的动态范围等参数,重新运行上面的程序,总结信号的动态范围和量化阶数
对信噪比的影响。
解答:A=0.25时: N=1000;t=(0:N-1)*0.001;x=0.25*sin(2*pi*t);
d=max(x)-min(x); b=4;L=2^b; s=d/L;
y=s*round(x/s);
subplot(2,1,1);plot(t,x);hold on plot(t,y);hold off
subplot(2,1,2);e=x-y,hist(e);
snra=10*log10(sum(x.*x)/sum(e.*e))
A=0.75时: N=1000;t=(0:N-1)*0.001;x=0.75*sin(2*pi*t);
-可编辑修改-