针对在时域无法进行滤波的情况或节约运算量。比如,扩频通信中的强窄带干扰的滤除,在时域很难处理,采用智能天线阵处理时,如果有用信号与干扰信号的波达方向相同,也无法通过波束成型算法滤除,但采用变换域滤波处理却十分容易。
通过某种变换将时域信号映射到另一个“域”直接处理,且处理后直接得到所需的时域信号,而不需要再进行域的反变换,如变换域串行LMS算法;
另一种处理方法是通过某种变换将时域映射到另一个“域”进行滤波处理,处理后的信号再通过对应的反变换处理,将信号再映射到时域,从而完成信号的滤波处理,如频域块LMS算法及变换域抗窄带干扰技术。其中后一种处理方法应用得更为广泛,滤波效果也更好,实现相对简单。
时域 | 频域 |
周期/非周期 | 离散/连续 |
连续/离散 | 非周期/周期 |
对时域有限长信号采样后(离散)进行周期延拓(周期),这样,频域信号就变了周期离散信号。离散傅里叶理论实现了频域离散化,开辟了用数字技术在频域处理信号的新途径。
名称 | 问题 | 原因 | 解决措施 |
频率泄露 | 导致频谱扩展 | 信号截取时加窗导致的 | 选择适当形状的窗函数、预加窗函数 |
栅栏效应 | 只能在离散点看到信号频谱 | 时域周期拓展导致频域离散化 | 序列补零 |
频率分辨率:表征在频率轴上所能得到的最小频率间隔。
对于长度为N的DFT变换,其频率分辨率△f=fs/N,其中fs为时域信号的采样频率。
如果在x(n)中有两个频率分别为f1、f2的信号,则在对x(n)用矩形窗截断时,要分辨这两个频率,必须满足
原理:利用的对称性和周期性:
算法提升程度:
原来 | FFT算法 | |
N^2次复乘、N(N-1)次复加 | (N/2)log_2N | |
N=8 | 64次复乘 | 12次 |
N=1024 | 1048576次 | 5120次 |
%E8_1_FFTSim.m
%仿真FFT参数对采用FFT算法分析信号频谱的影响。产生频率分别为2Hz,2.05Hz的正弦波合成信号,采样
%频率=10Hz。根据(8-8)式,要实现分辨两个单频信号的目的,DFT的序列长度必须满足 。分别仿真3种
%情况下的FFT变换:1)取 的128点数据,计算FFT;2)将128点 以补零的方式加长到512点,计算FFT;
%3)取512点 ,计算FFT。
f1=2; f2=2.05;%单正弦信号的频率
fs=10; %采样频率
%对128点时域序列进行FFT分析
N=128; %FFT分析的点数
n=0:N-1;
xn1=sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs);%产生128点时域信号序列
XK1=fft(xn1); %进行傅立叶变换,并进行归一化处理
MXK1=abs(XK1(1:N/2));
% MXK1=20*log10(abs(XK1(1:N/2)));
% MXK1=MXK1-max(MXK1);
%对补零后的512点时域序列进行FFT分析
M=512;
xn2=[xn1 zeros(1,M-N)];%在时域信号序列后补零
XK2=fft(xn2); %进行傅立叶变换,并进行归一化处理
MXK2=abs(XK2(1:M/2));
%MXK2=20*log10(abs(XK2(1:M/2)));
%MXK2=MXK2-max(MXK2);
%对512点时域序列进行FFT分析
n=0:M-1;
xn3=sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs);%产生128点时域信号序列
XK3=fft(xn3); %进行傅立叶变换,并进行归一化处理
MXK3=abs(XK3(1:M/2));
% MXK3=20*log10(abs(XK3(1:M/2)));
% MXK3=MXK3-max(MXK3);
%绘图
subplot(321);
x1=0:N-1;
plot(x1,xn1);xlabel('n','fontsize',8);title('128点x(n)','fontsize',8);
subplot(322);
k1=(0:N/2-1)*fs/N;
plot(k1,MXK1);xlabel('f(Hz)','fontsize',8);title('128点xn的FFT变换','fontsize',8);
subplot(323);
x2=0:M-1;
plot(x2,xn2);xlabel('n','fontsize',8);title('512点补零x(n)','fontsize',8);
subplot(324);
k2=(0:M/2-1)*fs/M;
plot(k2,MXK2);xlabel('f(Hz)','fontsize',8);title('512点补零xn的FFT变换','fontsize',8);
subplot(325);
plot(x2,xn3);xlabel('n','fontsize',8);title('512点x(n)','fontsize',8);
subplot(326);
plot(k2,MXK3);xlabel('f(Hz)','fontsize',8);title('512点xn的FFT变换','fontsize',8);
N>400,才能分辨出f1、f2两信号