汕 头 大 学 工 学 院 三级项目报告
课 程 名 称 : 数字信号处理 三级项目题目: 模拟信号的数字谱分析 指 导 教 师 :
系 别: 电子工程系 专 业: 通信工程
完成时间: 2010年 11月2 日 至 11 月 16 日
成绩: 评阅人:李旭涛
1 内容与要求
(每个项目的要求,粘贴即可)
画出不同采样率、不同持续期的正弦信号波形图,分别用DTFT、DFT和FFT算法计算频谱。通过MATLAB仿真计算,达到以下目标:
1. 理解数字谱分析中物理分辨力和计算分辨力的概念及两者间的关系; 2. 弄清数字谱分析中误差成因及减小误差的方法。
2 报告正文
(依据的理论,具体实现的步骤,程序代码)
(1)数字谱分析中物理分辨力和计算分辨力的概念及两者间的关系:
物理分辨率:fc计算分辨率:fbin
fsL
fs
(矩形窗的c=1,海明窗的c约等于2)
N
(这不仅对矩形窗成立,对其他窗也是成立的)
当c、fs都不变时,增大N可以显著提高计算分辨率,但物理分辨率不变,因为有效的数据点数不变;增大L时,可以提高物理分辨率,能分辨出相邻很近的频率,但计算分辨率不变。有人就认为补零后物理分辨力提升了,这是错误的;因为补零不能增加数据的有效长度,因而补零不能提高物理分辨力。
(2)数字谱分析中误差成因及减小误差的方法: 频谱泄漏:
实际问题中遇到的离散时间序列x(n)通常是无限长序列,因而处理这个序列的时候需要将它截短。截短相当于将序列乘以窗函数w(n)。根据频域卷积定理,时域中x(n)和w(n)相乘对应于频域中它们的离散傅立叶变换X(jw)和W(jw)的卷积。
因此,x(n)截矩后的频谱不同于它以前的频谱。例如,对于频率为fs的正弦序列,它的频谱应该只是在fs处有离散谱。但是,在利用DFT求它的频谱做了截短,结果使信号的频谱不只是在fs处有离散谱,而是在以fs为中心的频带范围内都有谱线出现,它们可以理解为是从fs频率上“泄露”出去的,这种现象称为频谱“泄露”。
为了减小频谱“泄露”的影响,往往在FFT处理中采用加权技术,典型的加权序列有Hanning、Blackman、Gaussian等窗序列。此外,增加窗序列的长度也可以减少频谱“泄露”。 栅栏效应:
对一函数实行采样,即使抽取采样点上对应的函数值。其效果如同透过栅栏的缝漏去看观看外景一样,只有落在缝隙前的少数景象被看到,其余景象均被栅栏挡住而视为零,这样现象称为栅栏效应。只有当采样的频率满足采样定理时,栅栏效应没什么影响。而频率的采样栅栏效应的影响很大,“挡住”或失去的频率成分有可能是重要的或具有特征的成分,使信号处理失去意义。
减小栅栏效应可用提高采样间隔Df也就是频率分辨力的方法来解决。间隔小,频率分辨力高,被“挡住”或丢失的频率成分就会越少。但会增加采样点数,使计算工作量增加。解决此项矛盾可以采用如下方法:在满足采样定理的前提下,采用频率细化技术(ZOOM),亦可用把时域序列变换成频谱序列的方法。
程序代码1:
function [ output_args ] = cdio31( fs,L,N ) % fs是入口参数,单位是Hz; % L 是信号的持续时间,单位是是s;
% N 是DFT采样点的个数 % 函数功能:
% 1.输出y=sin(2*pi*t)经fs的采样频率采样后的时域图;
% 2.在同一坐标上画出采样信号的DTFT、DFT及FFT频谱图,以作比较。 % 说明:
% 1.DTFT图实际是把N扩大很多倍时的DFT; % 2.为方便比较,把FFT的采样点数扩大了一倍。 n=1024*N;
t =0:1/fs:L-1/fs; df=fs/n; y=sin(2*pi*t);
subplot(2,1,1),stem(t,y,'.'); title('Sampled Signal'); xlabel('t/s');
[H1,w1]=freqz(y,1,n);
f1=w1/2/pi*n*df;%使横轴的单位为rad subplot(2,1,2),plot(f1,abs(H1),'g') hold on;
[H2,w2]=freqz(y,1,N); f2=w2/2/pi*N*(fs/N); stem(f2,abs(H2),'b.'); xlabel('w');
title('DTFT(Green) & DFT(Blue) &FFT(Red)');
z = fft(y,N*2); f3=(0:N*2-1)/N*fs/2;
subplot(2,1,2),plot(f3,abs(z),'xr'); grid on; hold off; end
程序代码2:
function [ output ] = cdio9_8(fs,L,N) % fs是入口参数,单位是Hz; % L 是信号的持续时间,单位是s; % N 是DFT采样点的个数 f1=2;f2=2.5;f3=3; n=0:L-1;
xL=cos(2*pi*f1/fs*n)+cos(2*pi*f2/fs*n)+cos(2*pi*f3/fs*n); y=fft(xL,N);%进行N点fft变换 mag=abs(y);%求幅值
f=(0:length(y)-1)*fs/length(y);%进行对应的频率转换
bar(f,mag,0) hold on plot(f,mag) xlabel('频率/Hz'); ylabel('振幅');
title('Magnitude Spectra') pause clf end
3 结果与分析
(实验的结果,以及对结果的解释和分析。) 在命令窗口输入: cdio31(10,4,100) 得到下图
采样后信号
y=sin(2*pi*t); t =0:1/fs:L-1/fs;
绿色为DTFT,紫色为DFT,红色为FFT 分析:
第一幅图是正弦信号经采样后的图,采样为fs(此图fs=10)
第二个图是DTFT和DFT,FFT的计算频谱图。3个图的形状是一致的,只不过FFT的是双峰的,其他的只是单峰。DTFT的频谱是连续的,但是DFT,FFT的是离散的,因为DTF是在它Z变换的单位圆上的均匀采样,FFT是对DFT的快速计算方法,FFT与DFT是一样
的,只不过FFT是算法,而DFT是变换。
此程序的DTFT计算是基于DTFT的定义,它并不是计算DTFT的最优化算法。从程序中,我们也可以看到,该算法要产生一个(M+1)*N的矩阵,当M和N很大的时候,要占用很大的内存,且矩阵的指数运算要花费大量的时间。
在此程序中,为了方便计算把FFT的计算采样点数扩大了一倍。
在命令窗口输入: cdio9_8(10,10,32) cdio9_8(10,10,64) cdio9_8(10,20,32) cdio9_8(10,20,64) 得到下图
由程序cdio9_8(fs,L,N)看出,当fs都不变时,增大N可以显著提高计算分辨率,但物理分辨率不变,因为有效的数据点数不变;增大L时,可以提高物理分辨率,能分辨出相邻很近的频率,但计算分辨率不变。
4 总 结
5 参考文献
(A.V. Oppenheim 等著, 刘树棠 译. 信号与系统(第二版),西安交通大学出版社,1998.) [1] 程佩青著,数字信号处理教程(第二版),清华大学出版社,2000.
[2] 王华,李有军,刘建存著,MATLAB电子仿真与应用教程(第二版),国防工业出版
社,2007.
[3] [美]Sanjit K. Mitra, 数字信号处理----基于计算机的方法(第二版),电子工业出版社,2005
[4] 陈怀琛,吴大正,高西全,MATLAB及在电子信息课程中的应用,电子工业出版社,2002
[5] 陈怀琛,数字信号处理教程---MATLAB释义与实现,电子工业出版社,2004
汕 头 大 学 工 学 院 三级项目报告
课 程 名 称 : 数字信号处理 三级项目题目: 模拟信号的数字谱分析 指 导 教 师 :
系 别: 电子工程系 专 业: 通信工程
完成时间: 2010年 11月2 日 至 11 月 16 日
成绩: 评阅人:李旭涛
1 内容与要求
(每个项目的要求,粘贴即可)
画出不同采样率、不同持续期的正弦信号波形图,分别用DTFT、DFT和FFT算法计算频谱。通过MATLAB仿真计算,达到以下目标:
1. 理解数字谱分析中物理分辨力和计算分辨力的概念及两者间的关系; 2. 弄清数字谱分析中误差成因及减小误差的方法。
2 报告正文
(依据的理论,具体实现的步骤,程序代码)
(1)数字谱分析中物理分辨力和计算分辨力的概念及两者间的关系:
物理分辨率:fc计算分辨率:fbin
fsL
fs
(矩形窗的c=1,海明窗的c约等于2)
N
(这不仅对矩形窗成立,对其他窗也是成立的)
当c、fs都不变时,增大N可以显著提高计算分辨率,但物理分辨率不变,因为有效的数据点数不变;增大L时,可以提高物理分辨率,能分辨出相邻很近的频率,但计算分辨率不变。有人就认为补零后物理分辨力提升了,这是错误的;因为补零不能增加数据的有效长度,因而补零不能提高物理分辨力。
(2)数字谱分析中误差成因及减小误差的方法: 频谱泄漏:
实际问题中遇到的离散时间序列x(n)通常是无限长序列,因而处理这个序列的时候需要将它截短。截短相当于将序列乘以窗函数w(n)。根据频域卷积定理,时域中x(n)和w(n)相乘对应于频域中它们的离散傅立叶变换X(jw)和W(jw)的卷积。
因此,x(n)截矩后的频谱不同于它以前的频谱。例如,对于频率为fs的正弦序列,它的频谱应该只是在fs处有离散谱。但是,在利用DFT求它的频谱做了截短,结果使信号的频谱不只是在fs处有离散谱,而是在以fs为中心的频带范围内都有谱线出现,它们可以理解为是从fs频率上“泄露”出去的,这种现象称为频谱“泄露”。
为了减小频谱“泄露”的影响,往往在FFT处理中采用加权技术,典型的加权序列有Hanning、Blackman、Gaussian等窗序列。此外,增加窗序列的长度也可以减少频谱“泄露”。 栅栏效应:
对一函数实行采样,即使抽取采样点上对应的函数值。其效果如同透过栅栏的缝漏去看观看外景一样,只有落在缝隙前的少数景象被看到,其余景象均被栅栏挡住而视为零,这样现象称为栅栏效应。只有当采样的频率满足采样定理时,栅栏效应没什么影响。而频率的采样栅栏效应的影响很大,“挡住”或失去的频率成分有可能是重要的或具有特征的成分,使信号处理失去意义。
减小栅栏效应可用提高采样间隔Df也就是频率分辨力的方法来解决。间隔小,频率分辨力高,被“挡住”或丢失的频率成分就会越少。但会增加采样点数,使计算工作量增加。解决此项矛盾可以采用如下方法:在满足采样定理的前提下,采用频率细化技术(ZOOM),亦可用把时域序列变换成频谱序列的方法。
程序代码1:
function [ output_args ] = cdio31( fs,L,N ) % fs是入口参数,单位是Hz; % L 是信号的持续时间,单位是是s;
% N 是DFT采样点的个数 % 函数功能:
% 1.输出y=sin(2*pi*t)经fs的采样频率采样后的时域图;
% 2.在同一坐标上画出采样信号的DTFT、DFT及FFT频谱图,以作比较。 % 说明:
% 1.DTFT图实际是把N扩大很多倍时的DFT; % 2.为方便比较,把FFT的采样点数扩大了一倍。 n=1024*N;
t =0:1/fs:L-1/fs; df=fs/n; y=sin(2*pi*t);
subplot(2,1,1),stem(t,y,'.'); title('Sampled Signal'); xlabel('t/s');
[H1,w1]=freqz(y,1,n);
f1=w1/2/pi*n*df;%使横轴的单位为rad subplot(2,1,2),plot(f1,abs(H1),'g') hold on;
[H2,w2]=freqz(y,1,N); f2=w2/2/pi*N*(fs/N); stem(f2,abs(H2),'b.'); xlabel('w');
title('DTFT(Green) & DFT(Blue) &FFT(Red)');
z = fft(y,N*2); f3=(0:N*2-1)/N*fs/2;
subplot(2,1,2),plot(f3,abs(z),'xr'); grid on; hold off; end
程序代码2:
function [ output ] = cdio9_8(fs,L,N) % fs是入口参数,单位是Hz; % L 是信号的持续时间,单位是s; % N 是DFT采样点的个数 f1=2;f2=2.5;f3=3; n=0:L-1;
xL=cos(2*pi*f1/fs*n)+cos(2*pi*f2/fs*n)+cos(2*pi*f3/fs*n); y=fft(xL,N);%进行N点fft变换 mag=abs(y);%求幅值
f=(0:length(y)-1)*fs/length(y);%进行对应的频率转换
bar(f,mag,0) hold on plot(f,mag) xlabel('频率/Hz'); ylabel('振幅');
title('Magnitude Spectra') pause clf end
3 结果与分析
(实验的结果,以及对结果的解释和分析。) 在命令窗口输入: cdio31(10,4,100) 得到下图
采样后信号
y=sin(2*pi*t); t =0:1/fs:L-1/fs;
绿色为DTFT,紫色为DFT,红色为FFT 分析:
第一幅图是正弦信号经采样后的图,采样为fs(此图fs=10)
第二个图是DTFT和DFT,FFT的计算频谱图。3个图的形状是一致的,只不过FFT的是双峰的,其他的只是单峰。DTFT的频谱是连续的,但是DFT,FFT的是离散的,因为DTF是在它Z变换的单位圆上的均匀采样,FFT是对DFT的快速计算方法,FFT与DFT是一样
的,只不过FFT是算法,而DFT是变换。
此程序的DTFT计算是基于DTFT的定义,它并不是计算DTFT的最优化算法。从程序中,我们也可以看到,该算法要产生一个(M+1)*N的矩阵,当M和N很大的时候,要占用很大的内存,且矩阵的指数运算要花费大量的时间。
在此程序中,为了方便计算把FFT的计算采样点数扩大了一倍。
在命令窗口输入: cdio9_8(10,10,32) cdio9_8(10,10,64) cdio9_8(10,20,32) cdio9_8(10,20,64) 得到下图
由程序cdio9_8(fs,L,N)看出,当fs都不变时,增大N可以显著提高计算分辨率,但物理分辨率不变,因为有效的数据点数不变;增大L时,可以提高物理分辨率,能分辨出相邻很近的频率,但计算分辨率不变。
4 总 结
5 参考文献
(A.V. Oppenheim 等著, 刘树棠 译. 信号与系统(第二版),西安交通大学出版社,1998.) [1] 程佩青著,数字信号处理教程(第二版),清华大学出版社,2000.
[2] 王华,李有军,刘建存著,MATLAB电子仿真与应用教程(第二版),国防工业出版
社,2007.
[3] [美]Sanjit K. Mitra, 数字信号处理----基于计算机的方法(第二版),电子工业出版社,2005
[4] 陈怀琛,吴大正,高西全,MATLAB及在电子信息课程中的应用,电子工业出版社,2002
[5] 陈怀琛,数字信号处理教程---MATLAB释义与实现,电子工业出版社,2004