clc;
clear all;
close all;
msg_orig1 = [1 0 1 0 1 0 1 0 1];
msg_orig2 = [0 1 0 1 0 1 0 1 0];
msg_orig3 = [0 0 1 1 0 0 1 1 1];
msg_orig4 = [1 0 0 1 1 0 1 0 1];
msg_orig5 = [1 1 1 0 0 0 1 1 1];
msg_orig6 = [1 0 1 0 0 0 1 1 0];
msg_orig7 = [1 1 1 0 0 0 1 1 1];
msg_orig8 = [0 0 0 0 1 0 1 0 1];
%%%%%%Tresllis%%%%%%
trellis = struct('numInputSymbols',2,'numOutputSymbols',4,...
'numStates',4,'nextStates',[0 2;0 2;1 3;1 3],...
'outputs',[0 3;1 2;3 0;2 1]);
msg_1 = [msg_orig1 zeros(1,3)];
coded1 = convenc(msg_1,trellis);
msg_2 = [msg_orig2 zeros(1,3)];
coded2 = convenc(msg_2,trellis);
msg_3 = [msg_orig3 zeros(1,3)];
coded3 = convenc(msg_3,trellis);
msg_4 = [msg_orig4 zeros(1,3)];
coded4 = convenc(msg_4,trellis);
msg_5 = [msg_orig5 zeros(1,3)];
coded5 = convenc(msg_5,trellis);
msg_6 = [msg_orig6 zeros(1,3)];
coded6 = convenc(msg_6,trellis);
msg_7 = [msg_orig7 zeros(1,3)];
coded7 = convenc(msg_7,trellis);
msg_8 = [msg_orig8 zeros(1,3)];
coded8 = convenc(msg_8,trellis);
fs=44000;
fc=2000;
drate = 2000;
%%%%%%%%Walsh Code Generation%%%%%%%%
N=8;
M=ceil(log(N)/log(2));
if 2^M==1;
W=[1];
else if 2^M==2;
W=[1 1;1 -1];
else W=[1 1 1 1;1 -1 1 -1;1 1 -1 -1;1 -1 -1 1];
for k=1:M-2
W=[W W;W -W];
end
end
end
Code_1=W(1,:);
Code_2=W(2,:);
Code_3=W(3,:);
Code_4=W(4,:);
Code_5=W(5,:);
Code_6=W(6,:);
Code_7=W(7,:);
Code_8=W(8,:);
up_samp = 22*length(Code_1);
msg_NRZ1=2*coded1-1;
msg_NRZ1 = (msg_NRZ1' * ones(1,up_samp))';
msg_NRZ1 = msg_NRZ1(:)';
msg_NRZ2 = 2 * coded2-1
msg_NRZ2 = (msg_NRZ2' * ones(1,up_samp))';
msg_NRZ2 = msg_NRZ2(:)';
msg_NRZ3=2*coded3-1;
msg_NRZ3 = (msg_NRZ3' * ones(1,up_samp))';
msg_NRZ3 = msg_NRZ3(:)';
msg_NRZ4=2*coded4-1;
msg_NRZ4 = (msg_NRZ4' * ones(1,up_samp))';
msg_NRZ4 = msg_NRZ4(:)';
msg_NRZ5=2*coded5-1;
msg_NRZ5 = (msg_NRZ5' * ones(1,up_samp))';
msg_NRZ5 = msg_NRZ5(:)';
msg_NRZ6=2*coded6-1;
msg_NRZ6 = (msg_NRZ6' * ones(1,up_samp))';
msg_NRZ6 = msg_NRZ6(:)';
msg_NRZ7=2*coded7-1;
msg_NRZ7 = (msg_NRZ7' * ones(1,up_samp))';
msg_NRZ7 = msg_NRZ7(:)';
msg_NRZ8=2*coded8-1;
msg_NRZ8 = (msg_NRZ8' * ones(1,up_samp))';
msg_NRZ8 = msg_NRZ8(:)';
Code_1_up = repmat(Code_1,1,length(coded1));
Code_1_up = (Code_1_up' * ones(1,22))';
Code_1_up = Code_1_up(:)';
Code_2_up = repmat(Code_2,1,length(coded2));
Code_2_up = (Code_2_up' * ones(1,22))';
Code_2_up = Code_2_up(:)';
Code_3_up = repmat(Code_3,1,length(coded3));
Code_3_up = (Code_3_up' * ones(1,22))';
Code_3_up = Code_3_up(:)';
Code_4_up = repmat(Code_4,1,length(coded4));
Code_4_up = (Code_4_up' * ones(1,22))';
Code_4_up = Code_4_up(:)';
Code_5_up = repmat(Code_5,1,length(coded5));
Code_5_up = (Code_5_up' * ones(1,22))';
Code_5_up = Code_5_up(:)';
Code_6_up = repmat(Code_6,1,length(coded6));
Code_6_up = (Code_6_up' * ones(1,22))';
Code_6_up = Code_6_up(:)';
Code_7_up = repmat(Code_7,1,length(coded7));
Code_7_up = (Code_7_up' * ones(1,22))';
Code_7_up = Code_7_up(:)';
Code_8_up = repmat(Code_8,1,length(coded8));
Code_8_up = (Code_8_up' * ones(1,22))';
Code_8_up = Code_8_up(:)';
%%%%%%%% Spreading%%%%%%%%
spreaded1=Code_1_up.*msg_NRZ1;
spreaded2=Code_2_up.*msg_NRZ2;
spreaded3=Code_3_up.*msg_NRZ3;
spreaded4=Code_4_up.*msg_NRZ4;
spreaded5=Code_5_up.*msg_NRZ5;
spreaded6=Code_6_up.*msg_NRZ6;
spreaded7=Code_7_up.*msg_NRZ7;
spreaded8=Code_8_up.*msg_NRZ8;
%%%%%%%Modulation%%%%%%%
l=length(spreaded1);
t=0:1/1/fs:(1/fc-1/fs);
c=sin(2*pi*fc*t);
p=0;
for j=1:l/22
for i=1:22
mod_1(i+p)=spreaded1(i+p).*c(i);
end
p=p+22;
end
p=0;
for j=1:l/22
for i=1:22
mod_2(i+p)=spreaded2(i+p).*c(i);
end
p=p+22;
end
p=0;
for j=1:l/22
for i=1:22
mod_3(i+p)=spreaded3(i+p).*c(i);
end
p=p+22;
end
p=0;
for j=1:l/22
for i=1:22
mod_4(i+p)=spreaded4(i+p).*c(i);
end
p=p+22;
end
p=0;
for j=1:l/22
for i=1:22
mod_5(i+p)=spreaded5(i+p).*c(i);
end
p=p+22;
end
p=0;
for j=1:l/22
for i=1:22
mod_6(i+p)=spreaded6(i+p).*c(i);
end
p=p+22;
end
p=0;
for j=1:l/22
for i=1:22
mod_7(i+p)=spreaded7(i+p).*c(i);
end
p=p+22;
end
p=0;
for j=1:l/22
for i=1:22
mod_8(i+p)=spreaded8(i+p).*c(i);
end
p=p+22;
end
sum_mod = mod_1 + mod_2 + mod_3 + mod_4 + mod_5 + mod_6 + mod_7 + mod_8;
norm_mod = sum_mod/max(sum_mod);
%%%%%%%Root Raised Cosine Filtering%%%%%%%
Fd=fs/drate;
rolloff=0.5;
delay=3;
rrcos_filt = rcosine(1,Fd,'fir/sqrt',rolloff,delay);
shaped_msg=rcosflt(norm_mod,1,Fd,'filter',rrcos_filt);
norm_shaped=shaped_msg/max(shaped_msg);
norm_shaped=norm_shaped';
%%%%%%%Symbol Packing%%%%%%%
t=0:1/fs:1/fc;
A=sin(2*pi*fc*t);
B=cos(2*pi*fc*t);
Ts = [A A A A B A A A B B A A B B B A B B B B B B B B B B B B B A B B B A A B B A A A B A A A A A A A A A];
L=zeros(1,1000);
Packet = [L Ts norm_shaped Ts L];
% MATLAB CODE FOR RECEIVER
rxd= wavread('signal');
rxd=rxd';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%Synchronization%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
decision_mtx=zeros(1,(length(rxd)-length(Ts)));
for i=1:length(decision_mtx)
temp=rxd(i:(i+length(Ts))-1);
temp1=sum(temp.*Ts);
correlated(i)=temp1;
end
[x,j]=sort(correlated,2,'descend');
start=j(1);
stop=j(2);
sep = 2;
while (abs(stop-start) < length(Ts))
stop = j(sep);
sep = sep+1;
end
if (stop<=start)
temp = stop;
stop = start;
start = temp;
end
rxdsync=rxd(start+length(Ts):stop-1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%DE-root raised Cosine%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
rrcos_filt = rcosine(1,Fd,'fir/sqrt',rolloff,delay);
recoverd_mod= rcosflt(rxdsync,1,Fd,'Fs/filter',rrcos_filt);
recoverd_mod = downsample(recoverd_mod,Fd); % Downsample.
recoverd_mod = recoverd_mod(2*delay+1:end-2*delay); % Account for delay.
recoverd_mod=recoverd_mod';
%%%%%%%%%%%%%%%%%%phase recovery%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
append = length(Code_1_up) - length(recoverd_mod);
D = zeros(1,append);
recoverd_mod = [recoverd_mod D];
t1 = 0:1/fs:(length(recoverd_mod)-1)/fs;
carrier = sin(2*pi*fc*t1);
dem = carrier.*recoverd_mod;
de_spread1=dem.*Code_1_up;
de_spread2=dem.*Code_2_up;
de_spread3=dem.*Code_3_up;
de_spread4=dem.*Code_4_up;
de_spread5=dem.*Code_5_up;
de_spread6=dem.*Code_6_up;
de_spread7=dem.*Code_7_up;
de_spread8=dem.*Code_8_up;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Extracting Individual Users%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%User1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
msg_despread1 = reshape(de_spread1,8*22,[]);
dim1 =size(msg_despread1);
msg_despread1 = msg_despread1(:)';
temporal=0;
for i=1:dim1(2)
djixstras = msg_despread1(i+temporal-(i-1):dim1(1)+temporal);
sig_retreived1(i) = sum(djixstras);
temporal=temporal+dim1(1);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%User2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
msg_despread2 = reshape(de_spread2,8*22,[]);
dim2 =size(msg_despread2);
msg_despread2 = msg_despread2(:)';
temporal=0;
for i=1:dim2(2)
djixstras = msg_despread2(i+temporal-(i-1):dim2(1)+temporal);
sig_retreived2(i) = sum(djixstras);
temporal=temporal+dim2(1);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%User3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
msg_despread3 = reshape(de_spread3,8*22,[]);
dim3 =size(msg_despread3);
msg_despread3 = msg_despread3(:)';
temporal=0;
for i=1:dim3(2)
djixstras = msg_despread3(i+temporal-(i-1):dim3(1)+temporal);
sig_retreived3(i) = sum(djixstras);
temporal=temporal+dim3(1);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%User4%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
msg_despread4 = reshape(de_spread4,8*22,[]);
dim4 =size(msg_despread4);
msg_despread4 = msg_despread4(:)';
temporal=0;
for i=1:dim4(2)
djixstras = msg_despread4(i+temporal-(i-1):dim4(1)+temporal);
sig_retreived4(i) = sum(djixstras);
temporal=temporal+
没有合适的资源?快使用搜索试试~ 我知道了~
corrected-coding.rar_cdma
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共1个文件
txt:1个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 195 浏览量
2022-07-14
08:26:17
上传
评论
收藏 2KB RAR 举报
温馨提示
Code for CDMA for 8 users
资源推荐
资源详情
资源评论
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![thumb](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/TXT.png)
共 1 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/a64d28507aff44a1a968cd823e7c3cbe_weixin_42665255.jpg!1)
寒泊
- 粉丝: 78
- 资源: 1万+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)