归一化数字角频率_数字信号处理中的各种频率
在学习数字信号处理时,很多种频率很容易搞混淆,有模拟/数字/频率/角频率等等,也不是特别清楚不同频率之间的关系,希望这篇文件可以为各种频率来个了结.
4种频率及其数量关系
实际物理频率表示物理信号的真实频率; fs为采样频率,表示ADC采集物理信号的频率,由奈奎斯特采样定理可以知道,fs必须≥信号最高频率的2倍才不会发生信号混叠,因此fs能采样到的信号最高频率为fs/2。
角频率Ω是物理频率的2π倍, 这个也称模拟频率。
归一化频率是将物理频率按fs归一化之后的结果,最高的信号频率为fs/2对应归一化频率0.5(ω=π),这也就是为什么在matlab的fdatool工具中归一化频率为什么最大只到0.5的原因。归一化频率中不含fs的信息.
圆周频率是归一化频率的2*pi倍,这个也称数字频率ω。
有关FFT频率与实际物理频率的分析
做n个点的FFT,表示在时域上对原来的信号取了n个点来做频谱分析,n点FFT变换的结果仍为n个点。
换句话说,就是将2π数字频率ω分成n份,而整个数字频率ω的范围覆盖了从0-2π*fs的模拟频率范围。这里的fs是采样频率。而我们通常只关心0-π中的频谱,因为根据奈科斯特定律,只有f=fs/2范围内的信号才是被采样到的有效信号。那么,在w的范围内,得到的频谱肯定是关于n/2对称的。
举例说,如果做了16个点的FFT分析,你原来的模拟信号的最高频率f=32kHz,采样频率是64kHz,n的范围是0,1,2...15。这时,64kHz的模拟频率被分成了16分,每一份是4kHz,这个叫频率分辨率。那么在横坐标中,n=1时对应的f是4kHz, n=2对应的是8kHz, n=15时对应的是60kHz,你的频谱是关于n=8对称的。你只需要关心n=0到7以内的频谱就足够了,因为,原来信号的最高模拟频率是32kHz。
这里可以有两个结论:
必须知道原来信号的采样频率fs是多少,才可以知道每个n对应的实际频率是多少,第k个点的实际频率的计算为f(k)=k*(fs/n)
你64kHz做了16个点FFT之后,因为频率分辨率是4kHz,如果原来的信号在5kHz或者63kHz有分量,你在频谱上是看不见的,这就表示你越想频谱画得逼真,就必须取越多的点数来做FFT,n就越大,你在时域上就必须取更长的信号样本来做分析。但是无论如何,由于离散采样的原理,你不可能完全准确地画出原来连续时间信号的真实频谱,只能无限接近(就是n无限大的时候),这个就叫做频率泄露。在采样频率fs不变得情况下,频率泄漏可以通过取更多的点来改善,也可以通过做FFT前加窗来改善,这就是另外一个话题了。
为什么抽取/内插看起来对频谱有影响?
在数字信号处理时,经常需要对数据进行抽取或者内插处理.抽取之后的频率展宽了n倍,内插之后的频率压缩了n倍,从而需要在变采样率之后添加抗混叠滤波器.但是实际上信号的频率在抽取/内插的前后并没有发生变化.这里的核心原因是:归一化频率失去了采样率fs信息.
抽取和内插的实质是采样率fs的变化
image.png
image.png
举个例子:
我们设定fs=30.72MHz,使用3个cw信号的合成信号代表一个BW=8MHz的宽带信号,使用实际频率来表示信号,看到BW没有变化,使用数字频率w来表示信号,信号的BW似乎被压缩了.
Q: 为什么要在归一化频率下来分析信号?
image.png
归一化频率
clear all;
close all;
fs = 30.72e6;
ts = 1/fs;
nFFT=4096;
%nFFT=32768;
t=0:ts:(nFFT-1)*ts;
d0=100*sin(2*pi*10e6*t);
d1=50*cos(2*pi*5e6*t);
d2=10*cos(2*pi*2e6*t);
dSum=d0+d1+d2;
dFFT = abs(fftshift(fft(dSum,nFFT)))/(nFFT/2);
%dFFT = abs(fft(dSum,nFFT))/(nFFT/2);
fAxis = (-1/2*nFFT:(1/2*nFFT-1))/nFFT*fs;
figure(1)
subplot(2,1,1)
plot(fAxis,dFFT)
title('original signal')
subplot(2,1,2)
dSumI= zeros(1,2*nFFT);
for k =1:nFFT
dSumI(2*k) = dSum(k);
end
dFFTI = abs(fftshift(fft(dSumI,2*nFFT)))/(nFFT);
fAxisI = (-nFFT:(nFFT-1))/(2*nFFT)*fs*2; %fs double
plot(fAxisI,dFFTI)
title('interpolated signal')
figure(2)
subplot(2,1,1)
wAxis = 2*pi*(-1/2*nFFT:(1/2*nFFT-1))/(nFFT);
plot(wAxis,dFFT)
set(gca,'XTick',-2*pi:pi/2:2*pi)
title('original signal normalize')
subplot(2,1,2)
wAxisI = 2*pi*(-nFFT:(nFFT-1))/(2*nFFT);
plot(wAxisI,dFFTI)
set(gca,'XTick',-2*pi:pi/2:2*pi)
title('interpolated signal normalize')
参考:
归一化数字角频率_数字信号处理中的各种频率相关推荐
- 归一化数字角频率_数字信号处理中的归一化频率
4种频率及其数量关系 实际物理频率表示AD采集物理信号的频率,fs为采样频率,由奈奎斯特采样定理可以知道,fs必须≥信号最高频率的2倍才不会发生信号混叠,因此fs能采样到的信号最高频率为fs/2. 角 ...
- 归一化数字角频率_说一说信号与系统中的“归一化处理“
答疑群里面有同学问,"归一化是什么意思?".关于数学上归一化严谨的定义我没有研究过.去网上查了一下,360百科上是这样定义的: "归一化是一种简化计算的方式,即将有量纲的 ...
- 数字身份_数字身份作为投资
数字身份 Trustworthy digital identification remains one of the main challenges of the internet because n ...
- 归一化处理公式_数学建模中的数据处理——归一化处理
关于数据处理,很常见的一个方法就是"去量纲处理",在大家数据处理中经常使用到数据的标准化处理,后边的主成分分析法,因子分析,聚类分析等,都会使用到数据归一化处理.,在此分享一下关于 ...
- rc振荡器振荡频率计算_微控制器中的振荡器频率
rc振荡器振荡频率计算 微控制器中的振荡器频率 (Oscillator Frequency in Microcontrollers) The digital computer systems must ...
- java正则表达式匹配数字范围_在java中怎么利用正则表达式匹配数字
在java中怎么利用正则表达式匹配数字 发布时间:2020-12-03 17:47:12 来源:亿速云 阅读:58 作者:Leah 在java中怎么利用正则表达式匹配数字?针对这个问题,这篇文章详细介 ...
- matlab 数字识别_在MATLAB中利用神经网络进行分类
在这篇文章中,主要阐述在MATLAB环境下利用神经网络对输入的数字图像进行识别.我们利用一个5*5的矩阵来表示1-5的数据,如下图所示: 基于以上问题,我们构建的神经网络输入层的神经元个数为25个,即 ...
- flash数字时钟_数字电路设计在嵌入式中的应用
点击蓝字了解开学问题 数字电路作为一门专业基础课,除了介绍数字电路的理论知识外,更需要通过配套的实验平台将理论知识和实践环节相结合,培养学生的动手能力和实践创新能力.为此,自主开发了基于 FPGA 的 ...
- mysql正则表达式数字开头_在MySQL中选择所有以5个数字字符(正则表达式)开头的电子邮件地址...
要获取以5个数字字符开头的电子邮件地址,可选的解决方案是使用REGEXP-select *from yourTableName where yourColumnName regexp "^[ ...
最新文章
- Java中映射怎么实现_我们如何在Java 9的JShell中实现映射?
- 倒数日怎么显示在桌面_深圳暴风谷滑梯皮带提升机怎么选
- 数据结构:二分查找算法
- Executors Java编程规范插件提示手动创建线程池的解决办法
- win10显示未安装任何音频输出设备问题解决
- 脑语言2500令v0.5.5
- android nexus 刷机工具包,Nexus5刷机救砖Recovery详细教程
- Kaggle 入门 Crime
- aliyun资源编排 介绍和实例
- 北大青鸟ACCP一期云题库难题总结
- 快速缓解过敏的简单技巧
- memory management 蓝屏win10,要怎么解决这个蓝屏问题
- Problem B. L04-02 一元二次方程的根(重点在于求虚根---初学简单版)
- yum 代理(系统代理对 yum 不生效)
- cesium面积计算_GitHub - BulletYuan/bulletCesium: GIS可视化——基于Cesiumjs的一些工具类,测量距离、测量面积。持续更新......
- 回顾 Firefox 历史
- J - Virus UVA - 12511——最长上升递增子序列
- android平板接口,初学者必读 细品平板接口的百般滋味
- Android 8.0(Android O) AccountManager 行为变更
- (C语言入门)新手小白刷牛课网,遇见一个较为经典的分支结构的题目(附件解决代码)
热门文章
- 梦幻仙缘剧情java_梦幻仙缘BT版
- frontpage中没有动态HTML效果,FrontPage制作网页的动态效果(上)
- 抱歉出现问题:关闭 windows hello,然后尝试再次运行安装程序
- The 19th Zhejiang Provincial Collegiate Programming Contest 2022浙江省赛 (A/B/C/G/L/I)
- 移动光猫改桥接,开启telnet
- Java实现迪杰斯特拉算法
- Python-使用方法修改字符串的大小写
- 【对线面试官】阿里面试经历,有些人走一步看一步就挂了
- cdoj1638 红藕香残玉簟秋,轻解罗裳,独上兰舟。
- 计算机管理用户和组无法访问,用户和组管理权限及文件访问控制