Tải bản đầy đủ (.docx) (9 trang)

BÁO CÁO LAB 2 pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (325.9 KB, 9 trang )

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ả:

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×