⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 delfm.m

📁 个人硕士论文的关于数字接收机调制解调方面的matlab程序
💻 M
字号:
function [startFreq,LFMk]=delfm(realpinput,dt)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%线性调频信号参数估计函数
%输入参数realpinput为复信号,dt为采样频率
%输出参数为信号的起始频率startFreq,调频系数LFMk,相位pha,起始点start和结束点endpos
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
conjOfTheSignal=conj(realpinput);
len=length(realpinput);
delay=round(0.4*len);%求延迟相关点数
f0=EsCorFre(realpinput,conjOfTheSignal,delay,dt);%调用相关运算函数,求出相关后的正弦波频率
LFMk=f0/(delay*dt);%求出调频系数
%构造本地信号,进行相关运算(L13-L15)
ti=dt*(0:len-1);
tempsign=exp(-j*LFMk*pi*ti.^2); 
esStartFre=realpinput.*tempsign;

[startfre,pha]=threefft(esStartFre,dt);%估计频率和相位
          
xdrfft=fft(esStartFre);
[valmax,loc]=max(abs(xdrfft));%找出最大谱线的位置
%对esStartFre进行滤波,得到inSignal(L22-L27)
nnum=round(0.1*len);
xdrfft2=zeros(1,len);
loc1=max(1,loc-nnum);
loc2=min(loc+nnum,len);
xdrfft2(loc1:loc2)=xdrfft(loc1:loc2);
inSignal=ifft(xdrfft2);

xdr=inSignal.*exp(-j*(2*pi*startfre*ti+pha));%构造本地信号,进行相关运算
%[start,endpos]=StartT(xdr);%估计起始点和终止点
startFreq=startfre;%+(start-3)*LFMk*dt;%对起始频率进行修正
start=0;
endpos=0;
return;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -