Nghiên cứu Khoa học

Khảo sát các đặc tính của DFT bằng Matlab

  • 15/05/2024
  • Nghiên cứu Khoa học

  1. Tạo function cshift để dịch vòng một chuỗi m giá trị:
    function out = cshift(x,m)
    m0 = m;
    if abs(m0) > length(x)
    m0 = rem(m0,length(x));
    end
    while (m0<0)
    m0 = m0 + length(x);
    end
    out= [x(length(x)-m0+1:length(x)) x(1:length(x)-m0)];

Khảo sát tính chất dịch vòng của DFT-N điểm:

N = 20;

m = 3;

x = randn(1,N);

y = fft(x,N);

x1 = cshift(x,m);

y1 = fft(x1,N);
k = 0:N-1;
y2 = exp(-j*2*pi*k*m/N).*y;
subplot(221),stem(abs(y));title(‘y1’);
subplot(222),stem(angle(y)); title(‘y1’);
subplot(223),stem(abs(y2));title(‘y2’);
subplot(224),stem(angle(y2)); title(‘y2’);

  1. Tính chất dịch vòng theo thời gian và tổng chập vòng của phép biến đổi DFT

% Program P4_6

% Circular Time-Shifting Property of DFT

clf;

x = [0 2 4 6 8 10 12 14 16];

N = length(x)-1; n = 0:N;

y = circshift(x,5);

XF = fft(x);

YF = fft(y);

subplot(2,2,1)

stem(n,abs(XF));grid

title('Magnitude of DFT of Original Sequence');

subplot(2,2,2)

stem(n,abs(YF));grid

title('Magnitude of DFT of Circularly Shifted Sequence');

subplot(2,2,3)

stem(n,angle(XF));grid

title('Phase of DFT of Original Sequence');

subplot(2,2,4)

stem(n,angle(YF));grid

title('Phase of DFT of Circularly Shifted Sequence');

 % Circular Convolution Property of DFT

g1 = [1 2 3 4 5 6]; g2 = [1 -2 3 3 -2 1];

ycir = circonv(g1,g2);

disp('Result of circular convolution = ');disp(ycir)

G1 = fft(g1); G2 = fft(g2);

yc = real(ifft(G1.*G2));

disp('Result of IDFT of the DFT products = ');disp(yc)

Các tin khác