?? 單極性歸零碼的源程序.txt
字號:
單極性歸零碼的源程序:
(一),用到的函數
1,f2t函數。
function x=f2t(X)
global dt df t f T N
%x=f2t(X)
%x為時域的取樣值矢量
%X為x的傅氏變換
%X與x長度相同并為2的整冪
%本函數需要一個全局變量dt(時域取樣間隔)
X=[X(N/2+1:N),X(1:N/2)];
x=ifft(X)/dt;
end
2,t2f函數。
function X=t2f(x)
global dt df N t f T
%X=t2f(x)
%x為時域的取樣值矢量
%X為x的傅氏變換
%X與x長度相同,并為2的整冪。
%本函數需要一個全局變量dt(時域取樣間隔)
H=fft(x);
X=[H(N/2+1:N),H(1:N/2)]*dt;
end
(二),主程序
global dt t f df N T
close all
k=input('取樣點數=2^k, k取10左右');
if isempty(k), k=13; end
z=input('每個信號取樣點數=2^z,z<k');
if isempty(z), z=5; end
f0=input('f0=取1(kz)左右');
if isempty(f0), f0=1; end
N=2^k
L=2^z;M=N/L;
Rb=2;
Ts=0.5 %碼元寬度是0.5us
dt=Ts/L; %時域采樣間隔
df=1/(N*dt) %MHz
T=N*dt %截短時間
Bs=N*df/2 %系統(tǒng)帶寬
f=[-Bs+df/2:df:Bs]; %頻域橫坐標
t=[-T/2+dt/2:dt:T/2]; %時域橫坐標
EP=zeros(size(f))+eps;
for ii1=1:30
b=round(rand(1,M)); %產生隨機碼
s=zeros(1,N);
for ii=1:L/2;
s(ii+[0:M-1]*L)=b;
end
S=t2f(s); %S是s的傅氏變換
a=f2t(S); %a是S的傅氏反變換
a=abs(a);
P=S.*conj(S)/T; %功率譜
EP=(EP*(ii1-1)+P+eps)/ii1;
figure(1) %輸出的功率畫圖
plot(f,10*log10(EP),'b');
grid
axis([-15,15,-100,20]);
xlabel('f (KHz)');ylabel('P (V/KHz)') ;title('功率譜圖')
figure(2) %輸出信號波形畫圖
plot(t,a,'b')
grid
axis([-3,3,0,1.3]);
xlabel('t (ms)');ylabel('s(t) (V)');title('單極性RZ的時域圖')
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -