|
主要講述了多天線信噪比,系統(tǒng)容量,mimo-ofdm等
0.png (40.78 KB, 下載次數(shù): 48)
下載附件
2018-5-20 16:51 上傳
MATLAB源程序如下:
- %直接序列擴頻主程序代碼
- function [ber] = dscdma(user,seq)
- % user: 同時進行擴頻通信的用戶數(shù)
- % seq: 擴頻碼1:M-序列 2:Gold序列 3:正交Gold序列
- % ber: 該用戶數(shù)下的誤碼率
- %**************************** 初始化部分 *****************************
- sr = 256000.0; % 符號速率
- nSymbol=10000; %每種信噪比下發(fā)送的符號數(shù)
- M = 4; % 4-QAM調(diào)制
- br = sr * log2(M); % 比特速率
- graycode=[0 1 3 2]; % Gray編碼規(guī)則
- EbNo=0:2:10; % Eb/No 變化范圍
- %************************** 脈沖成形濾波器參數(shù) **************************
- delay = 10; % 升余弦濾波器時延
- Fs = 8; % 濾波器過采樣數(shù)
- rolloff = 0.5; % 升余弦濾波器滾降因子
- rrcfilter = rcosine(1,Fs,'fir/sqrt',rolloff,delay); %設(shè)計根升余弦濾波器
- %********************** 擴頻碼產(chǎn)生參數(shù) **********************
- % user = user1; % 用戶數(shù)
- stage = 3; % m序列的階數(shù)
- ptap1 = [1 3]; % m序列1的寄存器連接方式
- ptap2 = [2 3]; % m序列2的寄存器連接方式
- regi1 = [1 1 1 ]; % m序列1的寄存器初始值
- regi2 = [1 1 1]; % m序列2的寄存器初始值
- %******************** 擴頻碼的生成 *********************
- switch seq
- case 1 % M-序列
- code = mseq(stage,ptap1,regi1,user);
- case 2 % Gold 序列
- m1 = mseq(stage,ptap1,regi1);
- m2 = mseq(stage,ptap2,regi2);
- code = goldseq(m1,m2,user);
- case 3 % 正交 Gold 序列
- m1 = mseq(stage,ptap1,regi1);
- m2 = mseq(stage,ptap2,regi2);
- code = [goldseq(m1,m2,user),zeros(user,1)];
- end
- code = code * 2 - 1;
- clen = length(code);
- %************************** 衰落信道參數(shù) **************************
- ts = 1 / Fs / sr/ clen; % 信道采樣時間間隔
- t=(0:nSymbol*Fs*clen-1+2*delay*Fs)*ts; % 每種信噪比下的符號傳輸時間
- %fd = 160; % 多普勒頻移 [Hz]
- %h=rayleigh(fd,t);
- %**************************** 仿真開始 ****************************
- for indx=1:length(EbNo)
- indx
-
- %****************************** 發(fā)射端 ********************************
- data = randsrc(user,nSymbol,[0 :3]) ; % 產(chǎn)生各個用戶的發(fā)射數(shù)據(jù)
- data1=graycode(data+1); % Gray編碼
- data1 = qammod(data1,M); % 4-QAM 調(diào)制
- [out] = spread(data1,code); % 擴頻
-
- out1=rcosflt(out.',sr,Fs*sr,'filter',rrcfilter); % 通過脈沖成形濾波器
- spow = sum(abs((out1)).^2) / nSymbol; % 計算每個用戶信號功率
- if user > 1 % 用戶數(shù)大于1時,所有用戶數(shù)據(jù)相加
- out1=sum(out1.');
- else
- out1=out1.';
- end
- %***************************** 通過瑞利衰落信道 ******************************
-
- % out1=h.*out1;
- %******************************** 接收端 *********************************
-
- sigma = sqrt(0.5 * spow * sr / br * 10^(-EbNo(indx)/10)); % 根據(jù)信噪比計算高斯白噪聲方差
- y=[];
- for ii=1:user
- y(ii,:)=out1+sigma(ii).*(randn(1,length(out1))+j*randn(1,length(out1))); % 加入高斯白噪聲(AWGN)
- % y(ii,:)=y(ii,:)./h; % 假設(shè)理想信道估計
- end
- y=rcosflt(y.',sr,Fs*sr,'Fs/filter',rrcfilter); % 通過脈沖成形濾波器進行濾波
- y=downsample(y,Fs); % 降采樣
- for ii=1:user
- y1(:,ii)=y(2*delay+1:end-2*delay,ii);
- end
-
- yd = despread(y1.',code); % 數(shù)據(jù)解擴
- demodata = qamdemod(yd,M); % 4-QAM 解調(diào)
- demodata=graycode(demodata+1); % Gray編碼逆映射
-
- [err,ber(indx)]=biterr(data,demodata,log2(M)); % 統(tǒng)計誤比特率
-
- end
復(fù)制代碼
所有資料51hei提供下載:
程序下部.zip
(95.7 KB, 下載次數(shù): 25)
2018-5-20 12:39 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
|