91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 8KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-01
  • 語言: Matlab
  • 標簽: QDPSK??

資源簡介

QDPSK的調制與解調的M文件 QDPSK的調制與解調的M文件

資源截圖

代碼片段和文件信息

function?[]=qdpsk()
t0=0.004999;???
%?0.004999?50個碼元?0.049999?500個碼元??0.099999?1000個碼元
%?碼元寬度?0.0001s,?每個碼元100個采樣點
%輸入至少為10個碼元以上
ts=0.000001;
fc=50000;???%載波頻率
snr=20;?%信噪比,以dB來表示
snr_lin?=10^(snr/10);?%dB轉換
fs=1/ts;
df=0.3;??%頻率分辨率
t=(0:ts:t0);
N=length(t)/100;???%計算輸入二進制數字序列的長度

%載波信號生成
c0=cos(2*pi*fc.*t);??????????%?0
c1=cos(2*pi*fc.*t+pi/2);?????%?pi/2
c2=cos(2*pi*fc.*t+pi);???????%?pi
c3=cos(2*pi*fc.*t+3/2*pi);???%?3/2pi

%生成消息信號(二進制數字序列)
m2=zeros(1N);???%初始化變量
%m2(1)、m2(2)不賦值,清零處理
%數字序列從m2(3)開始計算
for?i=3:N
????m2(i)=fix(2*rand(1));
end

%將二進制數字序列轉換為時域信號
m2_time=zeros(1N*100);???%初始化變量
for?k=1:N
????for?i=(100*k-99):(100*k)
?????????m2_time(i)=m2(k);
????end???
end


%繪制二進制數字基帶序列(不歸零碼型)
%plot(tm2_time)
%axis([0?0.001?-0.5?1.5])

%碼變換
%將絕對碼轉換為相對碼m2_d
%第一組相對碼設定為?00
m2_d=zeros(1N);
for?i=3:2:(N-1)
????if?m2(i)==0&&m2(i+1)==0
????????if?m2_d(i-2)==0&&m2_d(i-1)==0
????????????m2_d(i)=0;m2_d(i+1)=0;
????????elseif?m2_d(i-2)==1&&m2_d(i-1)==0
????????????m2_d(i)=1;m2_d(i+1)=0;
????????elseif?m2_d(i-2)==1&&m2_d(i-1)==1
????????????m2_d(i)=1;m2_d(i+1)=1;
????????else
????????????m2_d(i)=0;m2_d(i+1)=1;
????????end
????elseif?m2(i)==1&&m2(i+1)==0
????????if?m2_d(i-2)==0&&m2_d(i-1)==0
????????????m2_d(i)=1;m2_d(i+1)=0;
????????elseif?m2_d(i-2)==1&&m2_d(i-1)==0
????????????m2_d(i)=1;m2_d(i+1)=1;
????????elseif?m2_d(i-2)==1&&m2_d(i-1)==1
????????????m2_d(i)=0;m2_d(i+1)=1;
????????else
????????????m2_d(i)=0;m2_d(i+1)=0;
????????end???????
????elseif?m2(i)==1&&m2(i+1)==1
????????if?m2_d(i-2)==0&&m2_d(i-1)==0
????????????m2_d(i)=1;m2_d(i+1)=1;
????????elseif?m2_d(i-2)==1&&m2_d(i-1)==0
????????????m2_d(i)=0;m2_d(i+1)=1;
????????elseif?m2_d(i-2)==1&&m2_d(i-1)==1
????????????m2_d(i)=0;m2_d(i+1)=0;
????????else
????????????m2_d(i)=1;m2_d(i+1)=0;
????????end
????else
????????if?m2_d(i-2)==0&&m2_d(i-1)==0
????????????m2_d(i)=0;m2_d(i+1)=1;
????????elseif?m2_d(i-2)==1&&m2_d(i-1)==0
????????????m2_d(i)=0;m2_d(i+1)=0;
????????elseif?m2_d(i-2)==1&&m2_d(i-1)==1
????????????m2_d(i)=1;m2_d(i+1)=0;
????????else
????????????m2_d(i)=1;m2_d(i+1)=1;
????????end
????end
end

%載波調制:相位選擇法
%?00---0?10---90?11---180?01---270
%QDPSK調制
qdpsk=zeros(1N*100);???????????%初始化

for?k=1:(N/2)
????for?i=(100*k-99):(100*k)
??????if?m2_d(2*k-1)==0&&m2_d(2*k)==0
??????????qdpsk(i)=c0(i);?
??????elseif?m2_d(2*k-1)==1&&m2_d(2*k)==0
??????????qdpsk(i)=c1(i);
??????elseif?m2_d(2*k-1)==1&&m2_d(2*k)==1?
??????????qdpsk(i)=c2(i);??
??????else
??????????qdpsk(i)=c3(i);??
?????end
????end??????
end


%計算信號功率和噪聲功率
signal_power=spower(qdpsk(1:length(t)));?%計算已調信號功率
noise_power=signal_power/snr_lin;
noise_std=sqrt(noise_power);????????????%計算噪聲的標準方差
noise=noise_std*randn(1length(t));?????%生成噪聲

%將噪聲疊加至QDPSK已調信號
qdpsk_n=qdpsk+noise;

%本地載波生成
c_l1=cos(2*pi*fc.*t);
c_l2=sin(2*pi*fc.*t);

%相乘器
%分為2個支路,分別標記為1和2
qdpsk_dem11=qdpsk_n.*c_l1;
qdpsk_dem12=qdpsk_n.*c_l2;


%將2兩個支路的信號轉換到

評論

共有 條評論