An efficient sequential algorithm to accurately estimate *continuous* frequencies/tones present in a *mixture* of sinusoids
When the number of sinusoids in the mixture K is not known, a similar algorithm is available at:
https://bitbucket.org/wcslspectralestimation/continuous-frequency-estimation
Complexity
==========
N - length of sinusoid
K - number of tones in the mixture
M = O(K log N) - number of compressive measurements
(i) Estimation / Cold start O(N M K)
-------------------------------------
(ii) Tracking / Warm start O(M K^2)
------------------------------------
Overview
========
The algorithm is implemented by the "estimateSinusoid" routine which calls "detectNew" to detect new frequencies (from a coarse grid) and "refineExisting" to refine existing frequencies whenever a new frequency is detected (refinement is done on the continuum of frequencies). "pruneExisting" removes frequencies which come too close to one another and replaces them with their average (merge operation)
The zero-padded IFFT (unit norm version) of the rows of the measurement matrix and the derivative manifold of the IDFT of the rows of the measurement matrix are passed as inputs to "estimateSinusoid". "preProcessMeasMat" implements the zero-padded IFFT
"main" puts things together and benchmarks against CRB (note that when SNR is low CRB is an optimistic estimate of achievable error) ("CRBAllN" computes the CRB)
USAGE
=====
N = length of each sinusoid
K = number of sinusoids in the mixture
M = number of compressive measurements
S = M by N compressive measurement matrix
(can be eye(N) for normal measurements)
% y is compressive measurements
y = S*[mixture of sinusoids + noise] or S*[mixture of sinusoids] + noise
% precompute IFFTs upto desired
% oversampling rate (default is 3)
sampledManifold = preProcessMeasMat(S, N);
(i) Estimation / Cold start O(N M K)
------------------------------------
% arrive at estimates from the measurements y and the sampled
% version of the manifold in sampleManifold
[omegaEst, gainEst] = estimateSinusoid(y, sampledManifold, K);
(ii) Tracking / Warm start O(M K^2)
-----------------------------------
omegaPastEstimate = An approximate estimate of the frequencies of the K sinusoids in y; for example from the past time-step (tracking)
[omegaRefined, gainRefined, y_residue] = refineExisting(y, omegaPastEstimate, sampledManifold);
没有合适的资源?快使用搜索试试~ 我知道了~
dikku-fast-spectrum-archive-refs-heads-master.zip
共13个文件
m:9个
txt:2个
license:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 201 浏览量
2023-08-09
18:21:39
上传
评论
收藏 17KB ZIP 举报
温馨提示
dikku-fast-spectrum-archive-refs-heads-master.zip
资源推荐
资源详情
资源评论
收起资源包目录
dikku-fast-spectrum-archive-refs-heads-master.zip (13个子文件)
dikku-fast-spectrum-archive-refs-heads-master
新建文本文档.txt 0B
fast-spectrum-master
CRBAllN.m 997B
refineExisting.m 4KB
pruneExisting.m 726B
LICENSE 11KB
main.m 6KB
detectNew.m 4KB
preProcessMeasMat.m 3KB
generateMeasMat.m 1KB
polishExisting.m 2KB
.gitignore 10B
README.TXT 2KB
estimateSinusoid.m 2KB
共 13 条
- 1
资源评论
AbelZ_01
- 粉丝: 875
- 资源: 5441
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功