Simple Matlab mã giúp

I

Ibaghdadi

Guest
Hi iam wrinting một mã Matlab đơn giản mà tạo ra một tín hiệu sinusoidal mà sau đó sẽ lấy mẫu ploted.khi tôi đi theo tần số lấy mẫu fs = 5000 và f0 = 4.500 hz.Số lượng các mẫu n = 100,.
Tôi cần phải nhận được một lỗi aliaisnig vì fs <2 * f0 ....Vấn đề là tôi có được các tín hiệu undistorted!Đây là mã Matlab:

Mã số:

function [x, t] = sin_gen (f0, fs, N)

N = input ( 'nhập vào giá trị N \ n');% N = 100

f0 = input ( 'input f0 \ n');

( '= đầu vào giá trị đầu vào fs fs \ n'); = 5000 fs%

n = 0: N-1;

x = sin (2 * pi * n * (f0/fs));

Ts = 1/fs;

t = n * Ts;

stem (t, x, 'r');xlabel ( 't');

ylabel ( 'x [n]');

 
Chào,
l nghĩ rằng tôi sẽ giải thích với một ví dụ.
x1 (t) = cos (2 * pi * 10 * t)
x1 (t) = cos (2 * pi * 50 * t)
nếu tỷ lệ lấy mẫu là fs = 40Hz.
x1 [n] = cos (2 * pi * (10/40) * n) = cos (pi * n / 2)
x1 [n] = cos (2 * pi * (50/40) * n) = cos (5 * pi * n / 2) = cos ((2 * pi * n) (pi * n / 2))
= Cos ((pi * n / 2))

Do đó, nếu chúng ta cho các giá trị lấy mẫu tạo ra bởi cos ((pi * n / 2))
sẽ có ba sự nhầm lẫn cho dù giá trị mẫu thuộc x1 (t) hay x2 (t)ở đây, 50Hz là một bí danh của freq 10Hz.vì vậy trong thời gian một trong những tên miền không có dấu vết răng cưa.(các giá trị mẫu hình tương tự)

tại ur mã của bạn cố gắng để phân tích thời gian miền

Chỉ có ở miền freq, có thể thấy tác dụng của răng cưa.Happy học tập

 
ok, cũng nhờ giải thích.
Mặc dù tôi đã làm quản lý để xem (ít nhất là trong trường hợp f0 = 4.500 & fs = 5000) lỗi của tôi khi tôi thực hiện các bước kích thước (n = 0:0.5:100) nhỏ hơn.

 
Ibaghdadi đã viết:
"lỗi của tôi khi tôi thực hiện các bước kích thước (n = 0:0.5:100) nhỏ hơn."

n nên b một số nguyên.(như trong thời gian seq rời rạc, nó không phải là định nghĩa cho thập phân hoặc các giá trị thực.)
nó được định nghĩa cho các giá trị số nguyên

do đó kích thước bước b nên số nguyên.bước kích thước (n = 0:1:99)

Happy học tập

 

Welcome to EDABoard.com

Sponsor

Back
Top