信号分选与数字滤波报告【摘要】:本实验主要是采用matlab实现两路带限信号分选数字接收机系统,其中涉及到数字信号处理的内容有:一、连续时间信号的采样,包括奈奎斯特抽样定理等;二、IIR数字滤波器的理论、结构设计与实现;三、信号处理的相关运算,包括信号卷积运算等;四、离散傅里叶变换,包括DFT、FFT等。本报告采用一个低通一个高通的方法将两个频段的波进行分离,并采用DTFT(离散时间傅里叶变换)的方法得到其频谱并进行分析。关键词:频谱分离,滤波器,DTFT,频谱分析1实验设计:1.1实验要求:第一个载波信号幅度A1=5V,载波频率f1=2.45GHz,高斯包络脉冲宽度1=20ns;第二个载波信号幅度A2=2V,载波频率f2=5.8GHz,高斯包络脉冲宽度2=10ns。数字接收机结构如下图所示:2.2设计方案:filter1可选择低通滤波器,最高截止频率≤5.5GHz;filter2采用高通滤波器,最低截止频率≥2.8GHz。具体设计流程:第一步:对信号进行A/D(模拟/数字)转换,由奈斯奎采样定律可知,采样信号,因为所以取=11.6GHz。第二步:采用fft算法得到r(t)的频谱。第三步:设计低通巴特沃思滤波器。设计低通巴特沃思滤波器的原理既是用阶数,用巴特沃思滤波器的幅度平方响应||^2=来求解3dB截止频率得到传输函数(z)的结果。由于,可取低通巴特沃思滤波器的,=5GHz,则第四步:用低通巴特沃思滤波器得到高通滤波器。第五步:通过滤波器相当于实现以下运算在时域上为卷积y[n]=x[n]*h[n],在频域上频谱相乘Y()=X()H()第六步:经过ifft算法后可得时域信号,ifft算法相当于给信号做了离散时间傅里叶反变换,从而得到有频谱的时域上的信号;2Matlab仿真结果:(程序见后源程序文件)第一步:第二步:第三、四步:第五步:第六步:3实验结论:与以上分析和实验结果,我们可以得出:一个信号中如果带有不同频率的信息,可以通过相应的滤波器滤出所需要的信息,并且所得结果是比较准确的,而且精确度主要与滤波器是否理想有很大关系。附件(代码)实现模数转换A/D:Fs=20*10^9;%SamplingfrequencyT=1/Fs;%SampletimeL=1000;%Lengthofsignalt=(0:L-1)*T;%Timevectort1=20*10^(-9);t2=10*10^(-9);a1=5;a2=2;f1=2.45*10^9;f2=5.8*10^9;r=a1*exp(-(t/t1).^2).*cos(2*pi*f1*t)+a2*exp(-(t/t2).^2).*cos(2*pi*f2*t);plot(t,r)title('Signal')ylabel('|r(t)|')xlabel('time')采用fft算法得到r(t)的频谱:Fs=20*10^9;%SamplingfrequencyT=1/Fs;%SampletimeL=1000;%Lengthofsignalt=(0:L-1)*T;%Timevectort1=20*10^(-9);t2=10*10^(-9);a1=5;a2=2;f1=2.45*10^9;f2=5.8*10^9;r=a1*exp(-(t/t1).^2).*cos(2*pi*f1*t)+a2*exp(-(t/t2).^2).*cos(2*pi*f2*t);NFFT=2^nextpow2(L);%Nextpowerof2fromlengthofrR=fft(r,NFFT)/L;f=Fs/2*linspace(0,1,NFFT/2);%Plotsinglespectrum.plot(f,2*abs(R(1:NFFT/2)))title('SingleSpectrumofR(t)')xlabel('Frequency(Hz)')ylabel('|R(f)|')巴特沃兹低通滤波器:F=Fs/2;W=3*10^9;%3-dBcutoffangularfrequency%DeterminethetransferfunctionWn=W/F;[num1,den1]=butter(N1,Wn,'low');%高通滤波[num2,den2]=butter(N2,Wn,'low');[num3,den3]=butter(N3,Wn,'low');wd=[0:1023]*2*pi/1023;H1=freqz(num1,den1,wd);H2=freqz(num2,den2,wd);H3=freqz(num3,den3,wd);subplot(1,3,1);plot(f,abs(H1(1:NFFT/2)))title('低通滤波1阶')xlabel('Frequency(Hz)')ylabel('|H(f)|')subplot(1,3,2);plot(f,abs(H2(1:NFFT/2)))title('低通滤波4阶')xlabel('Frequency(Hz)')ylabel('|H(f)|')subplot(1,3,3);plot(f,abs(H3(1:NFFT/2)))title('低通滤波8阶')xlabel('Frequency(Hz)')ylabel('|H(f)|')低、高滤波器:Fs=20*10^9;%SamplingfrequencyT=1/Fs;%SampletimeL=1000;%LengthofsignalNFFT=2^nextpow2(L);%Nextpowerof2fromlengthofrf=Fs/2*linspace(0,1,NFFT/2);N=8;%TypeinfilterorderF=Fs/2;W1=3*10^9;%3-dBcutoffangularfrequencyW2=5*10^9;%DeterminethetransferfunctionWn1=W1/F;Wn2=W2/F;[num1,den1]=butter(N,Wn1,'low');%高通滤波[num2,den2]=butter(N,Wn2,'high');wd=[0:1023]*2*pi/1023;H1=freqz(num1,den1,wd);H2=freqz(num2,den2,wd);subplot(1,2,1);plot(f,abs(H1(1:NFFT/2)))title('低通滤波')xlabel('Frequency(Hz)')ylabel('|H(f)|')subplot(1,2,2);plot(f,abs(H2(1:NFFT/2)))title('高通滤波')xlabel('Frequency(Hz)')ylabel('|H(f)|')通过滤波器:Fs=20*10^9;%SamplingfrequencyT=1/Fs;%SampletimeL=1000;%Lengthofsignalt=(0:L-1)*T;%Timevectort1=20*10^(-9);t2=10*10^(-9);a1=5;a2=2;f1=2.45*10^9;f2=5.8*10^9;r=a1*exp(-(t/t1).^2).*cos(2*pi*f1*t)+a2*exp(-(t/t2).^2).*cos(2*pi*f2*t);NFFT=2^nextpow2(L);%Nextpowerof2fromlengthofrR=fft(r,NFFT)/L;f=Fs/2*linspace(0,1,NFFT/2);N=6;%TypeinfilterorderF=Fs/2;W=5*10^9;%3-dBcutoffangularfrequencyWn=W/F;[num,den]=butter(N,Wn,'high');%高通滤波wd=[0:1023]*2*pi/1023;H=freqz(num,den,wd);R1=R.*abs(H);subplot(1,2,1);plot(f,abs(R1(1:NFFT/2)))title('通过高通滤波器后')ylabel('|R(f)|')xlabel('Frequency(Hz)')W2=3*10^9;Wn2=W2/F;[num2,den2]=butter(N,Wn2,'low');%低通滤波H2=freqz(num2,den2,wd);R2=R.*abs(H2);subplot(1,2,2);plot(f,abs(R2(1:NFFT/2)))title('通过低通滤波器后')ylabel('|R(f)|')xlabel('Frequency(Hz)')时域信号:Fs=20*10^9;%SamplingfrequencyT=1/Fs;%SampletimeL=1000;%Lengthofsignalt=(0:L-1)*T;%Timevectort1=20*10^(-9);t2=10*10^(-9);a1=5;a2=2;f1=2.45*10^9;f2=5.8*10^9;r=a1*exp(-(t/t1).^2).*cos(2*pi*f1*t)+a2*exp(-(t/t2).^2).*cos(2*pi*f2*t);NFFT=2^nextpow2(L);%Nextpowerof2fromlengthofrR=fft(r,NFFT)/L;f=Fs/2*linspace(0,1,NFFT/2);N=6;%TypeinfilterorderF=Fs/2;W=5*10^9;%3-dBcutoffangularfrequencyWn=W/F;[num,den]=butter(N,Wn,'high');%高通滤波wd=[0:1023]*2*pi/1023;H=freqz(num,den,wd);R1=R.*abs(H);W2=3*10^9;Wn2=W2/F;[num2,den2]=butter(N,Wn2,'low');%低通滤波H2=freqz(num2,den2,wd);R2=R.*abs(H2);r3=ifft(R1,NFFT)*L;t3=(0:999)*T;r2=a2*exp(-(t3/t2).^2).*cos(2*pi*f2*t3);subplot(2,2,1);%r2前后信号比较plot(t3,r3(1:1000))title('通过高通滤波器还原信号')ylabel('|r2(t)|')xlabel('t/s')subplot(2,2,3);plot(t3,r2)r4=ifft(R2,NFFT)*L;title('原始低频载波')ylabel('|r2(t)|')xlabel('t/s')subplot(2,2,2);%r1前后信号比较plot(t3,r4(1:1000))title('通过低通滤波器还原信号')ylabel('|r1(t)|')xlabel('t/s')r1=a1*exp(-(t3/t1).^2).*cos(2*pi*f1*t3);subplot(2,2,4);plot(t3,r1)title('原始高频载波')ylabel('|r1(t)|')xlabel('t/s')