필터 지우기
필터 지우기

Warning: Rank deficient, rank = 0... means what?

조회 수: 188 (최근 30일)
Rick
Rick 2012년 9월 25일
댓글: Brandon Sackett 2020년 11월 18일
Hi,
I am using the original signal FS and nbits. When i played the sound, it does have the speech, but its very noisy. I am currently doing this:
wavwrite(sig, Fs, nbits, 'Scrambled.wav');
i = 1;
k = 1;
siz = wavread('Scrambled.wav', 'size');
tot_samples = siz(1);
while(i<=tot_samples-15)
y = wavread('Scrambled.wav',[i i+15]);
ori_sig(:,k) = y\H;
if i == 1;
disp('Descrambling Speech in Progress...');
end
i = i+16;
k = k+1;
end
recon_sig = reshape(ori_sig,size(ori_sig,1)*size(ori_sig,2),1);
sound(recon_sig);
I have this warning: "Warning: Rank deficient, rank = 0, tol = 0.000000e+00."
What does it mean?
  댓글 수: 2
Rick
Rick 2012년 9월 25일
편집: Rick 2012년 9월 25일
These warnings were also shown when i tried to wavwrite:
Warning: Data clipped during write to file:Scrambled.wav
> In wavwrite>PCM_Quantize at 279
In wavwrite>write_wavedat at 301
In wavwrite at 138
In Speech_Scrambler at 29
What does it mean?
Rick
Rick 2012년 9월 26일
편집: Rick 2012년 9월 26일
I used:
x(:,frame) = pinv(y\H, 0);
to solve my problem.
By doing this, I am keeping the same values for those values which are less than 0. But I am not sure whether is it the correct way. Any suggestion would be appreciated.

댓글을 달려면 로그인하십시오.

채택된 답변

Wayne King
Wayne King 2012년 9월 25일
편집: Wayne King 2012년 9월 25일
The inverse of a NxN matrix only exists only if the matrix has rank N. In other words, the linear operator that the matrix represents is surjective.
Computing the inverse in a computer has numerical subtleties. That warning is telling you that the matrix is rank deficient.
The wavwrite warning indicates that your signal values exceed +/- 1 and are being clipped when the .wav file is written. I don't think you want that clipping, that distorts the signal. You can scale the vector in MATLAB to make sure that the values do not exceed +/- 1 for writing.
  댓글 수: 6
Rick
Rick 2012년 9월 25일
편집: Rick 2012년 9월 25일
i see, than what does rank deficient matrix affects?
Brandon Sackett
Brandon Sackett 2020년 11월 18일
Isn't a surjective solution valid though? I guess bijections are the "best" but is there a reason a surjective solution gets that warning? Any relation to group theory would help my brain understand the problem.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Walter Roberson
Walter Roberson 2012년 9월 25일
I can't tell what your "H" is there, but your "y" is all zero (or close to it) for 16 consecutive samples at some point.
The "clipped" indicates that you are attempting to write samples outside the range -1 to +1.
  댓글 수: 1
Rick
Rick 2012년 9월 25일
편집: Rick 2012년 9월 25일
H is a hadamard matrix of order 16.
Because i scrambled the signal using frame of 16 samples using:
y(:,k) = H*x;
k = k + 1;
I am now trying to descrambled it using 16 samples too by doing:
ori_sig(:,k) = y\H;
k = k + 1;
I know that clipping introduces distortion. Is there anyway where i can change the range of "y" to –1.0 <= y < +1.0, because I'm using 8 bits.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Audio Processing Algorithm Design에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by