關于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)
2018-12-6 16:27 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|