数字信号处理研讨_DFT近似计算信号频谱

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【题目分析】 分析影响谱峰分辨率的主要因数,进一步认识补零在在频谱计算中的作用。
【仿真结果】
文案
标准
【结果分析】 频谱的横坐标是归一化频率,图示只观察要区别的部分。每一个列的抽样点相同,每一行 DFT
点相同。 但看第一列,虽然增加 DFT 点数,甚至是增加到 32768,也不能够区分两个谱峰,所以要想增
(a)试画出信号 x(t)在区间[0,1]的波形; (b)若要用 6 次以内的谐波近似表示 x(t),试给出计算方案,并计算出近似表示的误差。讨论出现误
差的原因及减小误差的方法。 【理论推导】
DFT 计算所得结果 X[m]与连续周期信号频谱 X(n0)的关系。
subplot(length(L_set),length(N_set),(L_index-1)*length(N_set)+N_index); plot(m,abs(X)); axis([0.38 0.44 0 40]); title(['N=' num2str(N) ' L=' num2str(L)]);
新排列。
【序列频谱计算的基本方法】 连续信号,通过其抽样的离散信号,和离散信号的 DFT 变换存在如下关系:
X (e j )
2π m N
DFT (~xN [k]RN [k])
N 1 k 0
~xN [k ]WNmk
通过如上关系,我们就可以通过 DFT 来求信号的频谱。 【仿真结果】
文案
标准
fm = 0.9375
【研讨题目】 基本题
1. 已知一离散序列为
x[k] sin(0.2πk),k 0,1,,31
(1)用 L=32 点 DFT 计算该序列的频谱,求出频谱中谱峰的频率; (2)对序列进行补零,然后分别用 L=64、128、256、512 点 DFT 计算该序列的频谱,求出频谱中谱峰 的频率; (3)讨论所获得的结果,给出你的结论。该结论对序列的频谱计算有何指导意义?
信号的谐波。
文案
标准
如果信号 x(t)函数表达式已知,则可由积分得出信号的频谱。如果信号 x(t)函数表达式未知,或 者 x(t)函数表达式非常复杂,则很难由积分得信号的频谱。本题的目的就是研究如何利用 DFT 近似 计算连续时间周期信号的频谱。
(1)若在信号 x(t)的一个周期 T0 内抽样 N 个点,即T0 NT , T 为抽样周期(间隔),可获得序列 x[k]
fsam = fsam_set(fsam_index); Tsam = 1/fsam; for N_index = 1:length(N_set);
N = N_set(N_index); cuttime = N*Tsam; k = -N/2:N/2-1; t = k*Tsam; x = exp(-d*t.^2); X = Tsam*fftshift(fft(x,L)); w = linspace(-pi*fsam,pi*fsam,L);
【仿真结果】
文案
标准
【结果分析】 第一排是 c=4,第二排 c=3,远大于教材定义的标准 c=2。无论 A/B 的比值是多少,区分谱峰毫
无压力。 第 3 排中,c=2 是教材定义的标准,A 与 B 接近的时候,区分较为容易,当 A/B 为 1.6 的时候,
几乎是无法区分,而 A/B=4 的时候,完全无法区分。所以说在设计使用哈明窗的时候,如果不同频 谱的信号所占比例相差较大,哈明窗的 c 要比 2 大。从第一列可以看出,如果 A/B 象近的时候,即 使 c 稍小于 2,也是可以区分的。
加频率的分辨率,可以增加抽样点数,第二列和第三列抽样点数分别是 128 和 256,都可以区分两 个谱峰。 【自主学习内容】
如何增加频谱分辨率。 【阅读文献】
数字信号处理。 【发现问题】 (专题研讨或相关知识点学习中发现的问题):
如何计算所需抽样点数?可以通过信号频率的差值计算。 【问题探究】
1、2、3 题讨论的是离散信号频谱的计算问题。与连续信号频谱计算问题相比较,其计算误差 有何不同?
【仿真结果】
【结果分析】 如图所示,横轴坐标为角频率,左斜线上的图截取时间相同,垂线上的抽样频率相同,很容易
文案
标准
能否看出,增加截取时间和抽样频率都可以减小误差。
【自主学习内容】 连续非周期信号的频谱计算方法。
【仿真程序】 d = pi; fsam_set = [1 2 4 8 16]; N_set = [1 2 4 8]; L = 64; for fsam_index = 1:length(fsam_set);
end end
4 试用 DFT 近似计算高斯信号 g(t) exp( dt 2 ) 的频 exp( )
d
4d
通过与理论值比较,讨论信号的时域截取长度和抽样频率对计算误差的影响。
【题目分析】 连续非周期信号频谱计算的基本方法。计算中出现误差的主要原因及减小误差的方法。
c = c_set(c_index); dw = c*2*pi/N; for A_index = 1:length(A_set)
A = A_set(A_index); x = A*cos(w0*k)+B*cos((w0+dw)*k); Xh = fft(x.*hamming(N)');
subplot(length(c_set),length(A_set),length(A_set)*(c_index-1)+A_index); plot(k,abs(Xh)); hold on; title(['c=' num2str(c) ' ;A/B=' num2str(A)]); axis([12 25 0 25]);
x[k] x(t) tkT ; k 0,1,, N 1
试分析序列 x[k]的 DFT 与连续时间周期信号 x(t)的频谱 X(n0)的关系;
(2)由(1)的结论,给出由 DFT 近似计算周期信号频谱 X(n0)的方案;
(3)周期信号 x(t)的周期 T0=1,x(t)在区间[0,1]的表达式为 x(t)=20t2(1t)4cos(12t)
每一列中,A/B 的比值是相同的,随着 c 的减小,谱峰的区别能力很容易看出是降低的。 【自主学习内容】
不同窗函数的屏幕分辨率。 【阅读文献】
数字信号处理 【发现问题】 (专题研讨或相关知识点学习中发现的问题):
哈明窗所起的作用?哈明窗与矩形窗谁的分辨率高? 在仿真的时候 c 该选用怎样的值? 【问题探究】 哈明窗主瓣较宽,分辨率比矩形窗差,但是哈明窗可以使能量集中在主瓣处。所以哈明窗可以 起到减小泄漏的作用。 在仿真的时候 c 该选用怎样的值?
1. 归一化频率相关知识。 2. 通过 matlab 计算 DFT 和 matlab 的绘图操作。 【阅读文献】 1.数字信号处理 2.补零对有限长序列频谱及 DFT 的影响。 【发现问题】 (专题研讨或相关知识点学习中发现的问题): DFT 点数的增多是否能提高频谱分辨率? 【问题探究】 虽然 DFT 点数增加使图像更加细致,但是因为不论 DFT 点数是多少,抽样点数都是相同的,所 以每个频谱所包含的信息相同,频谱分辨率只与抽样点数相关,与 DFT 点数无关,频谱分辨率相同。 所以不能通过增大 DFT 点数而减少信息损失。 DFT 点数的增多不能提过频率分辨率。 【仿真程序】 k = 0:31; N = 16; x = sin(0.2*pi*k); for i = 1:5 N = 2*N; X = fft(x,N); k = 0:N-1; subplot (5,1,i); plot (k/N,abs(X)); xlabel ('f/HZ'); ylabel ('Magnitude'); fm = find( X == max(X))/N; fm end
【题目分析】 本题讨论补零对离散序列频谱计算的影响。
【温磬提示】 在计算离散非周期序列频谱时常用/作为横坐标,称/为归一化频率normalized frequency)。
在画频谱时需给出横坐标。每幅图下都需给出简要的文字说明。 由于离散非周期序列频谱是周期的,所以在计算时不必用 fftshift 函数对 fft 计算的结果进行重
标准
Beijing Jiaotong University
数字信号处理研讨
DFT 近似计算信号频谱
学 院: 小组成员:
电子信息工程学院
指导教师: 时 间:
文案
2013.06.24
标准
DFT 近似计算信号频谱专题研讨
【目的】
(1) 掌握利用 DFT 近似计算不同类型信号频谱的原理和方法。 (2) 理解误差产生的原因及减小误差的方法。 (3) 培养学生自主学习能力,以及发现问题、分析问题和解决问题的能力。
扩展题 5 本题研究连续周期信号频谱的近似计算问题。
周期为 T0 的连续时间周期信号 x(t)可用 Fourier 级数表示为
x(t) X (n0) ejn0t
n
其中
1
X (n0) T0
~x(t) e dt jn0t
T0
X(n0)称为连续时间周期信号 x(t)的频谱函数。0 2π T0 2πf0 称为信号的基频(基波), n0 称为
subplot(length(N_set),length(fsam_set),fsam_index+length(fsam_set)*(N_index -1));
plot(w,abs(X)); hold on; G = exp(-w.*w/(4*d)); plot(w,G,'r'); title(['cuttime=' num2str(cuttime) ' fsam=' num2str(fsam)]); end end
end end
3 已知一离散序列为 x[k]=cos(0k)+0.75cos(1k), 0 k 63 其中0=0.4, 1=0+/64 (1) 对 x[k]做 64 点 FFT, 画出此时信号的频谱。 (2) 如果(1)中显示的谱不能分辨两个谱峰,是否可对(1)中的 64 点信号补零而分辨出两个谱 峰。通过编程进行证实,并解释其原因 。 (3) 给出一种能分辨出信号中两个谱峰的计算方案,并进行仿真实验。
2 已知一离散序列为 x [k]=Acos0k+Bcos0+)k)。用长度 N=64 的哈明窗对信号截短后近似
计算其频谱。试用不同的 A 和 B 的值(如 A 和 B 近似相等,A 和 B 差距较大),确定用哈明窗
能分辩的最小的谱峰间隔
Δw
c
2π N

c
的值。
【题目分析】 本题讨论用哈明窗计算序列频谱时的频率分辨率。
fm = 0.9219
fm = 0.9141
fm = 0.9102
fm = 0.9082
文案
标准
【结果分析】 增加 DFT 的点数可以使频谱更容易观察,即减轻了栅栏效应带来的影响。频谱的横坐标为归一
化频率,所以原信号的峰值第一次应该出现在 0.2 处,随着 DFT 点数的增大,频谱表示也越来越精 确。 【自主学习内容】
连续信号的频率是非周期的,离散信号的频谱是连续信号频谱的周期话,可能会有混叠误差。 【仿真程序】 w0 = 0.4*pi; dw = pi/64; w1 = w0+dw; N_set = [64 128 256]; L_set = [64 128 256 512 32768]; for N_index = 1:length(N_set);
文案
标准
在开始的时候选用的 c 为 1 2 4 8 16,对比效果不明显,发现 c 的取值过于大,反复尝试确定在 2 附近多取值,其他值也不可取得过于大,因为 c 稍大实验现象基本相同,所以没有意义。 【仿真程序】 N = 64; k = 0:N-1; c_set = [4 3 2.2 2 1.9 1.8 1.5]; A_set = [1 1.2 1.6 4]; B = 1; w0 = 0.5*pi; for c_index = 1:length(c_set)
N = N_set(N_index); k = 0:N-1; x = cos(w0*k)+0.75*cos(w1*k); for L_index =1:length(L_set)
文案
标准
L = L_set(L_index); if L<N
continue end X = fft(x,L); m = (0:L-1)*2/L;
相关文档
最新文档