欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数字信号处理3个作业-----作业2用Welch方法做谱估计

程序员文章站 2022-06-08 18:40:17
...

1.题目

书本538页13.8 对本书所附带光盘中的数据文件test.mat(数据在https://github.com/jianjake/-test),用Welch方法做谱估计,每段32点,叠合16点,用三角窗。输出平均后的谱曲线并和图13.5.1(d)相比较,观察窗函数对谱估计的影响。

2.分析

对无限长的信号取其有限的时间片段进行分析,即从信号中截取一个时间片段,然后用观察的信号时间片段进行周期延拓处理,无线长的信号被截断以后,其频谱发生了畸变,原来集中在x(0)处的能量被分散到两个较宽的频带中去了。
窗函数会谱估计的频域分辨率及上述的”泄漏”。 泄漏与窗函数频谱的两侧旁瓣有关,如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。
三角(Bartlett)窗,主瓣宽约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣。

     数字信号处理3个作业-----作业2用Welch方法做谱估计
海明(Hamming)窗,是余弦窗的一种,又称改进的升余弦窗。海明窗与汉宁窗都是余弦窗,只是加权系数不同。海明窗加权的系数能使旁瓣达到更小。
       数字信号处理3个作业-----作业2用Welch方法做谱估计

3. 结果

数字信号处理3个作业-----作业2用Welch方法做谱估计
                    三角窗和海明窗时域图形及归一化对数幅频曲线
数字信号处理3个作业-----作业2用Welch方法做谱估计
                              三角窗与用海明窗谱估计比较图

4. 程序

clear;

% 调出数据;
load test x;
N=4096;
Fn=-0.5:1/N:0.5-1/N;

% 用 Welch 平均估计试验数据的功率谱;
xpsd=pwelch(x,bartlett(33),16,N,'whole');        %三角窗
ham=pwelch(x,hamming(33),16,N,'whole');          %海明窗
mmax=max(xpsd);
hmax=max(ham);
xpsd=xpsd/mmax;
ham=ham/hmax;
xpsd=10*log10(xpsd+0.000001);
ham=10*log10(ham+0.000001);
figure(2);
subplot(211);
plot(Fn,fftshift(xpsd));grid on;title('三角窗谱估计');axis([-0.5 0.5 -60 0]);
subplot(212);
plot(Fn,fftshift(ham));grid on;title('海明窗谱估计');axis([-0.5 0.5 -50 0]);

W = linspace(-pi,pi,4096);
figure(1)
wn1 = bartlett(33);
[h1,w1] = freqz(wn1,1,W);
n=-16:1:16;
subplot(221)
stem(n,wn1,'.'); grid on;title('三角窗w(n)');
subplot(222)
plot(w1/pi,20*log10(abs(h1/max(h1)))); axis([-0.5 0.5 -100 0]);grid on;title('三角窗|W(e^{jw})|');
wn2=hamming(33);
[h2,w2]=freqz(wn2,1,W);
subplot(223)
stem(n,wn2,'.'); grid on;title('海明窗w(n)');
subplot(224)
plot(w2/pi,20*log10(abs(h2/max(h1)))); axis([-0.5 0.5 -100 0]);grid on;title('海明窗|W(e^{jw})|');

相关标签: 数字信号处理