1. 실험의 목적과 원리를 간략하게 설명합니다.
목적:
1) 순차 푸리에 변환 DTFT의 컴퓨터 구현 방법을 마스터합니다.
2) 시퀀스 DFT의 기본 이론과 컴퓨터 구현 방법을 마스터합니다.
3) 순차 푸리에 변환 DTFT와 순차 DFT 간의 관계를 마스터합니다.
4) 의 중앙값과 실제 각주파수 사이의 대응 관계를 이해합니다.
실험 내용이 실현됩니다.
1.DTFT :
function [Xk]=dft(xn, N)
l=length(xn);
if l<N
xn=[xn,zeros(1,N-l)];
end
Xk=zeros(1,N);
k=zeros(1,N);
for i=1:N
k(i)=i-1;
end
for i=1:N
Xk=Xk+xn(i)*exp(-j*2*pi/N*(i-1)*k);
End
2.DFT :
function [Xk]=dft(xn, N)
l=length(xn);
if l<N
xn=[xn,zeros(1,N-l)];
end
Xk=zeros(1,N);
k=zeros(1,N);
for i=1:N
k(i)=i-1;
end
for i=1:N
Xk=Xk+xn(i)*exp(-j*2*pi/N*(i-1)*k);
End
삼.
clc,clear,close all
xn=[1,1,1,1];
M=1000;
k=0:1:M-1;
w=6*pi/M*k;
Xejw=dtft(xn,w);
% subplot(511);
plot(w/pi,abs(Xejw));
ylabel('X(ejw)');
xlabel('\omega/\pi');
4.1
clc,clear,close all
xn=[1,1,1,1];
M=1000;
k=0:1:M-1;
x1=[xn,zeros(1,28)];
w1=2*pi/1000*k;
X=dtft(xn,w1);
subplot(211);
plot(w1/pi,abs(X));
ylabel('X');
subplot(212);
X1=dtft(x1,w1);
plot(w1/pi,abs(X1));
ylabel('X1');
xlabel('\omega/\pi');
4.2
clc,clear,close all
xn=[1,1,1,1];
M=4;
k=0:1:M-1;
Xk1=dft(xn,M);
subplot(211);
stem(2/M*k,abs(Xk1));
ylabel('Xk1');
M=32;
k=0:1:M-1;
Xk2=dft(xn,M);
subplot(212);
stem(2/M*k,abs(Xk2));
xlabel('\omega/\pi');
ylabel('Xk2');
- 실험 결과
결론 1: 시간 영역이 유한하면 주파수 영역에서 무한하고 시간 영역이 이산적이면 주파수 영역은 주기적 확장을 생성합니다.
결론 2: 제로 패딩이 시퀀스의 DTFT에 영향을 미치지 않는지 여부는 동일합니다.
결론 3: Zero-filling은 Fence 효과를 감소시킬 수 있지만 주파수 분해능은 유효 길이와 관련이 있기 때문에 주파수 분해능을 향상시킬 수 없습니다 Zero-filling 후 더 많은 샘플링 포인트가 있지만 유효 길이는 변경되지 않으므로 주파수 해상도는 변경이 아닙니다.
- 생각하는 질문.
실제 각주파수 ωk= ( 2π/N ) k ,k=0,1,2…N-1