<<软件无线电原理与应用>> 作业
一、 调频(FM )信号的解调流程如图1,信号带宽20KHz ,输入时钟40MHz ,CNCO 设置f 0 =10.7
MHz ,载波相位偏移为0;其中:
CICF :2级级联,抽取因子D 1=5,增益补偿值为4; HBF :11阶、4级级联,抽取因子D 2=16;
FIRF :采样频率500 KHz ,通带30 KHz ,过渡带20 KHz ,128阶,抽取因子D 3=5; 鉴频FIR :采样频率100 KHz ,通带20 KHz ,过渡带10 KHz ,64阶。
1. 给出CICF 、HBF 的传递函数H(z)的结构,频率响应曲线, 并分析其性能。 2. 设计FIRF 、鉴频FIR 滤波器,给出其频率响应曲线, 并分析其性能。
3. 如果仿真信号为())()(2cos )(0n N n n f A n S FM ++=φπ,其中N (n )为高斯白噪声, 瞬时相位
为:()()12()0.7sin 20.5sin 23s s n f nT f nT ?ππππππ=+++,f 1 =1000Hz, f 2 =2500Hz, SNR =20dB 。 推导图中每级处理后输出信号的表达式(不考虑噪声),并画出每级处理后输出信号的时域波形(AGC=2)。
二、现有一雷达系统,工作频率范围为220~305MHz ,现需对整个工作带宽内的回波进行信道化处理以检测有无目标。
1. 假定信号的中心频率f 0=262.5MHz ,在欠采样下,A/D 的采样频率f s 应选多大才能满足中
频数字正交化处理的要求;
2. 假定回波中包含两个LFM 信号(2102
()cos(2)s t f t t ππμ=+),其参数如下表1所示,信噪比SNR=10dB ,产生回波信号,并利用信道化处理方法对LFM 信号进行检测(每个信道的带宽Bs=3MHz )。
要求:(1)给出信道划分示意图,并计算LFM 信号所处的信道位置; (2)画出有回波的信道信号及其频谱;
(3)对分离后的回波信号进行脉压,画出脉压结果进行分析。
三、对一圆形阵列的波束形成进行仿真,假设发射信号载频为0.8GHz,圆形阵列半径为0.8米,
在圆周上均匀布置28个阵元。
1.画出指向10度的方向图;
2.如果目标在0度,有一不相干的干扰信号在-20度,干扰噪声功率比为35dB。请用自适应
波束形成方法画出方向图;
3.采用旁瓣对消的方法(选取两个阵元作为辅助天线),计算对消比
第一题源程序:
%=====================================================================%
%软件无线电作业题1
%对调制信号进行正交分解、滤波、抽取、解调
%====================================================================%
clc;close all; clear all;
fs = 40e6 ;%信号时钟
Ts = 1/fs;
f0 = 10.7e6; %载频
f1 = 1000; f2 = 2000;
D1 = 10; %CIC滤波抽取因子
D2 = 8; %3级半带滤波抽取因子
D3 = 5; %低通滤波抽取因子
%===================================================================%
%CIC 滤波器设计
S1_cic = ones(1,D1);%一级CIC
[H1,F1] = freqz(S1_cic,1,1024,fs);
S2_cic = conv(S1_cic,S1_cic);%两级CIC
[H2,F2] = freqz(S2_cic,1,1024,fs);
S3_cic = conv(S2_cic,S1_cic);%三级CIC
[H3,F3] = freqz(S3_cic,1,1024,fs);
figure;
plot(F1/(fs/2),20*log10(abs(H1))-max(20*log10(abs(H1))),'b'),grid;hold on;
plot(F2/(fs/2),20*log10(abs(H2))-max(20*log10(abs(H2))),'g');hold on;
plot(F3/(fs/2),20*log10(abs(H3))-max(20*log10(abs(H3))),'m');
xlabel('\fontsize{12}\bf归一化频率(\times\pi rad/sample)');
ylabel('\fontsize{12}\bf幅值(dB)'),title('\fontsize{12}\bfCICF幅频响应');
box on;
legend('\bf单级CIC','\bf两级CIC','\bf三级CIC','Location','SouthWest');
set(gca,'FontWeight','bold','FontSize',12);
hold off;
%=======================================================================%
%HB滤波器设计
B2 = firhalfband(8,blackman(9));%9阶HBF
B2 = conv(conv(B2,B2),B2);%三级级联
[H4,F4] = freqz(B2,1,1024,fs);
figure(2),plot(F4/(fs/2),20*log10(abs(H4))),grid;
xlabel('\fontsize{12}\bf归一化频率(\times\pi rad/sample)');
ylabel('\fontsize{12}\bf幅值(dB)');
title('\fontsize{12}\bfHBF幅频响应');
set(gca,'FontWeight','bold','FontSize',12);
%=======================================================================%
%FIRF设计
fs1 = fs/(8*10);
[N,Fo,Ao,W] = firpmord( [20e3 35e3], [1 0], [10^(-100/20) 10^(-100/20)], fs1 ); %% 低通滤波器b1 = firpm(127,Fo,Ao,W);
[H5,F5] = freqz(b1,1,1024,fs1);
figure(3),plot(F5/(fs1/2),20*log10(abs(H5))),grid;
xlabel('\fontsize{12}\bf归一化频率(\times\pi rad/sample)');
ylabel('\fontsize{12}\bf幅值(dB)');
title('\fontsize{12}\bfFIFR幅频响应');
set(gca,'FontWeight','bold','FontSize',12);
%=======================================================================%
%鉴频FIR设计
fs2 = fs1/5;
[N,Fo,Ao,W] = firpmord( [20e3 30e3], [1 0], [10^(-80/20) 10^(-80/20)], fs2 ); %% 低通滤波器b2 = firpm(63,Fo,Ao,W);
[H6,F6] = freqz(b2,1,1024,fs2);
figure(4),plot(F6/(fs2/2),20*log10(abs(H6))),grid;
xlabel('\fontsize{12}\bf归一化频率(\times\pi rad/sample)');
ylabel('\fontsize{12}\bf幅值(dB)');
title('\fontsize{12}\bf鉴频FIFR幅频响应');
set(gca,'FontWeight','bold','FontSize',12);
%========================================================================% %滤波器总的幅频响应
HH = 2.*H3.*H4.*H5;
figure(5),plot((1:1024)*fs/1024,20*log10(abs(HH))),grid;
xlabel('\fontsize{12}\bf频率/Hz');
ylabel('\fontsize{12}\bf幅值(dB)');
title('\fontsize{12}\bf总的滤波器幅频响应');
set(gca,'FontWeight','bold','FontSize',12);
%=========================================================================% %数据处理,给出每级数据经滤波抽取后的结果
N=400000;
n=0:400000-1;
phi=0.7*pi*sin(2*pi*f1*n*Ts+pi/6)+0.7*pi*sin(2*pi*f2*n*Ts+pi/3);
Sn=cos(2*pi*f0*n*Ts+phi);%+1/sqrt(20)*randn(1,N); %%%SNR=20dB%%%
I1=Sn.*cos(2*pi*f0*n*Ts);Q1=Sn.*sin(2*pi*f0*n*Ts); %正交变换
II2=2*filter(S3_cic,1,I1);QQ2=2*filter(S3_cic,1,Q1); %CIC滤波
I2=II2(1:D1:N);Q2=QQ2(1:D1:N); %10倍抽取
II3=filter(B2,1,I2);QQ3=filter(B2,1,Q2); %HB滤波
I31=II3(1:2:N/D1);Q31=QQ3(1:2:N/D1); %2倍抽取
I32=filter(B2,1,I31);Q32=filter(B2,1,Q31); %HB滤波
I33=I32(1:2:N/(2*D1));Q33=Q32(1:2:N/(2*D1)); %2倍抽取
I34=filter(B2,1,I33);Q34=filter(B2,1,Q33); %HB滤波
I3=I34(1:2:N/(2*2*(D1)));Q3=Q34(1:2:N/(2*2*(D1))); %2倍抽取
I41=filter(b1,1,I3);Q41=filter(b1,1,Q3); %低通滤波
I4=I41(1:D3:N/(D1*D2));Q4=Q41(1:D3:N/(D1*D2)); %5倍抽取
%%%%%%% 画图显示%%%%%%%%%
figure(6);
plot((0:Ts:1000*Ts),Sn(1:1001)),grid on;
xlabel('\fontsize{12}\bf时间(s)'),ylabel('\fontsize{12}\bf幅值(v)');
title('\fontsize{12}\bf原始信号');set(gca,'FontWeight','bold','FontSize',12);
figure(7);
plot((1:40000),I1(1:40000),'r-',(1:40000),Q1(1:40000),'b-'),legend('\bfI1','\bfQ1');
title('\fontsize{12}\bfI1与Q1路时域信号');set(gca,'FontWeight','bold','FontSize',12);
figure(8);plot(1:length(I2),I2,'r-',1:length(Q2),Q2,'b'),legend('\bfI2','\bfQ2');
title('\fontsize{12}\bfI2与Q2路时域信号');set(gca,'FontWeight','bold','FontSize',12);
figure(9);
plot(1:length(I3),I3,'r-',1:length(Q3),Q3,'b'),legend('\bfI3','\bfQ3');
title('\fontsize{12}\bfI3与Q3路时域信号');set(gca,'FontWeight','bold','FontSize',12);
figure(10);plot(1:length(I4),I4,'r-',1:length(Q4),Q4,'b'),legend('\bfI4','\bfQ4');
title('\fontsize{12}\bfI4与Q4路时域信号');set(gca,'FontWeight','bold','FontSize',12);
figure(11);%画正交原图,看IQ通道是否正交
subplot(2,2,1),plot(I1,Q1),axis equal,grid;xlabel('\fontsize{12}\bf同相分量I1');
ylabel('\fontsize{12}\bf正交分量Q1'); title('\fontsize{12}\bfI1与Q1正交圆图');
set(gca,'FontWeight','bold','FontSize',12);
subplot(2,2,2),plot(I2,Q2),axis equal,grid;xlabel('\fontsize{12}\bf同相分量I2');
ylabel('\fontsize{12}\bf正交分量Q2'); title('\fontsize{12}\bfI2与Q2正交圆图');
set(gca,'FontWeight','bold','FontSize',12);
subplot(2,2,3),plot(I3,Q3),axis equal,grid;xlabel('\fontsize{12}\bf同相分量I3');
ylabel('\fontsize{12}\bf正交分量Q3'); title('\fontsize{12}\bfI3与Q3正交圆图');
set(gca,'FontWeight','bold','FontSize',12);
subplot(2,2,4),plot(I4,Q4),axis equal,grid;xlabel('\fontsize{12}\bf同相分量I4');
ylabel('\fontsize{12}\bf正交分量Q4'); title('\fontsize{12}\bfI4与Q4正交圆图');
set(gca,'FontWeight','bold','FontSize',12);
%============================================================================% %%%% 鉴频%%%%
sig=2*I4+j*2*Q4;
an=abs(sig);
Pn0=atan2(Q4,I4);Pn=unwrap(Pn0);
B5=[1,0,0,-1];
Fp=filter(B5,1,Pn);
Fn=filter(b2,1,Fp); %鉴频低通滤波
ff=-diff(phi); % 理论值求解
ff=ff(1:100:length(ff));
figure(12);
subplot(2,1,1),plot(Fn,'r'),title('\fontsize{12}\bf解调结果');
set(gca,'FontWeight','bold','FontSize',12);
subplot(2,1,2),plot(ff,'g'),title('\fontsize{12}\bf理论解调结果');
set(gca,'FontWeight','bold','FontSize',12);
第二题源程序:
%=================================================================% %软件无线电第二题
%信道化接收
%================================================================% clc;clear all;close all;
N=1120; % 低通滤波器长度
M=70; % 划分通道数
K=16; % 多相滤波器长度
fs=210e6; % 采样频率
Bw=85e6; % 信号带宽Bw=fh-fl
f0=262.5e6; % 信号中心频率
fl=f0-Bw/2; %最低工作频率
fh=f0+Bw/2; %最高工作频率
T=100e-6; %LFM信号脉宽
Bs = 3e6; %每个信道带宽
n=0:N-1;
%------------------------输入信号------------------------
f1=242.5e6; % chirp1 中心频率
f2=267.5e6; % chirp2 中心频率
SNR = 10; %信噪比
t=-T/2:1/fs:T/2-1/fs;
w1=2*pi*f1;BW1=600e3;%chirp1带宽
w2=2*pi*f2;BW2=300e3;%chirp1带宽
z1t=cos(w1*t+BW1/T*pi*t.*t); % chirp1
z2t=cos(w2*t+BW2/T*pi*t.*t); % chirp2
zt=z1t+z2t+(10.^(-10/20))*randn(1,length(t));%信号+噪声
DFzt=fft(zt);DFz1t=fft(z1t);DFz2t=fft(z2t);%信号的频谱
figure(1)
subplot(3,2,1);plot(0:(fs*T-1),zt);title('时域');ylabel('zt=chirp1+chirp2+noise');
subplot(3,2,2);plot((-0.5:1/(fs*T):0.5-1/(fs*T))*fs,abs(DFzt));title('频域');
subplot(3,2,3);plot(0:(fs*T-1),z1t);ylabel('chirp1');
subplot(3,2,4);plot((-0.5:1/(fs*T):0.5-1/(fs*T))*fs,abs(DFz1t));
subplot(3,2,5);plot(0:(fs*T-1),z2t);ylabel('chirp2');
subplot(3,2,6);plot((-0.5:1/(fs*T):0.5-1/(fs*T))*fs,abs(DFz2t));
%---------------------------设计低通滤波器------------------------------
f = [Bs,1.5*Bs]/fs; m1 = [1,0];
Rp=1;Rs=40;
dat1 = (10^(Rp/20)-1)/(10^(Rp/20)+1);
dat2 = 10^(-Rs/20);
rip = [dat1,dat2];
[MM,ff,mm,ww] = remezord(f,m1,rip);
hh = remez(N-1,ff,mm,ww);
figure(2)
freqz(hh); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------直接低通滤波---------------
for k=0:M-1
z1h=conv(z1t,hh.*exp(-j*2*pi*k*n/M));
z2h=conv(z2t,hh.*exp(-j*2*pi*k*n/M));
zh=conv(zt,hh.*exp(-j*2*pi*k*n/M));
m=0:size(t)-1;
W=exp(-j*2*pi/M*m*k);
z1w=z1h.*W;
z2w=z2h.*W;
zw=zh.*W;
z1k_temp=reshape([z1w,zeros(1,M-rem(length(z1w),M))],M,[]);
z2k_temp=reshape([z2w,zeros(1,M-rem(length(z2w),M))],M,[]);
zk_temp=reshape([zw,zeros(1,M-rem(length(z1w),M))],M,[]);
z1k(k+1,:)=z1k_temp(k+1,:);
z2k(k+1,:)=z2k_temp(k+1,:);
zk(k+1,:)=zk_temp(k+1,:);
if k figure(3) subplot(7,5,k+1); plot([0:length(zk_temp)-1]*pi/length(zk_temp),real(zk(k+1,:))); temp1 = ['\fontsize{12}\bf通道' num2str(k)]; axis([0 pi -.6 .6]);title(temp1); set(gca,'FontWeight','bold','FontSize',12); figure(4) subplot(7,5,k+1); plot([0:length(zk_temp)-1]*pi/length(zk_temp),abs(fft(zk(k+1,:)))); axis([0 pi 0 35]);title(temp1); set(gca,'FontWeight','bold','FontSize',12); end end figure(5) plot(real(zk(12,:))) title('通道11波形'); zk_fft = abs(fft(zk(12,:)))/max(abs(fft(zk(12,:)))); figure(6) plot(((0:length(zk_fft)-1)*Bs/length(zk_fft)),fftshift(zk_fft)) xlabel('频率');ylabel('归一化幅度'); title('通道11信号频谱'); figure(7) plot(abs(xcorr(zk(12,:),zk(12,:)))) xlabel('通道11脉压结果'); figure(8) plot(real(zk(20,:))) title('通道19波形'); zk_fft = abs(fft(zk(20,:)))/max(abs(fft(zk(20,:)))); figure(9) plot(((0:length(zk_fft)-1)*Bs/length(zk_fft)),fftshift(zk_fft)) xlabel('频率');ylabel('归一化幅度'); title('通道19信号频谱'); figure(10) plot(abs(xcorr(zk(20,:),zk(20,:)))) xlabel('通道19脉压结果'); 第三题源程序: %============================================================% %软件无线电第三大题 %求圆阵的DBF方向图 %============================================================% clear all;close all;clc; c=3e8;%光速 f0=1e9;%发射信号载频 fs = 1000;%采样频率 lambda=c/f0;%发射信号波长 r = 0.8;%圆阵半径 N=30;%圆阵个数 n=0:N-1;%30个圆阵编号 M=100;%快拍数 m=1:M; theta0 = 0;%目标角度,单位为度 theta1 = 30;%干扰所在角度,单位为度 SIR = 30;%dB %信干比 theta = -50:1:50;%角度扫描范围 L = length(theta); p=zeros(1,L); a0=exp(j*2*pi*r/lambda*cos(theta0*pi/180-2*pi/N*n'));%目标导向矢量 a1=exp(j*2*pi*r/lambda*cos(theta1*pi/180-2*pi/N*n'));%干扰导向矢量 for theta3=-fix(L/2):1:fix(L/2) a=exp(j*2*pi*r/lambda*cos(theta3*pi/180-2*pi/N*n')); p(theta3+fix(L/2)+1)=a0'*a; end P0 = abs(p).^2./max(abs(p).^2); figure plot(theta,10*log10(P0));title('圆阵天线指向0度的方向图'); xlabel('方位角(度)');ylabel('归一化阵列响应(dB)');grid on %==============================================================% %capon自适应波束形式 S=exp(j*2*pi*f0*m/fs);%信号 J=randn(1,M);%干扰 X=10^(SIR/10)*a0*S+a1*J+randn(N,M);%总的接收信号 R=1/M*X*X';%求接收信号的相关函数 a3=exp(j*2*pi*r/lambda*cos(ones(N,1)*theta*pi/180-2*pi/N*n'*ones(1,L))); P1=1./diag(a3'*inv(R)*a3); figure plot(theta,10*log10(abs(P1)/max(abs(P1))));grid on; xlabel('方位角(度)');ylabel('归一化阵列响应(dB)');title('capon自适应波束形成的方向图');