【文件属性】:
文件名称:离散频谱的比值校正法-频谱分析的校正方法.pdf
文件大小:136KB
文件格式:PDF
更新时间:2022-09-01 13:49:12
matlab
离散频谱的比值校正法-频谱分析的校正方法.pdf
离散频谱的比值校正法
在下帖子中讨论了“Matlab中FFT求正玹序列的振幅”https://www.ilovematlab.cn/thread-50611-1-1.html 我在帖子中指出了当“正弦信号的频率不与FFT后的某条谱线相合”,可用校正法来求正弦信号的频率。在这里提供一个比值校正法的程序,它已编写成一个函数,该方法的理论可参看以下附件。
function Z=Specorr
[nx,mx]=size;
if mx==1, x=x';end
[nx,mx]=size;
if mxA;
df=indsecL.*A./)-.*A./);
Z=*ddf;
Z=Amax/sinc;
Z=;
end
%比值法
%加Hanning窗
if
indsecL=A>A;
df=indsecL.*-Amax)./)-.*-Amax)./);
Z=*ddf;
Z=*Amax/sinc;
Z=;
end
Z=mod,2*pi);
Z=Z->pi)*pi;
调用格式是
Z=Specorr
其中输入变量
x 是被测信号
fs 采样频率
N FFT的长度(相当于nfft)
nx1,nx2 被测正弦信号频率的区间,nx2>nx1
method 窗函数的方法,1为矩形窗,2为海宁窗
输出变量Z,Z为被测信号的频率,Z为被测信号的幅值,Z为被测信号的初始相角
这里把https://www.ilovematlab.cn/thread-50611-1-1.html 帖子中1层的程序修改一下列于
Fs=1000;
n=0:1/Fs:1;
xn=10 15*sin randn);
nfft=1024;
Xn = fftshift);
Xn=Xn/2;
A=2*abs/Fs;
subplot,plot
subplot
stem
xlabel,ylabel
P=Xn.*conj/nfft;
xlim
Z=Specorr
这样得到Z为
Z =
10.0003 15.0009 1.5693
信号频率为10.0003,幅值为15.0009,初始相角为1.5693。初始相角是以余弦信号为准,正弦信号正好差pi/2。