Em mới học matlab,có bài toán này nghĩ mãi mà vẫn bị lỗi,các bác giúp em với
Đề bài là tạo 1 hàm y=f(x) với x là 1 chuỗi ngẫu nhiên 1 và 0 gồm N bit,hàm f thực hiện kiểm tra từng cặp 2 bit liên tiếp x(n) và x(n+1) rồi biến đổi như sau
x(n)x(n+1)=00 thì y(m)=1/sqrt(2) + j*1/sqrt(2)
x(n)x(n+1)=01 thì y(m)=-1/sqrt(2) + j*1/sqrt(2)
x(n)x(n+1)=10 thì y(m)=-1/sqrt(2) - j*1/sqrt(2)
x(n)x(n+1)=11 thì y(m)=1/sqrt(2) - j*1/sqrt(2)
Với n=1,2..N và m=1,2..N/2
Ở bài toán này em đã tạo được chuỗi x và biết cách dùng hàm if,elseif và else cho 4 điều kiện trên nhưng viết mà cứ bị lỗi,mong các bác xem và chỉ bảo dùm em,em post lên 1 đoạn em viết cho 1 điều kiện đầu tiên:
clear all
N=input('Nhap do dai chuoi bit N:');
k=1;
while N>0
x(k)=rand>0.5;
N=N-1;
k=k+1;
end
x
function y=QPSKMap(x)
for n=1:N
for m=1:N/2
if (x(n)==0,x(n+1)==0)
disp('y(m)=1/sqrt(2)+(j*1/sqrt(2))')
end
end
end
Các bác sửa dùm em với,với cả lúc chạy em bị cái lỗi này ko hiểu là gì:Strings passed to EVAL cannot contain function declarations.
Mong các bác giải đáp dùm.thx
Đề bài là tạo 1 hàm y=f(x) với x là 1 chuỗi ngẫu nhiên 1 và 0 gồm N bit,hàm f thực hiện kiểm tra từng cặp 2 bit liên tiếp x(n) và x(n+1) rồi biến đổi như sau
x(n)x(n+1)=00 thì y(m)=1/sqrt(2) + j*1/sqrt(2)
x(n)x(n+1)=01 thì y(m)=-1/sqrt(2) + j*1/sqrt(2)
x(n)x(n+1)=10 thì y(m)=-1/sqrt(2) - j*1/sqrt(2)
x(n)x(n+1)=11 thì y(m)=1/sqrt(2) - j*1/sqrt(2)
Với n=1,2..N và m=1,2..N/2
Ở bài toán này em đã tạo được chuỗi x và biết cách dùng hàm if,elseif và else cho 4 điều kiện trên nhưng viết mà cứ bị lỗi,mong các bác xem và chỉ bảo dùm em,em post lên 1 đoạn em viết cho 1 điều kiện đầu tiên:
clear all
N=input('Nhap do dai chuoi bit N:');
k=1;
while N>0
x(k)=rand>0.5;
N=N-1;
k=k+1;
end
x
function y=QPSKMap(x)
for n=1:N
for m=1:N/2
if (x(n)==0,x(n+1)==0)
disp('y(m)=1/sqrt(2)+(j*1/sqrt(2))')
end
end
end
Các bác sửa dùm em với,với cả lúc chạy em bị cái lỗi này ko hiểu là gì:Strings passed to EVAL cannot contain function declarations.
Mong các bác giải đáp dùm.thx
Comment