24小时热门版块排行榜    

查看: 2512  |  回复: 5

化名为哀

铜虫 (初入文坛)

[求助] 怎么将此for循环改为矩阵形式?

M=2;       % M进制调制

BW=25e+3;
delta_f=1e+3;
BW1=(BW-2*delta_f)/2
Td=1/BW1   % 码元周期
fd=1/Td
fs=15.5e6;   % 采样频率
f1=1e+6;
f2=f1+delta_f;
BW=2*BW1+2*delta_f
fc=[f1,f2];    % 载频
counter=Td*fs;   
T=20e-3;    % 模拟信号长度
N=T*fs     % 总的样本点数
Ns=floor(N/counter)     % 码元数
code0=rand(1,Ns);
code=fix(code0*M); % 产生随机码元
step = 1/fs;
t= 0: step: Td*Ns-step;
length(t)
for m=1:length(t)
   a=floor(t(m)/(Td));
   y(m)=sin(2*pi*fc(code(a+1)+1)*t(m));
   phase_shift=exp(-i*2*pi*fc(code(a+1)+1));
end;

% m=[1:length(t)];
% y(m)=sin(2*pi*fc(code(floor(t(m)/(Td))+1)+1)*t(m));
% phase_shift=exp(-i*2*pi*fc(code(floor(t(m)/(Td))+1)+1));

程序如上,可正常运行,但考虑到for循环耗时太久,所以讲for循环改为下面注释的部分,改之后提示inner矩阵维度不匹配,求高人的指点如何修改?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zkw666666

木虫 (正式写手)

益虫。。。。

★ ★
xiegangmai: 金币+2, 谢谢参与 2012-11-26 09:29:25
a=floor(t/(Td));
    y=sin(2*pi*fc(code(a+1)+1).*t);
    phase_shift=exp(-i*2*pi*fc(code(a+1)+1));
2楼2012-11-25 22:07:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zkw666666

木虫 (正式写手)

益虫。。。。

【答案】应助回帖

感谢参与,应助指数 +1
Elapsed time is 0.308414 seconds.
3楼2012-11-25 22:09:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mei3014

金虫 (正式写手)

木有头屑

【答案】应助回帖


感谢参与,应助指数 +1
xiegangmai: 金币+1, 谢谢参与 2012-11-27 22:50:58
% y(m)=sin(2*pi*fc(code(floor(t(m)/(Td))+1)+1).*t(m));
就是矩阵之间运算的时候缺个点。我已经运行过了,将*改为.*就ok了。
一勤天下无难事,处世无难忍最高。
4楼2012-11-27 12:01:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mei3014

金虫 (正式写手)

木有头屑

【答案】应助回帖


xiegangmai: 金币+1, 辛苦了! 2012-11-27 22:51:07
% for m=1:length(t)
%    a=floor(t(m)/(Td));
%    y(m)=sin(2*pi*fc(code(a+1)+1)*t(m));
%    phase_shift=exp(-i*2*pi*fc(code(a+1)+1));
% end;

m=[1:length(t)];
y(m)=sin(2*pi*fc(code(floor(t(m)/(Td))+1)+1).*t(m));
phase_shift=exp(-i*2*pi*fc(code(floor(t(m)/(Td))+1)+1));

» 本帖已获得的红花(最新10朵)

一勤天下无难事,处世无难忍最高。
5楼2012-11-27 12:02:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

化名为哀

铜虫 (初入文坛)

送鲜花一朵
引用回帖:
5楼: Originally posted by mei3014 at 2012-11-27 12:02:04
% for m=1:length(t)
%    a=floor(t(m)/(Td));
%    y(m)=sin(2*pi*fc(code(a+1)+1)*t(m));
%    phase_shift=exp(-i*2*pi*fc(code(a+1)+1));
% end;

m=;
y(m)=sin(2*pi*fc(code(floor(t(m)/(Td))+1)+1).* ...

已解决 谢谢
6楼2012-11-27 14:10:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 化名为哀 的主题更新
信息提示
请填处理意见