日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab dmodce,吧里有没有大神可以教我怎么改dmodce函数,用的matlab2012a版本

發布時間:2024/9/30 循环神经网络 87 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab dmodce,吧里有没有大神可以教我怎么改dmodce函数,用的matlab2012a版本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

clear all;clc;close all;

N=128;%子載波數或IFFT長度

V=4;%PTS方法分組數,可選擇2組,4組,8組,若16組需相應修改程序

MAX_SYMBOLS=1e4;%循環數,也就是OFDM符號個數

M_ary=4;%星座映射進制數

Phase_Num=4;%旋轉相位的相位數

%產生旋轉相位矩陣

for i=1:Phase_Num

Phase_Set=exp(j*2*pi/Phase_Num);

end

Phase=[];%存旋轉相位所有可能組合

%分兩組時,旋轉相位所有可能組合。若旋轉相位數為4,則共有4^2個組合。當V=2時使用

for b1=1:length(Phase_Set)

for b2=1:length(Phase_Set)

Phase=[Phase;[Phase_Set(b1) Phase_Set(b2)]];

end

end

%MAX_SYMBOLS個OFDM符號頻域數據產生

length_data=N*MAX_SYMBOLS;%發送的總數據符號數,每個數據符號可以是4PSK或16QAM

Base_MOD_Set=[];%存放星座映射后的數據

source_data=randint(length_data,log2(M_ary));

%隨機產生log2(M_ary)二進制數

symbols=bi2de(source_data);%將log2(M_ary)二進制數合并為多進制數

MOD_Symbol=dmodce(symbols,1,1,'qask',M_ary);%進行星座映射

%將N*MAX_SYMBOLS個串行數據轉換為MAX_SYMBOLS個N點并行數據,作為MAX_SYMBOLS個OFDM符號的頻域數據

m=0;

for i=0:MAX_SYMBOLS-1;

MOD_tem=[];

for n=1:N;

MOD_tem=[MOD_tem,MOD_Symbol(i*N+n)];

end;

Base_MOD_Set=[Base_MOD_Set;MOD_tem];

clear MOD_tem;

end;

%進行原OFDM符號與經PTS后的OFDM符號PAPR的CCDF統計

Choose_Len=length(Phase_Set)^V;%旋轉相位所有組合數

PAPR_Orignal=zeros(1,MAX_SYMBOLS);%存放原OFDM信號所有循環的PAPR

PAPR_PTS=zeros(1,MAX_SYMBOLS);%存放原PTS_OFDM信號所有循環的PAPR

for nSymbol=1:MAX_SYMBOLS %循環開始

%對原始OFDM符號

X=Base_MOD_Set(nSymbol,:);

x=ifft(X,[],2); %OFDM調制

Signal_Power=abs(x.^2); %計算功率

Peak_Power=max(Signal_Power,[],2);%計算峰值功率

Mean_Power=mean(Signal_Power,2); %計算平均功率

PAPR_Orignal(nSymbol)=10*log10(Peak_Power./Mean_Power);%計算PAPR

%對經過PTS之后的OFDM符號

%交織分組方式

A=zeros(V,N);

for v=1:V

A(v,v:V:N)=X(v:V:N);

end

%順序分組方式

for v=1:V

A(v,(1+(v-1)*N/V):(N/V+(v-1)*N/V))=...

X((1+(v-1)*N/V):(N/V+(v-1)*N/V));

end

%隨機分組方式

Index=randperm(N);

for v=1:V

A(v,Index(v:V:N))=X(Index(v:N:V));

end

a=ifft(A,[],2); %OFDM調制

min_value=10;

%分組后的數據進行OFDM調制后與旋轉相位相乘,按全舉法搜索最優旋轉相位組合

for n=1:Choose_Len

temp_phase=Phase(n,:).';

temp_max = max(abs(sum(a.*repmat(temp_phase,1,N))));

if temp_max

min_value=temp_max;

Best_n=n;

end

end

%發送最優相位組合信號并計算其PAPR值

aa=sum(a.*repmat(Phase(Best_n,:).',1,N));

Signal_Power=abs(aa.^2);

Peak_Power=max(Signal_Power,[],2);

Mean_Power=mean(Siganl_Power,2);

PAPR_PTS(nSymbol)=10*log10(Peak_Power./Mean_Power);

end

%統計原始OFDM符號與PTS_OFDM符號的CCDF,并畫出其曲線

[cdf1,PAPR1]=ecdf(PAPR_Orignal);

[cdf2,PAPR2]=ecdf(PAPR_PTS);

semilogy(PAPR1,1-cdf1,'-b*',PAPR2,1-cdf2,'-r+')

legend('Orignal','PTS')

title('V=4')

xlabel('PAPR[dB]');

ylabel('CCDF(Pr[PAPR>PAPR0])');

grid on

%存儲各種狀態下的數據,以備比較

data=[PAPR1;1-cdf1];

save PTS_PAPR_.am data -ascii;

總結

以上是生活随笔為你收集整理的matlab dmodce,吧里有没有大神可以教我怎么改dmodce函数,用的matlab2012a版本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。