登录论坛

查看完整版本 : [MATLAB基础] 请教高人一个MATALB问题,不胜感激!


erniu5210
2009-06-08, 20:52
%本程序中时间单位是us
%频率单位为MHZ
%码速率单位是Mb/s
global dt t df N
close all
N=2^8; %采样点数
L=4; %每个码元的采样点数
M=N/L; %码元数
Rb=2; %码速率是2MB/s
Ts=1/Rb; %码元间隔
dt=Ts/L; %时域采样间隔
df=1/Rb; %频域采样间隔
T=N*dt; %截短时间
Bs=N*df/2 %系统带宽
Na=4; %示波器扫描宽度为4个码元
alpha=input('滚降系数=[0.5]');
if alpha==[],alpha=0.5;end
t=[-T/2+dt/2:dt:T/2]; %时域横坐标
f=[-Bs+df/2:df:Bs]; %频域横坐标
g1=sin(pi.*t/Ts)./(pi.*t/Ts);
g2=cos(alpha*pi.*t/Ts)./(1-(2*alpha.*t/Ts).^2);
g=g1.*g2; %升余弦脉冲波形
G=t2f(g);
figure(1)
set(1,'position',[10,50,300,200])
figure(2)
set(2,'position',[400,50,300,200])
hold on
grid
xlabel('t in us')
ylabel('s(t) in V')
EP=zeros(size(f))+eps
for ii=1:100
a=sign(randn(1,M));
imp=zeros(1,N); %产生脉冲序列
imp(L/2:L:N)=a/dt;
S=t2f(imp).*G; %升余弦信号的傅立叶变换
s=f2t(t2f(imp).*G);%升余弦信号的时域波形
P=S.*conj(S)/T; %升余弦信号的功率谱
s=real(s);
EP=(EP*(ii-1)+P+eps)/ii;
figure(1)
plot(f,60+10*log10(EP),'g')
grid
axis([-50,+50,-60,80])
Xlabel('f(MHZ)')

Ylabel('Ps(f) (dbm/MHZ)')
figure(2)
tt=[0:dt:Na*L*dt];
for jj=1:Na*L:N-Na*L
plot(tt,s(jj:jj+Na*L))
end
end

TTT_IOU
2009-06-08, 21:21
不晓得G=t2f(g);什么意思,望明示!!!