資源簡介
基于matlab的2DPSK的調制和解調:
用matlab實現(xiàn)數(shù)字信號的差分相位調制,之后再用相干解調方法進行解調。
代碼片段和文件信息
%
%參數(shù)設置
%
Ts?=?1/100;??????%碼元周期
Rs?=?1/Ts;???????%碼元頻率
n1?=?10;?????????%載波頻率系數(shù)
fc?=?Rs*n1;??????%載波頻率
n2?=?64;?????????%采樣頻率系數(shù)
fs?=?fc*n2;??????%采樣頻率
N_sample?=?fs*Ts;%每個碼元采樣點數(shù)=n1*n2
dt?=?Ts/N_sample;%抽樣時間間隔
N?=?10;??????????%碼元數(shù)
t=0:dt:(N*N_sample-1)*dt;?????????%?傳輸序列持續(xù)時間
%產(chǎn)生基帶信號------------------------------------------------
a=round(rand(1N));?????????%基帶序列
fprintf(‘基帶序列是:\n‘);
disp(a);
b=zeros(1N+1);????????????????%相對碼序列
for?i?=?2:N+1
????b(i)?=?xor(a(i-1)b(i-1));
end
mt=zeros(1N*N_sample);
%生成雙極性不歸零信號
for?i=2:N+1
????if?b(i)?==?0
????????b(i)?=?-1;
????end
end
%擴展序列為一個N*N_sample的序列
for?i=1:N
????mt(1(i-1)*N_sample+1)?=?b(1i+1);%每個碼元擴充(N_sample-1)個0上一個N_sample結束后為對應的碼元值
end
%生成已調信號------------------------------------------------
gt?=?cos(2*pi*fc*t(1:N_sample)+pi);%載波信號
noise?=?normrnd(00.11length(t));?%噪聲,均值=0,標準差=0.01
st=conv(mtgt);????????????????????%載波與基帶信號卷積
%?s1t=st(1:N_sample*N);
st1=st(1:N_sample*N)+noise;
%解調--------------------------------------------------------
%帶通濾波
w1=2*(fc-Rs)/fs;%下截止頻率
w2=2*(fc+Rs)/fs;%上截止頻率
numerator?=?fir1(60[w1w2]);%FIR濾波器60為階數(shù)numerator是FIR濾波器的系數(shù)
sfBandpass?=?filter(numerator1st1);
%?[n1m1]=size(sfBandpass(1:N*N_sample));
%?[nm]=size(cos(2*pi*fc*t));
%?fprintf(‘%d?%d\n?%d?%d\n‘n1m1nm);
%相干解調
sfModulation?=?sfBandpass(1:length(t)).*cos(2*pi*fc*t);
%低通濾波器
w1l?=?[];
w2l?=?2*Rs/fs;
numerator?=?fir1(60[w1lw2l]);%FIR濾波器60為階數(shù)numerator是FIR濾波器的系數(shù)
sf?=?filter(numerator1sfModulation);
%?[nm]=size
- 上一篇:短時傅里葉變換STFT
- 下一篇:支持向量機SVMmatlab代碼
評論
共有 條評論