如何将归一化频率转换为实际频率
Posted
技术标签:
【中文标题】如何将归一化频率转换为实际频率【英文标题】:how to convert normalized frequency to actual frequency 【发布时间】:2014-02-16 14:46:02 【问题描述】:假设我们有以下代码
function [ x ] = generate1(N,m,A3)
f1 = 100;
f2 = 200;
T = 1./f1;
t = (0:(N*T/m):(N*T))'; %'
wn = randn(length(t),1); %zero mean variance 1
x = 20.*sin(2.*pi.*f1.*t) + 30.*cos(2.*pi.*f2.*t) + A3.*wn;
%[pks,locs] = findpeaks(x);
plot(x)
end
我已使用以下命令生成信号
y=generate1(3,500,1);
我有501个长度的样本,现在我想用音乐方法检测频率,即100和200,假设参数个数是2,所以我试过了
pmusic(y,4)
如何从这张图片中确定实际频率?我认为我需要将 a 从归一化频率转换为实际频率,因为我知道归一化频率与 $f/f_s$ 相同,其中 $f_s$ 是采样频率,但在此我该怎么办?
【问题讨论】:
【参考方案1】:您需要乘以采样率的一半。即,归一化频率“1.0”为 Fsample/2。
举个简单的例子,这是一个以 4KHz 采样的 200Hz 信号:
x=sin(2*pi*200/4000*[0:1000])
运行 pmusic(x, 2)
在归一化频率 0.1 处给出明显的峰值。
转换为 Hz,即 0.1*4000/2 = 200 Hz。
我已经修改了您的函数,使其更易于分析(只有一个正弦函数,没有随机性):
function x = gen(N,m)
f1 = 100;
T = 1/f1;
dt = N*T/m;
x = sin(2*pi*f1*dt*[0:num_of_samples]);
end
x = gen(3,500,1e3);
要获得更好的分辨率,请使用pmusic(x,2,[0:.01:0.2])
。
【讨论】:
非常感谢,在我的情况下我应该怎么做?让我们假设 N=3 和 m=500 但为什么是 0.1?在我的情况下采样频率是 16666.66666666667,所以我应该有 0.1*16666.66666666667/2? 你在吗?我无法继续 在我的图片峰值中,它没有以精确的归一化频率指示,我猜是吗? 您必须知道采样频率才能估算出真实频率。以上是关于如何将归一化频率转换为实际频率的主要内容,如果未能解决你的问题,请参考以下文章
Python遥感图像处理应用篇(十六):GDAL 将归一化处理csv数据转化为遥感影像