Info
Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.
Error using ==> times Matrix dimensions must agree
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
i cant find the error guys please help..
clear
clc
fs=50e6;
ts=1/fs;
n=fs/1000;
chprt=511e3;
x=0:1/chprt:0.001;
xi=0:1/fs:0.001-1/fs;
fdlo=-10e3;
fdhi=10e3;
f= [fdlo:1000:fdhi];
M = length(f);
g = 50000;
gg = 1:g;
loop=100;
nn=[0:n-1];
t=0:ts:0.001-ts;
startpt=0;
datatype='ubit1';
load CAcode_511;
record = mseq;
record = [record 0];
recordI= fopen('C:/Users/Frangos/Desktop/14h 22m 36s 046ms/ChannelI.misl', 'rb');
recordQ=fopen('C:/Users/Frangos/Desktop/14h 22m 36s 046ms/ChannelQ.misl', 'rb');
sig = interp1(x,record,xi);
sig=sign(sig);
w = zeros (loop,2);
for z=1:loop;
dataI = fread(recordI,[1 50000],'ubit1'); %x6
dataI = 2.*dataI-1;
dataQ = fread(recordQ,[1 50000], 'ubit1');
dataQ = 2.*dataQ-1;
imf = zeros(M,length(t));
for k=1:M
signal1= fft(sig.*exp(1i*2*pi*f(k).*t));
signal2= fft(dataI+dataQ*1i);
mf=signal2.*conj(signal1);
imf(k,:)= abs(ifft(mf));
% plot(t,imf(k,:));
end
[r,c] = find(imf==max(max(imf)));
freq = (r-11)*1000;
d = c;
w(z,:) = [freq,d];
%surf(t,f,imf);
end
fseek(recordI, 0, 'bof'); %Move to specified position in file
status = fseek(recordI, 0, 'bof');
fseek(recordQ, 0, 'bof'); %Move to specified position in file
status = fseek(recordQ, 0, 'bof');
mf1=zeros(1);
mfrq0 = zeros(1);
mfrq1 = zeros(1);
c0= zeros(1);
f0=zeros(1);
frr=zeros(1);
for z2= 1:loop
f0(z2) = w(z2,1);
c0(z2) = w(z2,2);
dataI = fread(recordI,6*50000,'ubit1');
dataI = 2.*dataI-1;
dataQ = fread(recordQ,6*50000,'ubit1');
dataQ = 2.*dataQ-1;
z1 = dataI + 1i*dataQ;
za2 = z1(c0(z2):c0(z2)+5*n-1);
zaa2 = za2' .* [sig sig sig sig sig];
for z3 = [1:3];
fr = f0(z2) -400+400*(z3-1);
==>mfrq0(z3) = sum(zaa2(1:250000) .* exp(1i*2*pi*(fr)*ts*nn));
mfrq1(z3) = abs(mfrq0(z3));
end
[mamp mrw] = max(mfrq1);
mf1(z2) = mrw-2;
mfrq(z2) = f0(z2) + 200 * (mrw-2);
mfrt=mfrq(z2);
plot(mfrq);
xlabel('time(ms)');
ylabel('frequency(Hz)');
end
the error is there ==> 10 lines above
1 Kommentar
Antworten (1)
Walter Roberson
am 16 Mär. 2013
You have fs = 50e6 and n = fs/1000 so n will be 50e3 which is 50000 . Then nn is 0:n-1 so nn will be 50000 elements long. You then, in the line having trouble, try to multiply the vector 50000 elements long by 250000 elements of zaa2 .
If the number of elements in nn is calculated, the number of elements to extract from zaa2 should also be calculated.
0 Kommentare
Diese Frage ist geschlossen.
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!