?? bpsk.m
字號:
%==========================================================================
%輸入:數據率/仿真時間/中頻載波頻率/系統采樣率
%輸出:BPSK信號的時域波形及其頻譜
%v1.0, xx年x月
%==========================================================================
clear all;
FigNum = 0;
%輸入參數
Data_velocity = 5e5; %數據率
run_time = 1e-3; %仿真時間(秒)
Inter_freq = 7e6; %中頻載波頻率
Sample_velocity = 24e6 ; %系統采樣率(一般情況下設置為數據率的整數倍)
%基帶數據生成與采樣
DataNumber = Data_velocity*run_time;
SourceData = rand(1,DataNumber); %產生0到1之間的隨機數
SourceData = sign(SourceData-0.5); %變換為+1/-1
%系統采樣
for i = 1:length(SourceData),%把產生的隨機數用方波表示
k = (i-1)*Sample_velocity/Data_velocity;
for j = 1: Sample_velocity/Data_velocity,
SampledData(k+j) = SourceData(i);
end;
end;
%生成BPSK載波調制信號
SampleNumber = Sample_velocity*run_time;
time_scale = 0:run_time/(SampleNumber-1):run_time;
IFsample_signal = SampledData.*cos(2*pi*Inter_freq*time_scale+pi/10);
%中頻信號頻譜分析
analyse_number = 8e3;
Ws = 2*pi*Sample_velocity; w = Ws*(0:analyse_number/2)/(2*pi*analyse_number);
Freq_temp = abs(fft(IFsample_signal(1:analyse_number)));
figure(1);
plot(Freq_temp);
Freq_half = Freq_temp(1:analyse_number/2+1);
% FigNum = FigNum + 1; figure(FigNum);
% plot(IFsample_signal); title('BPSK中頻調制信號波形');
FigNum = FigNum + 1; figure(2);
plot(w,20*log10(Freq_half)); title('bpsk信號的頻譜');
% %AWGN信道
% SNRindB = 10;
% Received_signal = awgn(IFsample_signal,SNRindB,'measured');
% %信號分析
% analyse_number = 8e3;
% Ws = 2*pi*Sample_velocity; w = Ws*(0:analyse_number/2)/(2*pi*analyse_number);
% Freq_temp = abs(fft(Received_signal(1:analyse_number)));
% Freq_half = Freq_temp(1:analyse_number/2+1);
%
% FigNum = FigNum + 1; figure(FigNum);
% plot(Received_signal); title('awgn信道下的BPSK信號波形');
% FigNum = FigNum + 1; figure(FigNum);
% plot(w,20*log10(Freq_half)); title('awgn信道下的bpsk信號頻譜');
%
% %
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -