Jacobi并行拆解【补充】

作者:桂。

时间:2018-04-24  22:04:52

链接:http://www.cnblogs.com/xingshansi/p/8934373.html 


前言

本文为Jacobi并行拆解一文的补充,给出另一种矩阵运算的思路。

一、算法流程

  对于复数相关矩阵R,通过矩阵变换,在维度不变的情况下,转化为实数矩阵:

对于MUSIC算法,该思路可以降低Jacobi运算复杂度。额外的操作仅仅是少量的乘法操作,即耗费少量硬件资源换取更快速的处理时间。

直接复数转实数,需要将nxn的矩阵扩展为2n x 2n的矩阵,而直接转化的相关矩阵仍然为 n x n,降低了Jacobi的复杂度

  容易证明U*Un为新的特征向量,而U可与导向矢量a提前乘法处理,存储到Ram里。

  这里可以看出:(R + J*conj(R)*J)/2等价于中心对称线阵的前、后项空间平滑算法,而斜Hermitian矩阵的特征向量与转化的特征向量等价,因此可以得出特性:对于具备中心对称特性的线阵,复数->实数,既可以降低Jacobi复杂度,又具备了解相干信号的能力。

二、仿真验证

  未做实数化处理,code:

clc;clear all;close all
%Ref:Narrowband direction of arrival estimation for antenna arrays
doas=[-30 -5 40]*pi/180; %DOA's of signals in rad.
P=[1 1 1]; %Power of incoming signals
N=10; %Number of array elements
K=1024; %Number of data snapshots
d=0.5; %Distance between elements in wavelengths
noise_var=1; %Variance of noise
r=length(doas); %Total number of signals
% Steering vector matrix. Columns will contain the steering vectors
% of the r signals
A=exp(-i*2*pi*d*(0:N-1)'*sin([doas(:).']));
% Signal and noise generation
sig=round(rand(r,K))*2-1; % Generate random BPSK symbols for each of the
% r signals
noise=sqrt(noise_var/2)*(randn(N,K)+i*randn(N,K)); %Uncorrelated noise
X=A*diag(sqrt(P))*sig+noise; %Generate data matrix
R=X*X'/K; %Spatial covariance matrix
[Q ,D]= svd(R); %Compute eigendecomposition of covariance matrix
[D,I]=sort(diag(D),1,'descend'); %Find r largest eigenvalues
Q=Q(:,I);%Sort?the?eigenvectors?to?put?signal?eigenvectors?first
Qs=Q (:,1:r); %Get the signal eigenvectors
Qn=Q(:,r+1:N); %Get the noise eigenvectors
% MUSIC algorithm
%?Define?angles?at?which?MUSIC???spectrum????will?be?computed
angles=(-90:0.1:90);
%Compute steering vectors corresponding values in angles
a1=exp(-i*2*pi*d*(0:N-1)'*sin([angles(:).']*pi/180));
for k=1:length(angles)%Compute?MUSIC???spectrum??
music_spectrum(k)= 1/(a1(:,k)'*Qn*Qn'*a1(:,k));
end
figure(1)
plot(angles,abs(music_spectrum))
title('MUSIC Spectrum')
xlabel('Angle in degrees')

实数化处理,code:

clc;clear all;close all
%Ref:Narrowband direction of arrival estimation for antenna arrays
doas=[-30 -5 40]*pi/180; %DOA's of signals in rad.
P=[1 1 1]; %Power of incoming signals
N=10; %Number of array elements
K=1024; %Number of data snapshots
d=0.5; %Distance between elements in wavelengths
noise_var=1; %Variance of noise
r=length(doas); %Total number of signals
% Steering vector matrix. Columns will contain the steering vectors
% of the r signals
A=exp(-i*2*pi*d*(0:N-1)'*sin([doas(:).']));
% Signal and noise generation
sig=round(rand(r,K))*2-1; % Generate random BPSK symbols for each of the
% r signals
noise=sqrt(noise_var/2)*(randn(N,K)+i*randn(N,K)); %Uncorrelated noise
X=A*diag(sqrt(P))*sig+noise; %Generate data matrix
R=X*X'/K; %Spatial covariance matrix
%% Reconstruct
%实数
n = size(R);
I = eye(n/2);
J = fliplr(eye(n));
U = 1/sqrt(2)*[I fliplr(I);1j*fliplr(I) -1j*I];
R = 0.5*U*(R+J*conj(R)*J)*U';
% Reconstruct_end
[Q ,D]= svd(R); %Compute eigendecomposition of covariance matrix
[D,I]=sort(diag(D),1,'descend'); %Find r largest eigenvalues
Q=Q(:,I);%Sort?the?eigenvectors?to?put?signal?eigenvectors?first
Qs=Q (:,1:r); %Get the signal eigenvectors
Qn=Q(:,r+1:N); %Get the noise eigenvectors
% MUSIC algorithm
%?Define?angles?at?which?MUSIC???spectrum????will?be?computed
angles=(-90:0.1:90);
%Compute steering vectors corresponding values in angles
a1=exp(-i*2*pi*d*(0:N-1)'*sin([angles(:).']*pi/180));
for k=1:length(angles)%Compute?MUSIC???spectrum??
music_spectrum(k)= 1/(a1(:,k)'*U'*Qn*Qn'*U*a1(:,k));
end
figure(1)
plot(angles,abs(music_spectrum))
title('MUSIC Spectrum')
xlabel('Angle in degrees')

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242324.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP内核——内存管理

PHP中的变量是不需要手动释放的,内核帮我们实现了变量的内训管理,包括内存的分配与回收。本文主要介绍PHP中与内存相关的知识点,包括变量的GC机制、垃圾回收以及底层的内存池实现,除此还有一些线程安全相关的知识点。 变量的自动G…

买房贷款被拒,该如何补救?

买房贷款被拒,想要补救得先找到根源,然后才能对症下药。下面我们就来分析下房贷被拒的原因,以及补救的方法。一、征信不良一般在提交房贷资料之前银行会先查询申请人的信用记录,银行对征信的要求一般是连三累六,也就是…

配置有户名和邮箱

配置有户名和邮箱 按上下键,可以切换到历史命令。 修改信息 获取单独的信息 Git help 就是对各种命令进行查询 对help中的具体命令进行查询

这4种钱没有也要借,不能等

借钱?说起来好像是一件没有面子的事情,但是我们认真观察下人的一生,我们会发现,在不同的时间段,我们会面临各种各样的问题, 我们所处的环境都会不一样,有时候有些钱是必须要花的,即使…

注意:这些信用卡不激活也会产生费用

银监会规定,信用卡未经持卡人激活,不得扣收任何费用。因此很多人都以为信用卡不激活就不会产生费用,挺多留下一个征信查询记录,但这只针对普通的金卡、白金卡的情况,如果你申请的是特种卡、高端白金卡,钻石…

管理git项目

管理git项目 错误示范 第一步:想建立项目文件夹 第二步:进入到项目文件夹下 第三步:在项目文件夹下使用git命令 正确示范 第一步:创建项目文件 第二步:进入到项目文件夹下 第三步:初始化项目文件的…

有人说,如果有条件一定要远离穷人,你赞成吗?

我觉得应该远离穷人的环境及思想,而不是远离穷人。我记得有一位老师说过一句话:“一个人要走多远才能成功,关键是看与谁同行”。当时听这句的时候,觉得挺有哲理的,但并没有理解其中的深意,后来工作了多年之…

信用卡套现只要正常还款,银行是不是睁只眼闭只眼?

这要怎么说呢,目前没有法律规定说持卡人不能套现,套现要分恶意的还是非恶意的套现。只要你能够按时还款,你就是正常的消费,如果你套现之后出现逾期或不还,那你就是恶意套现,对于恶意套现,银行肯…

commit的作用

commit的作用 commit的作用:提交和保持的状态。会产生一个档案号。 没有被追踪时,不能使用commit(没有被提交)

银行理财不再保本保息,你还敢买吗?

2018年4月27日,《关于规范金融机构资产管理业务的指导意见》正式发布。这个指导意见的发布有几个大家最关心的点:一是银行的理财产品不能承诺保本保收益;二是银行不再承诺刚性兑付。所谓不在承诺保本保收益就是,以后购买银行理财产…

房贷是不是越多越久越好?

从理论上来说,房贷确实是越多、越久越有利,但是在操作的过程中需要根据自己的还款能力来定。为什么房贷越多越久越好?很简单的一个道理,物价每年都在上涨,而房贷不是每年都在涨,除非基准利率调整了才会跟着…

log追踪和追踪文件修改前后的区别

log追踪 :q表示退出 追踪文件修改前后的区别 只要没有git commit,就可以查看修改的区别

Vivado抓取信号

前言1111 FPGA调试需要抓取特定信号,一个直观的思路是:保存抓取的信号,事后分析/ 或者 导出实测数据,用作后续算法仿真验证。 本文简要记录数据的导出及读取。 一、信号导出 (1)把想要观测的信号线加入在线…

余额宝升级,限额限时解除,以后再也不用定闹钟抢破头了!

余额宝自2014年推出以来深得老百姓的喜欢,目前已经成为普通来百姓的理财神器,但是因为余额宝发展速度太快,累积的风险压力不断增加,所以余额宝一再限额,限购,限时。目前余额宝单个客户限额是10万元&#xf…

如何配置Git环境变量

如何配置Git环境变量 首先找到git的执行文件目录 右击选择属性 进入到bin文件下,复制执行文件路径 D:\git\Git\bin然后,搜索环境变量

征信报告上的逾期记录应该怎么清除?

正常情况下信用逾期是不能清除的,特殊情况除外。正常逾期不能申请消除,只能等时间消除人行征信中心规定,个人不良征信记录的记录时间是5年。但是这个5年是有前提条件的,5年时间是从你还清所有欠款的那天开始算起。比如你信用卡出现…

想创业没有资金,如何获得启动资金?

如果你项目好,就不怕没有资金。我们简单来说下几种创业资金的获取方式,当然不是每一种方式都适合所有人,具体要根据自己的条件来定。第一种:自有资金创业刚开始一般都以自有资金为主,因为你的项目刚起步,没…

比尔盖茨为什么能成为世界首富?

说到比尔盖茨的财富,很多人可能首先想到的是比尔盖茨精明的投资,因为这些年他通过跟巴菲特学投资,光靠投资就带来了超过700亿美元的财富,而微软所带来的财富只占其总财富的1/8左右。但我想说的是,投资确实给比尔盖茨带…

房奴房贷断供,房子真的会被收走吗?

房贷断供银行是无权收走的,但银行可以申请法院拍卖用于偿还欠款。房屋属于个人财产,银行没有权利私自收回房子是个人财产,不是银行财产,所以银行没有权利滥用“私刑”,但是你办理按揭贷款的时候你就已经跟银行建立了债…

一键还原、撤销追踪操作与文件还原

一键 还原 只能还原修改的文件,不能还原新建的文件。 当你发现修改失误时。 第一种方式 第二种:将文件还原到没有修改 当新建了一个文件时 查看状态,发现新建的文件没有被追踪,此时不能使用git check 如果新建的文件添加追…