Who am I

我的照片
Hefei, Anhui, China
Research Fields: Satellite Geodesy

2012年11月29日星期四

窗函数的特性及其选择

1. 什么是“窗”
在频谱分析中,快速傅立叶变换是基本工具。快速傅立叶变换是基于周期无限的信号,而在实现过程中只能截取信号的一部分进行处理。其中截取的过程就是加“窗”。加窗会造成“频谱能量泄漏”和“栅栏效应”。为了减少泄漏和改善栅栏效应,有多种窗函数供选择。

2. 常用窗函数
矩形窗,三角窗,hanning窗,hamming窗,Blackman窗,Kaiser窗,等等。


有了如此多的窗函数,在实际应用中,我们该如何选择窗函数呢?

在介绍窗函数的选择之前,这里首先给出窗函数的几个指标特性。


3. 窗函数特性
考察窗函数的频率响应,通常有如下几个参数:主瓣宽度(越窄越好)、第一旁瓣衰减(越小越好)、旁瓣宽度以及旁瓣衰减速度(越快越好)。
主瓣宽度越窄,频率分辨率越高;第一旁瓣衰减越低,泄漏越小;
矩形窗主瓣宽度最窄但第一旁瓣衰减大;hanning窗和hamming窗具有较窄的主瓣宽度以及较小的第一旁瓣衰减(常用的两种窗函数),但hanning窗比hamming窗旁瓣衰减速度快多了。
理解:窗函数等同于权重函数,窗函数与信号在时间域的乘积等同于窗函数的频谱与信号的频谱在频域的卷积(卷积运算见http://zh.wikipedia.org/wiki/%E5%8D%B7%E7%A7%AF,实质是求和运算)。当旁瓣值越大,泄漏越大,所以,旁瓣值越小越好。窗口尺寸越大,主瓣宽度越窄,旁瓣衰减越大,频谱分辨率越高。

4. 窗函数的选择
hanning窗在大多数场合很有效,由于它具有良好的频率分辨率,并降低了频率泄漏。当你不了解信号的特性时,从hanning窗开始。
如果被测信号是随机或者未知的,选择hanning窗。
如果测试信号有多个频率分量,且测试的目的更多关注频率点而非能量的大小,在这种情况下,需要选择一个主畔够窄的窗函数,hanning窗是一个很好的选择。 
如果测试的目的更多的关注某周期信号频率点的能量值,那么其幅度的准确性则更加的重要,可以选择一个主畔稍宽的窗。
当信号在“远”频段包含强干扰时,选用具有高旁瓣转降率的窗函数(此时的窗函数可以理解成低通滤波器,旁瓣衰减越多,高频噪声抑制效果更好);
当信号在有用频率附近包含强干扰时,选择具有较低的最大旁瓣级别的窗函数;

参考文章:
http://baike.baidu.com/view/3888568.htm (重点)
http://hi.baidu.com/lexlin/item/20860680eb7c5f1cc31627b8 (频谱泄漏那段)

latex caption宏包使用说明(持续更新)

latex caption宏包可以定制图形,图标等标题样式,其中包括标题至图形的间距,标题的显示方式,标题的字体,以及标题对齐方式等等。

该博文将陆续完善该宏包常用的使用介绍。

首先,需要在导言区加载宏包caption2:\usepackage{caption2}

1. 标题样式更改(如Figure 改成 Fig.)
在导言区加上语句:
\renewcommand{\figurename}{Fig.}
如果只想在其中某幅图中修改,将该语句加到对应的Figure环境中即可。

2. 标题至图形或表格的间距
参见另一篇博文http://geowu.blogspot.de/2012/10/latex.html

3. 标题的分割符更改
标题的分割付默认是:,如果想更改为.,且.后面还想留点空白,可以通过重定义\captionlabeldelim来加以改变。在导言区或对应的Figure, table环境中添加如下语句:
\renewcommand{\captionlabeldelim}{.~}   % .后面有个空格
\renewcommand{\captionlabeldelim}{.}     % .后面不留空格

4. 标题对齐方式
通常的标题对齐方式有如下几种:
  • normal:     标题文本两边对齐,其中最后一行为左对齐
  • center:      标题文本居中对齐
  • flushleft:   标题文本左对齐
  • flushright: 标题文本右对齐
  • centerlast: 标题文本两边对齐,其中最后一行居中对齐
  • indent:      与normal相似,只是标题从第二行开始,每行行首缩进由命令\captionindent给出的长度。
  • hang:        悬挂缩进,与normal相似,只是标题从第二行开始,每行行收缩进与标题标记宽度相等的长度。
改变标题的对齐方式有如下两种方法:
  1. 在调用宏包时,设置对齐选项,如\usepackage[centerlast]{caption2},该方法将会改变全文的图形标题对齐方式
  2. \captionstyle命令来改变对齐方式。将该命令置于一环境中,仅仅改变这一环境中的标题对齐方式; 在环境外插入该命令,将改变之后的图形标题对齐方式。例:\captionstyle{centerlast}



参考资料:
http://www.ctex.org/documents/latex/graphics/node2.html,其中第18和19章。

2012年11月22日星期四

过采样和下采样

数字信号处理中,多速率(Multirate)滤波中经常用到的两个概念:过采样和下采样。

过采样(Oversampling):
使用远大于Nyquist频率进行采样,设原来的采样频率为fs,将采样频率提高到R×fs,R>1。
在这种采样的数字信号中,总的量化噪声功率不变,但这时量化噪声的频谱分布发生了变化,即将原来均匀分布在0 ~ fs/2频带内的量化噪声分散到了0 ~ Rfs/2的频带上。若R>>1,则Rfs/2就远大于音频信号的最高频率fm,这使得噪声大部分分布在频带之外的高频区域,而分布在频带之内的噪声就会相应的减少,于是,通过低通滤波器滤掉fm以上的噪声分量,就可以提高系统的信噪比。
优点:提高信噪比;
缺点:处理数据量大;
目的:改变噪声的分布,减少噪声在有用信号的带宽内,然后通过低通滤波器滤除掉噪声,达到较好的信噪比。

与过采样相对应的是欠采样(R<1),这里不做论述。

下采样(降采样,downsampling):
下采样就是抽取,对于一个样值序列间隔几个样值取样一次,这样得到的新序列就是原序列的下采样。下采样还是要满足采样定理才行,否则这样的下采样会引起信号成分的混叠。
好处:较少数据样点,减少运算时间。
matlab函数:y=downsample(x,n)
其中,x为原始采样数据,n为采样间隔,y为返回的降采样数据。

与下采样相对应的是上采样(upsampling),上采样就是内插,根据原始采样数据进行内插,这样得到的新序列就是原序列的上采样。

过采样和欠采样是原始采样;下采样和上采样是基于原始采样数据进行重采样

过采样——低通滤波——下采样


2012年11月16日星期五

firls和remez函数(最优滤波器设计)

firls和remez是比fir1和fir2更为通用的FIR滤波器设计函数。

firls从实际和理想频率响应之间误差平方和最小(最小二乘LS)的观点出发;
remez从实际和理想频率响应之间最大误差最小化的观点出发。
两者都称为最优滤波器设计,调用格式和语法规则相同,只是优化算法不同。

firls函数:
b=firls(n,f,a); or b=firls(n,f,a,w) (后者为加权最优滤波器)
b=remez(n,f,a); b=remez(n,f,a,w); (后者为加权最优滤波器)
式中n为滤波器阶数;f为滤波器期望频率特性归一化频率向量,范围为0~1;a为滤波器期望频率特性的幅值向量,a和f同长度,且为偶数;b为返回滤波器系数,长度为n+1.


fir1和fir2函数介绍(窗函数法)

fir1和fir2都是基于窗函数法设计FIR数字滤波器的函数。所谓滤波器设计,其实就是确定转换函数H的分子b和分母a。对于FIR滤波器,分母a=1,故只需确定分子b.

fir1用经典的窗函数法设计FIR滤波器,在通带波段的幅值响应为0db,fir2同样利用窗函数法,但其可处理任意的频率响应。

首先介绍fir1的用法:
b=fir1(n,wn[,'ftype',window])
其中,n为滤波器的阶数,对于高通、带阻滤波器,n需取偶数;wn为滤波器截止频率,范围为0~1(归一化频率);ftype为滤波器类型,缺省时为低通或带通滤波器;'high'为高通,'stop'为带阻;window为窗函数列向量,其长度为n+1,缺省时自动取hamming窗。b为滤波器系数向量,长度为n+1。

fir2函数:用于设计具有任意形状频率响应的FIR滤波器,调用格式为b=fir2(n,f,m[,npt,window]);
n为滤波器阶数;f和m分别为滤波器幅频响应的频率向量和幅值向量,取值为0~1(归一化频率);m和f具有相同的长度,window为窗函数,长度为n+1,缺省时取hamming窗;npt为对频率响应进行内插的点数,缺省时为512;b为滤波器系数向量,长度为n+1。



matlab freqz函数说明

freqz函数:计算数字滤波器的频率响应(frequency response)

调用形式:
1. [h,w]=freqz(b,a,n)
返回频率响应矢量h(复数)以及相对应的角频率矢量w(取值范围是0-pi). 输入值b和a是转换函数的分子和分母系数。n是一个正整数,返回值h,w的维数都为n。如果不给出n值,默认是512.

2. h=freqz(b,a,w)
b,a的意义同上,w是输入角频率矢量(维数至少为2),返回对应角频率的频率响应矢量h.

3. [h,w]=freqz(b,a,n,'whole')
b,a,n的意义同用法1,区别在于范围的角频率向量w的取值范围是0-2pi,h是对应的频率响应。

注:以上返回的频率都为角频率,以w表示,单位为rad。

4. [h,f]=freqz(b,a,n,fs)
b,a,n意义同上,fs为采样频率,h为返回的频率响应矢量,f为对应的频率(单位为Hz,取值范围为0-fs/2)。

5. h=freqz(b,a,f,fs)
对应用法2,区别在于输入的不是角频率w,而是频率f,fs为采样频率,返回h为频率响应矢量。

6. [h,f]=freqz(b,a,n,'whole',fs)
对应用法3,输出频率f的范围为0-fs.

7. freqz(b,a,...)
绘制滤波器的幅频、相频响应。

8. freqz(Hd)
用fdesign设计好滤波器Hd后,freqz(Hd)在fvtool中绘制幅频、相频响应。


2012年11月8日星期四

latex+bibtex 插入参考文献

latex+bibtex可以轻松插入参考文献,具体步骤如下:

1. 创建参考文献库,.bib文件格式
在我们用Jabref管理文件时,通常导入参考文章的bibtex citation,简单方便的创建文章记录。在写文章时,将Jabref管理的文件导出到一个.bib文件,如test.bib。bib文件的具体格式这里不多论述。

2. 创建主tex文件
创建主文件test.tex,注意文件名与.bib两者保持一致。在主文件里需要加入如下三条语句:

\bibliographystyle{plain}, 将该命令放在\begin{document}后边,其他类型包括:
  • unsrt: 参考文献编号按照引用的顺序,而不是作者字母顺序
  • alpha: 参考文献编号基于作者的名字和出版年份的顺序
  • abbrv: 缩写格式
\cite{title},这里的title是bib文件里@article后面的名称。
\bibliography{test.bib}, 该命令加在\end{document}命令前,调用test.bib

3.编译运行(共四步):
  1. latex或pdflatex命令编译test.tex文件;
  2. bibtex编译test.bib文件,该命令依赖于test.aux文件
  3. 再次用latex或pdflatex编译test.tex文件
  4. 最后用latex或pdflatex编译test.tex文件