BÁO CÁO LAB 2 pptx

9 664 7
BÁO CÁO LAB 2 pptx

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

Thông tin tài liệu

BÁO CÁO LAB 2 Sinh viên: Bùi Minh Sinh Lớp: 09DT1. Nhóm: 39A. A- LAB 1A: I . Exercise 1: Synthesizer 1. Tạo một script file sigsynth.m. 2. Download mẫu âm thanh trumpet.mat . Play âm thanh này với tần số lấy mẫu Fs=11025. 3. Vẽ một phần nhỏ tín hiệu (khoảng 100 điểm). * Code Matlab load trumpet.mat Fs=11025; soundsc(ed1,Fs) figure, plot(ed1(200:400)); axis tight % looks very periodic wavwrite(ed1,Fs,'trumpet.wav') * Kết quả: *Nhận xét : tín hiệu tuần hoàn với chu kì: 40*1/11025= 3.628 ms. 4. Quan sát phổ tần số: * Code Matlab: Y = fft(ed1, 512); % take the fft of trumpet Ymag = abs(Y); % take the mag of Y f = Fs * (0:256)/512; % get a meaningful axis plot(f, Ymag(1:257)); % plot Ymag (only half the points are needed) xlabel('Frequency (Hz)') ylabel('Magnitude') axis tight *Kết quả: 5. Dùng chức năng "data cursor" để lấy ra các điểm mà tại tần số đó biên độ lớn Các điểm mà ở các tần số đó biên độ lớn nhất: freq=[258.4 538.3 796.7 1055 1335 1593 1852 2110 2390 2649 ]; mag=[11.8 37.75 65.11 52.24 52.59 38.99 28.31 12.49 15.72 15.21 ]; 6. Tạo hàm addcosines.m để tổng hợp lại tín hiệu từ các điểm lấy được từ bước 5. Gồm 3 vectơ :thời gian(t), tần số(freq), biên độ(mag). Sử dụng vòng lặp để tổng hợp các tín hiêu cosin tại các tần số khác nhau thu được ở trên. Code matlab hàm addcosines: function [y]=addcosines(t,freq,mag) sigsyntht=zeros(1,length(t)) for i=1:length(freq) sigsyntht= sigsyntht + mag(i)*cos(2*pi*freq(i)*t) end y=0.999*sigsyntht/max(abs(sigsyntht)) Gọi hàm addcosines: t=0:1/Fs:3; freq=[258.4 538.3 796.7 1055 1335 1593 1852 2110 2390 2649 ]; mag=[11.8 37.75 65.11 52.24 52.59 38.99 28.31 12.49 15.72 15.21 ]; sigsynth=addcosines(t,freq,mag) soundsc(sigsynth,Fs) >> figure subplot(2,1,1) plot(ed1(200:400)); subplot(2,1,2) plot(sigsynth (200:400)); wavwrite(sigsynth,Fs,'sigsynth1.wav'); *Kết quả: 8.Nhận xét :Hai tín hiệu âm thanh trên nghe không giống nhau.Đồ thị của chúng cũng không giống nhau. 9.Thực hiện lại với tần số lấy mẫu nhỏ hơn và tần số lấy mẫu lớn hơn: >> soundsc(y,Fs/2) >> sound(y,2*Fs) II. Exercise 2: 1.Tạo scritp phasefun.m .Tạo tín hiệu sig1 bằng cách tổng hợp 2 tín hiệu tuần hoàn với tần số nhỏ hơn Fs/2.Fs=8000. 2.Tạo tín hiệu sig2 tương tự như sig1 nhưng thành phần thứ 2 đã bị trễ nữa chu kì. 3.Vẽ đồ thị 2 tín hiệu, quan sát kết quả. *Code Matlab: Fs=8000; t=0:1/Fs:1; sig1=cos(2*pi*500*t)+cos(2*pi*800*t); sig2=cos(2*pi*500*t)+cos(2*pi*800*t-pi); figure subplot(2,1,1); plot(sig1(200:400)); subplot(2,1,2); plot(sig2(200:400)); *Kết quả chạy: >> phasefun; *Nhận xét: 2 tín hiệu khác nhau. 4.Nghe 2 âm thanh vừa tạo ra. soundsc(sig1,Fs) soundsc(sig2,Fs) *Nhận xét: 2 âm nghe rất giống nhau. 5.Thực hiện lại với thành phần tín hiệu thứ 2 bị trễ 1 khoảng thời gian khác. sig2=cos(2*pi*500*t)+cos(2*pi*800*(t-1/3200)); soundsc(sig2,Fs); sig2=cos(2*pi*500*t)+cos(2*pi*800*(t-1/4800)); soundsc(sig2,Fs); *Nhận xét: Các âm thanh nghe giống nhau. 6.Taoj tín hiệu sig3.Cộng tín hiệu sig3 với chính nó bị làm trễ đi 1 khoảng thời gian để tạo thành sig4. *Code matlab: sig3=cos(2*pi*1000*t); sig4=sig3+cos(2*pi*1000*(1-1/4000)); subplot(2,1,1); plot(sig3(200:400)); subplot(2,1,2); plot(sig4(200:400)); soundsc(sig3,Fs); soundsc(sig4,Fs); *Nhận xét:Hai âm thanh nghe giống nhau. III. Exercise 3 Gibbs phenomena: 1. Plot the magnitude and phase of the coe-cients Ck for k={-10 -9 -8….8 9 10}; *Code matlab: k=-10:10; fct=ck(k); subplot(2,1,1); plot(abs(fct)); subplot(2,1,2); plot(phase(fct)); *Kết quả: . lớn nhất: freq= [25 8.4 538.3 796.7 1055 1335 1593 18 52 2110 23 90 26 49 ]; mag=[11.8 37.75 65.11 52. 24 52. 59 38.99 28 .31 12. 49 15. 72 15 .21 ]; 6. Tạo hàm. addcosines: t=0:1/Fs:3; freq= [25 8.4 538.3 796.7 1055 1335 1593 18 52 2110 23 90 26 49 ]; mag=[11.8 37.75 65.11 52. 24 52. 59 38.99 28 .31 12. 49 15. 72 15 .21 ]; sigsynth=addcosines(t,freq,mag) soundsc(sigsynth,Fs) >>

Ngày đăng: 16/03/2014, 15:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan