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

資源簡介

假定接收端已經實現載波同步,位同步

資源截圖

代碼片段和文件信息

clc;
clear?all;
%假定接收端已經實現載波同步,位同步(盲信號解調重點要解決的問題:載波同步(costas環(未見到相關代碼)),位同步(Gardner算法(未見相關代碼)),幀同步)
%?carrier?frequency??for?modulation?and?demodulation??
fc=5e6;
%QPSK?transmitter
data=5000??;???%碼數率為5MHZ?????%原碼個數
rand_data=randn(15000);
for??i=1:data
????if?rand_data(i)>=0.5
????????rand_data(i)=1;
????else
????????rand_data(i)=0;
????end
end
%seriel?to?parallel????????%同時單極性碼轉為雙極性碼
for??i=1:data
????if?rem(i2)==1
????????if??rand_data(i)==1
????????????I(i)=1;
????????????I(i+1)=1;
????????else
????????????I(i)=-1;
????????????I(i+1)=-1;
????????end
????else
????????if?rand_data(i)==1
????????????Q(i-1)=1;
????????????Q(i)=1;
????????else
????????????Q(i-1)=-1;
????????????Q(i)=-1;
????????end
????end
end
%?zero?insertion???,此過程稱為成形。成形的意思就是實現由消息到波形的轉換,以便發射,脈沖成形應該是在基帶調制之后。
zero=5;?????????%sampling??rate??25M?HZ??明白了,zero為過采樣率。它等于?采樣率fs/碼速率。
for??i=1:zero*data?????%?采樣點數目=過采樣率*原碼數目
????if?rem(izero)==1
????????Izero(i)=I(fix((i-1)/zero)+1);
????????Qzero(i)=Q(fix((i-1)/zero)+1);
????else
????????Izero(i)=0;
????????Qzero(i)=0;
????end
end
%pulse?shape?filter,?接著,將進行低通濾波,因為?隨著傳輸速率的增大,基帶脈沖的頻譜將變寬
%如果不濾波(如升余弦濾波)進行低通濾波,后面加載頻的時候可能會出現困難。
%平方根升余弦濾波器
%?psf=rcosfir(rfn_tratefs‘sqrt‘)???rate:過采樣率,rf:滾降因子,n_t:濾波器階數,fs:采樣率
%用在調制或發送之前,用在解調或接受之后,用來降低過采樣符號流帶寬并不引發ISI(碼間串擾)
??
NT=50;
N=2*zero*NT;????%?=500
fs=25e6;
rf=0.1;
psf=rcosfir(rfNTzerofs‘sqrt‘);%?psf大小為500
Ipulse=conv(Izeropsf);
Qpulse=conv(Qzeropsf);
%為什么數字信號傳輸也要過采樣,成形濾波?
%答:過采樣的數字信號處理起來對低通濾波器的要求相對較低,如果不過采樣,濾波的時候濾波器需要很陡峭,指標會很嚴格
%成形濾波的作用是保證采樣點不失真。如果沒有它,那信號在經過帶限信道后,眼圖張不開,ISI非常嚴重。成形濾波的位置在基帶調制之后。
%因為經成形濾波后,信號的信息已經有所損失,這也是為避免ISI付出的代價。換句話說,成形濾波的位置在載波調制之前,僅挨著載波調制。
%即:(發送端)插值(采樣)-成形-濾波(LPF)-加載頻(載波調制)-加噪聲至(接收端)乘本振-低通-定時抽取-判決。

%modulation
for?i=1:zero*data+N???%采樣點數目改變?(因為卷積的緣故)
????t(i)=(i-1)/(fs);??%這里因為假設載頻與碼速率大小相等,所以用載頻fc乘以過采樣率=采樣率。
????Imod(i)=Ipulse(i)*sqrt(2)*cos(2*pi*fc*t(i));
????Qmod(i)=Qpulse(i)*(-sqrt(2)*sin(2*pi*fc*t(i)));
end
sum=Imod+Qmod;
%QPSK??receiver
%demodulation
???for?i=1:zero*data+N
???????Idem(i)=sum(i)*sqrt(2)*cos(2*pi*fc*t(i));
???????Qdem(i)=sum(i)*(-sqrt(2)*sin(2*pi*fc*t(i)));
???end
???%matched??filter
???mtf=rcosfir(rfNTzerofs‘sqrt‘);
???Imat=conv(Idemmtf);
???Qmat=conv(Qdemmtf);
???%data?selection
???for??i=1:zero*data
???????Isel(i)=Imat(i+N);
???????Qsel(i)=Qmat(i+N);
???end
???%sampler????????%提取碼元??
???for?i=1:data
???????Isam(i)=Isel((i-1)*zero+1);
???????Qsam(i)=Qsel((i-1)*zero+1);
???end
???%decision??threshold
???threshold=0.2;
???for??i=1:data
???????if?Isam(i)>=threshold
???????????Ifinal(i)=1;
???????else
???????????Ifinal(i)=-1;
???????end
???????if?Qsam(i)>=threshold
???????????Qfinal(i)=1;
???????else
???????????Qfinal(i)=-1;
???????end
???end
???%parallel?to?serial
???for?i=1:data
???????if?rem?(i2)==1
???????????if?Ifinal(i)==1
???????????????final(i)=1;
???????????else
???????????????final(i)=0;
???????????end
???????else
???????

評論

共有 條評論