软件无线电实验matlab程序.doc
《软件无线电实验matlab程序.doc》由会员分享,可在线阅读,更多相关《软件无线电实验matlab程序.doc(4页珍藏版)》请在冰点文库上搜索。
3
软件无线电指导教师:
报告人:
附录
(1)、SDR低通采样理论
%parameters
fs=5e4;%采样频率注意fs至少是f的2倍或2倍以上
f=5e3;%信号的频率
N=1024;
n=1:
1024;
t=n/fs;
deta_t=1/fs;%采样间隔
%signals
sn=sin(2*pi*f*t);%时域采样后的信号
w=hanning(N);%加汉宁窗
sn1=sn.*w';%加窗减少频率泄露
Sn_fft=fft(sn1);%频域信号
Sn=abs(Sn_fft);
%figures
figure
(1);
plot(t,sn);
title('s(n)的时域波形');
gridon;
xlabel('t');
xlim([00.021]);
ylabel('幅度');
figure
(2);
xax=[-N/2:
N/2-1]/N*fs/1000;%将f轴单位变为kHz
plot(xax,20*log10(fftshift(Sn)));
title('s(n)的频域波形');
gridon;
xlabel('f(kHz)');
ylabel('幅度(dB)');
ylim([-200100]);
(2)、SDR带通采样理论
%parameters
f=1.3e3;%基频
fo=100e6;%载波频率
N=1024;
n=1:
1024;
fs=4e3;%采样频率
t=0:
0.001:
2;
st=cos(2*pi*(f+fo)*n/fs);%带通抽样信号
St1=fft(st);
St=abs(St1);
st0=cos(2*pi*(f+fo)*t);
St0=fft(st0);
St2=abs(St0);
figure
(1);
plot(n,st);
title('带通抽样信号时域图像');
xlabel('n');
xlim([01026]);
ylabel('幅度');
gridon;
figure
(2);
plot(t,st0);
title('带通原始信号时域图像');
xlabel('t');
ylabel('幅度');
gridon;
figure(3);
xax=[-N/2:
N/2-1]/N*fs/1000;
plot(xax,20*log10(fftshift(St)));
title('带通信号抽样后频域图像');
xlabel('f(kHz)');
ylabel('幅度(dB)');
gridon;
(3)、频率调制信号
%频率调制
%parameters
fs=1e3;%抽样频率
ts=1/fs;%采样率
N=1024;
n=0:
1:
N-1;
t=n/fs;
kf=100.1;
A=100;
Aw=10;
fc=10000;%载波频率
fm=10;%调制信号频率
mf=kf*Aw/(2*pi*fm);
%signals
s1=A*cos(2*pi*fc*t).*cos(mf*sin(2*pi*fm*t));
s2=A*sin(2*pi*fc*t).*sin(mf*sin(2*pi*fm*t));
s=s1-s2;%频率调制信号
S0=fft(s);
S1=fftshift(S0);
S_0=abs(S1);
%figures
figure
(1);
plot(t,s);
title('频率调制信号时域图像');
xlim([0,0.5]);
xlabel('t(s)');
ylabel('幅度');
gridon;
figure
(2);
xax=[-N/2:
N/2-1]/N*fs/1000;
plot(xax,20*log10(S_0));
title('频率调制信号频域图像');
xlabel('f(kHz)');
ylabel('幅度(dB)');
gridon;
(4)、幅度调制信号、DSB信号、USB信号
%parameters
clearall;clc;closeall;
fs=1e3;%抽样频率
ts=1/fs;%采样间隔
N=10000;
n=1:
N;
t=n/fs;
ma=0.5;
fc=200;%载波频率
x=cos(2*pi*fc*t);%生成载波
fm=1;%调制信号频率
m=cos(2*pi*fm*t);%基带信号
%signals
s=(1+ma*m).*x;%幅度调制信号
s1=m.*x;%双边带信号DSB
s2=cos(2*pi*(fc+fm)*t);%SSB信号中的USB
S1=fft(s);
S_1=abs(S1);
S2=fft(s1);
S_2=abs(S2);
S3=fft(s2);
S_3=abs(S3);
%figures
figure
(1);
plot(t,s);
title('幅度调制信号时域图像');
xlim([01.5]);
xlabel('t(s)');
ylabel('幅度');
gridon;
figure
(2);
xax=[-N/2:
N/2-1]/N*fs/1000;
plot(xax,20*log10(fftshift(S_1)));
title('幅度调制信号频域图像');
xlim([0.190.21]);
xlabel('f(kHz)');
ylabel('幅度(dB)');
gridon;
figure(3);
plot(t,s1);
title('双边带调制信号时域图像');
xlim([01.5]);
xlabel('t(s)');
ylabel('幅度');
gridon;
figure(4);
xax1=[-N/2:
N/2-1]/N*fs/1000;
plot(xax1,20*log10(fftshift(S_2)));
title('双边带调制信号频域图像');
xlim([0.190.21]);
xlabel('f(kHz)');
ylabel('幅度(dB)');
gridon;
figure(5);
plot(t,s2);
title('USB调制信号时域图像');
xlim([01.0]);
xlabel('t(s)');
ylabel('幅度');
gridon;
figure(6);
xax1=[-N/2:
N/2-1]/N*fs/1000;
plot(xax1,20*log10(fftshift(S_3)));
title('USB调制信号频域图像');
xlim([0.190.21]);
xlabel('f(kHz)');
ylabel('幅度(dB)');
gridon;
(5)、2ASK信号
%2ASK信号的时域和频域分析
clearall;clc;closeall;%清除一切。
m=[111000101101];%数字信号的序列(自己随便产生的)
Lm=length(m);%序列的长度
F=200;%数字信号的带宽('1'或'0'的带宽是200Hz)
f=800;%正弦载波信号的频率
A=1;%载波的幅度
Q=f/F;%频率比,即一个码元宽度中的正弦周期个数
M=500;%一个正弦周期内的采样点数
t=(0:
M-1)/M/f;%一个正弦信号周期内的时间
%signals
carry1=repmat(A*sin(2*pi*f*t),1,Q);%一个码元宽度内的正弦载波信号
Lcarry1=length(carry1);%一个码元宽度内的信号长度
carry2=kron(ones(size(m)),carry1);%载波信号
ask=kron(m,carry1);%调制后的ASK信号
N=length(ask);%ASK信号的长度
tau=(0:
N-1)/(M-1)/f;%时间
Tmin=min(tau);%最小时间
Tmax=max(tau);%最大时间
T=ones(size(carry1));%一个数字信号‘1’
dsig=kron(m,T);
Ask=fft(ask);
Ask0=abs(Ask);
%images
figure
(1);
plot(tau,dsig);
gridon;
axis([TminTmax-0.21.2]);
title('数字信号序列的图像');
figure
(2);
plot(tau,carry2);
xlim([00.06]);
gridon;
title('载波时域图像');
figure(3);
plot(tau,ask);
gridon;
axis([TminTmax-1.2*A1.2*A]);
title('2ASK信号的时域图像');
figure(4);
xax=[-N/2:
N/2-1]/N*Lm*F;
plot(xax,20*log10(fftshift(Ask0)));
xlim([-300300]);
title('2ASK信号的频域图像');
gridon;
(6)、16路信道化发射机
%parameters
clc;closeall;clearall;
a=1;%幅度
fs=50;%内插前采样频率
k=1:
16;%16路信号
I=16;%内插系数
N=1024;
fk=1:
1:
N;
sk=zeros(16,N);%创建16行N列的零矩阵用来存放16路时域信号
Sk=zeros(16,N);%创建16行N列的零矩阵用来存放16路频域信号
fork=1:
16
sk(k,:
)=a*(1+0.5*exp(j*2*pi*k*fk/fs));%输入16路时域信号
end
fork=1:
16
Sk(k,:
)=fft(sk(k,:
));%16路信号频域
end
figure
(1);
xax=[-N/2:
N/2-1]/N*fs;
plot(xax,20*log10(abs(fftshift(Sk(:
1:
N)))));
title('16原始复信号时域叠加图');
xlabel('f(Hz)');
xlim([-525]);
ylabel('幅度');
figure
(2);
h0=fir1(265,0.5);
HW=fft(h0,N);
xax1=[-N/2:
N/2-1]/N*fs;
plot(xax1,10*log10(abs(fftshift(HW))));
title('滤波器响应');
xlabel('f(Hz)');
ylabel('幅度');
%I倍内插,即16倍内插,此时fs变大
N_1=N*16;
st=zeros(16,N_1);
St=zeros(16,N_1);
fork=1:
16
forg=0:
N-1
st(k,g*I+k)=sk(k,g+1);
end
end
sum=zeros(1,N_1);
fork=1:
16
sum=sum+st(k,1:
N_1);
end
fork=1:
16
St(k,:
)=fft(sum(1,1:
N_1));
end
fork=1:
16
St(k,1:
N)=St(k,1:
N).*HW;
end
figure(3);
xax3=[-N_1/2:
N_1/2-1]/N_1*fs*16;
plot(xax3,sum(1,:
));
title('内插后信号时域图像');
xlim([-6060]);
xlabel('t');
ylabel('幅度');
figure(4);
xax2=[-N/2:
N/2-1]/N*fs*16;
plot(xax2,db(abs(fftshift(St(:
1:
N)))));
title('内插后信号频域图像');
xlim([-10200]);
xlabel('f(Hz)');
ylabel('幅度');