hj1013 发表于 2014-11-4 16:45

非均匀采样信号频谱的问题。。

clear;clc;clf;
n = 0 : 1023;
f1 =200;f2 =700;f3 = 710;fs =900;
y = 10*sin(2 * pi * f1/fs *n) + 8*sin(2 * pi *f2/fs * n) + 5*sin(2 * pi *f3/fs * n);
y1 = fft(y);
f = (0 :length(n)-1)*fs/length(n);
magH = abs(y1)*2/1024;
subplot(211);
plot(f,magH);
t=0:1/fs:1;
t=t+rand(1,size(t,2))*0.005;
y = 10*sin(2*pi*f1.*t)+8*sin(2*pi*f2.*t)+5*sin(2*pi*f3.*t);
subplot(212);
N = length(y);
dt = diff(t);
y(1:N-1) = y(1:N-1).*dt;
tn = t(1 :N-1) ./ (1/fs);
k= ;
WN = exp(-j*2*pi/(N));
nk_nu = tn'*k;
WNnk_nu = WN.^nk_nu;
Xk = y(1:N-1)*WNnk_nu;
f = fs/N *(0 : N-2);
plot(f,abs(Xk));

这是我从看别人写的非均匀采样信号的频谱分析程序,下面是做出来的幅频图,上面是均匀采样的,下面是非均匀采样的。有几个地方看不懂,还有几个问题,了解的指导下:
1.非均匀采样傅里叶变换公式为:X(f)=x(t(n))exp(-j*2*pi*f*t(n))*(t(n)-t(n-1));
那么程序中的tn = t(1 :N-1) ./ (1/fs);不太理解,不是应该就是非均匀采样时刻t吗?为什么要采样时刻再除(1/fs),我把tn直接用t做仿真是,幅频图成一曲线了,而用程序的做可以得出正常的幅频图(如图);
2.非均匀采样幅频图的坐标怎么转化为信号的真实值,程序中横坐标频率可以理解为是将均匀采样情况近似的,那非均匀时候的频率怎么转化,每个采样时刻的频率分辨率都不同啊,还有纵坐标该该怎么转化,一般均匀采样中纵坐标乘2/N可以恢复,不过上面的程序仿真如果乘2/N,非均匀采样的幅度就相差太大了,反而直接画,不处理的时候还相差较小(如图);
3.看论文中仿真可以用非均匀采样实现低采样率来识别高频率,比如信号中最高频率为1000,非均匀采样使用最高采样频率小于1000进行采样就可以识别信号频率,这个有点难理解,这个问题和第二个问题相连的,就是真实频率的转换问题,如果按均匀采样的方法来转换,那么不可能显示比最高采样频率更大的频率。
有做过的麻烦来指导下。。谢谢

yangzj 发表于 2014-11-4 19:37

首先有一个问题:仿真信号不满足采样定理。

还有下面这个
t=0:1/fs:1;
t=t+rand(1,size(t,2))*0.005;
能保证t是递增的吗?

均匀也好,不均匀也好,都是傅立叶积分式 X(f)=INT(x(t)exp(-j*2*pi*f*t))的离散化,积分式中的t就是你采样的时间序列

hj1013 发表于 2014-11-5 15:29

非均匀采样信号的优点就是可不受采样定理限制,实现低采样率啊,图中可以看出均匀采样混叠了识别不出信号频率,非均匀的能识别,
t只是为了满足完全非均匀采样,不是递增也可以的,把每个时间采样点转化为序列号n表示就可以了。。
你知道非均匀离散傅里叶变换的公式不,感觉上面那公式有点问题

JiangKelly 发表于 2014-12-1 20:20

学习一下

wisemaker 发表于 2015-4-12 21:51

看一下再说

mayaview 发表于 2015-4-15 20:14

非等间隔的估计方法不多,Lomb-Scargle是一个可能的选项,有兴趣可以查一下。
页: [1]
查看完整版本: 非均匀采样信号频谱的问题。。