我想在matlab中使用音乐算法来估计GPR echo
信号的到达时间,我正在使用傅立叶变换的对偶属性。
我首先对获得的信号应用FFT,然后将这些作为参数传递给pmusic
函数,我仍然在频域中得到结果。?
答案 0 :(得分:1)
简答:你在这里使用了错误的功能。
据我所知,Matlab's pmusic
函数返回输入信号的pseudospectrum。
如果单击伪谱链接,您将看到信号的伪谱位于频域中。特别要看情节:
(来自Matlab的文档:绘制伪谱数据)
请注意,结果是在频域中。
假设GPR是指探地雷达,然后尝试使用雷达或声纳回波探测方法估算双向通行时间。
答案 1 :(得分:0)
这可以做到,理论已经发表在几篇论文中。例如,见:
STAR Channel Estimation in DS-CDMA Systems
该论文描述了时空估计(即时间和到达方向的估计),但如果您有单天线接收器,则可以忽略空间部分并进行时间估计。
您可能不希望直接使用Matlab的pmusic函数。为自己编写这些功能总是更快更容易,所以你知道实际发生了什么。在MUSIC的情况下:
% Get noise subspace (where M is number of signals)
[E, D] = eig(Rxx);
[lambda, idx] = sort(diag(D), 'descend');
E = E(:, idx);
En = E(:,M+1:end);
% [Construct matrix S, whose columns are the vectors to search]
% Calculate MUSIC null spectrum and convert to dB
Z = 10*log10(sum(abs(S'*En).^2, 2));
答案 2 :(得分:0)
如果要使用单个命令使用不同的算法估计DOA,可以使用MATLAB的Phased array system toolbox
。例如对于Root MUSIC,它是phased.RootMUSICEstimator
phased.ESPRITEstimator
。
然而,正如Harry提到的那样容易编写自己的函数,一旦定义了信号子空间和接收向量,就可以直接在MUSIC函数中应用它来找到它的峰值。 这是另一个很好的参考。