数字信号处理实验
本研究探讨了信号频谱计算的关键问题,包括离散序列频谱、连续非周期信号频谱以及连续周期信号频谱的计算方法。在离散序列频谱计算中,通过调整N值(如128、256、512)分析了频谱分辨率和计算量的关系,发现N=128时能区分两个冲激序列,而N=1024时效果最佳。在连续非周期信号频谱计算中,使用矩形窗和哈明窗分析了信号长度Tp(如1/Δf、2/Δf、3/Δf)对旁瓣和频率分辨率的影响,结果表明哈明窗能更清晰地区分频率成分。在连续周期信号频谱计算中,通过7次谐波近似重建信号,发现误差主要由高次谐波未被完全捕捉,增加抽样点数可有效减小误差。研究结果强调了窗函数选择和抽样点数对频谱计算精度的影响。
DFT近似计算信号频谱专题研讨
- 离散序列频谱的分析与处理
- 连续非周期信号频谱的分析及其频率分辨率评估
- 连续周期信号频谱的分析
离散序列频谱计算
【研讨题目】 离散序列频谱计算

选择N值为64,分别计算序列频谱X(ejΩ)在不同抽样点数下的值,绘制信号的频谱图,并对所得结果进行分析。

当N=64时,无论序列频谱的取样值如何,都无法分辨原序列频谱中的两个冲激序列,增大取样值的结果只会导致图像变得更加平滑。
取N=128,分别计算X(ejΩ)在128点、256点、1024点下的抽样值,并绘制频谱图。对比第一部分的结果,谈谈你的认识。

与(1)相比,当N=128时,能够分辨出x[k]频谱中的两个冲激序列,而其中1024点DFT时的表现最为显著。

温磬提示
题目目的
【仿真结果】
结果分析
结果分析
自主学习内容
结果分析
自主学习内容
【阅读文献】
发现问题
发现问题
问题探究
仿真程序
发现问题
问题探究
仿真程序
发现问题
问题探究
仿真程序
N=256;
L=256;
L2=1024;
L3=1024;
A0=(12*pi)/64;
A1=(13*pi)/64;
k=0:N-1;
w=(0:L/2-1)*2/L;
w2=(0:L2/2-1)*2/L2;
w3=(0:L3/2-1)*2/L3;
x=cos(A0*k)+cos(A1*k);
X=fft(x,L);
X2=fft(x,L2);
X3=fft(x,L3);
plot(w,abs(X(1:L/2)),'o',w2,abs(X2(1:L2/2)),'*',w3,abs(X3(1:L3/2)));
ylabel('幅度值');xlabel('Ω/Π');
legend([num2str(L) ' DFT'],[num2str(L2) 'DFT'],[num2str(L3) 'DFT']);
连续非周期信号频谱的计算与频率分辨率
【研讨题目】连续非周期信号频谱的计算与频率分辨率



















题目目的
题目目的
题目目的
温磬提示
【仿真结果】
结果分析
问题探究
自主学习内容
【阅读文献】
【发现问题】 (专题研讨或相关知识点学习中发现的问题):
【仿真程序】
clear;clc;
f1=200;
f2=220;
f0=f2-f1;
fsam=600;
%Tp=N/fsam;
Tp=3/f0;
N=ceil(Tp*fsam);
L=1024*8;
T=1/fsam;wsam=2*pi*fsam;
t=(0:N-1)*T;
x=cos(2*pi*f1*t)+0.9*cos(2*pi*f2*t);
v=cos(2*pi*f1*t)+0.09*cos(2*pi*f2*t);
rect=rectwin(N)'; x1=x;v1=v;
%X1=fft(x,L);
%V1=fft(v1,L);
wh=(hamming(N))';x=x.*wh;v=v.*wh;
X1=T*fftshift(fft(x1,L));
V1=T*fftshift(fft(v1,L));
f=(-fsam/2+(0:L-1)*fsam/L);
plot(f,abs(V1));
ylabel('|V1(jf)|');xlabel(' f/Hz')
A=axis;axis([150 250 A(3:4)]);grid;
【自主学习内容】
【阅读文献】
【发现问题】 (专题研讨或相关知识点学习中发现的问题):
【问题探究】
连续周期信号频谱计算
【研讨题目】 连续周期信号频谱计算


通过在信号x(t)的一个周期T0内采样N个点,可以得到序列x[k],其中T表示抽样周期间隔。


(3)周期信号x(t)的周期T0=1,x(t)在区间[0,1]的表达式为

为了在x(t)的谐波分析中,仅使用7次及以下的谐波(包括7次)来近似表示,需要制定相应的计算方案。请详细说明如何计算出近似的重建信号和误差评估指标,并分析误差产生的原因,并提出有效的降低误差的方法。
题目目的
理论推导
计算方案
计算方案
扩展分析
【仿真结果】


结果分析
结果分析
自主学习内容
【阅读文献】
【发现问题】 (专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】
clear all;clc;
T0=1;N=128;T=T0/N;
L=7;Nr=1000;dt=T0/Nr;
t=(0:N-1)*T;
x = 20*power(t,2).*power((1-t),4).*cos(12*pi*t);
X=fft(x,N)/N;
tr=(0:Nr-1)*dt;
xN=real(X(1)*ones(1,Nr));
for m=2:L+1
xN=xN+2*real( X(m)*exp(j*(m-1)*2*pi*tr) );
end
x = 20*power(tr,2).*power((1-tr),4).*cos(12*pi*tr);
subplot(121);plot(tr,x,tr,xN);legend('x','xN');
subplot(122);plot(tr,x-xN);title('重建误差');
A=axis;axis([A(1,2) -0.04 0.04]);
