How can I multiply 2D matrix with it hermitian?

2 views (last 30 days)
Hi,
How can I do this in matlab?I want to multiply a matrix with it's hermitian,as the following equation:
M=(1/K)*sum(zkd*zkd'),
zkd is (1000*5).zkd is from a signal(size 5000) and i divide it to blocks with block size equal to 1000,and number of blocks 5.
clear all;
clc
load lab2_data;
x = radar_noise; % input signal
K = 1000; % K CAPITAL is Block Size
L = length(x) - mod(length(x),K); % only full blocks
zkd = reshape(x(1:L), K, []);
Md=zeros(L,L); % M ZEROS covariance matrix L*L
for i=1:size(zkd,1); % LOOP covariance matrix calculation
Mz=zkd(i,:)*zkd(i,:)';
Md=Md+Mz;
end
Md=Md/K;
  2 Comments
Jan
Jan on 15 Dec 2011
And what is wrong with the posted command?
zayed
zayed on 15 Dec 2011
The problem is when I check the results, M is(1000*1000)with all elements in have the same value.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 15 Dec 2011
>> zkd = rand(30,3) + i*rand(30,3);
>> R = sum(zkd * zkd');
>> size(R)
ans =
1 30
>> R
R =
Columns 1 through 2
43.7252707339352 - 14.3845494385565i 37.9012903137849 - 1.21833325457709i
Columns 3 through 4
44.0278780546839 - 5.91428978829146i 40.0850287858898 - 10.9783386248396i
The exact values are not important, but it is clear that all of the values are not the same.
If your zkd is 1000 by 5 then zkd*zkd' is going to be 1000 by 1000, and sum(zkd*zkd') is going to be 1 by 1000, in contradiction to your indication that M is 1000 by 1000.
  5 Comments
zayed
zayed on 15 Dec 2011
But L=5000.and this give the following error :
??? Error using ==> unknown
Matrix dimensions must agree.
Error in ==> cov3 at 11
Md=Md+Mz;

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!