关于bessel插值的基础算法
- clear ;
- close all;
- clc;
- % parameter
- f0 = 20e+6
- fs=8e6;
- t0=0.00006;
- t2=0:1/fs:(t0-1/fs);
- f0=1e7;
- f1=2e5;
- k=33e8;
- N=1024;
- T=N/fs;
- t=0:1/fs:(T-1/fs);
- x1=cos(2*pi*(f0*t2+k*t2.^2));
- %单频脉冲时 x1里t2的系数为0,注释掉下面的一段;BPSK时,x1里t2的系数为0,不注释掉下面的一段;LFM时, x1里t2的系数为k,注释掉下面的一段
- % Code_Num=6;%码元个数
- % n=100;
- % f1=@(t)sin(2*pi*Code_Num/t0*n*t);
- % f2=@(t)sin(-2*pi*Code_Num/t0*n*t);
- % code=rand(1,Code_Num)>0.5;
- % for i=1:fs*t0
- % m=floor(t2(i)/(t0/Code_Num));
- % x1(i)=code(m+1)*f1(t2(i)-m*(t0/Code_Num))+(1-code(m+1))*f2(t2(i)-m*(t0/Code_Num));
- % end
- x=[x1 zeros(1,N-length(t2))];
- figure(1);
- plot(t,x);
- title('原始信号')
- xlabel('时间/s')
- ylabel('幅度/v')
- %贝塞尔插值
- for i=1:length(x)/2
- y1(i)=x(2*i-1)*(-1)^(i-1);
- y2(i)=x(2*i)*(-1)^(i);
- end
- for k=3:i-1
- z1(k-2)=9*(y1(k-1)+y1(k))/16-(y1(k-2)+y1(k+1))/16;
- z2(k-2)=y2(k-1);
- end
- figure(2)
- subplot(2,1,1),plot(1:length(y1),y1,'r-',1:length(y1),y2,'b-');
- title('贝塞尔插值前的信号')
- subplot(2,1,2),plot(1:length(z1),z1,'r-',1:length(z1),z2,'b-');
- title('贝塞尔插值后的信号')
- y1_original=zeros(1,length(x));
- y2_original=zeros(1,length(x));
- y1_original(2:2:length(x))=y1_original(1:2:length(x)-1)+y1(1:length(x)/2);
- y2_original(2:2:length(x))=y2_original(2:2:length(x))+y2(1:length(x)/2);
- % figure(4)
- % plot(t,y1_original,'r-',t,y2_original,'b-');
- %设置低通滤波器,并将两个正交的包络信号输入低通滤波器
- % wp=400/(fs/2/1e3);
- % ws=800/(fs/2/1e3);
- wp=400/(fs/2/1e3);
- ws=600/(fs/2/1e3);
- rp=1;%通带最大衰减
- rs=50;%阻带最小衰减
- %使用巴特沃斯滤波器实现低通滤波器
- [n,Wn]=buttord(wp,ws,rp,rs);
- [b,a]=butter(n,Wn);
- %两个低通滤波器输出的信号
- y1_lowpass=filter(b,a,y1_original);
- y2_lowpass=filter(b,a,y2_original);
- %画出两个低通滤波器输出信号的时域波形和频域波形
- figure(4)
- plot(t,y1_lowpass,'r-',t,y2_lowpass,'b-');
- title('低通滤波后的信号')
- xlabel('时间/s')
- ylabel('幅度/v')
复制代码
全部资料51hei下载地址:
直接中频正交采样的Bessel内插实现_朱荣新.pdf
(117.44 KB, 下载次数: 13)
|