?? gsm_psk.m
字號:
%%%%
clear;
close all;
%%%%%%%%%%
fk = 100e3;
fs = 61.44e6;
f0 = 76.8e6;
delta_freqinterval = 400e3;
f00 = 0.3e6;
f01 = f00 + delta_freqinterval ;
f02 = f01 + delta_freqinterval ;
f03 = f02 + delta_freqinterval ;
f04 = -( f03 + delta_freqinterval );
f05 = -( f04 + delta_freqinterval );
f06 = -( f05 + delta_freqinterval );
f07 = -( f06 + delta_freqinterval );
%%%%%%%
A = [1 2 3 4 5 6 7 8];
Theta = zeros(1,8);
%%%%%%%%
m = randint(1,1000);
%%%%%%%%
for i=1:length(m);
dataTx0(i) = A(1)*(2*m(ceil(fk*i/fs))-1)*cos(2*pi*(f0+f00)*i/fs+Theta(1))*2^16;
dataTx1(i) = A(2)*(2*m(ceil(fk*i/fs))-1)*cos(2*pi*(f0+f01)*i/fs+Theta(2))*2^16;
dataTx2(i) = A(3)*(2*m(ceil(fk*i/fs))-1)*cos(2*pi*(f0+f02)*i/fs+Theta(3))*2^16;
dataTx3(i) = A(4)*(2*m(ceil(fk*i/fs))-1)*cos(2*pi*(f0+f03)*i/fs+Theta(4))*2^16;
dataTx4(i) = A(5)*(2*m(ceil(fk*i/fs))-1)*cos(2*pi*(f0+f04)*i/fs+Theta(5))*2^16;
dataTx5(i) = A(6)*(2*m(ceil(fk*i/fs))-1)*cos(2*pi*(f0+f05)*i/fs+Theta(6))*2^16;
dataTx6(i) = A(7)*(2*m(ceil(fk*i/fs))-1)*cos(2*pi*(f0+f06)*i/fs+Theta(7))*2^16;
dataTx7(i) = A(8)*(2*m(ceil(fk*i/fs))-1)*cos(2*pi*(f0+f07)*i/fs+Theta(8))*2^16;
end
%%%%%%%%
dataTx = dataTx0+dataTx1+dataTx2+dataTx3+dataTx4+dataTx5+dataTx6+dataTx7;
%%
% figure(1),freqz(dataTx);
% figure(2),stem(dataTx(1:300));
% grid on;
%%dataTx1=A(1)*(2*m(fk*i/fs)-1)*cos(2*pi*(f0+f01)*i/fs+Theta(0));
%%mixer
fnco = 15.36e6;
for i = 1:4096
nco (i) = exp(j*2*pi*fnco*i/fs)*2^16;
end
% figure(3),freqz(imag(nco));
% figure(4),freqz(real(nco));
%%
for i = 1:length(dataTx)
I(i) = dataTx(i)*( real( nco( mod(i-1,4096)+1)))/2^16;
Q(i) = dataTx(i)*( imag( nco( mod(i-1,4096)+1)))/2^16;
end
% figure(5),freqz(I);
% figure(6),freqz(Q);
%%The first filter part
b = fir1(11,0.5,kaiser(12));%%use the hanmming window to filter the signal
figure(7),freqz(b);
%%%%%
I_FILTER=filter(b,1,I);
Q_FILTER=filter(b,1,Q);
% figure(8),freqz(I_FILTER);
% figure(9),freqz(Q_FILTER);
%%decimation 2,the sample frequency change to 30.72MHz
I_L=length(I_FILTER);
Q_L=length(Q_FILTER);
I_DECIMATION=I_FILTER(1:2:I_L);
Q_DECIMATION=Q_FILTER(1:2:Q_L);
%%The second filter part
bb = fir1(27,0.78,kaiser(28));
% figure(10),freqz(I_DECIMATION);
% figure(11),freqz(Q_DECIMATION);
%%Must select the different subcarrier,The sample frequency is the 30.72MHz
fnco00=0.3e6;
fnco01=1.0e6;
fnco02=1.7e6;
fnco03=2.4e6;
fnco04=3.1e6;
fnco05=3.8e6;
fnco06=4.5e6;
fnco07=5.2e6;
%%
fs0=30.72e6;
i=1:4096;
nco00=exp(j*2*pi*fnco00*i/fs0)*2^16;
nco01=exp(j*2*pi*fnco01*i/fs0)*2^16;
nco02=exp(j*2*pi*fnco02*i/fs0)*2^16;
nco03=exp(j*2*pi*fnco03*i/fs0)*2^16;
nco04=exp(j*2*pi*fnco04*i/fs0)*2^16;
nco05=exp(j*2*pi*fnco05*i/fs0)*2^16;
nco06=exp(j*2*pi*fnco06*i/fs0)*2^16;
nco07=exp(j*2*pi*fnco07*i/fs0)*2^16;
% figure(12),freqz(imag(nco06));
%%
for i =1:length(I_DECIMATION)
%%%first part
I00(i) = I_DECIMATION(i)*( real( nco00( mod(i-1,4096)+1)))/2^16;
Q00(i) = Q_DECIMATION(i)*( imag( nco00( mod(i-1,4096)+1)))/2^16;
%%
I01(i) = I_DECIMATION(i)*( real( nco01( mod(i-1,4096)+1)))/2^16;
Q01(i) = Q_DECIMATION(i)*( imag( nco01( mod(i-1,4096)+1)))/2^16;
%%
I02(i) = I_DECIMATION(i)*( real( nco02( mod(i-1,4096)+1)))/2^16;
Q02(i) = Q_DECIMATION(i)*( imag( nco02( mod(i-1,4096)+1)))/2^16;
%%
I03(i) = I_DECIMATION(i)*( real( nco03( mod(i-1,4096)+1)))/2^16;
Q03(i) = Q_DECIMATION(i)*( imag( nco03( mod(i-1,4096)+1)))/2^16;
%%
I04(i) = I_DECIMATION(i)*( real( nco04( mod(i-1,4096)+1)))/2^16;
Q04(i) = Q_DECIMATION(i)*( imag( nco04( mod(i-1,4096)+1)))/2^16;
%%
I05(i) = I_DECIMATION(i)*( real( nco05( mod(i-1,4096)+1)))/2^16;
Q05(i) = Q_DECIMATION(i)*( imag( nco05( mod(i-1,4096)+1)))/2^16;
%%
I06(i) = I_DECIMATION(i)*( real( nco06( mod(i-1,4096)+1)))/2^16;
Q06(i) = Q_DECIMATION(i)*( imag( nco06( mod(i-1,4096)+1)))/2^16;
%%
I07(i) = I_DECIMATION(i)*( real( nco07( mod(i-1,4096)+1)))/2^16;
Q07(i) = Q_DECIMATION(i)*( imag( nco07( mod(i-1,4096)+1)))/2^16;
%%secondpart
I000(i) = Q_DECIMATION(i)*( real( nco00( mod(i-1,4096)+1)))/2^16;
Q000(i) = I_DECIMATION(i)*( imag( nco00( mod(i-1,4096)+1)))/2^16;
%%
I001(i) = Q_DECIMATION(i)*( real( nco01( mod(i-1,4096)+1)))/2^16;
Q001(i) = I_DECIMATION(i)*( imag( nco01( mod(i-1,4096)+1)))/2^16;
%%
I002(i) = Q_DECIMATION(i)*( real( nco02( mod(i-1,4096)+1)))/2^16;
Q002(i) = I_DECIMATION(i)*( imag( nco02( mod(i-1,4096)+1)))/2^16;
%%
I003(i) = Q_DECIMATION(i)*( real( nco03( mod(i-1,4096)+1)))/2^16;
Q003(i) = I_DECIMATION(i)*( imag( nco03( mod(i-1,4096)+1)))/2^16;
%%
I004(i) = Q_DECIMATION(i)*( real( nco04( mod(i-1,4096)+1)))/2^16;
Q004(i) = I_DECIMATION(i)*( imag( nco04( mod(i-1,4096)+1)))/2^16;
%%
I005(i) = Q_DECIMATION(i)*( real( nco05( mod(i-1,4096)+1)))/2^16;
Q005(i) = I_DECIMATION(i)*( imag( nco05( mod(i-1,4096)+1)))/2^16;
%%
I006(i) = Q_DECIMATION(i)*( real( nco06( mod(i-1,4096)+1)))/2^16;
Q006(i) = I_DECIMATION(i)*( imag( nco06( mod(i-1,4096)+1)))/2^16;
%%
I007(i) = Q_DECIMATION(i)*( real( nco07( mod(i-1,4096)+1)))/2^16;
Q007(i) = I_DECIMATION(i)*( imag( nco07( mod(i-1,4096)+1)))/2^16;
end
%%%%
dataI0 = ( I00 - Q00 )/2;
dataI1 = ( I01 - Q01 )/2;
dataI2 = ( I02 - Q02 )/2;
dataI3 = ( I03 - Q03 )/2;
dataI4 = ( I04 - Q04 )/2;
dataI5 = ( I05 - Q05 )/2;
dataI6 = ( I06 - Q06 )/2;
dataI7 = ( I07 - Q07 )/2;
%%%%
dataQ0=(I000+Q000)/2;
dataQ1=(I001+Q001)/2;
dataQ2=(I002+Q002)/2;
dataQ3=(I003+Q003)/2;
dataQ4=(I004+Q004)/2;
dataQ5=(I005+Q005)/2;
dataQ6=(I006+Q006)/2;
dataQ7=(I007+Q007)/2;
%%%%
% figure(13),freqz(dataI0);
% figure(14),freqz(dataQ0);
%%% The second filter
b0=fir1(27,0.5,kaiser(28));%%use the hanmming window to filter the signal
% figure(15),freqz(b0);
I_FILTER00=filter(b0,1,dataI0);
Q_FILTER00=filter(b0,1,dataQ0);
% figure(16),freqz(I_FILTER00);
% figure(17),freqz(Q_FILTER00);
%%decimation 2,the sample frequency change to 15.36MHz
I_L00=length(I_FILTER00);
Q_L00=length(Q_FILTER00);
I_DECIMATION00=I_FILTER00(1:2:I_L00);
Q_DECIMATION00=Q_FILTER00(1:2:Q_L00);
figure(18),freqz(I_DECIMATION00);
figure(19),freqz(Q_DECIMATION00);
%%The third filter
b1=fir1(31,0.1,blackman(32));%%use the hanmming window to filter the signal
figure(20),freqz(b1);
I_FILTER10=filter(b1,1,I_DECIMATION00);
Q_FILTER10=filter(b1,1,Q_DECIMATION00);
figure(21),freqz(I_FILTER10);
figure(22),freqz(I_FILTER10);
%%decimation 2,the sample frequency change to 7.68MHz
I_L10=length(I_FILTER10);
Q_L10=length(Q_FILTER10);
I_DECIMATION10=I_FILTER10(1:2:I_L10);
Q_DECIMATION10=Q_FILTER10(1:2:Q_L10);
figure(23),freqz(I_DECIMATION10);
figure(24),freqz(Q_DECIMATION10);
%%
%%The forth filter,RRC filter
% b2=rcosfir(0.22,0.09,4,1);%%use the hanmming window to filter the signal
% figure(25),freqz(b2);
% I_FILTER20=filter(b2,1,I_DECIMATION10);
% Q_FILTER20=filter(b2,1,Q_DECIMATION10);
% figure(26),freqz(I_FILTER20);
% figure(27),freqz(I_FILTER20);
% %%decimation 2,the sample frequency change to 3.84MHz
% I_L20=length(I_FILTER20);
% Q_L20=length(Q_FILTER20);
% I_DECIMATION20=I_FILTER20(1:2:I_L20);
% Q_DECIMATION20=Q_FILTER20(1:2:Q_L20);
% figure(28),freqz(I_DECIMATION20);
% figure(29),freqz(Q_DECIMATION20);
%%%%
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -