楼主您好,我也在做一个简单的频率细化算例。其中f1=104; %信号1 f2=108; %信号2 ;f3=110; %信号3.
为了分离这个信号的频率成分,我把这个信号的频率移动到0点,然后把移动以后的信号重采样,看起来这个信号的的3个频率成分分离开了,可是,这三个信号的频率和fft的系数无法对应起来。请问楼主,在频率细化以后如何定义频率轴啊?我的程序如下:
%频率选择fft
% notes: xt is target signal; xn is the frequency shfited signal.
close all
clear
clc
f0=100; %细化的上截至频率
f1=104; %信号1
f2=108; %信号2
f3=110; %信号3
f4=100; %细化的上截至频率
%
%-------------------------------------------------------------------------
fs=5120; %|
N=512; %|
n1=0:(N*10)-1; %|
deltT=1/fs; %|
%-------------------------------------------------------------------------
%-------------------------------------------------------------------------
xt=cos(2*pi*f1*n1*deltT)+cos(2*pi*f2*n1*deltT)+cos(2*pi*f3*n1*deltT); %|
%-------------------------------------------------------------------------
%-------------------------------------------------------------------------
XT=2*abs(fft(xt,N))/N; % FFT for original data|
Hz_T=fs/N*n1; % Frequency axias |
figure % |
half_Hz_T=Hz_T(1:N/2);
plot(half_Hz_T,XT(1:N/2)); % |
xlabel('frequency') % |
grid on % |
title('frequency of original data') % |
%-------------------------------------------------------------------------
%----------------------------------------------------------------------
fe=(f0+f4)/2; % frequency used for target signal shift
wn1=exp(-j*2*pi*n1*fe/fs); % freuqency shift function
xn=xt.*wn1; % frequency shifted
%
D=10; %细化倍数
% fs_zoom=fs/D; % new samping frequency
re_xn1=reshape(xn,D,[]); % re-sample signal of xn
re_xn2=re_xn1(1,:);
re_N=length(re_xn2);
n2=0:(re_N-1);
wn2=exp(j*2*pi*n2*fe/fs);
re_xn2=re_xn2.*wn2;
re_XN=2*abs(fft(re_xn2))/re_N;
k1=0:(re_N-1);
% re_Hz=(0:re_N-1)/fs_zoom+fe;
figure
plot(k1(1:(re_N/2)),re_XN(1:re_N/2))
grid on