信号处理之圆周卷积与DFT频率分辨率分析

信号处理之圆周卷积与DFT频率分辨率分析

求4点圆周卷积与线性卷积

一、 已知x1(n)=[2,4,3,1],x2(n)=[2,1,3],采用时域和频域两种方法分别求它俩的4点圆周卷积与线性卷积。

  1. 时域方法
function y=cirshift(x,m,N)
 
if length(x)>N
    error('N length should >=x length')
end
x=[x zeros(1,N-length(x))];
n=[0:1:N-1];
n=mod(n-m,N);
y=x(n+1);

function y=circonvt(x1,x2,N)
if length(x1)>N
    error('N length should >=x1 length')
end
if length(x2)>N
    error('N length should >=x2 length')
end
x1=[x1 zeros(1,N-length(x1))];
x2=[x2 zeros(1,N-length(x2))];
m=[0:1:N-1];
x2=x2(mod(-m,N)+1);
H=zeros(N,N);
for n=1:1:N
    H(n,:)=cirshift(x2,n-1,N);
end
y=x1*H';

clc;
clear all
x1=[2 4 3 1];
x2=[2 1 3];
y=circonvt(x1,x2,4)

求得结果如下:
在这里插入图片描述

当N≥N1+N2-1时,由circonvt得到的结果就等于线性卷积结果,N=6,即:
在这里插入图片描述

  1. 频域方法
N=4;
X1=fft(x1,N);
X2=fft(x2,N);
Y=X1.*X2;
y=ifft(Y,N)

求得结果同上。
当N≥N1+N2-1时,由circonvt得到的结果就等于线性卷积结果,N=6,结果相同。

DFT频率分辨率分析

现考虑如下序列:
在这里插入图片描述

(1) 取在这里插入图片描述 ,共10点序列,求出该有限长序列的DFT,并画出x(n)和其DFT谱,分析并说明通过该幅度谱能否分辨出原序列中两个频率分量;

function [Xk]=dft(xn,N)
n=[0:1:N-1];
k=[0:1:N-1];
WN=exp(-j*2*pi/N);
nk=n'*k;
WNnk=WN.^nk;
Xk=xn*WNnk;

N1=10;
n1=0:N1-1;
k1=0:N1-1;
x1=cos(0.48*pi*n1)+cos(0.52*pi*n1);
y1=x1(1:1:10);
Xk1=dft(x1,10);
w=2*pi/10*k1;
subplot(2,1,1);
stem(n1,y1);
axis([0,10,-2.5,2.5]);
title('x(n),0<=n<=9');
subplot(2,1,2);
stem(k1,abs(Xk1));
title('幅度');

结果如图:
在这里插入图片描述

可以看到有四个点达到了最大值,但无法明显分辨出两个频率分量。
(2) 在(1)的基础上,对序列补充90个零点,构成长度为100的有限长序列,求出该有限长序列的DFT,并画出x(n)和其DFT谱,分析并说明通过该幅度谱能否分辨出原序列中两个频率分量;

figure;
N2=100;
n2=0:N2-1;
x2=[x1(1:1:10) zeros(1,90)];
Xk2=dft(x2,100);
k2=0:N2-1;
w2=2*pi/100*k2;
subplot(2,1,1);
stem(n2,x2);
axis([0,100,-2.5,2.5]);
title('补零');
subplot(2,1,2);
stem(w2/pi,abs(Xk2));
title('幅度');

结果如图;

在这里插入图片描述

截断函数频谱混叠没有改变,只提高了计算分辨率,没有提高物理分辨率,不可以分辨出两个频率分量。
(3) 对该序列x(n),取100采样点,求出该有限长序列的DFT,并画出x(n)和其DFT谱,分析并说明通过该幅度谱能否分辨出原序列中两个频率分量,并结合(1)和(2)的结果进行分析。

figure;
N3=100;
n3=0:N3-1;
k3=0:N3-1;
x3=cos(0.48*pi*n3)+cos(0.52*pi*n3);
y3=x3(1:1:100);
Xk3=dft(x3,100);
w3=2*pi/10*k3;
subplot(2,1,1);
stem(n3,y3);
axis([0,100,-2.5,2.5]);
title('x(n) 100个采样点');
subplot(2,1,2);
stem(k3,abs(Xk3));
title('幅度');

结果如图:
在这里插入图片描述

总结:第三种情况截断函数加宽且为周期序列的整数倍,改变了频谱混叠作用,提高了物理分辨率,能正确分辨两个频率分量

猜你喜欢

转载自blog.csdn.net/qq_36587495/article/details/108165715