【實驗目的】
1.掌握數字基帶信號的波形及產生方法。
2.掌握數字基帶信號的功率譜分析方法。
【實驗內容】
1.二進制序列為10110010,以矩形波為例,利用Matlab畫出相應的單極性不歸零、單極性歸零、雙極性不歸零、雙極性歸零的波形。
2.利用Matlab繪制單極性不歸零、單極性歸零、雙極性不歸零、雙極性歸零的功率譜圖形。
【實驗報告】
1.列出實驗程序清單,并附上必要的程序說明。
2.記錄實驗結果,并對結果進行分析。
實驗結果:
Ts = 1; % 碼元周期
N_sample = 128; % 單個碼元抽樣點數
dt = Ts / N_sample; % 抽樣時間間隔
N = 8; % 碼元數
t = 0 : dt : (N * N_sample - 1) * dt; % 序列傳輸時間
gt1 = ones(1, N_sample); % NRZ
gt2 = [ones(1, N_sample / 2), zeros(1, N_sample / 2)]; % RZ
%% 單極性
RAN = [1 0 1 1 0 0 1 0];
se1 = [];
se2 = [];
for i = 1 : N % 生成序列
if RAN(i)==1
se1 = [se1 gt1];
se2 = [se2 gt2];
else
se1 = [se1 zeros(1, N_sample)];
se2 = [se2 zeros(1, N_sample)];
end
end
%% 繪制出結果
subplot(2, 2, 1);plot(t, se1);grid on;axis([0 8 -1.5 1.5]);title('NRZ');
subplot(2, 2, 2);plot(t, se2);grid on;axis([0 8 -1.5 1.5]);title('RZ');
%% 雙極性
RAN = [1 0 1 1 0 0 1 0];
se1 = [];
se2 = [];
for i = 1 : N % 生成序列
if RAN(i)==1
se1 = [se1 gt1];
se2 = [se2 gt2];
else
se1 = [se1 -1*gt1];
se2 = [se2 -1*gt2];
end
end
%% 繪制出結果
subplot(2, 2, 3);plot(t, se1);grid on;axis([0 8 -1.5 1.5]);title('DBNRZ');
subplot(2, 2, 4);plot(t, se2);grid on;axis([0 8 -1.5 1.5]);title('DBRZ');
%% 生成單個碼元
Ts = 1; % 碼元周期
N_sample = 128; % 單個碼元抽樣點數
dt = Ts / N_sample; % 抽樣時間間隔
N = 8; % 碼元數
t = 0 : dt : (N * N_sample - 1) * dt; % 序列傳輸時間
gt1 = ones(1, N_sample); % NRZ
gt2 = [ones(1, N_sample / 2), zeros(1, N_sample / 2)]; % RZ
%% 單極性
RAN = [1 0 1 1 0 0 1 0]; % 隨機0 1序列
se1 = [];
se2 = [];
for i = 1 : N % 生成序列
if RAN(i)==1
se1 = [se1 gt1];
se2 = [se2 gt2];
else
se1 = [se1 zeros(1, N_sample)];
se2 = [se2 zeros(1, N_sample)];
end
end
%% 單極性功率譜密度計算
fft_se1 = fftshift(fft(se1)); % 求序列的頻譜
fft_se2 = fftshift(fft(se2));
PE1 = 10 * log10(abs(fft_se1) .^ 2 / (N * Ts)); % 公式法求概率譜密度
PE2 = 10 * log10(abs(fft_se2) .^ 2 / (N * Ts));
PEL1 = (-length(fft_se1) / 2 : length(fft_se1) / 2 - 1) / 10; % 求區間長度
PEL2 = (-length(fft_se2) / 2 : length(fft_se2) / 2 - 1) / 10;
%% 繪制出結果
subplot(2, 2, 1);plot(PEL1, PE1); grid on; axis([-20 20 -20 50]); title('density-NRZ');
subplot(2, 2, 2);plot(PEL2, PE1); grid on; axis([-20 20 -20 50]); title('density-RZ');
%% 雙極性
RAN = [1 0 1 1 0 0 1 0]; % 隨機0 1序列
se1 = [];
se2 = [];
for i = 1 : N % 生成序列
if RAN(i)==1
se1 = [se1 gt1];
se2 = [se2 gt2];
else
se1 = [se1 -1*gt1];
se2 = [se2 -1*gt2];
end
end
%% 雙極性功率譜密度計算
fft_se1 = fftshift(fft(se1)); % 求序列的頻譜
fft_se2 = fftshift(fft(se2));
PE1 = 10 * log10(abs(fft_se1) .^ 2 / (N * Ts)); % 公式法求概率譜密度
PE2 = 10 * log10(abs(fft_se2) .^ 2 / (N * Ts));
PEL1 = (-length(fft_se1) / 2 : length(fft_se1) / 2 - 1) / 10; % 求區間長度
PEL2 = (-length(fft_se2) / 2 : length(fft_se2) / 2 - 1) / 10;
%% 繪制出結果
subplot(2, 2, 3);plot(PEL1, PE1); grid on; axis([-20 20 -20 50]); title('density-DBNRZ');
subplot(2, 2, 4);plot(PEL2, PE1); grid on; axis([-20 20 -20 50]); title('density-DBRZ');
