Borrar filtros
Borrar filtros

How to properly determine bandwidth of a signal?

8 visualizaciones (últimos 30 días)
Arquelau
Arquelau el 23 de Oct. de 2016
Respondida: Walter Roberson el 24 de Oct. de 2016
Hi,
I am trying to determine the total bandwidth of a signal, given by
cos(200*pi*t) + sin(202*pi*t)
However, I am struggling to do it. I am using the function obw(), but as I change the amount of points in the linspace that defines t, the value found for the bandwidth also changes, and I don't understand why.
Also,the spectra of this signal is not being ploted as I expected it to be. From the theory, I expect impulses in the frequencies 200*pi and 202*pi (negative and positive for both). But what I get is
Below is my code:
a = 1;
t = linspace(0,0.5,2000);
x = a*cos(200*pi*t) + a*sin(202*pi*t);
w = obw(x)
plot(t,x);
fftm = fft(x)./numel(x);
fftm = abs(fftm);
fftm = fftshift(fftm);
fscale = linspace(-w, w ,2000);
figure
plot(fscale,fftm);
I am also not sure if I am properly setting the fscale variable.
Can anybody help me? How to properly find the bandwidth of this signal?
Thank you.

Respuesta aceptada

Walter Roberson
Walter Roberson el 24 de Oct. de 2016
You should be passing in the sampling frequency to obw.
Assuming your t values are in seconds, it appears to me your Fs would be 3998.
Fs = 1/(t(2)-t(1))
You might be expecting 4000 instead of 3998, but remember that linspace(0, 0.5, 2000) puts a point at 0, and a point at 0.5, and (2000-2) points in-between. If 0 were intended to be the first point in a cycle and 0.5 were intended to be the first point of the next cycle, then for the cycle to be length 2000, time 0.5 would need to be at point 2001.

Más respuestas (0)

Categorías

Más información sobre Matched Filter and Ambiguity Function en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by