1. Trang chủ
  2. » Cao đẳng - Đại học

PROJECT 2: FREQUENCY - DOMAIN VIEW OF SAMPLING

30 352 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 1,38 MB

Nội dung

PROJECT 2: FREQUENCY –DOMAIN VIEW OF SAMPLING EXERCISE 2.1: Signal Generation A.Khởi tạo tín hiệu a ,khởi tạo tín hiệu mơ sóng liên tục : Theo đề bài,vì fsim=80kHz nên lấy thời gian T 1/80 s ta có từ 900- 1000 mẫu với fo tùy ý.Để thuận lới cho việc tính tốn ta chọn fo=80Hz B ,lấy mẫu tín hiệu t=0:1/80000:1/80 x=cos(2*pi*80*t+pi/4); plot(t,x); Đồ thị Matlab: C.Vẽ đồ thị biến đổi Fourier : Hàm vẽ đồ thị : function dothi(xa,dt) % FMAGPLOT % fmagplot(xa,dt) % % xa: the "analog" signal % dt: the sampling interval in seconds for the simulated analog signal xa % L = length(xa); Nfft = 2.^ceil(log2(L)); % Choose the nearest Power of Xa = fft(xa,Nfft); range = 0:(Nfft/4); % show frequencies up to 1/4 sampling rate ff = range/Nfft/dt/1000; % frequencies in kHz % plot magnitude frequency plot(ff,abs(Xa(1+range))) title('Continuous-time Fourier transform (MAG)'); xlabel('FREQUENCY (kHz)'); grid code: t=0: 1/80000:1/80; x=cos(2*pi*80*t+pi/4); dothi(x, 1/80000); Đồ thị Matlab: EXERCISE 2.2: A/D Conversion A,Lấy mẫu tín hiệu với fs=8 kHz t=0:1/8000:1/80; x=cos(2*pi*80*t+pi/4); stem(t,x); Đồ thị Matlab: B.Biến đổi DTFT tín hiệu rời rạc : Khởi tạo hàm function: function [H,W] = dtft( h, N ) %DTFT calculate DTFT at N equally spaced frequencies % usage: H = dtft( h, N ) % h: finite-length input vector, whose length is L % N: number of frequencies for evaluation over [-pi,pi) % ==> constraint: N >= L % % H: DTFT values (complex) % W: (2nd output) vector of freqs where DTFT is computed % N = fix(N); L = length(h); h = h(:); %< for vectors ONLY !!! if( N < L ) error('DTFT: # data samples cannot exceed # freq samples') end W = (2*pi/N) * [ 0:(N-1) ]'; mid = ceil(N/2) + 1; W(mid:N) = W(mid:N) - 2*pi; % < - move [pi,2pi) to [-pi,0) W = fftshift(W); H = fftshift( fft( h, N ) ); %< - move negative freq components Đoạn code: t=0:1/8000:1/80; x=cos(2*pi*80*t+pi/4); [X,W] = dtft( x, 128 ); Đồ thị biến đổi: format compact, subplot(111) subplot(211), plot( W/2/pi, abs(X) ); grid, title('MAGNITUDE RESPONSE') xlabel('NORMALIZED FREQUENCY'), ylabel('| H(w) |') subplot(212), plot( W/2/pi, 180/pi*angle(X) ); grid xlabel('NORMALIZED FREQUENCY'), ylabel('DEGREES') title('PHASE RESPONSE') EXERCISE 2.3: Design a Reconstruction Filter: Theo fs/fsim=o.1 nên tần số cắt fcut=0.1 Suy hàm cheby2 tạo lọc [b,a]=cheby2(9,60,0.1); Đồ thị đáp ứng pha đáp ứng tần số : freqz(b,a); EXERCISE 2.4: D/A Conversion A.Do số điểm thêm vào xâu phải thỏa mãn tỉ só fsim/fs,mà theo đề fsim/fs=10.Do số điểm thêm vào xâu 10.ta đồ thị x^(t) Với tín hiệu Exercise 2.1 ta có : Khi thêm 10 điểm vào mẫu,ta đồ thị x^(t) t=0:1/80000:1/80; x=cos(2*pi*80*t+pi/4); y=[1;zeros(10,1)] * x; y=y(:); nn=0:11010; plot(nn,y); nn=0:1110; s = filter(b,a,y); [X,W] = dtft( y,1111); subplot(211), plot( W/2/pi, abs(X) ); grid, title('MAGNITUDE RESPONSE') xlabel('NORMALIZED FREQUENCY'), ylabel('| H(w) |') subplot(212), plot( W/2/pi, 180/pi*angle(X) ); grid xlabel('NORMALIZED FREQUENCY'), ylabel('DEGREES') title('PHASE RESPONSE') Với fsim=80 kHz ta có tín hiệu đầu sau biển đồi Fourier : format compact, subplot(111) [b,a]=cheby2(9,60,0.1); t=0:1/80000:1/80; x=cos(2*pi*80*t+pi/4); y=[1;zeros(10,1)] * x; y=y(:); nn=0:11010; s = filter(b,a,y); [X,W] = dtft( y,11011); subplot(211), plot( W/2/pi, abs(X) ); grid, title('MAGNITUDE RESPONSE') xlabel('NORMALIZED FREQUENCY'), ylabel('| H(w) |') subplot(212), plot( W/2/pi, 180/pi*angle(X) ); grid xlabel('NORMALIZED FREQUENCY'), ylabel('DEGREES') title('PHASE RESPONSE') EXERCISE 2.5: Test for Aliasing A.Tạo M-file : function test(fs,f) t=0:1/fs:1/f x=cos(2*pi*f*t+pi/4) dt=1/fs; L = length(x); Nfft = 2.^ceil(log2(L)); % Choose the nearest Power of Xa = fft(x,Nfft);range = 0:(Nfft/4); % show frequencies up to 1/4 sampling rate ff = range/Nfft/dt/1000; % frequencies in kHz % plot magnitude frequency subplot(211) plot(ff,abs(Xa(1+range))) title('Continuous-time Fourier transform (MAG)'); xlabel('FREQUENCY (kHz)'); subplot(212) plot(t,x) xlabel('INPUT'); B.Với tần số lấy mẫu fs= kHz tần số tín hiệu đầu vào fo= 2Khz: test (8000,2000); Với tần số lấy mẫu fs= 100 kHz tần số tín hiệu đầu vào fo= kHz test (100000,6000); Với tần số lấy mẫu fs= 100 kHz tần số tín hiệu đầu vào fo= kHz test (100000,7000); Với tần số lấy mẫu fs= 100 kHz tần số tín hiệu đầu vào fo= kHz test (100000,9000); Với tần số lấy mẫu fs= 100 kHz tần số tín hiệu đầu vào fo= 10 kHz test (100000,10000); Với tần số lấy mẫu fs= 100 kHz tần số tín hiệu đầu vào fo= 15 kHz test (100000,15000); C.Tạo M-file : function testc(fs,f) t=0:1/fs:1/f; x=cos(2*pi*f*t+pi/4); subplot(2,2,1); plot(t,x); xlabel('x(t)'); subplot(2,2,2); stem(t,x,'g'); xlabel('x[n]'); y=[1;zeros(10,1)] * x; y=y(:); nn=0:1110; subplot(2,2,3); plot(nn,y) ; xlabel('x*(t)'); [b,a]=cheby2(9,60,0.1); s = filter(b,a,y); subplot(2,2,4); plot(nn,s); xlabel('xr(t)'); testc(8000,80) TẠO D Tạo hàm function function testchirp(f1,muy,fs) t=0:1/fs:1/f1; x=cos(2*pi*(muy*t.^2/2+f1*t)+pi/4); subplot(2,2,1); plot(t,x) xlabel('x(t)'); subplot(2,2,2); stem(t,x,'g'); xlabel('x[n]'); y=[1;zeros(10,1)] * x; y=y(:); nn=0:11010; subplot(2,2,3); plot(nn,y); xlabel('x*(t)'); [b,a]=cheby2(9,60,0.1); s = filter(b,a,y); subplot(2,2,4); plot(nn,s); xlabel('xr(t)'); testchirp(4000,600000,4000000)

Ngày đăng: 10/08/2016, 11:09

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w